| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Befehlsmakro wirklich transparent ausführen (1296 mal gelesen)
|
caddonner Mitglied
Beiträge: 166 Registriert: 24.05.2005 Windows 10 64bit Autocad 2015 C.A.T.S. AutoCAD 2017
|
erstellt am: 16. Okt. 2014 14:25 <-- editieren / zitieren --> Unities abgeben:
Hallo habe mir ein Makro: (+ Lisp-Programm) gebastelt, welches die Objektfangerzwingung ein- bzw. ausschaltet. Das ganze wird transparent (über Maustaste) ausgeführt. So weit funktioniert es ja. Nur wenn ich dann mit Leertaste den letzten Befehl wiederholen möchte (z.B. Linie ) nimmt er meinen Makrobefehl und nicht den Linienbefehl. Kann man das ändern ? Für Verbesserungsvorschläge wäre ich sehr dankbar. Makro: 'osnap2; Lisp: (defun c snap2() (setvar "osnapoverride" (if (=(getvar "osnapoverride")0) 1 0)) (princ) ) Danke
------------------ mfg Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Okt. 2014 21:20 <-- editieren / zitieren --> Unities abgeben: Nur für caddonner
Ohne testen zu können und zudem keine direkte Antwort, sondern ein anderer Weg: Der Befehl zur Systemvariable selbst ist doch transparent aufrufbar, oder? Auch der Befehl setvar sollte transparent aufrufbar sein. also '_.OsnapOverride ich würde jetzt vermuten das der so aufgerufene Befehl nicht als letzter Befehl aufgeführt werden würde. Wenn dem so ist: reines Makro mit Diesel schreiben und einem Tastaturkürzel zuordnen, diese Tastenkombi dann auf die Maustaste legen. Einen Lispdefinierten Autocad-Befehl benötigst du schließlich für diese Aufgabenstellung überhaupt nicht. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
caddonner Mitglied
Beiträge: 166 Registriert: 24.05.2005
|
erstellt am: 17. Okt. 2014 09:16 <-- editieren / zitieren --> Unities abgeben:
Hallo cadffm, danke für deine Antwort. Mit DIESEL bin ich leider gar nicht vertraut. Wie müsste das Makro dann aufgebaut sein ? Habe es probiert aber den Befehl getvar erkennt autocad irgendwie nicht: !? ; Fehler: no function definition: ‘_GETVAR ------------------ mfg Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Okt. 2014 10:14 <-- editieren / zitieren --> Unities abgeben: Nur für caddonner
Die Fehlermeldung zeigt das du in Lisp einen Fehler gemacht hast, denn es gibt keine Lispfunktion "'_getvar" und genau das sagt dir das Programm ja auch.. Hier mal ein Menümakro: $M=$(if,$(eq,1,$(getvar,osnapoverride)),'_.osnapoverride;0,'_.osnapoverride;1);
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
otterloh Mitglied
Beiträge: 188 Registriert: 27.06.2001 AutoCAD 2012, 2013, 2019 Win8.1
|
erstellt am: 17. Okt. 2014 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für caddonner
Beispiel: $M=$(if,$(getvar,OSMODE),'OSMODE 0,'OSMODE 109) auf eine Funktionstaste legen und eine Maustaste mit der Funktionstaste belegen, schaltet dann (mit der Funktionstaste oder der Maustaste) transparent hin&her. Gruß Werner Oder die Version von cadffm. [Diese Nachricht wurde von otterloh am 17. Okt. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
caddonner Mitglied
Beiträge: 166 Registriert: 24.05.2005
|
erstellt am: 17. Okt. 2014 10:52 <-- editieren / zitieren --> Unities abgeben:
|