(defun tetra(pt1 pt2 pt3 pt4) (command "_box" pbox1 pbox2 hbox) (command "_slice" "_L" "" "_3P" pt1 pt2 pt3 pt4) (command "_slice" "_L" "" "_3P" pt2 pt3 pt4 pt1) (command "_slice" "_L" "" "_3P" pt3 pt4 pt1 pt2) (command "_slice" "_L" "" "_3P" pt4 pt1 pt2 pt3) ) ;------------------------------------------------- ; hjs ; www.black-cad.de (defun C:penta(/ pt1 pt2 pt3 pt4 pbox1 pbox2 hbox pliste po2 po3 po4 po5 maxx minx maxy miny maxz minz pkt v0 v1 v2 v3 v4 v5) (setq p1 (getpoint "\npick P1")) (setq p2 (getpoint "\npick P2")) (setq p3 (getpoint "\npick P3")) (setq p4 (getpoint "\npick P4")) (setq p5 (getpoint "\npick P5")) (setq p6 (getpoint "\npick P6")) (setq osmode_alt (getvar "osmode")) (command "_osmode" 0) ; Bounding box (setq pliste (list p2 p3 p4 p5 p6)) (setq minx (car p1) maxx (car p1) miny (cadr p1) maxy (cadr p1) minz (caddr p1) maxz (caddr p1)) (foreach pkt pliste (progn (if (> minx (car pkt))(setq minx (car pkt))) (if (< maxx (car pkt))(setq maxx (car pkt))) (if (> miny (cadr pkt))(setq miny (cadr pkt))) (if (< maxy (cadr pkt))(setq maxy (cadr pkt))) (if (> minz (caddr pkt))(setq minz (caddr pkt))) (if (< maxz (caddr pkt))(setq maxz (caddr pkt))) ) ) (setq pbox1 (list minx miny minz)) (setq pbox2 (list maxx maxy minz)) (setq hbox (- maxz minz)) (tetra p1 p2 p3 p4) (setq v0 (entlast)) (tetra p4 p5 p6 p2) (setq v1 (entlast)) (tetra p2 p3 p4 p6) (setq v2 (entlast)) (command "_union" v0 v1 v2 "") (command "_osmode" osmode_alt) )