lzg8877 发表于 2013-5-1 04:35:16

请帮忙整合成一个命令

只因为自己还是没学会怎么改进 一个命令 变了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的值
)

Andyhon 发表于 2013-5-1 08:43:11

... 当距离 =3mm <3mm 时 ...

距离从何计算得知!?

lzg8877 发表于 2013-5-1 08:53:39

是从P1 到P0 选两点的长度 

Andyhon 发表于 2013-5-1 09:18:50

本帖最后由 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)
)

lzg8877 发表于 2013-5-1 16:59:50

刚回家 谢谢 Andyhon

lzg8877 发表于 2013-5-1 21:32:20

顶起来!找个人看看为什么?没有跟着距离P1 到P0变化 角度的夹角改变???

lzg8877 发表于 2013-5-2 06:38:07

可以再帮帮忙 看看是那里有问题 希望能学习

lsjj 发表于 2013-5-2 06:41:47

1和l長的好像

lzg8877 发表于 2013-5-2 09:36:28

等待 高手帮忙

lzg8877 发表于 2013-5-2 18:02:08

就是距离短 角度大 , 距离长 角度小!
页: [1] 2
查看完整版本: 请帮忙整合成一个命令