| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Blöcke in der akuellen Zeichnung neu definieren (256 / mal gelesen)
|
woppi Mitglied cnc-programmierung

 Beiträge: 72 Registriert: 16.01.2009 Acad Architecture 2022
|
erstellt am: 30. Apr. 2025 13:33 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe eine Frage zu dem _INSERTCONTENT Befehl. Ich möchte mit Lisp, Blöcke in der aktuellen Zeichnung aus meinen Vorlagendateien heraus neu definieren. Das funktioniert soweit auch mit der Zeile: (command "_INSERTCONTENT" Dateiname Blockname "0,0,0" "1.0" "1.0" "0" ) Sind die Blöcke aber in der aktuellen Zeichnung verändert worden, kommt immer eine Abfrage (Screenshot im Anhang) Kennt jemand eine Möglichkeit diese Abfrage zu verhindern, bzw. zu unterdrücken? Wenn es in Lisp nicht möglich ist, gerne auch in VBA. Für Tipps wäre ich sehr dankbar. Gruß Woppi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general

 Beiträge: 3452 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 30. Apr. 2025 13:35 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
|
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 30. Apr. 2025 14:22 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
|
woppi Mitglied cnc-programmierung

 Beiträge: 72 Registriert: 16.01.2009 Acad Architecture 2022
|
erstellt am: 30. Apr. 2025 16:52 <-- editieren / zitieren --> Unities abgeben:         
|
woppi Mitglied cnc-programmierung

 Beiträge: 72 Registriert: 16.01.2009 Acad Architecture 2022
|
erstellt am: 05. Mai. 2025 16:57 <-- editieren / zitieren --> Unities abgeben:         
Hallo Cadffm, ich konnte gerade die Systemvariable BLOCKREDEFINEMODE testen. Im Prinzip funktioniert es, es gibt aber leider einen kleinen Haken: Ist der Block in der aktuellen Zeichnung verändert worden, funktioniert alles, weil man die Abfrage aus der Eingabeaufforderung in der Lisp berücksichtigen kann: (setvar "BLOCKREDEFINEMODE" 2) ;Dialogfeld oder eine Eingabeaufforderung in der Befehlszeile siehe : BLOCKREDEFINEMODE Hilfe (command "-INSERTCONTENT" Dateiname Blockname "j" "0,0,0" "1.0" "1.0" "0" ) (setvar "BLOCKREDEFINEMODE" 1) Ist der Block in der aktuellen Zeichnung aber nicht verändert worden, kommt keine Abfrage. Und dadurch kommt es bei dem "j" im Code zu einem Abbruch. Kann ich selbst vorher feststellen ob der Block in der Zeichnung mal geändert worden ist, bzw. ob es zu einer Abfrage kommt oder nicht, damit ich das entsprechend berücksichtigen kann? Gruß Woppi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Mai. 2025 17:11 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
>"es gibt aber leider einen kleinen Haken:" Rückfrage: >"(setvar "BLOCKREDEFINEMODE" 2)" Überlege mal warum du das machst und erkläre es uns - in Bezug auf den Haken nachdem du ' siehe : BLOCKREDEFINEMODE Hilfe' noch eiinmal gelesen hast. Vllt hat sich das Problem dann schon erledigt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
woppi Mitglied cnc-programmierung

 Beiträge: 72 Registriert: 16.01.2009 Acad Architecture 2022
|
erstellt am: 06. Mai. 2025 14:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe nochmals in die Hilfe von BLOCKREDEFINEMODE geguckt, und setze die Variabel auf 2, damit kein Dialogfeld angezeigt werden soll. Wenn nur eine "Eingabeaufforderung in der Befehlszeile kommt", kann ich das mit dem "J" in dem Lispcode quittieren. Zur Erklärung, die Blöcke sollen mit meinem kleinen Programm automatisch neu definiert werden. Der Benutzer des Programms soll selbst keine Entscheidung treffen. Mein Problem ist, die "Eingabeaufforderung in der Befehlszeile" kommt nicht jedes Mal, sondern nur wenn der Block geändert worden ist. Es kann aber sein das mein Programm hunderte oder mehr Blöcke neu definiert, und ich dann nicht weiß das z.B. beim fünften Block keine "Eingabeaufforderung in der Befehlszeile" kommt, und mein Programm dann leider abbricht. Oder habe ich die "Autocad Hilfe" falsch verstanden. Es müsste eine Einstellung geben, dass Blöcke Grundsätzlich neu definiert werden. Gruß Woppi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Mai. 2025 15:41 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
|
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Mai. 2025 15:43 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
|
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Mai. 2025 15:58 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
Ich nehme mein Sorry zurück und bin noch mehr verwirrt wie zuvor Nach eigenem Test kann ich deine Aussage NICHT bestätigen! Die Rückfrage zum neudefinieren (Wert2) kommt bei mir IMMER, also besteht auch das Problem nicht (bei mir). Es kann an meiner Version liegen, daher zunächst die Frage ob du die neueste AutoCAD Produktversion deiner Software installiert hast oder nicht. Schau mal im Dialog INFO Dort solltest du die AutoCAD Produktinformation sehen können, welche ist das?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Mai. 2025 17:17 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
|
woppi Mitglied cnc-programmierung

 Beiträge: 72 Registriert: 16.01.2009 Acad Architecture 2022
