|
;;; 绘制A冲
(defun c:ac (/ cmd os lay zt l1 l2 d1 d2 d3 d4 p0 p1 p2 p3 p4 x y ip p5 p6
p7 p8 p9 p10 p11 p12 p13 aa ab sa s1 s2 s3 s4 s5
)
(setq cmd (getvar "cmdecho"))
(setq os (getvar "osmode"))
(setq lay (getvar "clayer"))
(setq zt (getvar "textstyle"))
(prompt "\n绘制A冲")
(setq l1 (getreal "\n请输入A冲总长: "))
(setq l2 (getreal "\n请输入刃口长度: "))
(setq d1 (getreal "\n请输入A冲直径: "))
(setq d2 (getreal "\n请输入刃口直径: "))
(setq d3 (+ d1 2))
(setq d4 5.0)
(setvar "cmdecho" 0)
(setvar "osmode" 6335)
(command "_.undo" "group")
(setq p0 (getpoint "\n请指定起始绘制点: "))
(setvar "osmode" 0)
(setq p1 (list (+ (car p0) (/ d3 2)) (cadr p0)))
(setq p2 (list (- (car p0) (/ d3 2)) (- (cadr p0) d4)))
(setq p3 (list (+ (car p0) (/ d2 2)) (- (cadr p0) l1)))
(setq p4 (polar p3 (* pi 0.5) l2))
(setq x (/ (- d1 d2) 2))
(setq y (expt (- (* 20 x) (* x x)) 0.5))
(setq ip (polar p4 0 x))
(setq p5 (polar ip (* pi 0.5) y))
(setq p6 (polar p2 0 (- d3 (/ (- d3 d1) 2))))
(setq p7 (polar p0 (* pi 0.5) 2))
(setq p8 (polar p0 (* pi 1.5) (+ l1 2)))
(setvar "clayer" "0")
(command "_.rectang" p1 p2 "_.pline" p3 p4 "a" p5 "l" p6 "")
(setq aa (entlast))
(command "_.mirror" aa "" p7 p8 "")
(command "_.line" p3 (setq p10 (polar p3 pi d2))
""
)
(setq ab (entlast))
(command "pedit" ab "" "j" "all" "" "")
(command "_.line" p4 (setq p11 (polar p4 pi d2))
"" "_.line" p5 (setq p12 (polar p5 pi d1))
""
)
(if (not (tblsearch "layer" "center"))
(command "-layer" "m" "center" "c" "1" "center" "l" "center" "center" "")
)
(setvar "clayer" "center")
(command "_.line" p7 p8 "")
(if (not (tblsearch "layer" "dim"))
(command "-layer" "m" "dim" "c" "4" "dim" "")
)
(command "arc" p5 "e" p4 "R" "10")
(setq sa (entlast))
(setq s1 (entget sa))
(setq s2 (cdr (assoc 50 s1)))
(setq s3 (cdr (assoc 51 s1)))
(setq s4 (/ (- s3 s2) 2))
(setq s5 (- pi s4))
(command "erase" sa "")
(setq p13 (polar p4 0 10))
(setvar "clayer" "dim")
(command "dim" "ver" (setq p9 (polar p1 pi d3))
p10 (polar p9 pi 7) "" "EXIT"
)
(command "dim" "ver" p1 (polar p2 0 d3) (polar p1 0 5) "" "EXIT")
(command "dim" "ver" p11 p10 (polar p10 pi 3) "" "EXIT")
(command "dim" "hor" p10 p3 (polar p3 (* pi 1.5) 5) "%%C<>" "exit")
(command "dim" "hor" p12 p5 (polar p5 (* pi 0.5) 5) "%%C<>" "exit")
(command "leader" (polar p13 s5 10) "@7,-4" "" "R10" "")
(command "_.undo" "end")
(setvar "textstyle" zt)
(setvar "osmode" os)
(setvar "clayer" lay)
(setvar "cmdecho" cmd)
(prompt "\nA冲已绘制完毕!")
(princ)
) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|