Kleines Lisp:
(defun c:3d-abstand ( / a b p1 p2 p3 p4 p5 p6 p7 p8 ab schl)
(setq schl 1)
(while schl
(setq a (entsel "\nErste 3D-Fläche wählen: "))
(if (/= (cdr (assoc 0 (entget (car a)))) "3DFACE")(alert "Das war keine 3D-Fläche")(setq schl nil))
)
(setq schl 1)
(while schl
(setq b (entsel "\nZweite 3D-Fläche wählen: "))
(if (/= (cdr (assoc 0 (entget (car b)))) "3DFACE") (alert "Das war keine 3D-Fläche")(setq schl nil))
)
(setq a (entget (car a)) b (entget(car b)))
(setq p1 (cdr (assoc 10 a)))
(setq p2 (cdr (assoc 11 a)))
(setq p3 (cdr (assoc 12 a)))
(setq p4 (cdr (assoc 13 a)))
(setq p5 (cdr (assoc 10 b)))
(setq p6 (cdr (assoc 11 b)))
(setq p7 (cdr (assoc 12 b)))
(setq p8 (cdr (assoc 13 b)))
(setq ab (distance p1 p5) a p1 b p5)
(if (< (distance p1 p6) ab)(setq ab (distance p1 p6) a p1 b p6)())
(if (< (distance p1 p7) ab)(setq ab (distance p1 p7) a p1 b p7)())
(if (< (distance p1 p8) ab)(setq ab (distance p1 p8) a p1 b p8)())
(if (< (distance p2 p5) ab)(setq ab (distance p2 p5) a p2 b p5)())
(if (< (distance p2 p6) ab)(setq ab (distance p2 p6) a p2 b p6)())
(if (< (distance p2 p7) ab)(setq ab (distance p2 p7) a p2 b p7)())
(if (< (distance p2 p8) ab)(setq ab (distance p2 p8) a p2 b p8)())
(if (< (distance p3 p5) ab)(setq ab (distance p3 p5) a p3 b p5)())
(if (< (distance p3 p6) ab)(setq ab (distance p3 p6) a p3 b p6)())
(if (< (distance p3 p7) ab)(setq ab (distance p3 p7) a p3 b p7)())
(if (< (distance p3 p8) ab)(setq ab (distance p3 p8) a p3 b p8)())
(if (< (distance p4 p5) ab)(setq ab (distance p4 p5) a p4 b p5)())
(if (< (distance p4 p6) ab)(setq ab (distance p4 p6) a p4 b p6)())
(if (< (distance p4 p7) ab)(setq ab (distance p4 p7) a p4 b p7)())
(if (< (distance p4 p8) ab)(setq ab (distance p4 p8) a p4 b p8)())
(command "linie" a b "")
(princ (strcat "\nAbstand: " (rtos ab)))
(princ)
)
!Funktioniert nur im Weltkoordinatensystem korrekt, für weiteres war ich zu faul. Aber ich schätze das reicht.
Wie Lisp eingebunden werden steht hier im Forum.
------------------
Martin
Viele Grüße aus dem schönen Münsterland!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP