(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) ) ;-------------------------------------------------- (defun octo(po2 po3 po4 po5 po6 po8) (command "_box" pbox1 pbox2 hbox) (command "_slice" "_L" "" "_3P" po2 po6 po5 po3) (command "_slice" "_L" "" "_3P" po2 po3 po6 po5) (command "_slice" "_L" "" "_3P" po5 po6 po8 po4) (command "_slice" "_L" "" "_3P" po5 po2 po4 po6) (command "_slice" "_L" "" "_3P" po4 po5 po8 po6) (command "_slice" "_L" "" "_3P" po3 po4 po8 po5) (command "_slice" "_L" "" "_3P" po3 po8 po6 po5) (command "_slice" "_L" "" "_3P" po2 po3 po4 po8) ) ;------------------------------------------------- (defun C:hexa(/ pt1 pt2 pt3 pt4 pbox1 pbox2 hbox pliste po2 po3 po4 po5 po6 po8 maxx minx maxy miny maxz minz pkt v0 v1 v2) (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 p7 (getpoint "\npick P7")) (setq p8 (getpoint "\npick P8")) (setq osmode_alt (getvar "osmode")) (command "_osmode" 0) ; Bounding box (setq pliste (list p2 p3 p4 p5 p6 p7 p8)) (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 p4 p5) (setq v0 (ssget "_L")) (command "") (octo p2 p3 p4 p5 p6 p8) (setq v1 (ssget "_L")) (tetra p3 p6 p8 p7) (setq v2 (ssget "_L")) (command "_union" v0 v1 v2 "") (command "_osmode" osmode_alt) )