|
Lisp : Punktkoordinaten aus Datei auslesen
Brischke am 01.09.2011 um 11:42 Uhr (0)
Zitat:Original erstellt von cadplayer:(command "insert" (getfiled "TITEL" "M:/Mallar/Cad/Autolisp/simple-block/meas" "dwg" 2)) 0 1 1 0 )wie stelle ich es an das die Dialogbox nicht aufgeht?Hallo cadplayer,als Moderator verfolge ich das Thema die ganze Zeit, und möchte mich jetzt mal mit einer Bitte/ einem Tip einschalten:Versuche doch bitte mal auch die F1-Taste, also die VLisp-Hilfe, zu benutzen. Ich empfinde deine Fragen doch inzwischen so, als würdest du die Hilfsbereitschaft der Antwortenden sehr ausn ...
|
| In das Form Lisp wechseln |
|
Lisp : GC entmake text?
Brischke am 22.09.2011 um 12:21 Uhr (0)
Hallo CADblue,es gilt fast immer, dass du dir die notwendigen GCs von den Objekten selbst ermitteln kannst. Dazu machst du folgendes:1) Zeichnen eines Elementes, welche GCs du ermitteln möchtest2) Ausgeben der GCs (entget(car(entsel)))3) Die Liste aus (2) um die GCs -1 5 und alle die, die eine Objekt-Id enthalten löschenFertig!Beispiel:Code:(entmake (list ;(-1 . Objektname: 7efe8380>) (0 . "POINT") ;(330 . Objektname: 7efe6cf8>) ;(5 . "1B0") (100 . "AcDbEntity") ...
|
| In das Form Lisp wechseln |
|
Lisp : nochmal Fehlermeldungen beim Prüfen
Brischke am 22.09.2011 um 16:36 Uhr (0)
... ich denke du kannst davon ausgehen, dass da irgendeine Applikation unsaubere Daten in die DXF-Datei geschrieben hat, die nun ohne diese Applikation nichts mehr durch Acad zu interpretieren sind. Womöglich sind die Einträge in einem Benutzer-Dictionary nicht korrekt erfolgt. Oder es sind Verweise auf Handles, deren zugehöregen Objekte gelöscht wurden.Wenn die Zeichnung bei einer erneuten Prüfung keinen Fehler weiter anzeigt, kannst du die Zeichnungen (vermute ich mal) ohne Probleme weiter verwenden. Es ...
|
| In das Form Lisp wechseln |
|
Lisp : Koordinatentext vom Punkt verschieben
Brischke am 04.10.2011 um 05:59 Uhr (0)
Hallo Madler,nachfolgend dein Code, den ich mal ein wenig erweitert habe. 2 Wege der Addition von Koordinaten sind darin aufgezeigt.Code:(defun c unktid ( / xyz xyz1 uprec ptx pty ptz lname PunktNeu PunktMoved MoveVector fil) (command "-layer" "machen" "Punkt-ID" "farbe" "rot" "" "") (setq uprec (progn (initget 5)(getint "Nachkommastellen: ")) lname "?" ) ;;- Layer abfragen und sicher stellen, dass der NAme gültig ist. Layer erzeugen(wenn nicht vorhanden) (while (not (snvalid lname)) (initget 1) ...
|
| In das Form Lisp wechseln |
|
Lisp : Auswahlsatz Attribute
Brischke am 23.11.2011 um 13:23 Uhr (0)
Zitat:Original erstellt von sponk-mg:Besser wäre es, den GC komplett zu entfernen Zitat:Original erstellt von sponk-mg:... mein Halbwissen stösst mal wieder an seine Grenzen.Statt Blöcke aufzulösen, um Attributtexte zu löschen,möchte ich die Gruppencode 2 und/oder 1 aus dem Block entfernen. ... Was du da vor hast, klingt nicht wirklich sinnvoll. Objekte haben bestimmte Eigenschaften, die untrennbar mit der Existenz des Objektes verknüpft sind. Diese sind in den Gruppencodes organisiert. Du kannst nicht ei ...
|
| In das Form Lisp wechseln |
|
Lisp : script zur Bereinigung von Export DXF/DWG
Brischke am 18.10.2011 um 15:01 Uhr (0)
Zitat:Original erstellt von Kodat:... Also das finde ich jetzt aber schwach. ...Hallo Kodat,was findest du schwach? Ist es, dass dir keiner eine Lösung postet?Falls es das sein sollte, möchte ich dazu folgendes anmerken:Du erwartest eine Lösung für etwas, was sonst nur mit erheblichem Zeitaufwand verbunden wäre, folglich Geld kosten würde. Nur weil hier Profis im Forum unterwegs sind, heißt das noch lange nicht, dass diese auch verpflichtet sind, eine (die für dich passende) Lösung zu posten.Du findest es ...
|
| In das Form Lisp wechseln |
|
Lisp : ssget Problem
Brischke am 19.10.2011 um 12:50 Uhr (0)
Zitat:Original erstellt von sponk-mg:...sämtliche Bemaßungen in einer Zeichnung auszuwählen. ...... kann man mit:(ssget "_X" ((0 . "DIMENSION" )))Grüße!Holger------------------Holger BrischkeCAD on demand GmbHIndividuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
|
| In das Form Lisp wechseln |
|
Lisp : ssget Problem
Brischke am 19.10.2011 um 13:19 Uhr (0)
na gut, wenn Cadffm so ausführlich antwortet, will ich mich nicht lumpen lassen.Grundsätzlich gilt bei den Filterlisten folgendes:+ alles Filter die angegeben werden, sind UND- verknüpft.Will man das nicht, kann man entweder mit den logischen Operanden(-4 . "..") .. (-4 . "..")arbeiten, oder bei Zeichenketten dann durch Ausnutzen der Möglichkeit mit Zeichenkettenmustern zu arbeiten andere Verknüpfungen integrieren.Zum Bsp: alle Polylinien und Linien wählen (ssget "_X" ((0 . "*LINE")))oder : alle(M)Texte un ...
|
| In das Form Lisp wechseln |
|
Lisp : Blockname als Text
Brischke am 27.10.2011 um 08:12 Uhr (0)
Hallo Markus,da hast du dir sehr schlechten Code ausgesucht. Ich habe diesen mal umgestaltet, so dass dieser zum Lernen taugt.Code:; places name of block as text via pick(defun C:blockn(/ ;den verwendete Variablen lokale Gültigkeit zuweisen sel seldaten blname pt1 TextStyleDaten texthöhe ) (setvar "cmdecho" 0); Unterdrückt die Ausgabe von Ausgaben in der Befehlszeile(von (command ..) ; die Objektwahl wird in eine Schleife gepackt, um sicher zu stellen, dass ein Objekt gewählt wurde und dieses auch dem E ...
|
| In das Form Lisp wechseln |
|
Lisp : Auswahlsatz Attribute
Brischke am 28.10.2011 um 16:28 Uhr (0)
Hallo,die Attribute findest du nicht im Modellbereich, die sind ja immer in einer Blockreferenz enthalten. Deshalb wirst du mit (ssget ..) niemals ein Attribut finden.Du musst also die Blockreferenzen (INSERT) suchen und von denen die Attribute auslesen und vergleichen, ob das mit dem gesuchten Namen dabei ist.Grüße Holger------------------Holger BrischkeCAD on demand GmbHIndividuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
|
| In das Form Lisp wechseln |
|
Lisp : Kreise ersetzen
Brischke am 09.11.2011 um 10:42 Uhr (0)
Zitat:Original erstellt von mundal:Hallo,ich habe Grundkenntnisse in LISPKann (mit viel zeit und Aufwand) vorhandene Programme anpassen.GrußHeinzna dann:1) Auswahlsatz über alle kreise bilden(ssget "_X" ((0 . "CIRCLE")))2) Schleife über den Auswahlsatz bauen(while ..2.a) Elementdaten aus dem aktuellen Kreis auslesen(entget ..)2.b) Elementdaten ändern(subst ..)2.c) Element aktualisieren(entmod ..)Ich denke, die Hinweise genügen, dass man daraus ein Tool basteln kann.Bei (konkreten) Fragen ...Grüße Holger-- ...
|
| In das Form Lisp wechseln |
|
Lisp : ssget _f
Brischke am 10.11.2011 um 11:28 Uhr (0)
... der sicherste Weg ist tatsächlich ein (ssget "_X") und dann die Elemente prüfen, ob die innerhalb des eigentlich gesuchten Bereichs liegen. Das geht mit der reinen Mathematik oder eben (was einfacher ist) mit der von CADmium vorgeschlagenen Methode.Grüße Holger------------------Holger BrischkeCAD on demand GmbHIndividuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
|
| In das Form Lisp wechseln |
|
Lisp : Kreise ersetzen
Brischke am 09.11.2011 um 10:56 Uhr (0)
Zitat:Original erstellt von CADmium: besser (repeat (sslength AUSWAHL) .... denk an das Laufzeitverhalten und die Zeit, was die ständige Prüfung kostet .. wie Axel schon sagte: "...auch wenn die Prozessoren immer schneller werden, muss man sie deshalb noch lange nicht quälen ...."... oder noch besser mit (mapcar (lambda (EL) ..)(if aws (bau_elemli aws)))siehe dazu auch hier:Grüße Holger------------------Holger BrischkeCAD on demand GmbHIndividuelle Lösungen von Heute auf Morgen. defun-tools Das Downloa ...
|
| In das Form Lisp wechseln |