[求助]
谁能帮我分析一下这个程序呀这是一个关于蜗轮蜗杆的程序题目,帮我分析以下,谢谢了!!!
题目虽然长了一点,还希望大家能多点耐心哦!!呵呵
;;;d为轮毂内径;d1为蜗杆分度圆直径;d0为幅板孔径;dd0为幅板孔的周向位置直径;
;;;d2为蜗轮分度圆直径;d3为轮毂凸台直径;d4为紧固件直径;d5为轮毂外径;
;;;dw为蜗轮外径;da1为蜗杆顶圆直径;da2为蜗轮顶圆直径;df2为齿根圆直径;
;;;w_b为齿顶宽;C为幅板宽;nn为轮毂凸台外倒角大小;n1为内倒角大小;
;;;a为轮缘的齿根到轮缘内径距离;b轮毂外径凸缘大小;z1为蜗杆头数;z2为蜗轮齿数;
;;;l为轮毂宽;gama为第四类蜗轮齿顶夹角;r为圆角半径;m为模数;nm为紧固件数目;
;;;sca为图形比例;ch_m为主视图选择变量;ch_s为侧视图选择;
(defun worm1 (/ bmain bodraww_set1w_vslide w_start1
w_type1 mode_w1 w_dir wcheck1 check1explain1
explain2 explain3 expalin4 explain5
worm1_keep undo set_grp vslidewdtr wtan
pick1 pick2 w_draw1 dia what wtype grp
d d1 d0 dd0 d2 d3 d4
d5 dw da1 da2 df2 w_b c
nn n1 n2 a b z1 z2
l l0 l1 gama r m m_no
sca sca_nod1_no d4_no l1_no ch_m ch_s
m_listsca_list d4_list l1_list d1_list nm
rot start start1dw w_f w_x key_b
key_t1wr1 wr2 cn jud mod jj
os_olducs_namedo_help
)
(setq what 3
wtype 1
d0 0
dd0 0
d 0
d1 18
d2 0
d3 0
d4 6
d5 0
dw 0
da1 0
da2 0
df2 0
w_b 0
c 10
nn 1
n1 2
n2 2
a 0
b 0
z1 1
z2 20
l 0
l0 0
l1 12
gama 100
r 2
m 1
m_no 0
sca 1
sca_no 4
d1_no 0
d4_no 0
l1_no 0
ch_m 1
ch_s 0
rot 0
w_f 0
w_x 0
nm 6
key_b 0
key_t1 0
wr1 0
wr2 0
cn 0
jud 0
mod 1
jj 0
)
(setq grp nil)
(setq w_b (* 0.75 (+ d1 (* m 2))))
(setvar "cmdecho" 0)
;;;(setq ucs_name "worm1")
;;;(command "ucs" "del" ucs_name)
;;;(command "ucs" "save" ucs_name)
(command "ucs" "w")
(setvar "measurement" 1)
(setq os_old (getvar "osmode"))
(setvar "osmode" 0)
(command "layer" "s" "0" "c" "white" "" "")
(command "layer" "m" "draw" "c" "white" "" "")
(command "layer" "m" "center" "c" "red" "" "l" "center" "" "")
(command "layer" "m" "dashed" "c" "white" "" "l" "dashed" "" "")
(command "layer" "m" "bhatch" "c" "blue" "" "")
(command "layer" "m" "dim" "c" "white" "" "")
(command "layer" "m" "data" "lo" "data" "")
(command "layer" "s" "0" "")
(command "ltscale" 5.0)
(defun do_help()
(help "cadhelp.hlp" "aworm")
)
(defun w_set1 ()
(while (> what 0)
(action_tile "w_type1" "(w_type1)")
(action_tile "w_dir" "(w_dir)")
(action_tile "main" "(wcheck1) (mode_w1) ")
(action_tile "side" "(wcheck1) (mode_w1)")
(action_tile "screw_d" "(wcheck1) ")
(action_tile "screw_l" "(wcheck1) ")
(action_tile "w_nm" "(wcheck1)")
(action_tile "w_m" "(wcheck1)")
(action_tile "w_d1" "(wcheck1)")
(action_tile "scale" "(wcheck1)")
(action_tile "w_z1" "(wcheck1) ")
(action_tile "w_z2" "(setq jj 0)(wcheck1)")
(action_tile "w_shaft" "(wcheck1)")
(action_tile "w_b" "(setq jj 0)(wcheck1)")
(action_tile "w_l" "(setq jj 0)(wcheck1)")
(action_tile "w_d3" "(setq jj 0)(wcheck1)")
(action_tile "w_dw" "(setq jj 0)(wcheck1)")
(action_tile "w_ang" "(setq jj 0)(wcheck1)")
(action_tile "w_n1" "(wcheck1) ")
(action_tile "w_r" "(wcheck1) ")
(action_tile "w_x" "(wcheck1) ")
(action_tile "help" "(do_help)")
(action_tile
"accept"
"(check1) (if (= jj 1) (done_dialog 5))"
)
(setq what (start_dialog))
(cond
((= what 5) (w_draw1))
)
)
)
(defun w_vslide ()
(vslide "w_image" (strcat "worm" (itoa (+ wtype cn))) 0)
)
;******original set the value in worm used in "worm"
(defun w_start1 ()
(mode_w1)
(w_vslide)
(set_tile "main" (itoa ch_m))
(set_tile "side" (itoa ch_s))
(set_tile "w_nm" (itoa nm))
(set_tile "wm" (itoa m_no))
(set_tile "screw_d" (itoa d4_no))
(set_tile "screw_l" (itoa l1_no))
(set_tile "w_d1" (itoa d1_no))
(set_tile "scale" (itoa sca_no))
(set_tile "w_z1" (itoa z1))
(set_tile "w_z2" (itoa z2))
(set_tile "w_shaft" (rtos d 2 1))
(set_tile "w_b" (rtos w_b 2 1))
(set_tile "w_l" (rtos l 2 1))
(set_tile "w_d3" (rtos d3 2 1))
(set_tile "w_dw" (rtos dw 2 1))
(set_tile "w_ang" (rtos gama 2 1))
(set_tile "w_n1" (rtos n1 2 1))
(set_tile "w_r" (rtos r 2 1))
(set_tile "w_x" (rtos w_x 2 1))
(wcheck1)
)
;******** select the worm type
(defun w_type1 ()
(if (not (new_dialog "wtype1" dia))
(exit)
)
(vslide "worm1" "worm1" 0)
(vslide "worm2" "worm2" 0)
(vslide "worm3" "worm3" 0)
(vslide "worm4" "worm4" 0)
(vslide "worm5" "worm5" 0)
(action_tile "worm1" "(setq wtype 1)")
(action_tile "worm2" "(setq wtype 2)")
(action_tile "worm3" "(setq wtype 3)")
(action_tile "worm4" "(setq wtype 4)")
(action_tile "worm5" "(setq wtype 5)")
(action_tile "help" "(do_help)")
(action_tile "accept" "(done_dialog 0)")
(start_dialog)
(w_vslide)
(mode_w1)
(wcheck1)
)
;****** mode the choice way
(defun mode_w1 ()
(mode_tile "screw_l"
(if (/= wtype 5)
0
1
)
)
(mode_tile "screw_d"
(if (/= wtype 5)
0
1
)
)
(mode_tile "w_ang"
(if (= wtype 4)
0
1
)
)
(mode_tile "w_nm"
(if (or (= wtype 3) (= ch_s 0))
1
0
)
)
(mode_tile "accept" 1)
(if (= wtype 5)
(progn
(mode_tile "screw_d" 1)
(mode_tile "screw_l" 1)
)
)
)
;******* select the direction used in "worm"
(defun w_dir ()
(if (not (new_dialog "wdir" dia))
(exit)
)
(vslide "dir_1" (strcat "worm" (itoa wtype)) 0)
(vslide "dir_2" (strcat "worm" (itoa (+ wtype 10))) 0)
(vslide "dir_3" (strcat "worm" (itoa (+ wtype 20))) 0)
(vslide "dir_4" (strcat "worm" (itoa (+ wtype 30))) 0)
(action_tile "dir_1" "(setq rot 0 cn 0)")
(action_tile "dir_2" "(setq rot pi cn 10)")
(action_tile "dir_3" "(setq rot (* 0.5 pi) cn 20)")
(action_tile "dir_4" "(setq rot (* -0.5 pi) cn 30)")
(action_tile "help" "(do_help)")
(action_tile "accept" "(done_dialog 0)")
(start_dialog)
(w_start1)
)
;****** input and check the data
(defun wcheck1 ()
(setq m_list (list 1 1.25 1.6 2 2.5 3.15 4 5 6.3 8 10 12.5 16 20 25
31.5 40)
)
(setq d1_list (list 18 20 22.4 25 28 31.5 35.5 40 45
50 56 63 71 80 90 100112 125
140160180200224 250280315 355
400
)
)
(setq d4_list (list 5 6 8 10 12 14 16 18 20))
(setq l1_list (list 6 8 10 12 16 20 25 28 30 35 40 45 50 55 60 65 70
75 80)
)
(setq sca_list (list 5 4 3 2 1 0.5 0.333333 0.25 0.2))
(setq
ch_m (atoi (get_tile "main"))
ch_s (atoi (get_tile "side"))
sca_no (atoi (get_tile "scale"))
d4_no(atoi (get_tile "screw_d"))
d1_no(atoi (get_tile "w_d1"))
m_no (atoi (get_tile "wm"))
l1_no(atoi (get_tile "screw_l"))
nm (atoi (get_tile "w_nm"))
z1 (atoi (get_tile "w_z1"))
z2 (atoi (get_tile "w_z2"))
d (atof (get_tile "w_shaft"))
w_b (atof (get_tile "w_b"))
l (atof (get_tile "w_l"))
d3 (atof (get_tile "w_d3"))
dw (atof (get_tile "w_dw"))
gama (atof (get_tile "w_ang"))
n1 (atof (get_tile "w_n1"))
r (atof (get_tile "w_r"))
w_x (atof (get_tile "w_x"))
)
(setq m (nth m_no m_list))
(setq d1 (nth d1_no d1_list))
(setq l1 (nth l1_no l1_list))
(setq d4 (nth d4_no d4_list))
(setq sca (nth sca_no sca_list))
(setq m (* m sca)
d1(* d1 sca)
l1(* l1 sca)
d4(* d4 sca)
d (* d sca)
w_b (* w_b sca)
l (* l sca)
d3(* d3 sca)
dw(* dw sca)
n1(* n1 sca)
r (* r sca)
)
(setq da1 (+ d1 (* 2 m)))
(setq d2 (* m z2))
(setq da2 (+ d2 (* 2.0 (+ m (* w_x m)))))
(cond
((= wtype 1) (setq c (* 0.3 w_b)))
((= wtype 2) (setq c (* 0.25 w_b)))
((or (= wtype 4) (= wtype 5)) (setq c (* 0.3 w_b)))
)
(if (< c (* sca 10.0))
(setq c (* sca 10.0))
)
(setq nn (* nn sca))
(if (and (< d3 (* sca 70.0)) (> d3 (* sca 40.0)))
(setq nn (* 2.0 sca))
)
(if (>= d3 (* sca 70))
(setq nn (* 3.0 sca))
)
(if (>= d3 (* sca 120))
(setq nn (* 4.0 sca))
)
(setq n2 (* n2 sca))
(cond
((<= m 2.0) (setq n2 (* sca 1.0)))
((and (> m 2.0) (<= m 4.0)) (setq n2 (* sca 2.0)))
((and (> m 4.0) (<= m 6.0)) (setq n2 (* sca 3.0)))
((> m 6.0) (setq n2 (* sca 4.0)))
)
(setq a (* 2.0 m))
(setq b (* 2.0 m))
(if (< a (* sca 10.0))
(setq a (* sca 10.0))
)
(if (< b (* sca 10.0))
(setq b (* sca 10.0))
)
(setq df2 (- d2 (* 2.0 (- (* 1.2 m) (* w_x m)))))
(setq d5 (- df2 (* 2.0 a)))
(if (= wtype 2)
(setq d5 (- (- df2 (* 2.0 a)) (* 4.0 d4)))
)
(cond
((<= w_b 30) (setq l0 (+ l1 (* 0.5 d4))))
((and (< w_b 50) (>= w_b 30)) (setq l0 (+ l1 (* 0.8 d4))))
((>= w_b 50) (setq l0 (+ l1 (* 1.0 d4))))
)
(setq w_f (* 2.0 m))
(if (< w_f (* sca 10.0))
(setq w_f (* sca 10.0))
)
(setq dd0 (/ (+ (- d5 (* 2.0 b)) d3) 2.0))
(setq dd0 (fix dd0))
(if (= wtype 5)
(setq dd0 (/ (+ (- df2 (* 2.0 a))
(+ (* (* (/ (- l c) 2.0) 0.05) 2.0) d3)
)
2.0
)
)
)
(setq d0 (- (- dd0 d3) (* 2.0 r)))
(if (< d0 (* sca 30.0))
(progn (setq dddd (* sca 6.0)) (setq d0 (- d0 dddd)))
)
(if (and (>= d0 (* sca 30.0)) (< d0 (* sca 50.0)))
(progn (setq dddd (* sca 12.0)) (setq d0 (- d0 dddd)))
)
(if (>= d0 (* sca 50.0))
(progn (setq dddd (* sca 16.0)) (setq d0 (- d0 dddd)))
)
(setq d0 (fix d0))
(setq wr1 (* 0.5 (+ (* 2.4 m) d1)))
(setq wr2 (* 0.5 (- d1 (* 2.0 m))))
(cond
((< (* 0.25 (* w_b w_b)) (* wr1 wr1))
(setq lll1 (sqrt (- (* wr1 wr1) (* 0.25 (* w_b w_b)))))
)
(t
(alert "齿宽偏大,请重新输入齿宽")
(mode_tile "w_b" 2)
)
)
(setq lll2 (- wr1 lll1))
(setq lll3 (- (/ (- dw df2) 2.0) n2))
(if (and (> z1 0)
(> z2 0)
(> d 0)
(> w_b 0)
(> dw 0)
(> l 0)
(> d3 0)
(> n1 0)
(> r 0)
(> gama 0)
)
(progn
(mode_tile "accept" 0)
(setq mod 1)
)
)
)
(defun check1 ()
(cond
((and (> z1 z2) (> z1 0) (> z2 0))
(if (= mod 1)
(alert "输入的蜗轮及蜗杆齿数不对")
)
(setq mod 0)
(mode_tile "w_z2" 2)
)
((and (> d 0.1)
(> l 0.1)
(or (< l (* 1.2 d)) (> l (* 1.8 d)))
)
(if (= mod 1)
(progn
(alert "输入的轮毂宽度不对")
(explain2)
)
)
(setq mod 0)
(mode_tile "w_l" 2)
)
((and (> m 0.1)
(> z2 0.1)
(> da2 0)
(> dw 0)
(> (+ da2 (* 0.3 m)) dw)
)
(if (= mod 1)
(progn
(alert "输入外径dw偏小,请重新输入。")
)
)
(setq mod 0)
(mode_tile "w_dw" 2)
)
((and (> d 0.1)
(> d3 0.1)
(or (< d3 (* 1.6 d)) (> d3 (* 1.8 d)))
)
(if (= mod 1)
(progn
(alert "输入的轮毂直径d3不对")
(explain3)
)
)
(setq mod 0)
(mode_tile "w_d3" 2)
)
((or (< gama 90) (> gama 110))
(if (= mod 1)
(progn
(alert "输入的齿顶夹角t不对")
(explain4)
)
)
(setq mod 0)
(mode_tile "w_ang" 2)
)
((and (> da1 (* 2.1 m))
(or (and (< z1 4) (> w_b (+ (* 0.75 da1) (* 1.0 sca))))
(and (>= z1 4) (> w_b (+ (* 0.67 da1) (* 1.0 sca))))
)
)
(if (= mod 1)
(progn
(alert "输入的齿轮缘宽度B不对")
(explain1)
)
)
(setq mod 0)
(mode_tile "w_b" 2)
)
((and (> dw 0)
(> m 0)
(> z2 0)
(or (and (= z1 1) (> dw (+ da2 (* 2 m))))
(and (or (= z1 2) (= z1 3)) (> dw (+ da2 (* 1.5 m))))
(and (= z1 4) (> dw (+ da2 m)))
)
)
(if (= mod 1)
(progn
(alert "输入的蜗轮外径Dw不对")
(explain5)
)
)
(setq mod 0)
(mode_tile "w_dw" 2)
)
((and (/= wtype 2)
(/= wtype 3)
(< (- dd0 d3) (* 2.0 (+ dddd (* 2.0 r))))
(> dd0 0)
(> r 0)
(> dddd 0)
)
(if (= mod 1)
(alert "蜗轮上开减轻孔的位置不够,请选用第二或第三种结构")
)
(setq mod 0)
(mode_tile "w_type1" 2)
)
((and (>= lll2 lll3) (> dw 0) (> m 0) (> w_b 0) (> z2 0))
(if (= mod 1)
(alert "蜗轮齿宽偏大,请重新输入齿宽")
)
(setq mod 0)
(mode_tile "w_b" 2)
)
(t
(if (and (> z1 0)
(> z2 0)
(> d 0)
(> w_b 0)
(> dw 0)
(> l 0)
(> d3 0)
(> n1 0)
(> r 0)
(> gama 0)
)
(progn
(mode_tile "accept" 0)
(setq jj 1)
)
)
)
)
)
(defun explain1 ()
(if (not (new_dialog "explain1" dia))
(exit)
)
(action_tile "accept" "(done_dialog 0)")
(start_dialog)
)
(defun explain2 ()
(if (not (new_dialog "explain2" dia))
(exit)
)
(action_tile "accept" "(done_dialog 0)")
(start_dialog)
)
(defun explain3 ()
(if (not (new_dialog "explain3" dia))
(exit)
)
(action_tile "accept" "(done_dialog 0)")
(start_dialog)
)
(defun explain4 ()
(if (not (new_dialog "explain4" dia))
(exit)
)
(action_tile "accept" "(done_dialog 0)")
(start_dialog)
)
(defun explain5 ()
(if (not (new_dialog "explain5" dia))
(exit)
)
(action_tile "accept" "(done_dialog 0)")
(start_dialog)
)
;******* draw the worm
(defun worm1_keep (/ keep mo_ro rot1)
(setq keep "m")
(while (or (= keep "M") (= keep "m"))
(setq keep (getstring "\n修改(M)\\任一键继续:"))
(if (or (= keep "M") (= keep "m"))
(progn
(setq mo_ro "")
(while (and (/= mo_ro "M") (/= mo_ro "R") (/= mo_ro "U"))
(setq mo_ro
(strcase (getstring "\n平移(M)\\旋转(R)\\取消(U):"))
)
)
(if (= mo_ro "M")
(progn
(command "move" grp "" start)
(princ "\n")
(princ "输入新起点:")
(command pause)
(setq start (getvar "lastpoint"))
)
)
(if (= mo_ro "R")
(progn
(setq rot1 (getdist "\n旋转角度:"))
(command "rotate" grp "" start rot1)
)
)
(if (= mo_ro "U")
(command "erase" grp "")
)
(redraw)
)
)
)
(command "regen")
(if (not (new_dialog "worm1" dia))
(exit)
)
(w_start1)
(w_set1)
)
(defun undo ()
(command "erase" grp "")
(command "regen")
(if (not (new_dialog "worm" dia))
(exit)
)
(w_start1)
(w_set1)
)
;******** setqthe value of grp
(defun set_grp (grp_n / n)
(if (not grp)
(setq grp (ssadd))
)
(setq n 0)
(if (not (not grp_n))
(repeat (sslength grp_n)
(setq grp (ssadd (ssname grp_n n) grp))
(setq n (+ 1 n))
)
)
)
;********* look slide used in "worm" "worm_type"
(defun vslide (key s_name n / x y)
(setq x (dimx_tile key))
(setq y (dimy_tile key))
(start_image key)
(fill_image n -5 x y 2)
(slide_image n -5 x y s_name)
(end_image)
)
(defun wdtr (a) (/ (* a pi) 180.0))
(defun wtan (a) (/ (sin a) (cos a)))
(defun pick1 ()
(setq start (getpoint "\n输入蜗轮零件图主视图的定位起点:"))
)
(defun pick2 ()
(setq start1 (getpoint "\n输入蜗轮侧视图的中心点坐标:"))
)
(defun w_draw1 (/ p1 p2 p3 p4 p5 p6 p7 p8
p9 p10 p11 p12 p13 p14 p15 p16 p17
p18 p19 p20 p21 p22 p23 p24 p25 p26
p27 p28 p29 p30 p31 p32 p33 p34 p35
p36 p37 p38 p39 p40 p41 p42 p43 p44
p45 p46 p47 p48 p49 p50 p51 p52 p53
p54 p55 p56 p57 p58 p59 p60 p61 pn1
pn2 pn3 pn4 pn5 pn6 pn7 pn8 pn9 pn10
x0 x1 y0 y1 pmid1 pcenter pmid2 pmid3
pmid4 dist1 dist2 mid_h mid_h1 mid_h2 mid_l1
mid_l2 mid_l3 grp0 grp1grp2grp3grp4
grp5 grp6grp7grp8grp9 grp10 grp11 grp12 grp13
grp14 grp15 grp16
)
(setq grp nil)
(cond
((and (> d (* sca 10)) (<= d (* sca 12)))
(setq key_b(* sca 4)
key_t1 (* sca 1.8)
)
)
((and (> d (* sca 12)) (<= d (* sca 17)))
(setq key_b(* sca 5)
key_t1 (* sca 2.3)
)
)
((and (> d (* sca 17)) (<= d (* sca 22)))
(setq key_b(* sca 6)
key_t1 (* sca 2.8)
)
)
((and (> d (* sca 22)) (<= d (* sca 30)))
(setq key_b(* sca 8)
key_t1 (* sca 3.3)
)
)
((and (> d (* sca 30)) (<= d (* sca 38)))
(setq key_b(* sca 10)
key_t1 (* sca 3.3)
)
)
((and (> d (* sca 38)) (<= d (* sca 44)))
(setq key_b(* sca 12)
key_t1 (* sca 3.3)
)
)
((and (> d (* sca 44)) (<= d (* sca 50)))
(setq key_b(* sca 14)
key_t1 (* sca 3.8)
)
)
((and (> d (* sca 50)) (<= d (* sca 58)))
(setq key_b(* sca 16)
key_t1 (* sca 4.3)
)
)
((and (> d (* sca 58)) (<= d (* sca 65)))
(setq key_b(* sca 18)
key_t1 (* sca 4.4)
)
)
((and (> d (* sca 65)) (<= d (* sca 75)))
(setq key_b(* sca 20)
key_t1 (* sca 4.9)
)
)
((and (> d (* sca 75)) (<= d (* sca 85)))
(setq key_b(* sca 22)
key_t1 (* sca 5.4)
)
)
((and (> d (* sca 85)) (<= d (* sca 95)))
(setq key_b(* sca 25)
key_t1 (* sca 5.4)
)
)
((> d (* sca 95))
(setq key_b(* sca 28)
key_t1 (* sca 6.4)
)
)
)
(cond
((= d4 (* sca 5.0)) (setq dist1 (* sca 0.8)))
((= d4 (* sca 6.0)) (setq dist1 (* sca 1.0)))
((= d4 (* sca 8.0)) (setq dist1 (* sca 1.2)))
((= d4 (* sca 10.0)) (setq dist1 (* sca 1.5)))
((>= d4 (* sca 12.0)) (setq dist1 (* sca 1.8)))
)
(cond
((= d4 (* sca 5.0)) (setq dist2 (* sca 0.8)))
((= d4 (* sca 6.0)) (setq dist2 (* sca 1.0)))
((= d4 (* sca 8.0)) (setq dist2 (* sca 1.2)))
((= d4 (* sca 10.0)) (setq dist2 (* sca 1.6)))
((>= d4 (* sca 12.0)) (setq dist2 (* sca 2.0)))
)
(if (= wtype 2)
(setq d4 (+ d4 (* sca 1.0)))
)
(command "snap" "0.05")
(if (= ch_m 1)
(pick1)
)
(cond
((= ch_m 1)
(setq start1 (polar start rot (- da2 (/ l 2.0))))
)
((= ch_m 0)
(pick2)
(setq start (polar start1 (+ rot pi) (- da2 (/ l 2.0))))
)
)
(cond
((= wtype 1)
(setq
p2 (polar start (+ rot (* 0.5 pi)) (+ (/ d 2.0) n1))
p1 (polar p2 (+ rot (* -0.75 pi)) (* (sqrt 2.0) n1))
p3 (polar start (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p4 (polar p3 (+ rot (* 0.75 pi)) (* (sqrt 2.0) nn))
p5 (polar p4
(+ rot (- pi (atan 0.05)))
(- (/ (- l w_b) 2.0) nn)
)
p6 (polar p5
(+ rot (- pi (atan 0.05)))
(- (/ (- w_b c) 2.0) r)
)
p7 (polar p6 (+ rot (* 0.75 pi)) (* (sqrt 2.0) r))
mid_h (/ (- (- d5 (* 2.0 b)) d3) 2.0)
mid_h1 (* (- (/ (- l c) 2.0) (+ nn r)) 0.05)
mid_h2 (* (- (/ (- w_b c) 2.0) r) 0.05)
p8 (polar p7
(+ rot (* 0.5 pi))
(- (- mid_h (* 2.0 r)) (+ mid_h1 mid_h2))
)
p9 (polar p8 (+ rot (* 0.25 pi)) (* (sqrt 2.0) r))
p10 (polar p9
(+ rot (atan 0.05))
(* (- (/ (- w_b c) 2.0) r) (/ 1.0 (cos (atan 0.05))))
)
p11 (polar p10 (+ rot (* 0.5 pi)) (+ b (* sca 4.0)))
p12 (polar p11 (+ rot pi) (* sca 10))
p13 (polar p12 (+ rot (* -0.5 pi)) (* sca 4.0))
mid_l1 (- (- w_b l0)
(* sca 10)
(* (wtan (wdtr 30))
(- (/ (- d4 dist1) 2.0) (* sca 2.0))
)
)
p14 (polar p13 (+ rot pi) mid_l1)
p15 (polar p14
(+ rot (* (/ -1.0 3.0) pi))
(* (/ 2.0 (sqrt 3.0)) (* sca 2.0))
)
p16 (polar p15
(+ rot (* (/ -2.0 3.0) pi))
(* (/ (- d4 dist1) 2.0) (/ 2.0 (sqrt 3.0)))
)
p17 (polar p16 (+ rot pi) (- l0 l1))
p18 (polar p17
(+ rot (* -0.75 pi))
(* (sqrt 2.0) (/ dist1 2.0))
)
p19 (polar p18 (+ rot pi) (- l1 (/ dist1 2.0)))
p20 (polar p10 (+ rot pi) w_b)
p21 (polar p9 (+ rot pi) (+ c (* r 2.0)))
p22 (polar p8 (+ rot pi) c)
p23 (polar p7 (+ rot pi) c)
p24 (polar p6 (+ rot pi) (+ c (* 2.0 r)))
p25 (polar p5 (+ rot pi) w_b)
p26 (polar p4 (+ rot pi) (- l (* 2.0 nn)))
p27 (polar p3 (+ rot pi) l)
p28 (polar p2 (+ rot pi) l)
p29 (polar p1 (+ rot pi) (- l (* 2.0 n1)))
p30 (polar (polar start (+ rot (* 0.5 pi)) (/ dd0 2.0))
(+ rot pi)
(/ (- l c) 2.0)
)
p31 (polar p30 (+ rot (* 0.5 pi)) (/ d0 2.0))
p32 (polar p31 (+ rot pi) c)
p33 (polar p32 (+ rot (* -0.5 pi)) d0)
p34 (polar p33 rot c)
p35 (polar p11 (+ rot (* 0.5 pi)) (* sca 1.0))
mid_l2 (sqrt (- (* wr1 wr1) (* 0.25 (* w_b w_b))))
mid_l3 (- wr1 mid_l2)
p36 (polar p35 (+ rot (* 0.5 pi)) (- (+ mid_l3 a) (* sca 5.0)))
mid_l2 (/ (- dw d5) 2.0)
p37 (polar p35 (+ rot (* 0.5 pi)) (- (- mid_l2 (* sca 5)) n2))
p38 (polar p37 (+ rot (* 0.75 pi)) (* (sqrt 2.0) n2))
mid_l2 (- (/ (+ d1 d2) 2.0) (/ dw 2.0))
mid_l3 (sqrt (- (* wr2 wr2) (* mid_l2 mid_l2)))
p39 (polar p38 (+ rot pi) (- (- (/ w_b 2.0) mid_l3) n2))
p40 (polar p39 (+ rot pi) (* mid_l3 2.0))
p41 (polar p38 (+ rot pi) (- w_b (* n2 2.0)))
p42 (polar p37 (+ rot pi) w_b)
p43 (polar p36 (+ rot pi) w_b)
p44 (polar p19 (+ rot (* 0.5 pi)) d4)
p45 (polar p18 (+ rot (* 0.5 pi)) d4)
p46 (polar p17 (+ rot (* 0.5 pi)) (- d4 dist1))
p47 (polar p16 (+ rot (* 0.5 pi)) (- d4 dist1))
p48 (polar p35 (+ rot pi) (* sca 10.0))
p49 (polar p1 (+ rot (* -0.5 pi)) (/ (- d key_b) 2.0))
p50 (polar p49 (+ rot pi) (- l (* 2.0 n1)))
p52 (polar start (+ rot (* 0.5 pi)) (/ key_b 2.0))
p51 (polar p52 (+ rot pi) l)
pcenter (polar start (+ rot pi) (/ l 2.0))
pcenter (polar pcenter (+ rot (* 0.5 pi)) (/ (+ d1 d2) 2.0))
mid_l1 (/ w_b 2.0)
mid_l2 (/ d1 2.0)
mid_l3 (sqrt (- (* mid_l2 mid_l2) (* mid_l1 mid_l1)))
p53 (polar pcenter (+ rot (* -0.5 pi)) mid_l3)
p53 (polar p53 rot mid_l1)
p55 (polar pcenter (+ rot (* -0.5 pi)) (/ d1 2.0))
p54 (polar p53 (+ rot pi) (* mid_l1 2.0))
pn2 (polar p46 (+ rot pi) l1)
pn1 (polar pn2
(+ rot (* -0.5 pi))
(/ (- (- d4 dist1) dist2) 2.0)
)
pn3 (polar pn2
(+ rot (* 0.25 pi))
(* (/ dist1 2.0) (sqrt 2.0))
)
pn4 (polar pn3 (+ rot (* -0.5 pi)) (/ (- d4 dist2) 2.0))
pn5 (polar pn1 rot (* dist1 1.5))
pn6 (polar pn5 (+ rot (* -0.5 pi)) dist2)
pn7 (polar pn4 (+ rot (* -0.5 pi)) dist2)
pn8 (polar pn3 (+ rot (* -0.5 pi)) d4)
pn9 (polar pn2 (+ rot (* -0.5 pi)) (- d4 dist1))
pn10 (polar pn1 (+ rot (* -0.5 pi)) dist2)
p61 (polar start rot 0.5)
)
)
((= wtype 2)
(setq
p2 (polar start (+ rot (* 0.5 pi)) (+ (/ d 2.0) n1))
p1 (polar p2 (+ rot (* -0.75 pi)) (* (sqrt 2.0) n1))
p3 (polar start (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p4 (polar p3 (+ rot (* 0.75 pi)) (* (sqrt 2.0) nn))
p5 (polar p4
(+ rot (- pi (atan 0.05)))
(- (/ (- l w_b) 2.0) nn)
)
p6 (polar p5
(+ rot (- pi (atan 0.05)))
(- (/ (- w_b (* 2.0 c)) 2.0) r)
)
p7 (polar p6 (+ rot (* 0.75 pi)) (* (sqrt 2.0) r))
mid_h (+ (/ (- d5 d3) 2.0) (* 2.0 d4))
mid_h1 (* (- (/ (- l (* 2.0 c)) 2.0) (+ nn r)) 0.05)
p8 (polar p7
(+ rot (* 0.5 pi))
(+ (- (- mid_h r) mid_h1) (* 1.0 sca))
)
p9 (polar p8 (+ rot (wdtr 60)) r)
p10 (polar p9
(+ rot (wdtr 30))
(/ (- (/ (- w_b (* 2.0 c)) 2.0) (* 0.5 r))
(cos (wdtr 30))
)
)
ppp (polar start (+ rot pi) (/ l 2.0))
ppp (polar ppp (+ rot (* 0.5 pi)) (/ d5 2.0))
ppp (polar ppp rot c)
p11 (polar ppp (+ rot (* -0.5 pi)) (* 2.0 d4))
p12 (polar p11 (+ rot pi) c)
p13 (polar p12 (+ rot (* 0.5 pi)) (* 4.0 d4))
p14 (polar p13 (+ rot pi) c)
p15 (polar p11 (+ rot (* 0.5 pi)) (* 1.0 sca))
p16 (polar p15 (+ rot pi) c)
p17 (polar ppp (+ rot (* 0.5 pi)) (/ d4 2.0))
p18 (polar ppp (+ rot (* -0.5 pi)) (/ d4 2.0))
p19 (polar p17 (+ rot pi) (* 2.0 c))
p30 (polar p18 (+ rot pi) (* 2.0 c))
p20 (polar p10 (+ rot pi) w_b)
p21 (polar p9 (+ rot pi) (+ (* c 2.0) r))
p22 (polar p8 (+ rot pi) (* 2.0 c))
p23 (polar p7 (+ rot pi) (* 2.0 c))
p24 (polar p6 (+ rot pi) (+ (* 2.0 c) (* 2.0 r)))
p25 (polar p5 (+ rot pi) w_b)
p26 (polar p4 (+ rot pi) (- l (* 2.0 nn)))
p27 (polar p3 (+ rot pi) l)
p28 (polar p2 (+ rot pi) l)
p29 (polar p1 (+ rot pi) (- l (* 2.0 n1)))
mid_l2 (sqrt (- (* wr1 wr1) (* 0.25 (* w_b w_b))))
mid_l3 (- wr1 mid_l2)
p36 (polar (polar start (+ rot pi) (/ l 2.0))
(+ rot (* 0.5 pi))
(+ (/ df2 2.0) mid_l3)
)
p36 (polar p36 rot (/ w_b 2.0))
mid_l2 (- (/ (- dw df2) 2.0) mid_l3)
p37 (polar p36 (+ rot (* 0.5 pi)) (- mid_l2 n2))
p38 (polar p37 (+ rot (* 0.75 pi)) (* (sqrt 2.0) n2))
mid_l2 (- (/ (+ d1 d2) 2.0) (/ dw 2.0))
mid_l3 (sqrt (- (* wr2 wr2) (* mid_l2 mid_l2)))
p39 (polar p38 (+ rot pi) (- (- (/ w_b 2.0) mid_l3) n2))
p40 (polar p39 (+ rot pi) (* mid_l3 2.0))
p41 (polar p38 (+ rot pi) (- w_b (* n2 2.0)))
p42 (polar p37 (+ rot pi) w_b)
p43 (polar p36 (+ rot pi) w_b)
p49 (polar p1 (+ rot (* -0.5 pi)) (/ (- d key_b) 2.0))
p50 (polar p49 (+ rot pi) (- l (* 2.0 n1)))
p52 (polar start (+ rot (* 0.5 pi)) (/ key_b 2.0))
p51 (polar p52 (+ rot pi) l)
pcenter (polar start (+ rot pi) (/ l 2.0))
pcenter (polar pcenter (+ rot (* 0.5 pi)) (/ (+ d1 d2) 2.0))
mid_l1 (/ w_b 2.0)
mid_l2 (/ d1 2.0)
mid_l3 (sqrt (- (* mid_l2 mid_l2) (* mid_l1 mid_l1)))
p53 (polar pcenter (+ rot (* -0.5 pi)) mid_l3)
p53 (polar p53 rot mid_l1)
p55 (polar pcenter (+ rot (* -0.5 pi)) (/ d1 2.0))
p54 (polar p53 (+ rot pi) (* mid_l1 2.0))
p61 (polar start rot 0.5)
)
)
((= wtype 3)
(setq
p2 (polar start (+ rot (* 0.5 pi)) (+ (/ d 2.0) n1))
p1 (polar p2 (+ rot (* -0.75 pi)) (* (sqrt 2.0) n1))
p3 (polar start (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p4 (polar p3 (+ rot (* 0.75 pi)) (* (sqrt 2.0) nn))
p5 (polar p4
(+ rot (- pi (atan 0.05)))
(- (/ (- l w_b) 2.0) nn)
)
p11 (polar p5
(+ rot (* 0.5 pi))
(+ (/ (- d5 d3) 2.0) (* sca 4.0))
)
p12 (polar p11 (+ rot pi) (* sca 10))
p13 (polar p12 (+ rot (* -0.5 pi)) (* sca 4.0))
mid_l1 (- (- w_b l0)
(* sca 10)
(* (wtan (wdtr 30))
(- (/ (- d4 dist1) 2.0) (* sca 2.0))
)
)
p14 (polar p13 (+ rot pi) mid_l1)
p15 (polar p14
(+ rot (* (/ -1.0 3.0) pi))
(* (/ 2.0 (sqrt 3.0)) (* sca 2.0))
)
p16 (polar p15
(+ rot (* (/ -2.0 3.0) pi))
(* (/ (- d4 dist1) 2.0) (/ 2.0 (sqrt 3.0)))
)
p17 (polar p16 (+ rot pi) (- l0 l1))
p18 (polar p17
(+ rot (* -0.75 pi))
(* (sqrt 2.0) (/ dist1 2.0))
)
p19 (polar p18 (+ rot pi) (- l1 (/ dist1 2.0)))
p25 (polar p5 (+ rot pi) w_b)
p26 (polar p4 (+ rot pi) (- l (* 2.0 nn)))
p27 (polar p3 (+ rot pi) l)
p28 (polar p2 (+ rot pi) l)
p29 (polar p1 (+ rot pi) (- l (* 2.0 n1)))
p35 (polar p11 (+ rot (* 0.5 pi)) (* sca 1.0))
mid_l2 (sqrt (- (* wr1 wr1) (* 0.25 (* w_b w_b))))
mid_l3 (- wr1 mid_l2)
p36 (polar p35 (+ rot (* 0.5 pi)) (- (+ mid_l3 a) (* sca 5.0)))
mid_l2 (/ (- dw d5) 2.0)
p37 (polar p35 (+ rot (* 0.5 pi)) (- (- mid_l2 (* sca 5)) n2))
p38 (polar p37 (+ rot (* 0.75 pi)) (* (sqrt 2.0) n2))
mid_l2 (- (/ (+ d1 d2) 2.0) (/ dw 2.0))
mid_l3 (sqrt (- (* wr2 wr2) (* mid_l2 mid_l2)))
p39 (polar p38 (+ rot pi) (- (- (/ w_b 2.0) mid_l3) n2))
p40 (polar p39 (+ rot pi) (* mid_l3 2.0))
p41 (polar p38 (+ rot pi) (- w_b (* n2 2.0)))
p42 (polar p37 (+ rot pi) w_b)
p43 (polar p36 (+ rot pi) w_b)
p44 (polar p19 (+ rot (* 0.5 pi)) d4)
p45 (polar p18 (+ rot (* 0.5 pi)) d4)
p46 (polar p17 (+ rot (* 0.5 pi)) (- d4 dist1))
p47 (polar p16 (+ rot (* 0.5 pi)) (- d4 dist1))
p48 (polar p35 (+ rot pi) (* sca 10.0))
p49 (polar p1 (+ rot (* -0.5 pi)) (/ (- d key_b) 2.0))
p50 (polar p49 (+ rot pi) (- l (* 2.0 n1)))
p52 (polar start (+ rot (* 0.5 pi)) (/ key_b 2.0))
p51 (polar p52 (+ rot pi) l)
pcenter (polar start (+ rot pi) (/ l 2.0))
pcenter (polar pcenter (+ rot (* 0.5 pi)) (/ (+ d1 d2) 2.0))
mid_l1 (/ w_b 2.0)
mid_l2 (/ d1 2.0)
mid_l3 (sqrt (- (* mid_l2 mid_l2) (* mid_l1 mid_l1)))
p53 (polar pcenter (+ rot (* -0.5 pi)) mid_l3)
p53 (polar p53 rot mid_l1)
p55 (polar pcenter (+ rot (* -0.5 pi)) (/ d1 2.0))
p54 (polar p53 (+ rot pi) (* mid_l1 2.0))
pn2 (polar p46 (+ rot pi) l1)
pn1 (polar pn2
(+ rot (* -0.5 pi))
(/ (- (- d4 dist1) dist2) 2.0)
)
pn3 (polar pn2
(+ rot (* 0.25 pi))
(* (/ dist1 2.0) (sqrt 2.0))
)
pn4 (polar pn3 (+ rot (* -0.5 pi)) (/ (- d4 dist2) 2.0))
pn5 (polar pn1 rot (* dist1 1.5))
pn6 (polar pn5 (+ rot (* -0.5 pi)) dist2)
pn7 (polar pn4 (+ rot (* -0.5 pi)) dist2)
pn8 (polar pn3 (+ rot (* -0.5 pi)) d4)
pn9 (polar pn2 (+ rot (* -0.5 pi)) (- d4 dist1))
pn10 (polar pn1 (+ rot (* -0.5 pi)) dist2)
p61 (polar start rot 0.5)
)
)
((= wtype 4)
(setq
p2 (polar start (+ rot (* 0.5 pi)) (+ (/ d 2.0) n1))
p1 (polar p2 (+ rot (* -0.75 pi)) (* (sqrt 2.0) n1))
p3 (polar start (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p4 (polar p3 (+ rot (* 0.75 pi)) (* (sqrt 2.0) nn))
p5 (polar p4
(+ rot (- pi (atan 0.05)))
(- (/ (- l w_b) 2.0) nn)
)
p6 (polar p5
(+ rot (- pi (atan 0.05)))
(- (/ (- w_b c) 2.0) r)
)
p7 (polar p6 (+ rot (* 0.75 pi)) (* (sqrt 2.0) r))
mid_h (/ (- (- d5 (* 2.0 b)) d3) 2.0)
mid_h1 (* (- (/ (- l c) 2.0) (+ nn r)) 0.05)
mid_h2 (* (- (/ (- w_b c) 2.0) r) 0.05)
p8 (polar p7
(+ rot (* 0.5 pi))
(- (- mid_h (* 2.0 r)) (+ mid_h1 mid_h2))
)
p9 (polar p8 (+ rot (* 0.25 pi)) (* (sqrt 2.0) r))
p10 (polar p9
(+ rot (atan 0.05))
(* (- (/ (- w_b c) 2.0) r) (/ 1.0 (cos (atan 0.05))))
)
p11 (polar p10 (+ rot (* 0.5 pi)) (+ b (* sca 4.0)))
p12 (polar p11 (+ rot pi) (* sca 10))
p13 (polar p12 (+ rot (* -0.5 pi)) (* sca 4.0))
mid_l1 (- (- w_b l0)
(* sca 10)
(* (wtan (wdtr 30))
(- (/ (- d4 dist1) 2.0) (* sca 2.0))
)
)
p14 (polar p13 (+ rot pi) mid_l1)
p15 (polar p14
(+ rot (* (/ -1.0 3.0) pi))
(* (/ 2.0 (sqrt 3.0)) (* sca 2.0))
)
p16 (polar p15
(+ rot (* (/ -2.0 3.0) pi))
(* (/ (- d4 dist1) 2.0) (/ 2.0 (sqrt 3.0)))
)
p17 (polar p16 (+ rot pi) (- l0 l1))
p18 (polar p17
(+ rot (* -0.75 pi))
(* (sqrt 2.0) (/ dist1 2.0))
)
p19 (polar p18 (+ rot pi) (- l1 (/ dist1 2.0)))
p20 (polar p10 (+ rot pi) w_b)
p21 (polar p9 (+ rot pi) (+ c (* r 2.0)))
p22 (polar p8 (+ rot pi) c)
p23 (polar p7 (+ rot pi) c)
p24 (polar p6 (+ rot pi) (+ c (* 2.0 r)))
p25 (polar p5 (+ rot pi) w_b)
p26 (polar p4 (+ rot pi) (- l (* 2.0 nn)))
p27 (polar p3 (+ rot pi) l)
p28 (polar p2 (+ rot pi) l)
p29 (polar p1 (+ rot pi) (- l (* 2.0 n1)))
p30 (polar (polar start (+ rot (* 0.5 pi)) (/ dd0 2.0))
(+ rot pi)
(/ (- l c) 2.0)
)
p31 (polar p30 (+ rot (* 0.5 pi)) (/ d0 2.0))
p32 (polar p31 (+ rot pi) c)
p33 (polar p32 (+ rot (* -0.5 pi)) d0)
p34 (polar p33 rot c)
p35 (polar p11 (+ rot (* 0.5 pi)) (* sca 1.0))
mid_l2 (sqrt (- (* wr1 wr1) (* 0.25 (* w_b w_b))))
mid_l3 (- wr1 mid_l2)
p36 (polar p35 (+ rot (* 0.5 pi)) (- (+ mid_l3 a) (* sca 5.0)))
mid_l2 (/ (- dw d5) 2.0)
p37 (polar p35 (+ rot (* 0.5 pi)) (- (- mid_l2 (* sca 5)) n2))
p38 (polar p37 (+ rot (* 0.75 pi)) (* (sqrt 2.0) n2))
mid_l2 (- (/ (+ d1 d2) 2.0) (/ dw 2.0))
mid_l3 (sqrt (- (* wr2 wr2) (* mid_l2 mid_l2)))
p39 (polar p38 (+ rot pi) (- (- (/ w_b 2.0) mid_l3) n2))
p40 (polar p39 (+ rot pi) (* mid_l3 2.0))
p41 (polar p38 (+ rot pi) (- w_b (* n2 2.0)))
p42 (polar p37 (+ rot pi) w_b)
p43 (polar p36 (+ rot pi) w_b)
p44 (polar p19 (+ rot (* 0.5 pi)) d4)
p45 (polar p18 (+ rot (* 0.5 pi)) d4)
p46 (polar p17 (+ rot (* 0.5 pi)) (- d4 dist1))
p47 (polar p16 (+ rot (* 0.5 pi)) (- d4 dist1))
p48 (polar p35 (+ rot pi) (* sca 10.0))
p49 (polar p1 (+ rot (* -0.5 pi)) (/ (- d key_b) 2.0))
p50 (polar p49 (+ rot pi) (- l (* 2.0 n1)))
p52 (polar start (+ rot (* 0.5 pi)) (/ key_b 2.0))
p51 (polar p52 (+ rot pi) l)
pcenter (polar start (+ rot pi) (/ l 2.0))
pcenter (polar pcenter (+ rot (* 0.5 pi)) (/ (+ d1 d2) 2.0))
mid_l1 (/ w_b 2.0)
mid_l2 (/ d1 2.0)
mid_l3 (sqrt (- (* mid_l2 mid_l2) (* mid_l1 mid_l1)))
p53 (polar pcenter (+ rot (* -0.5 pi)) mid_l3)
p53 (polar p53 rot mid_l1)
p55 (polar pcenter (+ rot (* -0.5 pi)) (/ d1 2.0))
p54 (polar p53 (+ rot pi) (* mid_l1 2.0))
pn2 (polar p46 (+ rot pi) l1)
pn1 (polar pn2
(+ rot (* -0.5 pi))
(/ (- (- d4 dist1) dist2) 2.0)
)
pn3 (polar pn2
(+ rot (* 0.25 pi))
(* (/ dist1 2.0) (sqrt 2.0))
)
pn4 (polar pn3 (+ rot (* -0.5 pi)) (/ (- d4 dist2) 2.0))
pn5 (polar pn1 rot (* dist1 1.5))
pn6 (polar pn5 (+ rot (* -0.5 pi)) dist2)
pn7 (polar pn4 (+ rot (* -0.5 pi)) dist2)
pn8 (polar pn3 (+ rot (* -0.5 pi)) d4)
pn9 (polar pn2 (+ rot (* -0.5 pi)) (- d4 dist1))
pn10 (polar pn1 (+ rot (* -0.5 pi)) dist2)
alpha1 (atan (/ (/ (- l w_b) 2.0) (- dd0 d3)))
p56 (polar p10 (- rot (- (* 0.5 pi) alpha1)) r)
p56 (polar p56 (- rot (- pi alpha1)) r)
p57 (polar p4 (+ rot (- (* 0.5 pi) (atan 0.05))) r)
p57 (polar p57 (- rot (- pi alpha1)) r)
x0 (car pcenter)
y0 (cadr pcenter)
x1 (car p43)
y1 (+ y0
(* (wtan (+ rot (wdtr (/ (- 180 gama) 2.0)))) (- x1 x0))
)
p58 (list x1 y1)
y1 (cadr p41)
x1 (+ x0 (* (wtan (+ rot (wdtr (/ gama 2.0)))) (- y1 y0)))
p59 (list x1 y1)
p60 (polar p59 rot (* (abs (- x0 x1)) 2.0))
p61 (polar start rot 0.5)
)
)
((= wtype 5)
(setq
p2 (polar start (+ rot (* 0.5 pi)) (+ (/ d 2.0) n1))
p1 (polar p2 (+ rot (* -0.75 pi)) (* (sqrt 2.0) n1))
p3 (polar start (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p4 (polar p3 (+ rot (* 0.75 pi)) (* (sqrt 2.0) nn))
p5 (polar p4
(+ rot (- pi (atan 0.05)))
(- (/ (- l w_b) 2.0) nn)
)
p6 (polar p5
(+ rot (- pi (atan 0.05)))
(- (/ (- w_b c) 2.0) r)
)
p7 (polar p6 (+ rot (* 0.75 pi)) (* (sqrt 2.0) r))
ppp (polar (polar start (+ rot pi) (/ l 2.0))
(+ rot (* 0.5 pi))
(+ (/ df2 2.0) wr1)
)
mid_l1 (sqrt (- (* (+ wr1 w_f r) (+ wr1 w_f r))
(* (+ r (/ c 2.0)) (+ r (/ c 2.0)))
)
)
p8 (polar (polar ppp (+ rot (* -0.5 pi)) mid_l1) rot (/ c 2.0))
p9 (polar
ppp
(+ rot (+ (* -0.5 pi) (atan (/ (+ r (/ c 2.0)) mid_l1))))
(+ wr1 w_f)
)
mid_l2 (sqrt (- (* wr1 wr1) (* 0.25 (* w_b w_b))))
mid_l3 (- wr1 mid_l2)
p10 (polar (polar start (+ rot pi) (/ l 2.0))
(+ rot (* 0.5 pi))
(/ df2 2.0)
)
p10 (polar (polar p10 rot (/ w_b 2.0))
(+ rot (* -0.5 pi))
(- w_f mid_l3)
)
p20 (polar p10 (+ rot pi) w_b)
p21 (polar
ppp
(+ rot (- (* -0.5 pi) (atan (/ (+ r (/ c 2.0)) mid_l1))))
(+ wr1 w_f)
)
p22 (polar p8 (+ rot pi) c)
p23 (polar p7 (+ rot pi) c)
p24 (polar p6 (+ rot pi) (+ c (* 2.0 r)))
p25 (polar p5 (+ rot pi) w_b)
p26 (polar p4 (+ rot pi) (- l (* 2.0 nn)))
p27 (polar p3 (+ rot pi) l)
p28 (polar p2 (+ rot pi) l)
p29 (polar p1 (+ rot pi) (- l (* 2.0 n1)))
p30 (polar (polar start (+ rot (* 0.5 pi)) (/ dd0 2.0))
(+ rot pi)
(/ (- l c) 2.0)
)
p31 (polar p30 (+ rot (* 0.5 pi)) (/ d0 2.0))
p32 (polar p31 (+ rot pi) c)
p33 (polar p32 (+ rot (* -0.5 pi)) d0)
p34 (polar p33 rot c)
p36 (polar p10 (+ rot (* 0.5 pi)) w_f)
p37 (polar p36
(+ rot (* 0.5 pi))
(- (/ (- dw df2) 2.0) mid_l3)
)
p38 (polar p37 (+ rot (* 0.75 pi)) (* (sqrt 2.0) n2))
mid_l2 (- (/ (+ d1 d2) 2.0) (/ dw 2.0))
mid_l3 (sqrt (- (* wr2 wr2) (* mid_l2 mid_l2)))
p39 (polar p38 (+ rot pi) (- (- (/ w_b 2.0) mid_l3) n2))
p40 (polar p39 (+ rot pi) (* mid_l3 2.0))
p41 (polar p38 (+ rot pi) (- w_b (* n2 2.0)))
p42 (polar p37 (+ rot pi) w_b)
p43 (polar p36 (+ rot pi) w_b)
p49 (polar p1 (+ rot (* -0.5 pi)) (/ (- d key_b) 2.0))
p50 (polar p49 (+ rot pi) (- l (* 2.0 n1)))
p52 (polar start (+ rot (* 0.5 pi)) (/ key_b 2.0))
p51 (polar p52 (+ rot pi) l)
pcenter (polar start (+ rot pi) (/ l 2.0))
pcenter (polar pcenter (+ rot (* 0.5 pi)) (/ (+ d1 d2) 2.0))
mid_l1 (/ w_b 2.0)
mid_l2 (/ d1 2.0)
mid_l3 (sqrt (- (* mid_l2 mid_l2) (* mid_l1 mid_l1)))
p53 (polar pcenter (+ rot (* -0.5 pi)) mid_l3)
p53 (polar p53 rot mid_l1)
p55 (polar pcenter (+ rot (* -0.5 pi)) (/ d1 2.0))
p54 (polar p53 (+ rot pi) (* mid_l1 2.0))
p61 (polar start rot 0.5)
)
)
)
(command "layer" "set" "draw" "")
(if (= ch_m 1)
(progn
(if (= wtype 1)
(progn
(command "pline" p29 p28 "w" 0.3 ""
p27 p26 p25 p24 "arc" "radius"
r p23 "line" p33 p34 p7 "arc"
"radius" r p6 "line" p5 p4
p3 p2 p1 "c"
)
(setq grp0 (ssadd (entlast)))
(command "pline"
p32
p22
"arc"
"radius"
r
p21
"line"
p20
pn9
pn8
p18
p17
p16
p15
p14
p13
(polar p12 (+ rot (* -0.5 pi)) (* sca 1.0))
(polar p12 rot (* sca 1.0))
p11
p10
p9
"arc"
"radius"
r
p8
"line"
p31
"c"
)
(setq grp1 (ssadd (entlast)))
(command "mirror" grp0 "" start p61 "n")
(setq grp0 (ssadd (entlast) grp0))
(command "mirror" grp1 "" start p61 "n")
(setq grp1 (ssadd (entlast) grp1))
(command "pline" p31 p32 p33 p34 "c")
(setq grp2 (ssadd (entlast)))
(command "mirror" grp2 "" start p61 "n")
(setq grp2 (ssadd (entlast) grp2))
(command "pline"
p44
p43
"arc"
"radius"
wr1
p36
"line"
p35
p48
p12
(polar p13 (+ rot (* 0.5 pi)) (* sca 1.0))
(polar p13 (+ rot pi) (* sca 1.0))
p14
p47
p46
p45
pn3
pn2
"c"
)
(setq grp3 (ssadd (entlast)))
(command "mirror" grp3 "" start p61 "n")
(setq grp3 (ssadd (entlast) grp3))
(command "pline" p11 p35 "")
(setq grp10 (ssadd (entlast)))
(command "mirror" grp10 "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p5 p10 "")
(setq grp10 (ssadd (entlast) grp10))
(command "mirror" (entlast) "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p20 p25 "")
(setq grp10 (ssadd (entlast) grp10))
(command "mirror" (entlast) "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p1 p29 p50 p49 "cl")
(setq grp14 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p51 p52 "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p2 start "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p28 (polar start (+ rot pi) l) "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p19 p44 "")
(setq grp4 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p18 p45 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p17 p46 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p16 p47 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn8 p19 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn3 p44 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline"
p14
(polar p46
(+ rot (* -0.5 pi))
(- (- (/ d4 2.0) (* sca 2.0)) (/ dist1 2.0))
)
""
)
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn1 pn5 pn6 pn10 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn2 pn1 pn4 pn3 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn8 pn7 pn10 pn9 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn2 p46 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn9 p17 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p43 p42 p41 p40 "arc"
"radius" wr2 p39 "line" p38 p37
p36 ""
)
(setq grp5 (ssadd (entlast)))
(command "mirror" grp5 "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "layer" "set" "bhatch" "")
(command "hatch" "ansi31" (* 1.0 sca) 0 grp0 "")
(setq grp6 (ssadd (entlast)))
(command "hatch" "ansi31" (* 1.0 sca) 0 grp1 "")
(setq grp6 (ssadd (entlast) grp6))
(command "hatch" "ansi31" (* 1.0 sca) 90 grp3 "")
(setq grp7 (ssadd (entlast)))
(command "layer" "s" "center" "")
(command "line"
(polar start rot (* sca 3.0))
(polar start (+ rot pi) (+ l (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
(polar p30 rot (* sca 3.0))
(polar p30 (+ rot pi) (+ c (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
(polar p15 rot (* sca 3.0))
(polar p15 (+ rot pi) (+ l0 (* sca 5.0)))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "arc" p54 p55 p53)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
pcenter
(polar pcenter (+ rot (* -0.5 pi)) (+ d1 d2))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "layer" "s" "draw" "")
)
)
(if (= wtype 2)
(progn
(command "pline"
p29
p28
"w"
0.3
""
p27
p26
p25
p24
"arc"
"radius"
r
p23
"line"
p30
(polar p30 rot c)
p12
p11
p7
"arc"
"radius"
r
p6
"line"
p5
p4
p3
p2
p1
"c"
)
(setq grp0 (ssadd (entlast)))
(command "pline"
(polar p13 (+ rot (* -0.5 pi)) (* sca 2.0))
(polar p13 (+ rot pi) (* sca 2.0))
p14
p19
(polar p19 rot c)
"c"
)
(setq grp1 (ssadd (entlast)))
(command "mirror" grp0 "" start p61 "n")
(setq grp0 (ssadd (entlast) grp0))
(command "mirror" grp1 "" start p61 "n")
(setq grp1 (ssadd (entlast) grp1))
(command "pline" p17 p18 p30 p19 "c")
(setq grp2 (ssadd (entlast)))
(command "mirror" grp2 "" start p61 "n")
(setq grp2 (ssadd (entlast) grp2))
(command "pline" p11 p15 "")
(setq grp2 (ssadd (entlast) grp2))
(command "mirror" (entlast) "" start p61 "n")
(setq grp2 (ssadd (entlast) grp2))
(command "pline"
p13
p14
p22
"arc"
"radius"
r
p21
"line"
p20
p43
"arc"
"radius"
wr1
p36
"line"
p10
p9
"arc"
"radius"
r
p8
"line"
p17
(polar p17 (+ rot pi) c)
"c"
)
(setq grp3 (ssadd (entlast)))
(command "mirror" grp3 "" start p61 "n")
(setq grp3 (ssadd (entlast) grp3))
(command "pline"
p15
(polar p16 rot (* sca 2.0))
(polar p16 (+ rot (* 0.5 pi)) (* sca 2.0))
(polar p18 (+ rot pi) c)
p18
"c"
)
(setq grp3 (ssadd (entlast) grp3))
(command "mirror" (entlast) "" start p61 "n")
(setq grp3 (ssadd (entlast) grp3))
(command "pline" p5 p10 "")
(setq grp10 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p20 p25 "")
(setq grp10 (ssadd (entlast) grp10))
(command "mirror" (entlast) "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p1 p29 p50 p49 "cl")
(setq grp14 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p51 p52 "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p2 start "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p28 (polar start (+ rot pi) l) "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p43 p42 p41 p40 "arc"
"radius" wr2 p39 "line" p38 p37
p36 ""
)
(setq grp5 (ssadd (entlast)))
(command "mirror" grp5 "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(bodraw)
(setq e3 (entlast))
(command "mirror" grp20 "" start p61 "n")
(setq e3 (entnext E3))
(while e3
(setq grp20 (ssadd e3 grp20))
(setq e3 (entnext e3))
)
(command "layer" "set" "bhatch" "")
(command "hatch" "ansi31" (* 1.0 sca) 0 grp0 "")
(setq grp6 (ssadd (entlast)))
(command "hatch" "ansi31" (* 1.0 sca) 0 grp1 "")
(setq grp6 (ssadd (entlast) grp6))
(command "hatch" "ansi31" (* 1.0 sca) 90 grp3 "")
(setq grp7 (ssadd (entlast)))
(command "layer" "s" "center" "")
(command "line"
(polar start rot (* sca 3.0))
(polar start (+ rot pi) (+ l (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
(polar ppp rot (* sca 3.0))
(polar ppp (+ rot pi) (+ (* 2.0 c) (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "arc" p54 p55 p53)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
pcenter
(polar pcenter (+ rot (* -0.5 pi)) (+ d1 d2))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "layer" "s" "draw" "")
)
)
(if (= wtype 3)
(progn
(command "pline"
p29
p28
"w"
0.3
""
p27
p26
(polar p25 (+ rot pi) r)
"arc"
"radius"
r
(polar p25 (+ rot (* 0.5 pi)) r)
"line"
p19
pn9
pn8
p18
p17
p16
p15
p14
p13
(polar p12 (+ rot (* -0.5 pi)) (* sca 1.0))
(polar p12 rot (* sca 1.0))
p11
(polar p5 (+ rot (* 0.5 pi)) r)
"arc"
"radius"
r
(polar p5 rot r)
"line"
p4
p3
p2
p1
"c"
)
(setq grp0 (ssadd (entlast)))
(command "mirror" grp0 "" start p61 "n")
(setq grp0 (ssadd (entlast) grp0))
(command "pline"
p44
p43
"arc"
"radius"
wr1
p36
"line"
p35
p48
p12
(polar p13 (+ rot (* 0.5 pi)) (* sca 1.0))
(polar p13 (+ rot pi) (* sca 1.0))
p14
p47
p46
p45
pn3
pn2
"c"
)
(setq grp3 (ssadd (entlast)))
(command "mirror" grp3 "" start p61 "n")
(setq grp3 (ssadd (entlast) grp3))
(command "pline" p11 p35 "")
(setq grp10 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p1 p29 p50 p49 "cl")
(setq grp14 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p51 p52 "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p2 start "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p28 (polar start (+ rot pi) l) "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p19 p44 "")
(setq grp4 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p18 p45 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p17 p46 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p16 p47 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn8 p19 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn3 p44 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline"
p14
(polar p46
(+ rot (* -0.5 pi))
(- (- (/ d4 2.0) (* sca 2.0)) (/ dist1 2.0))
)
""
)
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn1 pn5 pn6 pn10 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn2 pn1 pn4 pn3 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn8 pn7 pn10 pn9 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn2 p46 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn9 p17 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p43 p42 p41 p40 "arc"
"radius" wr2 p39 "line" p38 p37
p36 ""
)
(setq grp5 (ssadd (entlast)))
(command "mirror" grp5 "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "layer" "set" "bhatch" "")
(command "hatch" "ansi31" (* 1.0 sca) 0 grp0 "")
(setq grp6 (ssadd (entlast)))
(command "hatch" "ansi31" (* 1.0 sca) 90 grp3 "")
(setq grp7 (ssadd (entlast)))
(command "layer" "s" "center" "")
(command "line"
(polar start rot (* sca 3.0))
(polar start (+ rot pi) (+ l (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
(polar p15 rot (* sca 3.0))
(polar p15 (+ rot pi) (+ l0 (* sca 5.0)))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "arc" p54 p55 p53)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
pcenter
(polar pcenter (+ rot (* -0.5 pi)) (+ d1 d2))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "layer" "s" "draw" "")
)
)
(if (= wtype 4)
(progn
(command "pline" p25 "w" 0.3 "" p26
"arc""radius" nn p27 "line" p28
p29 p1 p2 p3 "arc" "radius"
nn p4 "line" p5 ""
)
(setq grp0 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp0 (ssadd (entlast) grp0))
(command "pline" p25 p24 "arc" "radius"
r p23 "line"p33 p34 p7
"arc" "radius" r p6 "line"
p5 ""
)
(setq grp0 (ssadd (entlast) grp0))
(command "mirror" (entlast) "" start p61 "n")
(setq grp0 (ssadd (entlast) grp0))
(command "pline"
p32
p22
"arc"
"radius"
r
p21
"line"
p20
pn9
pn8
p18
p17
p16
p15
p14
p13
(polar p12 (+ rot (* -0.5 pi)) (* sca 1.0))
(polar p12 rot (* sca 1.0))
p11
p10
p9
"arc"
"radius"
r
p8
"line"
p31
"c"
)
(setq grp1 (ssadd (entlast)))
(command "mirror" grp1 "" start p61 "n")
(setq grp1 (ssadd (entlast) grp1))
(command "pline" p31 p32 p33 p34 "c")
(setq grp2 (ssadd (entlast)))
(command "mirror" grp2 "" start p61 "n")
(setq grp2 (ssadd (entlast) grp2))
(command "pline"
p44
p43
"arc"
"radius"
wr1
p36
"line"
p35
p48
p12
(polar p13 (+ rot (* 0.5 pi)) (* sca 1.0))
(polar p13 (+ rot pi) (* sca 1.0))
p14
p47
p46
p45
pn3
pn2
"c"
)
(setq grp3 (ssadd (entlast)))
(command "mirror" grp3 "" start p61 "n")
(setq grp3 (ssadd (entlast) grp3))
(command "pline" p11 p35 "")
(setq grp10 (ssadd (entlast)))
(command "mirror" grp10 "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p1 p29 p50 p49 "cl")
(setq grp14 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p51 p52 "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p2 start "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p28 (polar start (+ rot pi) l) "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p19 p44 "")
(setq grp4 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p18 p45 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p17 p46 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" p16 p47 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn8 p19 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn3 p44 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline"
p14
(polar p46
(+ rot (* -0.5 pi))
(- (- (/ d4 2.0) (* sca 2.0)) (/ dist1 2.0))
)
""
)
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn1 pn5 pn6 pn10 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn2 pn1 pn4 pn3 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "pline" pn8 pn7 pn10 pn9 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn2 p46 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "line" pn9 p17 "")
(setq grp4 (ssadd (entlast) grp4))
(command "mirror" (entlast) "" start p61 "n")
(setq grp4 (ssadd (entlast) grp4))
(command "zoom" "all")
(command "pline"
p43
p58
p59
p40
"arc"
"radius"
wr2
p39
"line"
p60
(polar p58 rot w_b)
p36
""
)
(setq grp5 (ssadd (entlast)))
(command "mirror" grp5 "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "pline" p10 "arc" "radius" r
p56 "line"p57 "arc" "radius"
r p4 ""
)
(setq grp05 (ssadd (entlast)))
(setq grp5 (ssadd (entlast) grp5))
(command "mirror" (entlast) "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "mirror"
(entlast)
""
pcenter
(polar pcenter (+ rot (* 0.5 pi)) 1.0)
"n"
)
(setq grp5 (ssadd (entlast) grp5))
(command "mirror" (entlast) "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "pline" p5 p10 "")
(command "zoom" "window" p3 p9)
(command "trim"
grp05
""
(polar p5 (+ rot (* 0.5 pi)) (* sca 10))
""
)
(setq grp5 (ssadd (entlast) grp5))
(command "mirror" (entlast) "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "mirror"
(entlast)
""
pcenter
(polar pcenter (+ rot (* 0.5 pi)) 1.0)
"n"
)
(setq grp5 (ssadd (entlast) grp5))
(command "mirror" (entlast) "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "layer" "set" "bhatch" "")
(command "hatch" "ansi31" (* 1.0 sca) 0 grp0 "")
(setq grp6 (ssadd (entlast)))
(command "hatch" "ansi31" (* 1.0 sca) 0 grp1 "")
(setq grp6 (ssadd (entlast) grp6))
(command "hatch" "ansi31" (* 1.0 sca) 90 grp3 "")
(setq grp7 (ssadd (entlast)))
(command "layer" "s" "center" "")
(command "line"
(polar start rot (* sca 3.0))
(polar start (+ rot pi) (+ l (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
(polar p30 rot (* sca 3.0))
(polar p30 (+ rot pi) (+ c (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
(polar p15 rot (* sca 3.0))
(polar p15 (+ rot pi) (+ l0 (* sca 5.0)))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "arc" p54 p55 p53)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
pcenter
(polar pcenter (+ rot (* -0.5 pi)) (+ d1 d2))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "layer" "s" "draw" "")
)
)
(if (= wtype 5)
(progn
(command "pline" p29 p28 "w" 0.3 ""
p27 p26 p25 p24 "arc" "radius"
r p23 "line" p33 p34 p7 "arc"
"radius" r p6 "line" p5 p4
p3 p2 p1 "c"
)
(setq grp0 (ssadd (entlast)))
(command "mirror" grp0 "" start p61 "n")
(setq grp0 (ssadd (entlast) grp0))
(command "pline" p9 "arc" "radius" r
p8 "line"p31 p32 p22 "arc"
"radius" r p21 ""
)
(setq grp1 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp1 (ssadd (entlast) grp1))
(command "pline" p20 "arc" "radius" (+ wr1 w_f) p21 "")
(setq grp1 (ssadd (entlast) grp1))
(command "mirror" (entlast) "" start p61 "n")
(setq grp1 (ssadd (entlast) grp1))
(command "pline" p9 "arc" "radius" (+ wr1 w_f) p10 "")
(setq grp1 (ssadd (entlast) grp1))
(command "mirror" (entlast) "" start p61 "n")
(setq grp1 (ssadd (entlast) grp1))
(command "pline" p20 p43 "arc" "radius" wr1 p36 "line" p10
"")
(setq grp1 (ssadd (entlast) grp1))
(command "mirror" (entlast) "" start p61 "n")
(setq grp1 (ssadd (entlast) grp1))
(command "pline" p31 p32 p33 p34 "c")
(setq grp2 (ssadd (entlast)))
(command "mirror" grp2 "" start p61 "n")
(setq grp2 (ssadd (entlast) grp2))
(command "pline" p5 p10 "")
(setq grp10 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p20 p25 "")
(setq grp10 (ssadd (entlast) grp10))
(command "mirror" (entlast) "" start p61 "n")
(setq grp10 (ssadd (entlast) grp10))
(command "pline" p1 p29 p50 p49 "cl")
(setq grp14 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p51 p52 "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p2 start "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p28 (polar start (+ rot pi) l) "")
(setq grp14 (ssadd (entlast) grp14))
(command "mirror" (entlast) "" start p61 "n")
(setq grp14 (ssadd (entlast) grp14))
(command "pline" p43 p42 p41 p40 "arc"
"radius" wr2 p39 "line" p38 p37
p36 ""
)
(setq grp5 (ssadd (entlast)))
(command "mirror" grp5 "" start p61 "n")
(setq grp5 (ssadd (entlast) grp5))
(command "layer" "set" "bhatch" "")
(command "hatch" "ansi31" (* 1.0 sca) 0 grp0 "")
(setq grp6 (ssadd (entlast)))
(command "hatch" "ansi31" (* 1.0 sca) 0 grp1 "")
(setq grp6 (ssadd (entlast) grp6))
(command "layer" "s" "center" "")
(command "line"
(polar start rot (* sca 3.0))
(polar start (+ rot pi) (+ l (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast)))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
(polar p30 rot (* sca 3.0))
(polar p30 (+ rot pi) (+ c (* sca 3.0)))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "arc" p54 p55 p53)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "line"
pcenter
(polar pcenter (+ rot (* -0.5 pi)) (+ d1 d2))
""
)
(setq grp8 (ssadd (entlast) grp8))
(command "mirror" (entlast) "" start p61 "n")
(setq grp8 (ssadd (entlast) grp8))
(command "layer" "s" "draw" "")
)
)
)
)
(if (= ch_s 1)
(progn
(setq
mid_h1 (/ (sqrt (- (* d d) (* key_b key_b))) 2.0)
mid_h2 (/ (sqrt (- (* (+ d (* 2.0 n1)) (+ d (* 2.0 n1)))
(* key_b key_b)
)
)
2.0
)
p71 (polar (polar start1 (+ rot (* 0.5 pi)) mid_h1)
(+ rot pi)
(/ key_b 2.0)
)
p72 (polar (polar start1 (+ rot (* 0.5 pi)) mid_h2)
(+ rot pi)
(/ key_b 2.0)
)
p73 (polar
(polar start1 (+ rot (* 0.5 pi)) (+ (/ d 2.0) key_t1))
(+ rot pi)
(/ key_b 2.0)
)
p74 (polar p73 rot key_b)
p75 (polar p72 rot key_b)
p76 (polar p71 rot key_b)
)
(if (= wtype 1)
(progn
(setq
p77 (polar start1 (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p78 (polar start1 (+ rot (* 0.5 pi)) (/ d3 2.0))
p80 (polar start1 (+ rot (* 0.5 pi)) (- (/ d5 2.0) b))
p81 (polar start1 (+ rot (* 0.5 pi)) (/ d5 2.0))
p82 (polar start1 (+ rot (* 0.5 pi)) (- (/ dw 2.0) n2))
p83 (polar start1 (+ rot (* 0.5 pi)) (/ dw 2.0))
p84 (polar start1 (+ rot (* 0.5 pi)) (/ dd0 2.0))
p85 (polar start1 (+ rot (* 0.5 pi)) (/ d2 2.0))
p86 (polar p84 (+ rot (* 0.5 pi)) (/ d0 2.0))
p87 (polar start1
(+ rot (* 0.5 pi))
(- (/ d5 2.0) (* sca 2.0))
)
mid_l1 (/ (sqrt (- (* d4 d4) (* dist2 dist2))) 2.0)
p88 (polar (polar p87 (+ rot (* 0.75 pi)) (/ dist2 2.0))
(+ rot (* 0.25 pi))
mid_l1
)
p89 (polar (polar p87 (+ rot (* 0.75 pi)) (/ dist2 2.0))
(+ rot (* -0.75 pi))
mid_l1
)
p90 (polar (polar p87 (+ rot (* -0.25 pi)) (/ dist2 2.0))
(+ rot (* 0.25 pi))
mid_l1
)
p91 (polar (polar p87 (+ rot (* -0.25 pi)) (/ dist2 2.0))
(+ rot (* -0.75 pi))
mid_l1
)
)
(command "pline"
p71
"arc"
"radius"
(/ d 2.0)
(polar start1 (+ rot pi) (/ d 2.0))
p76
""
)
(setq grp15 (ssadd (entlast)))
(command "pline"
p72
"arc"
"radius"
(+ (/ d 2.0) n1)
(polar start1 (+ rot pi) (+ (/ d 2.0) n1))
p75
""
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline" p71 p72 p73 p74 p75 p76 "")
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p77
"arc"
"radius"
(- (/ d3 2.0) nn)
(polar start1 (+ rot pi) (- (/ d3 2.0) nn))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p78
"arc"
"radius"
(/ d3 2.0)
(polar start1 (+ rot pi) (/ d3 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p80
"arc"
"radius"
(- (/ d5 2.0) b)
(polar start1 (+ rot pi) (- (/ d5 2.0) b))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p81
"arc"
"radius"
(/ d5 2.0)
(polar start1 (+ rot pi) (/ d5 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p82
"arc"
"radius"
(- (/ dw 2.0) nn)
(polar start1 (+ rot pi) (- (/ dw 2.0) nn))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p83
"arc"
"radius"
(/ dw 2.0)
(polar start1 (+ rot pi) (/ dw 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p86
"arc"
"radius"
(/ d0 2.0)
(polar p86 (+ rot (* -0.5 pi)) d0)
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "pline"
(polar p87 (+ rot (* 0.5 pi)) (/ d4 2.0))
"arc"
"radius"
(/ d4 2.0)
(polar p87 (+ rot (* -0.5 pi)) (/ d4 2.0))
"cl"
)
(setq grp16 (ssadd (entlast)))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp16 (ssadd (entlast) grp16))
)
(setq e0 (entlast))
(setq jjj 0)
(repeat nm
(command
"zoom"
"window"
(polar
(polar start1
(+ rot (+ (* jjj (/ (* 2.0 pi) nm)) (* 0.5 pi)))
(- (/ d5 2.0) (* sca 2.0))
)
(+ rot (* -0.25 pi))
d4
)
(polar
(polar start1
(+ rot (+ (* jjj (/ (* 2.0 pi) nm)) (* 0.5 pi)))
(- (/ d5 2.0) (* sca 2.0))
)
(+ rot (* 0.75 pi))
d4
)
)
(command
"trim"
grp16
""
(polar start1
(+ rot (+ (* jjj (/ (* 2.0 pi) nm)) (* 0.5 pi)))
(/ d5 2.0)
)
""
)
(setq grp15 (ssadd (entlast) grp15))
(setq jjj (+ jjj 1))
)
(setq e0 (ENTNEXT E0))
(while e0
(setq grp15 (ssadd e0 grp15))
(setq e0 (ENTNEXT E0))
)
(command "zoom" "all")
(command "arc"
(polar p87 rot (/ (- d4 dist1) 2.0))
(polar p87 (+ rot (* 0.5 pi)) (/ (- d4 dist1) 2.0))
(polar p87 (+ rot (* -0.5 pi)) (/ (- d4 dist1) 2.0))
)
(setq grp17 (ssadd (entlast)))
(command "pline" p88 p89 "")
(setq grp17 (ssadd (entlast) grp17))
(command "pline" p90 p91 "")
(setq grp17 (ssadd (entlast) grp17))
(command "circle" p87 "D" d4)
(setq grp17 (ssadd (entlast) grp17))
(setq e1 (entlast))
(command "array" grp17 "" "p" start1 nm "" "n")
(setq e1 (ENTNEXT E1))
(while e1
(setq grp17 (ssadd e1 grp17))
(setq e1 (ENTNEXT E1))
)
(command "layer" "s" "center" "")
(command "line"
(polar start1 rot (+ (/ dw 2.0) 4.0))
(polar start1 (+ rot pi) (+ (/ dw 2.0) 4.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(command
"line"
(polar start1 (+ rot (* 0.5 pi)) (+ (/ dw 2.0) 4.0))
(polar start1 (+ rot (* -0.5 pi)) (+ (/ dw 2.0) 4.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(command "circle" start1 (/ dd0 2.0))
(setq grp15 (ssadd (entlast) grp15))
(command "circle" start1 (/ d2 2.0))
(setq grp15 (ssadd (entlast) grp15))
(command "line"
(polar p86 (+ rot (* 0.5 pi)) 3.0)
(polar p86 (+ rot (* -0.5 pi)) (+ d0 3.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "line"
(polar p87 rot (+ (/ d4 2.0) 3.0))
(polar p87 (+ rot pi) (+ (/ d4 2.0) 3.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "line"
(polar p87 (+ rot (* 0.5 pi)) (+ (/ d4 2.0) 3.0))
(polar p87 (+ rot (* -0.5 pi)) (+ (/ d4 2.0) 3.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "layer" "s" "draw" "")
)
)
(if (= wtype 2)
(progn
(BODRAW)
(setq
p77 (polar start1 (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p78 (polar start1 (+ rot (* 0.5 pi)) (/ d3 2.0))
p80 (polar start1
(+ rot (* 0.5 pi))
(- (cadr p10) (cadr start1))
)
p81 (polar start1 (+ rot (* 0.5 pi)) (/ d5 2.0))
p82 (polar start1 (+ rot (* 0.5 pi)) (- (/ dw 2.0) n2))
p83 (polar start1 (+ rot (* 0.5 pi)) (/ dw 2.0))
p85 (polar start1 (+ rot (* 0.5 pi)) (/ d2 2.0))
p86 (polar start1 (+ rot (* 0.5 pi)) (- (/ df2 2.0) a))
)
(command "pline"
p71
"arc"
"radius"
(/ d 2.0)
(polar start1 (+ rot pi) (/ d 2.0))
p76
""
)
(setq grp15 (ssadd (entlast)))
(command "pline"
p72
"arc"
"radius"
(+ (/ d 2.0) n1)
(polar start1 (+ rot pi) (+ (/ d 2.0) n1))
p75
""
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline" p71 p72 p73 p74 p75 p76 "")
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p77
"arc"
"radius"
(- (/ d3 2.0) nn)
(polar start1 (+ rot pi) (- (/ d3 2.0) nn))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p78
"arc"
"radius"
(/ d3 2.0)
(polar start1 (+ rot pi) (/ d3 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command
"pline"
p80
"arc"
"radius"
(- (cadr p10) (cadr start1))
(polar start1 (+ rot pi) (- (cadr p10) (cadr start1)))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p82
"arc"
"radius"
(- (/ dw 2.0) nn)
(polar start1 (+ rot pi) (- (/ dw 2.0) nn))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p83
"arc"
"radius"
(/ dw 2.0)
(polar start1 (+ rot pi) (/ dw 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p86
"arc"
"radius"
(- (/ df2 2.0) a)
(polar start1 (+ rot pi) (- (/ df2 2.0) a))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
(polar p81 (+ rot (* 0.5 pi)) (/ bdd0 2.0))
"arc"
"radius"
(/ bdd0 2.0)
(polar p81 (+ rot pi) (/ bdd0 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(setq brr2 (/ bdd0 (sqrt 3.0)))
(setq pbs1 (polar p81 (+ rot (* 0.5 pi)) brr2)
pbs2 (polar p81 (+ rot (* (/ 5.0 6.0) pi)) brr2)
pbs3 (polar p81 (+ rot (* (/ 7.0 6.0) pi)) brr2)
pbs4 (polar p81 (+ rot (* -0.5 pi)) brr2)
pbs5 (polar p81 (+ rot (* (/ -1.0 6.0) pi)) brr2)
pbs6 (polar p81 (+ rot (* (/ 1.0 6.0) pi)) brr2)
)
(command "pline" pbs1 pbs2 pbs3 pbs4 pbs5 pbs6 "cl")
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "layer" "s" "center" "")
(command "line"
(polar start1 rot (+ (/ dw 2.0) 4.0))
(polar start1 (+ rot pi) (+ (/ dw 2.0) 4.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(command
"line"
(polar start1 (+ rot (* 0.5 pi)) (+ (/ dw 2.0) 4.0))
(polar start1 (+ rot (* -0.5 pi)) (+ (/ dw 2.0) 4.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(command "circle" start1 (/ d5 2.0))
(setq grp15 (ssadd (entlast) grp15))
(command "circle" start1 (/ d2 2.0))
(setq grp15 (ssadd (entlast) grp15))
(command "line"
(polar p81 (+ rot (* 0.5 pi)) (+ (/ d4 2.0) 3.0))
(polar p81 (+ rot (* -0.5 pi)) (+ (/ d4 2.0) 3.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "layer" "s" "draw" "")
)
)
(if (= wtype 3)
(progn
(setq
p77 (polar start1 (+ rot (* 0.5 pi)) (- (/ d3 2.0) nn))
p78 (polar start1 (+ rot (* 0.5 pi)) (/ d3 2.0))
p81 (polar start1 (+ rot (* 0.5 pi)) (/ d5 2.0))
p82 (polar start1 (+ rot (* 0.5 pi)) (- (/ dw 2.0) n2))
p83 (polar start1 (+ rot (* 0.5 pi)) (/ dw 2.0))
p85 (polar start1 (+ rot (* 0.5 pi)) (/ d2 2.0))
p87 (polar start1
(+ rot (* 0.5 pi))
(- (/ d5 2.0) (* sca 2.0))
)
mid_l1 (/ (sqrt (- (* d4 d4) (* dist2 dist2))) 2.0)
p88 (polar (polar p87 (+ rot (* 0.75 pi)) (/ dist2 2.0))
(+ rot (* 0.25 pi))
mid_l1
)
p89 (polar (polar p87 (+ rot (* 0.75 pi)) (/ dist2 2.0))
(+ rot (* -0.75 pi))
mid_l1
)
p90 (polar (polar p87 (+ rot (* -0.25 pi)) (/ dist2 2.0))
(+ rot (* 0.25 pi))
mid_l1
)
p91 (polar (polar p87 (+ rot (* -0.25 pi)) (/ dist2 2.0))
(+ rot (* -0.75 pi))
mid_l1
)
)
(command "pline"
p71
"arc"
"radius"
(/ d 2.0)
(polar start1 (+ rot pi) (/ d 2.0))
p76
""
)
(setq grp15 (ssadd (entlast)))
(command "pline"
p72
"arc"
"radius"
(+ (/ d 2.0) n1)
(polar start1 (+ rot pi) (+ (/ d 2.0) n1))
p75
""
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline" p71 p72 p73 p74 p75 p76 "")
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p77
"arc"
"radius"
(- (/ d3 2.0) nn)
(polar start1 (+ rot pi) (- (/ d3 2.0) nn))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p78
"arc"
"radius"
(/ d3 2.0)
(polar start1 (+ rot pi) (/ d3 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p81
"arc"
"radius"
(/ d5 2.0)
(polar start1 (+ rot pi) (/ d5 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p82
"arc"
"radius"
(- (/ dw 2.0) nn)
(polar start1 (+ rot pi) (- (/ dw 2.0) nn))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
p83
"arc"
"radius"
(/ dw 2.0)
(polar start1 (+ rot pi) (/ dw 2.0))
"cl"
)
(setq grp15 (ssadd (entlast) grp15))
(command "pline"
(polar p87 (+ rot (* 0.5 pi)) (/ d4 2.0))
"arc"
"radius"
(/ d4 2.0)
(polar p87 (+ rot (* -0.5 pi)) (/ d4 2.0))
"cl"
)
(setq grp16 (ssadd (entlast)))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp16 (ssadd (entlast) grp16))
)
(setq e0 (entlast))
(setq jjj 0)
(repeat nm
(command
"zoom"
"window"
(polar
(polar start1
(+ rot (+ (* jjj (/ (* 2.0 pi) nm)) (* 0.5 pi)))
(- (/ d5 2.0) (* sca 2.0))
)
(+ rot (* -0.25 pi))
d4
)
(polar
(polar start1
(+ rot (+ (* jjj (/ (* 2.0 pi) nm)) (* 0.5 pi)))
(- (/ d5 2.0) (* sca 2.0))
)
(+ rot (* 0.75 pi))
d4
)
)
(command
"trim"
grp16
""
(polar start1
(+ rot (+ (* jjj (/ (* 2.0 pi) nm)) (* 0.5 pi)))
(/ d5 2.0)
)
""
)
(setq grp15 (ssadd (entlast) grp15))
(setq jjj (+ jjj 1))
)
(setq e0 (ENTNEXT E0))
(while e0
(setq grp15 (ssadd e0 grp15))
(setq e0 (ENTNEXT E0))
)
(command "zoom" "all")
(command "arc"
(polar p87 rot (/ (- d4 dist1) 2.0))
(polar p87 (+ rot (* 0.5 pi)) (/ (- d4 dist1) 2.0))
(polar p87 (+ rot (* -0.5 pi)) (/ (- d4 dist1) 2.0))
)
(setq grp17 (ssadd (entlast)))
(command "pline" p88 p89 "")
(setq grp17 (ssadd (entlast) grp17))
(command "pline" p90 p91 "")
(setq grp17 (ssadd (entlast) grp17))
(command "circle" p87 "D" d4)
(setq grp17 (ssadd (entlast) grp17))
(setq e1 (entlast))
(command "array" grp17 "" "p" start1 nm "" "n")
(setq e1 (ENTNEXT E1))
(while e1
(setq grp17 (ssadd e1 grp17))
(setq e1 (ENTNEXT E1))
)
(command "layer" "s" "center" "")
(command "line"
(polar start1 rot (+ (/ dw 2.0) 4.0))
(polar start1 (+ rot pi) (+ (/ dw 2.0) 4.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(command
"line"
(polar start1 (+ rot (* 0.5 pi)) (+ (/ dw 2.0) 4.0))
(polar start1 (+ rot (* -0.5 pi)) (+ (/ dw 2.0) 4.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(command "circle" start1 (/ d2 2.0))
(setq grp15 (ssadd (entlast) grp15))
(command "line"
(polar p87 rot (+ (/ d4 2.0) 3.0))
(polar p87 (+ rot pi) (+ (/ d4 2.0) 3.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "line"
(polar p87 (+ rot (* 0.5 pi)) (+ (/ d4 2.0) 3.0))
(polar p87 (+ rot (* -0.5 pi)) (+ (/ d4 2.0) 3.0))
""
)
(setq grp15 (ssadd (entlast) grp15))
(repeat nm
(command "array" (entlast) "" "p" start1 2 (/ 360 nm) "")
(setq grp15 (ssadd (entlast) grp15))
)
(command "layer" "s" "draw" "")
)
)
(if (= wtype 4)
(progn
(setq
p78 (polar start1 (+ rot (* 0.5 pi)) (/ d3 2.0))
p80 (polar start1 (+ rot (* 0.5 pi)) (- (/ d5 2.0) b))
p81 (polar start1 (+ rot (* 0.5 pi)) (/ d5 2.0))
p82 (polar start1 (+ rot (* 0.5 pi)) (- (/ dw 2.0) n2))
p83 (polar start1 (+ rot (* 0.5 pi)) (/ dw 2.0))
p84 (polar start1 (+ rot (* 0.5 pi)) (/ dd0 2.0))
p85 (polar start1 (+ rot (* 0.5 pi)) (/ d2 2.0))
p86 (polar p84 (+ rot (* 0.5 pi)) (/ d0 2.0))
p87 (polar start1
(+ rot (* 0.5 pi))
(- (/ d5 2.0) (* sca 2.0))
)
mid_l1 (/ (sqrt (- (* d4 d4) (* dist2 dist2))) 2.0)
p88 (polar (polar p87 (+ rot (* 0.75 pi)) (/ dist2 2.0))
(+ rot (* 0.25 pi))
mid_l1
)
p89 (polar (polar p87 (+ rot (* 0.75 pi)) (/ dist2 2.0))
(+ rot (* -0.75 pi))
mid_l1
)
p90 (polar (polar p87 (+ rot (* -0.25 pi)) (/ dist2 2.0))
(+ rot (* 0.25 pi))
mid_l1
)
p91 (polar (polar p87 (+ rot (* -0.25 pi)) (/ dist2 2.0))
(+ rot (* -0.75 pi))
mid_l1
)
rrr (- (/ d5 2.0) b)
ss (* 0.8 w_f)
mid_l2 (sqrt (- (* rrr rrr)
(* (+ (/ ss 2.0) r) (+ (/ ss 2.0) r))
)
)
mid2 (sqrt (- (* rrr rrr) (* (/ ss 2.0) (/ ss 2.0))))
alph2(atan (/ (+ (/ ss 2.0) r) mid_l2))
mid_l3 (sqrt (- (* (/ d3 2.0) (/ d3 2.0))
(* (+ (/ ss 2.0) r) (+ (/ ss 2.0) r))
)
)
mid3 (sqrt (- (* (/ d3 2.0) (/ d3 2.0))
(* (/ ss 2.0) (/ ss 2.0))
)
)
alph3(atan (/ (+ (/ ss 2.0) r) mid_l3))
pr1 (polar start1 (+ rot (- (* 0.5 pi) alph2)) rrr)
pr2 (polar (polar (polar start1 (+ rot (* 0.5 pi)) mid2)
rot
(/ ss 2.0)
)
(+ rot (* -0.5 pi))
r
)
pr3 (polar pr2
(+ rot (* -0.5 pi))
(- (- mid2 mid3) (* r 2.0))
)
pr4 (polar start1 (+ rot (- (* 0.5 pi) alph3)) (/ d3 2.0))
pr8 (polar
start1
(+
你的代码实在太长了
要仔细分析你的代码需要很长时间,而且代码很大部分是没有问题的。你认为你的程序哪部分真正需要分析?能不能仅将部分代码帖出来?呵呵
能写出这样的程序,还有什么要分析的呢?你都应该可以给别人分析了吧!
呵呵
呵呵,不会简化以下你的程序吗?
呵呵,不会简化以下你的程序吗?相同的或是近似的.做“子程序”
晕,这是不是用来画裹脚布的呀!
你的程序拷完了吗,
怎么了,不知道你的程序写完了没有呀,拷在lisp编辑器上去看看,
根本没有写完呀
页:
[1]