
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hi everyone
I attached here door code. i used it a cond function that the cond function worked one side only but the angle is the same. The user selects whether the left side or right sideline to want to make a door. let say two vertical parallel lines when i select right sideline the doors coming left side? how to handle it cond function here.
(defun c:16 ()
(setq wid (getdist "\nenter the width: "))
(if (null wid) (setq wid 1.00)
)
(setq off (getdist "\nenter the hinge distance from adjacent wall: "))
(if (null off) (setq off 0.1)
)
(setvar "osmode" 640 )
(setq sel (cadr (entsel "\nselect the wall: ")))
(setq pt (polar (osnap sel "end") (angle (osnap sel "end") (osnap sel "mid")) off))
(setq ow (getpoint pt"\npick outside wall: "))
(setvar "osmode" 0)
(cond
((= (angle (osnap sel "end") (osnap sel "mid")) (dtr 270.0)) (left side door)
(setq p1 (polar pt (dtr 270.0) wid))
(setq p2 (polar ow (dtr 270.0) wid))
(setq p3 (polar pt (dtr 270.0) 0.05))
(setq p4 (polar p3 (dtr 180.0) wid))
(setq p5 (polar p4 (dtr 90.0) 0.05))
(command "break" pt p1
"break" ow p2
"pline" pt p3 p4 p5 "cl" ""
"line" pt ow ""
"line" p1 p2 "" )
(command "arc" p4 "e" p1 "d" 270.0)
)
((= (angle (osnap sel "end") (osnap sel "mid")) (dtr 270.0)) (right side door)
(setq p1 (polar pt (dtr 270.0) wid))
(setq p2 (polar ow (dtr 270.0) wid))
(setq p3 (polar pt (dtr 270.0) 0.05))
(setq p4 (polar p3 (dtr 0.0) wid))
(setq p5 (polar p4 (dtr 90.0) 0.05))
(command "break" pt p1
"break" ow p2
"pline" pt p3 p4 p5 "cl" ""
"line" pt ow ""
"line" p1 p2 "" )
(command "arc" p4 "e" p1 "d" 270.0)
)
((=(angle (osnap sel "end") (osnap sel "mid")) (dtr 90.0) )
(setq p1 (polar pt (dtr 90.0) wid))
(setq p2 (polar ow (dtr 90.0) wid))
(setq p3 (polar pt (dtr 90.0) 0.05))
(setq p4 (polar p3 (dtr 0.0) wid))
(setq p5 (polar p4 (dtr 270.0) 0.05))
(command "break" pt p1
"break" ow p2
"pline" pt p3 p4 p5 "cl" ""
"line" pt ow ""
"line" p1 p2 "" )
(command "arc" p4 "e" p1 "d" 90.0)
)
)
(princ)
)
Solved! Go to Solution.