0 Members and 1 Guest are viewing this topic.
(defun c:dooropening()(setq pt0 (getpoint "\nSelect offset point: ")) (princ "\nDistance from offset point <") (princ *drof) (setq drof (getdist ">: ")) (if (not drof) (setq drof *drof) (setq *drof drof)) (setvar "osmode" 512) (setvar "orthomode" 1) (setq pt2 (getpoint pt0 "\nSelect approximate strike location on same wall: ")) (setq ang2 (angle pt0 pt2) pt1 (polar pt0 ang2 drof) ) (setvar "osmode" 128) (setq *doorw 36.0) (setq pt3 (getpoint pt1 "\nSelect opposite face of wall to be opened: ")) (princ "\nEnter door width <") (princ *doorw) (setq doorw (getdist ">: ")) (if (not doorw) (setq doorw *doorw) (setq *doorw doorw)) (setq doorwn (* -1.0 doorw) ) (setvar "osmode" 0) (setq ang1 (angle pt1 pt3) ang3 (fix (- ang1 ang2)) dst1 (distance pt1 pt3) dst2 (distance pt1 pt2) ) ;(if (> dst2 54.0) ; (setq pt4 (polar pt1 ang2 doorw))) ;(if (< dst2 54.0) (setq pt4 (polar pt1 ang2 doorw));) (setq pt5 (polar pt4 ang1 dst1)); Swap break points to match the wall angle (if (minusp (sin (- ang2 (angle pt1 pt3)))) (setq temp pt1 pt1 pt3 pt3 temp TEMP1 PT4 PT4 PT5 PT5 TEMP1) ) (command ".break" pt4 pt1 ".break" pt5 pt3)(command ".line" pt1 pt3 "")(command ".line" pt4 pt5 ""))