 - (defun C:SanXinGong()
- (setvar "cmdecho" 0)
- (setq pa (getpoint "\n 指定基点:"))
- (setq ww (getdist pa "\n 净宽<100>:"))
- (if (null ww) (setq ww 100.0))
- (setq pb (polar pa 0 ww))
- (command "line" pa pb "")
- (setq pf (polar pa 0 (/ ww 2)))
- (setq hh (getdist pf "\n 净高<30>:"))
- (if (null hh) (setq hh 30.0))
- (setq pc (polar pf (/ pi 2) hh))
- (command "line" pa pc "")
- (setq cfo (polar pc (* pi 1.5) (* ww 2)))
- (command "line" pc cfo "")
-
- (setq pd (list (car pa) (cadr pc)))
- (command "line" pa pd "")
- (command "line" pc pd "")
-
- (setq dis_ac (sqrt (+ (* hh hh) (* (/ ww 2) (/ ww 2)))))
- (setq ang_dac (atan (/ (/ ww 2) hh)))
- (setq ang_dca (atan (/ hh (/ ww 2))))
- (setq ang_eac (/ ang_dac 2))
- (setq ang_eca (/ ang_dca 2))
- (setq pae (polar pa (+ ang_eac (atan (/ hh (/ ww 2)))) dis_ac))
- (setq pce (polar pc (+ ang_eca pi) dis_ac))
- (setq pe (inters pa pae pc pce))
- (command "line" pa pae "")
- (command "line" pc pce "")
-
- (setq eo1 (polar pe (- (* pi 2) (atan (/ (/ ww 2) hh))) ww))
- (command "line" pe eo1 "")
-
- (setq o2 (inters pa pb pe eo1))
- (setq o1 (inters pe eo1 pc cfo))
-
- (command "arc" pc "E" pe o1)
- (setq en1 (entlast))
- (command "arc" pe "E" pa o2)
- (setq en2 (entlast))
- (command "mirror" en1 "" pc pf "N")
- (command "mirror" en2 "" pc pf "N")
- (prin1)
- )
命令: sanxingong
指定基点:
净宽<100>:
净高<30>:
|