Hallo!
Ich möchte in einem Lisp das Volumen von verschiedenen Objekten vergleichen.
Das Volumen kitzel ich jetzt so aus z.B. einer Kugel:
-------------------------------------------------
(defun c:vol (/ ms ps r obj obj1 obj2)
(command "_erase" "_all" "")
(command "_sphere" "0,0,5" 1.0)
(setq obj (ssget "_l"))
(setq objnamsphere (entlast))
(vl-load-com)
(setq vvv (vlax-get-property
(vlax-ename->vla-object objnamsphere)
'volume
)
)
-----------------------------------------------------
Das funktioniert super für alle Objekte, die ich mit "_l" - Letztes Objekt - auswählen kann.
Jetzt möchte ich aber die Vereinigung zweier Körper erstellen und dessen Volumen unter einer Variablen speichern:
-------------------------------------------------------
*Variablen hab ich definiert*
(command "_cylinder" p rr "a" zm)
(setq zyl (ssget "_l"))
(setq zylnam (entlast))
(setq volzyl (vlax-get-property
(vlax-ename->vla-object zylnam)
'volume
)
)
(command "_union" obj zyl "")
(setq volunion (vlax-get-property
(vlax-ename->vla-object (entlast))
'volume
)
)
; aber, die Vereinigung ist NICHT das letzte Objekt!!
)
---------------------------------------------------------
Als "das letzte Objekt" wird anscheinend immer das Objekt angesehen, das als letztes konstruiert/modelliert wurde.
Wie kann ich das vereinigte Objekt auswählen ohne es anklicken zu müssen?
oder kann ich die 'Entity' der Vereinigung irgendwie rauskitzeln ohne das Objekt anklicken zu müssen?
Es werden während das fertige Programm läuft viele, viele Objekte sein, die ich nicht alle einzeln anwählen kann / will.
Für Tipps bin ich sehr dankbar!
Grüße, Margit
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP