|
Lisp : Block mit Attributen
joern bosse am 24.07.2008 um 11:55 Uhr (0)
@Heinz, Zitat:Und wir sind bereit ein Lisp schreiben zu lassen, für einen Fehler den ein Planer gemacht hat.Dem wir die Stromkreisnummer eintragen sollen, der dann wieder einen Superplan in der hand hat und nicht mal danke sagt ....dann braucht Ihr noch ein Tool, was vor der Abgabe alles wieder kaputt macht ------------------viele GrüßeJörn
|
| In das Form Lisp wechseln |
|
Lisp : Reaktor wieder laden
joern bosse am 25.03.2008 um 09:17 Uhr (0)
Hallo Heinz,einfach mit LOAD die LISP-Datei laden, in der der Reactor definiert ist.------------------viele GrüßeJörn
|
| In das Form Lisp wechseln |
|
Lisp : nur ATT drehn
joern bosse am 23.06.2006 um 08:14 Uhr (0)
Hallo Heinz,wenn das Attribut gespiegelt ist, dann kannst Du den Wert von GC 71 auf 2 ändern, dann wird der Attributinhalt rückwärts dargestellt.------------------viele GrüßeJörn
|
| In das Form Lisp wechseln |
|
Lisp : Lisp in 2010 und 2011
joern bosse am 30.07.2010 um 11:08 Uhr (0)
Hallo Heinz,vielleicht eine Abfrage über die aktuelle Version??(if (=(atof (getvar "ACADVER"))18.0) (dann mach etwas))Ist aber ein ziemliches rätselraten ohne Code. Kannst Du nicht mal mit dem Debugger durch das Programm durchgehen, irgenwo muß doch es doch ersichtlich sein, warum da nichts passiert.------------------viele GrüßeJörnhttp://www.bosse-engineering.com
|
| In das Form Lisp wechseln |
|
Lisp : ATT übertragen
joern bosse am 16.03.2006 um 14:10 Uhr (0)
Hallo Heinz,wenn Du das 2.te Attribut auswählst, dann mußt Du auch nentsel, und nicht entsel verwenden.Code:(defun c:test ( / )(setq BLOCKATT (cdr(assoc 1 (entget (car (nentsel "
Blockattribut Wählen: ")))))) (setq el(entget(car(nentsel)))) (entmod(subst(cons 1 BLOCKATT)(assoc 1 el)el)))------------------viele GrüßeJörn
|
| In das Form Lisp wechseln |
|
Lisp : Block mit Attributen
joern bosse am 24.07.2008 um 10:22 Uhr (0)
Hallo Heinz,ich würde so vorgehen:1. einen der Blöcke kopieren.2. Die Skalierung der Kopie auf 1.0 in x,y, und z3. Die Drehung der Kopie auf 0.04. Die Kopie in Ursprung zerlegen5. Befehle "Block", dann die einzelnen Objekte des geursprungten Blockes auswählen (unter anderem auch das Attribut)6. Block neu definieren.Dann hast Du eine Blockdefinition mit ATTDEF innerhalb der Zeichnung.------------------viele GrüßeJörn
|
| In das Form Lisp wechseln |
|
Lisp : setq x '(Koordinaten)
joern bosse am 12.08.2023 um 10:35 Uhr (1)
Hallo Heinz,nur ein Schuß ins Blaue und eigentlich unnötig:Code:(cond ((= PAP-FORMAT "4") (setq LIM-max (list 277 190 0))) ((= PAP-FORMAT "3") (setq LIM-max (list 400 277 0))) ((= PAP-FORMAT "2") (setq LIM-max (list 554 400 0))) ((= PAP-FORMAT "1") (setq LIM-max (list 800 554 0))) ((= PAP-FORMAT "0") (setq LIM-max (list 1108 800 0)))Damit hättest Du mit LIST eine gültige Funktion die im Resultat dieselber Rückgabe liefern müßte wie mit Hochkomma. Viel Glück;-)------------------viele GrüßeJörnhttp://ww ...
|
| In das Form Lisp wechseln |
|
Lisp : nur ATT drehn
joern bosse am 23.06.2006 um 07:44 Uhr (0)
Hallo Heinz,Du mußt nicht erst in Grad konvertieren, bleib doch bei der Einheit, die Dir aus dem GC 50 zurückgegeben wird: RADUm das Attribut um 180 Grad zu drehen, mußt Du nur PI auf den Wert von GC 50 zu addieren (Beispiel). Du kannst aber auch die 0.0 mit (subst (cons 50 0.0) (assoc 50 ... )direkt zuweisen.Code:(defun c:test (/ obj) (entmod (subst (cons 50 (+ (cdr (assoc 50 (entget (setq obj (car (nentsel "
Attribut wählen: ")))))) pi)) (assoc 50 (entget obj)) (entget obj))) (entup ...
|
| In das Form Lisp wechseln |
|
Rund um AutoCAD : Copy & Paste in der selben Zeichnung Extrem langsam
joern bosse am 28.06.2011 um 07:00 Uhr (0)
Hallo,ich habe in Deinem Profil 2008 gelesen, eventuell sind auch eine Vielzahl von Beschriftungsmaßstäben der Auslöser.In folgendem Thread hat Heinz Dober ein Tool eingestellt, einfach mal laden und die Funktion "SCALELISTDELALL" laden. http://ww3.cad.de/foren/ubb/Forum54/HTML/016522.shtml#000013 PS: vergiß diesen Beitrag, ich habe überlesen, daß Du die Maßstabslisten bereits bereinigt hast.------------------viele GrüßeJörnhttp://www.bosse-engineering.com[Diese Nachricht wurde von joern bosse am 28. Jun. ...
|
| In das Form Rund um AutoCAD wechseln |
|
AutoLisp : Versetzen auf gemessener Strecke
joern bosse am 10.11.2005 um 09:23 Uhr (0)
Hallo Heinz,ich würde eine weitere Variable verwenden für den zu versetzenden Abstand. = vs-lenIn der Schleife wird jedesmal der Wert tei-len aufaddiert. Code:(defun c:mteilen (/ tei-len vs-len) (setq pt1 (getpoint "
Anfangspunkt eingeben: ")) (setq pt2 (getpoint "
Endpunkt eingeben: ")) (setq lange (distance pt1 pt2)) (setq teil (getint "
Wieviele Linien: ")) (setq tei-len (/ lange teil)) (setq entset (entsel)) (setq Element (car entset)) (setq side_point(getpoint "Punkt auf Seite angeben, auf die verset ...
|
| In das Form AutoLisp wechseln |
|
Lisp : Text kopieren und hochzählen
joern bosse am 30.05.2013 um 07:13 Uhr (0)
Hallo Markus,falls der Link von Heinz nicht geholfen hat hier nochmal ein bißchen geänderter Code:Code:(defun c:test2 ( / LASTOBJ N OLDOBJEKT) ;;;!!!DIMZIN wird nicht automatisch wieder zurückgestellt!!! (setvar "DIMZIN" 3) if (setq oldobjekt (car(entsel "
Text wählen:"))) (progn (setq n 1) (while (or (= n 1) lastobj) (command "_.copy" oldobjekt ""(cdr(assoc 10 (entget oldobjekt)))pause) (if (/=(distance (cdr(assoc 10 (entget(entlast)))) (mapcar (lambda(A) (* A 2.0)) ...
|
| In das Form Lisp wechseln |
|
AutoLisp : Block auf Layer
joern bosse am 15.07.2005 um 10:37 Uhr (0)
Hallo Heinz, so kompliziert ist das gar nicht. Ich habe an axel s Vorschlag angeknüpft, im Nachhinein die Blöcke auf die vereinbarten Layer umzulegen. Im folgenden Lisp mußt Du die Liste anpassen, ich habe beispielsweise die Blöcke "Test1" und "Test2" mit den Layern "Layer1" und "Layer2" verwendet. Auf Groß- und Kleinschreibung ist zu achten. Viel Spaß beim ausprobieren: (defun c:block_layer ( / liste aws layer) (setq liste (list ("Test1" "Layer1");;;Liste mit Block und zugehörigem Layer, = anpassen ...
|
| In das Form AutoLisp wechseln |