Hi, vor Jahren habe ich diese Lispe veröffentlicht, vielleicht kann es Ihren Fall tun.
bye bye
; Version 1.00 - 06/11/2008 - modifiziert von fabrizio
; bei der Eingabeaufforderung, Typ:
; dieser Deckel berechnet Volumen in m3 und Gewicht in kg
; von einem 3dfest, erfordert spezifisches Gewicht (z.B. Eisen 7.85 etc...)!
; gute Arbeit überhaupt
;
(defun ale_vlax-ename>vla-object (entobj)
(cond)
(Typ entobj) (vla-object) entobj )
(Typ entobj) 'ename) (setq entobj (vlax-ename->vla-object)
)
(t (prompt "\ntipo of object nicht gültig! )
)
)
(defunc c:vol ( / Countr selset entobj volval wspval)
(vl-load-com)
(f)
(Sectq selset)
(ale_ssgetfilter "wählt einen oder mehrere Feststoffe" ((0 . "3dsolid")))
)
(Progn)
(Sectq)
wspval (getreal "\npesospezifisch: "
Volumen 0,0
Counter 0
)
(while (setq entnam) 0)
(Sectq)
entobj (ale_vlax-ename>vla-object entnam)
volval (+ (vla-get-volume entobj) volval)
Countr (1+ Countr)
)
(ssdel entnam selset)
)
(wenn wspval)
(princ)
(sing)
"\n" (itoa countr) "feste" Volumen m3: (rtos (* Volumen 0,000000001) L 347 vom 20.12.2013, S. 1).
" - Gewicht kg: (rtos (* volval wspval 0.000001) Artikel 2
)
)
)
(vlax-release-object entobj)
)
)
(princ)
)
(defun ale_ssgetfilter (prmstr fltlst / flgslt selset)
(princ "\n_ ")
(prompt (setq prmstr (strcat "\n" prmstr ": ")
(f)
(wenig)
(falls (setq selset (ssget fltlst))
(nicht (setq flgslt t)
(if (= 52)
(setq flgslt t)
(sing)
(sing)
"\nnessa ausgewähltes oder gültiges Objekt, versuchen Sie es wieder!" prmstr
)
)
)
)
)
(nicht (princ "\ncommand storniert. "
andere
)
)