Hallo Leute,
ich will das Spiegeln in den Werkzeugkasten so aufschlüsseln das es ein Spiegeln ohne Kopie und Spiegeln mit Kopie gibt. Im AutoCAD 2005 habe dafür einfach 2 kleine LISP Programme geschrieben:
(defun c:AC_MirrorMove ()
(setq Objects(ssget))
(princ "\nSpiegelachse über zwei Punkten angeben!")
(command "_mirror" objects "" Pause Pause "j")
(setq Objects nil))
(defun c:AC_MirrorCopy ()
(setq Objects(ssget))
(princ "\nSpiegelachse über zwei Punkten angeben!")
(command "_mirror" objects "" Pause Pause "n")
(setq Objects nil))
Da ich jetzt grade die Umstellung auf AutoCAD 2007 vornehme habe ich mir gedacht, dass ich mir diese Ersparen kann. Habe auch schon den passenten Diesel Ausdruck geschriebn
Ohne Kopieren
^C^C_select \_mirror _previous ;\\_y
Mit Kopieren
^C^C_select \_mirror _previous ;\\_n
Mit diesem Befehl habe ich jetzt jedoch meine Problem das er mir keine Auswahl mit Grip Punkten und anschließender Befehlsauswahl zulässt. Jetzt habe ich mir den Standard Mirror Befehl angeschaut und bin drauf gekommen, dass da folgendes steht:
Standard Mirror befehl
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_mirror,^C^C_mirror)
Also habe ich mir gedacht, gut das mache ich auch:
Geänderter Diesel Ausdruck:
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_mirror \\_y,^C^C_select \_mirror _previous ;\\_y)
So wie ich das verstehe, überprüft dieser Ausdruck ob Objekte mit den Grip Punkten ausgewählt sind. Wenn dies nicht der Fall ist, dann sende ich zwei ESC führe die Select Befehl aus (weil der es ermöglicht eines oder mehrere Objekte auszuwählen --> wartet bis Bestätigung vom User) und führe anschließend den Mirror Befehl aus. Wenn es nicht zutrift dann benötige ich keinen Select Befehl da ja diese bereits mit den Grip Punkten markiert sind und ich diese Auswahl direkt verwenden will.
MEIN PROBLEM ist jedoch, dass auch wenn ich bereits Objekte mit den Grip Punkten ausgewählt habe er den Select Befehl laufen lässt.
-----
Kann mir bitte jemand erklären was ich falsch gemacht habe oder was der Diesel ausdruck $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP) wirklich überprüft
------------------
Michael Mair
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP