| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Digitale Engineering-Prozesse bei Pergande mit BIM-, CAD- und PDM-Lösungen von Autodesk, ein Anwenderbericht
|
Autor
|
Thema: Makrobefehl nach Linien zeichnen ... (544 mal gelesen)
|
Holzmann Mitglied Schüler

 Beiträge: 13 Registriert: 03.04.2004
|
erstellt am: 23. Jun. 2004 19:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich möchte innerhalb eines Makros den aktuellen Linientypfaktor umstellen, eine Linie zeichnen und hiernach den Linientypfaktor wieder auf den Ausgangswert zurückstellen. In etwa: """celtscale;0.5;_line\celtscale;1;""" Wenn der Linienbefehl aufgerufen und abgehandelt wird, wird jedoch der ursprüngliche Faktor (1) nicht mehr zurückgestellt. Wie kann ich nach dem Linien zeichnen noch einen weiteren Befehl (celtscale) ausführen. Besten Dank für eventuelle Antworten ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
     
 Beiträge: 5896 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 23. Jun. 2004 23:23 <-- editieren / zitieren --> Unities abgeben:          Nur für Holzmann
|
Holzmann Mitglied Schüler

 Beiträge: 13 Registriert: 03.04.2004
|
erstellt am: 24. Jun. 2004 05:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo Lothar, ich kann bei Deinem Makro die Linie nur von A nach B zeichnen, hiernach ist der Linienbefehl abgebrochen. Der Linienbefehl soll aber ohne Abbruch, so lange, wie ich die Linie eingeben will, funktionieren und zuerst nach meiner Vorgabe (Linienende) den Faktor wieder umstellen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 24. Jun. 2004 10:43 <-- editieren / zitieren -->
Zitat: Original erstellt von Holzmann: Hallo Lothar, ich kann bei Deinem Makro die Linie nur von A nach B zeichnen, hiernach ist der Linienbefehl abgebrochen. Der Linienbefehl soll aber ohne Abbruch, so lange, wie ich die Linie eingeben will, funktionieren und zuerst nach meiner Vorgabe (Linienende) den Faktor wieder umstellen.
Du kannst bei einem Makro die Zahl der Nutzereingaben nicht offen lassen, dazu brauchst Du ein Programm. Aber sowas geht einfach, hier ist eine flexible Lösung: (defun mycommand (cmd) (while (eq 1 (logand 1 (getvar "cmdactive"))) (command pause) ) ) (defun cmd-lt (cmd ltscale) (setvar "celtscale" ltscale) (mycommand "._line") (setvar "celtscale" 1.0) ) Du kannst nun mit (cmd-lt "._line" 0.5) genau das gewünschte Ergebnis erreichen, Du kannst es aber z.B. auch als (cmd-lt "._circle" 1.2) und in jeder anderen denkbaren Variante verwenden. In einem Werkzeugkastensymbol sieht das dann so aus: ^C^C(cmd-lt "._line" 0.5) Tom Berger ------------------
|
Ex-Mitglied
|
erstellt am: 24. Jun. 2004 10:53 <-- editieren / zitieren -->
Sorry, war wohl noch nicht ganz wach. Hier die richtige Variante, diesmal auch mit korrektem Zurücksetzen der Systemvariablen: (defun mycommand (cmnd / oldecho) (setq oldecho (getvar "cmdecho")) (setvar "cmdecho" 1) (command cmnd) (while (eq 1 (logand 1 (getvar "cmdactive"))) (command pause) ) (setvar "cmdecho" oldecho) ) (defun cmd-lt (cmnd ltscale / oldltscale) (setq oldltscale (getvar "celtscale")) (setvar "celtscale" ltscale) (mycommand cmnd) (setvar "celtscale" oldltscale) ) Tom Berger ------------------
|
AsSchu Ehrenmitglied Konstrukteur
    
 Beiträge: 1632 Registriert: 27.06.2003 ACAD 2012
|
erstellt am: 24. Jun. 2004 11:03 <-- editieren / zitieren --> Unities abgeben:          Nur für Holzmann
Zitat: Original erstellt von tom.berger: Sorry, war wohl noch nicht ganz wach. Hier die richtige Variante, diesmal auch mit korrektem Zurücksetzen der Systemvariablen:(defun mycommand (cmnd / oldecho) (setq oldecho (getvar "cmdecho")) (setvar "cmdecho" 1) (command cmnd) (while (eq 1 (logand 1 (getvar "cmdactive"))) (command pause) ) (setvar "cmdecho" oldecho) ) (defun cmd-lt (cmnd ltscale / oldltscale) (setq oldltscale (getvar "celtscale")) (setvar "celtscale" ltscale) (mycommand cmnd) (setvar "celtscale" oldltscale) ) Tom Berger
unterliegt das dem Urheberrecht? :-))  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 24. Jun. 2004 11:22 <-- editieren / zitieren -->
Zitat: Original erstellt von AsSchu: unterliegt das dem Urheberrecht? :-)) 
Das kann nur ein Richter feststellen. Ich denke eher nicht, weil die "Schöpfungshöhe" dabei doch nicht so sehr hoch ist :-) Aber bei bisherigen Prozessen wurde oft auch schon für ziemlich triviale Sachen die ausreichende Schöpfungshöhe bejaht. Da Deine Anfrage aber wohl eher nicht ernst gemeint war: ich habe bereits mitgeteilt, dass ich alle Rechte an meinem hier auf CAD.de veröffentlichten Programmcode aufgebe, so weit das überhaupt möglich ist. Du darfst diesen Schnipsel also gerne kopieren, nach Belieben verwenden und verändern, und gerne auch weiter verbreiten, und Du darfst diese Generalerlaubnis auf alle von mir auf CAD.de bisher und zukünftig veröffentlichten Programme anwenden. Ansonsten, und nur weil ich in Deinem Beitrag auch einen gewissen Sarkasmus verspüre: mit Urheberrechtsverletzungen ist nicht zu spaßen, und in fast jedem zweiten Thread auf CAD.de kann man einen finden - wenn Du Dich also über meine Besorgnis lustig machen willst, dann nur zu. Aber vergiss nicht: zuletzt und am zufriedensten lacht immer der Anwalt. Tom Berger ------------------
|