| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Blockupdate (nicht insert) per Lisp-command (763 mal gelesen)
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 BricsCAD 22
|
erstellt am: 14. Nov. 2005 18:03 <-- editieren / zitieren --> Unities abgeben:
Guten Abend ich möchte einen in der Zeichnung befindlichen Block updaten - das heisst, über eine Datei eine neue Blockdefinition hereinzwingen, OHNE dass der Block tatsächlich eingefügt wird. Die Online-Hilfe spricht sinngemäss: - einfüge - "alter Block = neuer Block mit Pfad" - "ja" für die Frage zur Neudefinition - weiteren Befehl (Einfügepunkt etc.) abbrechen. Händisch geht es, aber mit der Integration in Lisp mit (Command "_-insert" ..) habe ich Probleme: Frage 1: wie baue ich einen Abbruchbefehl in ein Command, ohne dass mein ganzes Lisp abbricht 2: als Zwischenlösung füge ich den Block nun tatsächlich ein und lösche in gleich wieder - geht auch, aber sehr unschön ..
Code: (command "_-insert" (strcat altblockdef "=" neuwert) "_Y" "1000,1000" "1" "1" "0")
Problem: Der Einfügepunkt stimmt überhaupt nicht. Die neu eingefügten Blöcken liegen konzeptlos in der Gegend herum (einaml bei 1004, dann bei 1300 ...)- beim händischen Ablauf des Befehls (Eintippen in der Befehlszeile) funktioniert es schon.Frage 2: Wieso passt der Einfügepunkt nicht (Ofang ist aus usw.)? Schönen Abend Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 14. Nov. 2005 18:20 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 BricsCAD 22
|
erstellt am: 14. Nov. 2005 18:56 <-- editieren / zitieren --> Unities abgeben:
ad 1.) einfach mit "nil" den Befehl beenden - hätte ich selber draufkommen können ad 2.) steht zwar auf 0, aber der Ofang wird per Lisp weggeschalten. Danke an Thomas und schönen Abend
Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 15. Nov. 2005 07:47 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 BricsCAD 22
|
erstellt am: 15. Nov. 2005 08:26 <-- editieren / zitieren --> Unities abgeben:
Aber mit "" (=Enter) bestätige ich in diesem Fall die weiterlaufende Abfragen des Blockeinfügens. Wenn ich nun schreibe Code: (command "_-insert" (strcat altblockdef "=" neuwert) "")
dann bleibt das Lisp hängen, weil es einen Einfügepunkt will.Mit "nil" funktioniert es bestens.
Code: (command "_-insert" (strcat altblockdef "=" neuwert) nil)
Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 BricsCAD 22
|
erstellt am: 07. Okt. 2008 17:12 <-- editieren / zitieren --> Unities abgeben:
Es gibt (wahrscheinlich recht banale Dinge), bei denen man (= ich) immer wieder auf dem Schlauch steht. Die Lösung unten hatte ich damals nicht in einem Lisp, sondern in einem CUI-Makro eingebaut - also jeweils ein Einzelbefehl. Jetzt will ich das per Lisp machen, das in der Massenabarbeitung über ein Script aufgerufen wird. Jetzt läuft mir zwar das Lisp ordentlich durch, aber das Script bleibt stehen - anscheinend irritiert durch das NIL. Was nun? Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 07. Okt. 2008 17:23 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 BricsCAD 22
|
erstellt am: 07. Okt. 2008 17:44 <-- editieren / zitieren --> Unities abgeben:
Servus Ernst Erleuchtung - es lag woanders (auch dein Vorschlag ist steckengeblieben). Ich mache es jetzt so Code: (command "_-insert" (strcat altblockdef "=" neuwert) nil)..diverse Lispzeilen ... (command "resume"); am Lispende zum Wiederaufnehmen des Scripts
Danke Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |