求高手指导 困恼很久 很多其他的插件都想这么做 就是不知道怎么写
本帖最后由 fjutcivil 于 2014-4-20 11:17 编辑............................ 加个循环就行了 piao1887 发表于 2013-7-17 11:36 static/image/common/back.gif
加个循环就行了
关键是我不懂啊 帮帮我吧 SZ进行设置a b 的值
请参考站内 uReal or uDist
加个循环...
(if ...
改 ===>
(While ... (defun c:p0 (/ c) ;虽然纯数字可以作为命令名,但不建议使用
(if (not p0_a) ;预设a、b,对于全局变量,建议使用稍复杂的变量名,子函数也同
(setq p0_a 3000)
)
(if (not p0_b)
(setq p0_b 0.0027)
)
(initget 6 "S") ;非零非负
(setq n (getint "\n输入参数n 或 [参数ab设置(S)]: "))
(cond
((= n "S") ;关键字
(p0::s) ;调用参数设置子函数
(c:p0) ;设置完毕回主程序
)
((= n nil) nil) ;回车、右键、空格退出
(t ;其它情况——正常输入
(if (>= n 100)
(progn (p0::out) (c:p0)) ;执行完毕回主程序,形成循环
(progn (princ "\n参数n必须不小于100。") (c:p0))
)
)
)
(princ)
)
(defun p0::out (/ pt d c) ;输出子函数
(initget 5) ;非空非负
(setq pt (getpoint "\n文字点: "))
(setq d (/ (- n (* (/ n 10) 10)) 10.0)
c (rtos (* (- p0_a (* (/ n 10) 10))
p0_b
(if (equal d 0.0 0.001)
1
d
)
)
2
2
)
)
(entmake
(list
'(0 . "TEXT")
(cons 10 pt)
'(40 . 300)
(cons 1 c)
'(50 . 0)
'(41 . 0.7)
'(72 . 0)
'(73 . 0)
)
)
)
(defun p0::s (/ p0_a0 p0_b0) ;设置子函数
(if (not p0_a)
(setq p0_a 3000)
)
(if (not p0_b)
(setq p0_b 0.0027)
)
(initget 4) ;非零非负
(setq p0_a0 (getint (strcat "\n输入参数a <" (itoa p0_a) "> : ")))
(if p0_a0
(setq p0_a p0_a0)
)
(setq p0_b0 (getreal (strcat "\n输入参数b <" (rtos p0_b) "> : ")))
(if p0_b0
(setq p0_b p0_b0)
)
)
ll_j 发表于 2013-7-17 13:51 static/image/common/back.gif
哈 谢啦 大神 每次都麻烦你 你应该学习下dcl,参数多了,用dcl输入会比较方便。
页:
[1]