Hallo zusammen,
In dem Makro sind noch zwei Unklarheiten aufgetaucht. Erstens schreibt Herr Hübner ja richtigerweise, das der Befehl "cmdnames" den gerade aktiven Befehl zurückgibt. Das nutze ich z. B. auch, um mit "modemacro=$(getvar,cmdnames)" den aktuellen Befehl in der Statusleiste anzeigen zu lassen.
Nun gibt es aber laut AutoCAD-Hilfe keinen Befehl mit den ersten vier Buchstaben "GRIP". Auch "modemacro" zeigt mir bei einer einfachen Objektmarkierung keinen aktiven Befehl an. In diesem Zusammenhang spielt wahrscheinlich die Sysvar "grips" eine Rolle.
Zweitens verstehe ich das Menüecho des an sich funktionierenden Befehls nicht ganz (menuecho=8).
Fall 1: Erst Druck der "strecken"-Taste und anschließende Auswahl der Objekte:
Befehl: *Abbruch*
Befehl:
$M= Eingabe:
"$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_stretch)^J"
$M= Ausgabe: "^C^C_stretch^J"
Befehl:
Befehl: _stretch
Objekte, die gestreckt werden sollen, mit Kreuzen-Fenster oder Kreuzen-Polygon
wählen...
Objekte wählen: Entgegengesetzte Ecke angeben: 1 gefunden
Objekte wählen:
Basispunkt oder [Verschiebung] <Verschiebung>:
Zweiten Punkt angeben oder <ersten Punkt der Verschiebung verwenden>: 20
Die $M-Ausgabe gibt also richtigerweise den "sonst-Zweig" der "wenn,dann,sonst"-Abfrage zurück.
Fall 2: Erst Auswahl der Objekte und anschließend Druck der "strecken"-Taste:
Befehl: *Abbruch*
Befehl: Entgegengesetzte Ecke angeben:
Befehl:
$M= Eingabe:
"$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_stretch)^J"
$M= Ausgabe: "^C^C_stretch^J"
Befehl:
Befehl: _stretch
Die mit dem letzten Fenster gewählten Objekte werden gestreckt...1 gefunden
Basispunkt oder [Verschiebung] <Verschiebung>:
Zweiten Punkt angeben oder <ersten Punkt der Verschiebung verwenden>: 20
Sollte die $M-Ausgabe nicht so lauten: [$M= Ausgabe: "_stretch^J"], also den "dann-Zweig" wiedergeben?
mit Dank im Vorraus, Ingo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP