|
Lisp : Lisp zur Attributweitergabe an ein Schriftfeld
joern bosse am 05.11.2018 um 16:46 Uhr (1)
Hallo Bernhard,vielleicht einfach mit dem Command-Befehl (command-s "_.updatefield" (MText als vla-obj)"")???------------------viele GrüßeJörnhttp://www.bosse-engineering.comFoto-Manager Youtube
|
In das Form Lisp wechseln |
|
Lisp : Lisp zur Attributweitergabe an ein Schriftfeld
cadffm am 05.11.2018 um 16:48 Uhr (1)
Zum eine alle Aktionen welche du eingestellt hast mit FieldEval oder unabhängig davon für TopLevel Elemente (unverschachtelte), Befehl: schriftfeldaktNach einer Lösung ohne AutoCAD-Befehle habe ich jetzt nicht geschaut.
|
In das Form Lisp wechseln |
|
Lisp : Attribute abfragen
vision am 06.11.2018 um 12:37 Uhr (1)
Hallo,in dem Lisp möchte ich noch den Wert vom Attribut BEZEICHNUNG2 im Block abfragen.Für ein Beispiel hierzu währe ich sehr dankbar.(if(and(SETQ ent (car(ENTSEL "
Text-Block anklicken: "))) (setq gg (assoc 10 (entget ent))) (=(cdr(assoc 66 (entget ENT)))1) ) (WHILE (AND (SETQ ent (ENTNEXT ent)) (/= (CDR (ASSOC 0 (ENTGET ent))) "SEQEND") ) (IF(AND (=(CDR (ASSOC 0 (ENTGET ent))) "ATTRIB") (=(strcase(CDR (ASSOC 2 (ENTGET ent)))) "BEZEICHNUNG1") ;Attributname 1! ) (progn (SETQ BLATT ...
|
In das Form Lisp wechseln |
 |
Lisp : Attribute abfragen
vision am 06.11.2018 um 15:53 Uhr (1)
Hallo,hier die Eigenschaften vom Block!Die Attributbezeichnungen: BEZEICH1 + BEZEICH6 hatte ich im Lisp angepasst![Diese Nachricht wurde von vision am 06. Nov. 2018 editiert.]
|
In das Form Lisp wechseln |
|
Lisp : Blockhuckepack
cadoc am 06.11.2018 um 13:43 Uhr (1)
Danke für die Rückmeldung.Überlegungen gibt es schon:Abfrage für AuswahlbereichAuswahlbereich festlegenAuswahl eines Zielblocks um den Namen der B Blöcke zu erhaltenAuswahl eines Verschiebeblocks um den Namen der A Blöcke zu erhaltenErstelle Liste A von n Blöcken mit Namen AErstelle Liste B von n Blöcken mit Namen B Nimm ersten Block A aus Liste A Rechne die Abstände der Einfügepunkte (aus Koordinaten X,Y) zu allen Blöcken B aus Liste B Merke jenen Block B mit dem kürzesten Abstand zum ersten Block A ...
|
In das Form Lisp wechseln |
|
Lisp : Lisp zur Attributweitergabe an ein Schriftfeld
Bernhard GSD am 06.11.2018 um 17:31 Uhr (1)
Leider zeigt der Befehl "Schriftfeldakt" keine Wirkung, da das MTEXT-Element die Schriftfelder erst als solche erkennt, wenn ich den MTEXT-Editor öffne (und gleich wieder schliesse). Ich müsste Autocad also dazu bewegen, sich so zu verhalten, als wäre der Editor geöffnet worden.------------------Gruß aus WienBernhard
|
In das Form Lisp wechseln |
|
Lisp : Lisp zur Attributweitergabe an ein Schriftfeld
cadffm am 06.11.2018 um 23:16 Uhr (1)
Dann geh über das activeX Modell, damit klappt es ganz sicher:(vla-put-TextString myvlaobj "hier mein Schriftfeldcode")
|
In das Form Lisp wechseln |
 |
Lisp : Lisp zur Attributweitergabe an ein Schriftfeld
Bernhard GSD am 07.11.2018 um 07:17 Uhr (15)
Super, das war´s!Ich muss also nur mehr mitCode:(vla-put-TextString (VLAX-ENAME-VLA-OBJECT(ENTLAST)) textx)den Text nochmals einschreiben und es pfeift!Danke nochmals! ------------------Gruß aus WienBernhard
|
In das Form Lisp wechseln |
|
Lisp : Blockhuckepack
cadoc am 07.11.2018 um 10:39 Uhr (1)
Hallo Andreas,leider funktioniert das Lisp irgendwie nicht so ganz bei mir (Acad Map 2017).Bekomme immer ein "nil".Wozu das Ganze?A-Blöcke repräsentieren digitalisierte Objekte mit vielen Attributen die noch ihre richtige Lage suchen.B-Blöcke sind vermessene Punkte, davon haben aber nicht alle immer eine/die richtige Bezeichnung(deswegen die Identifikation mit dem nächstgelegenen B-Block) und es werden auch nicht immer alle Objekte in der Natur gefunden(deswegen bleiben immer ein paar A-Blöcke übrig).Beim ...
|
In das Form Lisp wechseln |
 |
Lisp : Block auflösen - Elemente auf Layer setzen
Bernhard GSD am 21.11.2018 um 11:53 Uhr (15)
Versuche es einfach mal mit dem Autocad-Befehl "BURST" Burst ist Bestandteil der Express-Tools. Aufruf aus Lisp: (C:BURST)------------------Gruß aus WienBernhard [Diese Nachricht wurde von Bernhard GSD am 21. Nov. 2018 editiert.][Diese Nachricht wurde von Bernhard GSD am 21. Nov. 2018 editiert.]
|
In das Form Lisp wechseln |
 |
Lisp : Block auflösen - Elemente auf Layer setzen
cadffm am 21.11.2018 um 11:54 Uhr (15)
Du erstellst einen Auswahlsatz von Blockreferenzen, denke daran: Explode löst in der automatisierten Anwendung nur eine Blockreferenz auf.Lösung: Verwenden eine Schleife für alle Objekte in dem Auswahlsatz oder kontrollierter Einsatz von qaflags.Frage: Muß es Lisp sein?Muß es ganz neu sein?Wenn einfach nur Befehl XPLODE nutzen würdest, mit der Option "von Hauptblock übernehmen" wird genau das gemacht.In der Automatisierung etwas schwierig zu nutzen, entweder über Macro, Script oder Lisp-Workaround gehen (v ...
|
In das Form Lisp wechseln |
|
Lisp : Block auflösen - Elemente auf Layer setzen
silcono am 21.11.2018 um 12:06 Uhr (1)
Danke CADwiesel!Dies ist auf jeden Fall interessant für zukünftige LISP-Projekte.Danke GrußSilcono
|
In das Form Lisp wechseln |
|
Lisp : Suche Lisp um ausgeschaltete Layer auch zu frieren
joern bosse am 03.12.2018 um 12:51 Uhr (1)
Hallo Wölfin,mit folgendem Code müßte es funktionieren, alles was aus ist wird dann auch gefroren.Code:(defun c:test ( / ) (vl-load-com) (vlax-for item (vla-get-layers (vla-get-activedocument(vlax-get-acad-object))) (if (=(vla-get-LayerOn item):vlax-false) (vla-put-Freeze item :vlax-true)) ) )------------------viele GrüßeJörnhttp://www.bosse-engineering.comFoto-Manager Youtube
|
In das Form Lisp wechseln |