Hallo Community,
nachdem mir hier mit meinem ersten "AutoCAD-Problem" sehr kompetent geholfen wurde, möchte ich mich mit der nächsten Herausforderung wieder an euch wenden.
Ich verwende AutoCAD LT 2021 und möchte mithilfe eines DIESEL-Makros folgendes machen.
- Benutzer gibt 2 Punkte vor (mit dem Befehl _id beispielsweise)
- auf dem Mittelpunkt der gedachten Linie zwischen den 2 Punkten soll anschließend ein Block eingefügt werden
Dafür habe ich schon eine Lösung, diese gefällt mir aber nicht 100%-ig und ich möchte es etwas eleganter gestalten.
Bisherige Lösung sieht so aus, dass mit dem Befehl _line eine Linie gezeichnet wird und dann der Block einfach auf dem Mittelpunkt diser Linie (_mid) der händisch angewählt werden muss platziert wird. Anschließend muss die Linie händisch gelöscht werden.
Mein Lösungsansatz war es die Koordinaten der 2 Punkte in Variablen abzuspeichern (userr1=P1x; userr2=P1y; userr3=P2x; userr4=P2y) und dann aus diesen Koordinaten beim Einfügen des Blocks den Mittelpunkt zu ermitteln.
Macro (bisher):
^C^C_id;\'setvar;userr1;$M=$(index,0,$(getvar,lastpoint));
'setvar;userr2;$M=$(index,1,$(getvar,lastpoint));
_id;\'setvar;userr3;$M=$(index,0,$(getvar,lastpoint));
'setvar;userr4;$M=$(index,1,$(getvar,lastpoint));
Befehlszeile bei Ausführung des Makros:
Befehl: _id
Punkt angeben: X = 50.0000 Y = 30.0000 Z = 0.0000
Befehl: 'setvar
Variablenname eingeben oder [?] <MODEMACRO>: userr1
Neuen Wert für USERR1 eingeben <50.0000>: 50
Befehl: 'setvar
Variablenname eingeben oder [?] <USERR1>: userr2
Neuen Wert für USERR2 eingeben <30.0000>: 30
Befehl: _id
Punkt angeben: X = 100.0000 Y = 60.0000 Z = 0.0000
Befehl: 'setvar
Variablenname eingeben oder [?] <USERR2>: userr3
Neuen Wert für USERR3 eingeben <50.0000>: 50
Befehl: 'setvar
Variablenname eingeben oder [?] <USERR3>: userr4
Neuen Wert für USERR4 eingeben <30.0000>: 30
Es sieht so aus als ob der zweite _id-Befehl die Variable LASTPOINT nicht überschreibt und ich die Werte des zweiten Punkts nicht abgreifen kann. Stattdessen bleiben die Werte des ersten _id-Befehl in der Variable LASTPOINT erhalten.
Hoffe sehr auf eure Ideen oder Anregungen.
Vielen Dank schonmal im Voraus.
MfG Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP