(defun c:zqzq (/ ip d len dlist pitch)
(command "ucs" "w")
(load "util")
(graphscr)(command "osnap" "off")
(if (and (setq ip '(0 0 0)
l (getreal "\nInput len : ")

)
)
(progn
(zqzq ip l)
)
)
(princ)
)
(defun zqzq (ip l / )
(zqzq01 ip l)
(setq q1 (entlast))
(zqzq02 ip l)
(setq q2 (entlast))
(zqzq03 ip l)
(setq q3 (entlast))
(zqzq3-5 ip l)
(setq q3-5 (entlast))
;;; (command "union" "all" "")
(princ)
)
;;;
(defun zqzq01 (ip l / )
(setq pi/2 (/ pi 2.0)
l/3 (/ l 3.0)
l/6 (/ l 6.0)
l/8 (/ l 8.0)
l/12 (/ l 12.0)
l/15 (/ l 15.0)
l/20 (/ l 20.0)
l/30 (/ l 30.0)
l/40 (/ l 40.0)
l/50 (/ l 50.0)
l/60 (/ l 60.0)
l/70 (/ l 70.0)
p0 (polar ip 0.0 l/6)
p1 (polar p0 pi/2 l/6)
p2 (polar p1 pi l/3)
p3 (polar p2 (* 1.5 pi) l/3)
p4 (polar p3 0.0 l/3)
)
(command "pline" p1 p2 p3 p4 p1 "")
(command "extrude" (entlast) "" l/20 "")
(setq k1 (entlast))
(command "cylinder" ip (* 0.23 l) l/20)
(command "intersect" k1 (entlast) "")
(command "ucs" "o" (list (+ 0 l/8) (+ 0 l/8) (+ 0 l/20)))
(command "cylinder" '(0 0 0) l/30 l/60)
(setq e1 (entlast))
(command "ucs" "o" (list 0 0 (+ 0 l/60)))
(setq ip2 '(0 0 0)
a30 (dtr 30.0)
a60 (dtr 60.0)
p5 (polar ip2 0.0 l/40)
p6 (polar ip2 a60 l/40)
)
(command "polygon" 6 "e" p5 p6)
(command "extrude" (entlast) "" l/60 "")
(setq e2 (entlast))
(command "ucs" "y" "")
(setq b0 '(0 0 0)
b1 (polar b0 pi l/60)
b2 (polar b1 pi/2 l/50)
c (* (- l/40 l/50) (tan a30))
b4 (polar b1 pi/2 l/40)
b3 (polar b4 0.0 c)
)
(command "pline" b2 b3 b4 "c")
(command "revolve" (entlast) "" b0 b1 "")
(command "subtract" e2 "" (entlast) "")
(command "union" e1 (entlast) "")
(setq bolt (entlast))
(command "ucs" "w")
(command "ucs" "o" (list 0 0 (+ 0 l/20)))
(command "mirror" bolt "" '(0 0) '(0 1) "" "")
(command "mirror" bolt "" '(0 0) '(1 0) "" "")
(command "mirror" bolt "" '(0 0) '(-1 1) "" "")
(command "ucs" "w")
(command "ucs" "o" (list 0 0 (+ 0 l/20)))
(command "ucs" "x" "")
(setq r0 '(0 0 0)
r1 (polar r0 pi/2 l/20)
r2 (polar r1 0.0 l/30)
r30 (polar r0 0.0 l/12)
r3 (polar r30 pi/2 l/40)
r4 (polar r0 0.0 (- l/6 l/30))
r5 (polar r0 0.0 l/6)
)
(command "pline" r3 "a" "r" l/15 r4 "l" r0 r1 r2 "")
(setq e3 (entlast))
(command "pline" r3 "a" "r" l/15 r2 "l" r2 "")
(command "region" e3 (entlast) "")
(command "revolve" (entlast) "" r0 r1 "")
(princ)
)
;;;
(defun zqzq02 (ip l / )
(command "ucs" "w")
(setq l/10 (/ l 10.0))
(command "ucs" "o" (list 0 0 (+ 0 l/10)))
(setq l/20 (/ l 20.0)
l/36 (/ l 36.0)
l/180 (/ l 180.0)
)
(command "cylinder" '(0 0 0) l/36 l/20)
(command "ucs" "o" (list 0 0 (+ 0 l/20)))
(command "ucs" "x" "")
(setq pi/2 (/ pi 2.0)
3l/20 (/ (* l 3.0) 20.0)
ps '(0 0 0)
p0 (polar ps 0.0 l/36)
b0 (polar ps 0.0 (- l/36 l/180))
p1 (polar p0 pi/2 l/180)
b1 (polar b0 pi/2 l/180)
p2 (polar p1 pi/2 l/180)
b2 (polar b1 pi/2 l/180)
p3 (polar p2 pi/2 l/180)
b3 (polar b2 pi/2 l/180)
p4 (polar p3 pi/2 l/180)
b4 (polar b3 pi/2 l/180)
p5 (polar p4 pi/2 l/180)
b5 (polar b4 pi/2 l/180)
p6 (polar p5 pi/2 l/180)
b6 (polar b5 pi/2 l/180)
p7 (polar p6 pi/2 l/180)
b7 (polar b6 pi/2 l/180)
p8 (polar p7 pi/2 l/180)
b8 (polar b7 pi/2 l/180)
p9 (polar p8 pi/2 l/180)
b9 (polar b8 pi/2 l/180)
p10 (polar p9 pi/2 l/180)
b10 (polar b9 pi/2 l/180)
p11 (polar p10 pi/2 l/180)
b11 (polar b10 pi/2 l/180)
p12 (polar p11 pi/2 l/180)
b12 (polar b11 pi/2 l/180)
p13 (polar p12 pi/2 l/180)
b13 (polar b12 pi/2 l/180)
p14 (polar p13 pi/2 l/180)
b14 (polar b13 pi/2 l/180)
p15 (polar p14 pi/2 l/180)
b15 (polar b14 pi/2 l/180)
p16 (polar p15 pi/2 l/180)
b16 (polar b15 pi/2 l/180)
p17 (polar p16 pi/2 l/180)
b17 (polar b16 pi/2 l/180)
p18 (polar p17 pi/2 l/180)
b18 (polar b17 pi/2 l/180)
p19 (polar p18 pi/2 l/180)
b19 (polar b18 pi/2 l/180)
p20 (polar p19 pi/2 l/180)
b20 (polar b19 pi/2 l/180)
p21 (polar p20 pi/2 l/180)
b21 (polar b20 pi/2 l/180)
p22 (polar p21 pi/2 l/180)
b22 (polar b21 pi/2 l/180)
p23 (polar p22 pi/2 l/180)
b23 (polar b22 pi/2 l/180)
p24 (polar p23 pi/2 l/180)
b24 (polar b23 pi/2 l/180)
p25 (polar p24 pi/2 l/180)
b25 (polar b24 pi/2 l/180)
p26 (polar p25 pi/2 l/180)
b26 (polar b25 pi/2 l/180)
p27 (polar p26 pi/2 l/180)
b27 (polar b26 pi/2 l/180)
pe (polar ps pi/2 3l/20)
)
(command "pline" ps b0 p0 p1 b1 b2 p2 p3 b3 b4 p4
p5 b5 b6 p6 p7 b7 b8 p8
p9 b9 b10 p10 p11 b11 b12 p12
p13 b13 b14 p14 p15 b15 b16 p16
p17 b17 b18 p18 p19 b19 b20 p20
p21 b21 b22 p22 p23 b23 b24 p24
p25 b25 b26 p26 p27 b27
pe ps ""
)
(command "revolve" (entlast) "" ps pe "")
(princ)
)
;;;
(defun zqzq03 (ip l / )
(command "ucs" "w")
(setq 3l/10 (/ (* 3.0 l) 10.0)
l/20 (/ l 20.0)
3l/20 (/ (* l 3.0) 20.0)
)
(command "ucs" "o" (list 0 0 (+ 0 3l/10)))
(setq l/36 (/ l 36.0)
pi/2 (/ pi 2.0)
a45 (dtr 45.0)
a30 (dtr 30.0)
p0 '(0 0 0)
p1 (polar p0 0.0 l/20)
p2 (polar p0 a45 l/20)
)
(command "polygon" 8 "e" p1 p2)
(command "extrude" (entlast) "" 3l/20 "")
(setq e1 (entlast))
(command "ucs" "y" "")
(setq p0 '(0 0 0)
pe '(-1 0 0)
p3 (polar p0 pi/2 (- l/20 l/36))
p4 (polar p0 pi/2 l/20)
c (* (- l/20 l/36) (tan a30))
p5 (polar p4 pi c)
)
(command "pline" p3 p4 p5 "c")
(command "revolve" (entlast) "" p0 pe "")
(command "subtract" e1 "" (entlast) "")
(setq e1 (entlast))
;;; (command "union" e1 (entlast) "")
(command "ucs" "w")
(setq 4l/10 (/ (* l 4.0) 10.0))
(command "ucs" "o" (list 0 0 (+ 0 4l/10)))
(setq p0 '(0 0 0)
ps (polar p0 a30 (+ l/20 l/36))
)
(command "ucs" "o" ps)
(command "ucs" "z" "22.5")
(command "ucs" "y" "270")
(setq ip2 '(0 0 0)
l/100 (/ l 100.0)
l/80 (/ l 80.0)
l/60 (/ l 60.0)
a30 (dtr 30.0)
a60 (dtr 60.0)
a120 (dtr 120.0)
t5 (polar ip2 0.0 l/80)
t6 (polar ip2 a60 l/80)
)
(command "polygon" 6 "e" t5 t6)
(command "extrude" (entlast) "" l/60 "")
(setq e2 (entlast))
(command "ucs" "x" "")
(setq t0 '(0 0 0)
ts '(0 1 0)
t1 (polar t0 0.0 l/100)
t2 (polar t0 0.0 l/80)
cc (* (- l/80 l/100) (tan a30))
t3 (polar t2 pi/2 cc)
)
(command "pline" t1 t2 t3 t1 "")
(command "revolve" (entlast) "" t0 ts "")
(command "subtract" e2 "" (entlast) "")
(command "ucs" "o" (list 0 (+ 0 l/60) 0))
(setq l/400 (/ l 400)
j0 '(0 0 0)
j1 (polar j0 0.0 l/100)
j2 (polar j1 a120 l/400)
j3 (polar j2 a60 l/400)
j4 (polar j3 a120 l/400)
j5 (polar j4 a60 l/400)
j6 (polar j5 a120 l/400)
j7 (polar j6 a60 l/400)
j8 (polar j7 a120 l/400)
j9 (polar j8 a60 l/400)
je (polar j9 pi l/100)
)
(command "pline" j0 j1 j2 j3 j4 j5 j6 j7 j8 j9 je j0 "")
(command "revolve" (entlast) "" j0 je "")
(setq e3 (entlast))
(command "union" e1 e2 e3 "")
(princ)
)
;;;
(defun zqzq3-5 (ip l / )
(command "ucs" "w")
(setq 9l/20 (/ (* l 9.0) 20.0))
(command "ucs" "o" (list 0 0 (+ 0 9l/20)))
(command "ucs" "x" "")
(setq 3l/20 (/ (* l 3.0) 20.0)
l/36 (/ l 36.0)
l/100 (/ l 100.0)
pi/2 (/ pi 2.0)
b0 '(0 0 0)
b1 (polar b0 pi/2 3l/20)
b2 (polar b1 0.0 (+ l/36 l/100))
b4 (polar b0 0.0 l/36)
b3 (polar b4 pi/2 (- 3l/20 l/100))
)
(command "pline" b0 b1 b2 "a" "r" l/100 b3 "l" b4 b0 "")
(command "revolve" (entlast) "" b0 b1 "")

)
arrow
arrow
    全站熱搜

    ZZZZZZZZZ9 發表在 痞客邦 留言(0) 人氣()