请帮忙整合成一个命令
只因为自己还是没学会怎么改进 一个命令 变了N个 能否帮帮忙,改进一下 整合成 T8帮忙改成 当距离 =3mm <3mm 时 运行T7 当距离 =8mm <8mm 时 运行T6
当距离 =20mm <20mm >20mm时 都运行T5
(defun c:T5()
(setq p1(getpoint "\n请输入基准点:")
p0(getpoint p1 "\n请输入第二点:"))
(setq oldosmode (getvar "osmode"))
(setvar "osmode" 0)
(setq
l0(distance p1 p0)
ang(angle p0 p1)
ang1(+ ANG (* 0.5 PI))
ang2(- ANG (* 0.5 PI))
P12(polar p1 ang1 (* 0.1 l0));夹角大小调整此处0.2的值
P13(polar p1 ang2 (* 0.1 l0));夹角大小调整此处0.2的值
)
(command "Pline" p12 p0 P13 "");箭头的宽度是直线部分的3倍
(setvar "osmode" oldosmode)
(PRINC)
)
(defun c:T6()
(setq p1(getpoint "\n请输入基准点:")
p0(getpoint p1 "\n请输入第二点:"))
(setq oldosmode (getvar "osmode"))
(setvar "osmode" 0)
(setq
l0(distance p1 p0)
ang(angle p0 p1)
ang1(+ ANG (* 0.5 PI))
ang2(- ANG (* 0.5 PI))
P12(polar p1 ang1 (* 0.15 l0));夹角大小调整此处0.2的值
P13(polar p1 ang2 (* 0.15 l0));夹角大小调整此处0.2的值
)
(command "Pline" p12 p0 P13 "");箭头的宽度是直线部分的3倍
(setvar "osmode" oldosmode)
(PRINC)
)
(defun c:T7()
(setq p1(getpoint "\n请输入基准点:")
p0(getpoint p1 "\n请输入第二点:"))
(setq oldosmode (getvar "osmode"))
(setvar "osmode" 0)
(setq
l0(distance p1 p0)
ang(angle p0 p1)
ang1(+ ANG (* 0.5 PI))
ang2(- ANG (* 0.5 PI))
P12(polar p1 ang1 (* 0.25 l0));夹角大小调整此处0.2的值
P13(polar p1 ang2 (* 0.25 l0));夹角大小调整此处0.2的值
)
... 当距离 =3mm <3mm 时 ...
距离从何计算得知!? 是从P1 到P0 选两点的长度 本帖最后由 Andyhon 于 2013-5-2 08:14 编辑
(defun c:T8 ()
(setq p1 (getpoint "\n请输入基准点:")
p0 (getpoint p1 "\n请输入第二点:")
)
(setq oldosmode (getvar "osmode"))
(setvar "osmode" 0)
(setq L0 (distance p1 p0)
ang(angle p0 p1)
ang1 (+ ANG (* 0.5 PI))
ang2 (- ANG (* 0.5 PI))
)
;; 当距离 此处请自行修订
(cond
((>L0 8) (setq fac 0.1))
((>L0 3) (setq fac 0.15))
(T (setq fac 0.25))
)
(setq dd (* L0 fac)
P12(polar p1 ang1 dd) ;夹角大小调整此处0.2的值
P13(polar p1 ang2 dd) ;夹角大小调整此处0.2的值
)
(command "Pline" p12 p0 P13 "") ;箭头的宽度是直线部分的3倍
(setvar "osmode" oldosmode)
(PRINC)
)
刚回家 谢谢 Andyhon 顶起来!找个人看看为什么?没有跟着距离P1 到P0变化 角度的夹角改变??? 可以再帮帮忙 看看是那里有问题 希望能学习 1和l長的好像 等待 高手帮忙 就是距离短 角度大 , 距离长 角度小!
页:
[1]
2