|
erstellt am: 06. Mai. 2025 17:17 <-- editieren / zitieren --> Unities abgeben:         
So jetzt bin auch verwirrt! Habe es aus noch einmal ausführlich getestet, und du hast Recht, die Abfrage kommt immer! Wahrscheinlich habe ich einen Fehler gemacht, wenn ich zum Testen verschiedene Zeilen meiner Lisp ausgeblendet habe. Jetzt klappt alles. Vielen Dank für die Hilfe!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Mai. 2025 17:21 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
nurproblememithardundsoftware - hoffe jetzt kappt es endlich (der Post-Inhalt ist 1h alt) So in Rotz (@AutoDESK)  @woppi Jetzt denke ich zu wissen worüber du stolperst! Vermutlich testest du viel hin und her, genau das kann zu einem weniger offensichtlichem Problem führen, welches du in einer realen Situation eher selten hast?! Du hast geschrieben "Sind die Blöcke aber in der aktuellen Zeichnung verändert worden, kommt immer eine Abfrage", das stimmt aber nicht uneingeschränkt.
Die Abfrage kommt IMMER, es sei denn der Block wurde bereits in der Dateisitzung mit insertcontent eingefügt UND danach NICHT geändert! Ich nehme mal das für gewöhnlich dein "Update alle" nur einmal laufen muss in einer Dateisitzung, dann würde es kein Problem geben. Also für den Fall eines Batchlaufes - kein Problem. Für andere Workflows aber schon noch. Andernfalls müsste man wirklich prüfen ob die Abfrage erfolgt oder nicht. Extra etwas holzig gschrieben, zur besseren Lesbarkeit
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Mai. 2025 17:24 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
|
woppi Mitglied cnc-programmierung

 Beiträge: 72 Registriert: 16.01.2009 Acad Architecture 2022
|
erstellt am: 07. Mai. 2025 13:25 <-- editieren / zitieren --> Unities abgeben:         
Moin, du hast Recht, nach dem ich gestern geantwortet habe, ist bei weitern Test der Fehler wieder aufgetreten. Aber Du hast dir ja krass viel Mühe gegeben! Vielen Dank! Ich habe Deinen Code eingebaut: (progn (setq LE (entlast)) (command "_.-insertcontent" Dateiname Blockname) (terpri) (if (wcmatch (setq LP (getvar 'LASTPROMPT)) "*Neu*") (command "_yes" "0,0" 1 1 0)(command "0,0" 1 1 0)) (if (eq LE (entlast)) (alert "error") (entdel(entlast))) ) Hatte dann aber mit dem ? ein Problem (if (wcmatch (setq LP (getvar 'LASTPROMPT)) "*'?*") (command "_yes" "0,0" 1 1 0)(command "0,0" 1 1 0)) Und seit dem ich das dann durch das "*Neu*" ersetzt habe, funktioniert es!! (natürlich nur in Deutschland ) Perfekt, vielen Dank! Das hätte ich alleine nicht hinbekommen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22517 Registriert: 03.06.2002 Alles
|
erstellt am: 07. Mai. 2025 13:36 <-- editieren / zitieren --> Unities abgeben:          Nur für woppi
|
woppi Mitglied cnc-programmierung

 Beiträge: 72 Registriert: 16.01.2009 Acad Architecture 2022
|
erstellt am: 08. Mai. 2025 08:25 <-- editieren / zitieren --> Unities abgeben:         
|