明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1412|回复: 6

[提问] 求高手指导 困恼很久 很多其他的插件都想这么做 就是不知道怎么写

[复制链接]
发表于 2013-7-17 11:09:22 | 显示全部楼层 |阅读模式
本帖最后由 fjutcivil 于 2014-4-20 11:17 编辑

............................
发表于 2013-7-17 11:36:13 | 显示全部楼层
加个循环就行了
 楼主| 发表于 2013-7-17 11:42:08 | 显示全部楼层
piao1887 发表于 2013-7-17 11:36
加个循环就行了

关键是我不懂啊 帮帮我吧
发表于 2013-7-17 12:59:53 | 显示全部楼层
SZ进行设置a b 的值
请参考站内 uReal or uDist

加个循环...
(if ...
改 ===>
(While ...
发表于 2013-7-17 13:51:15 | 显示全部楼层
  1. (defun c:p0 (/ c)    ;虽然纯数字可以作为命令名,但不建议使用
  2.   (if (not p0_a)     ;预设a、b,对于全局变量,建议使用稍复杂的变量名,子函数也同
  3.     (setq p0_a 3000)
  4.   )
  5.   (if (not p0_b)
  6.     (setq p0_b 0.0027)
  7.   )
  8.   (initget 6 "S")   ;非零非负
  9.   (setq n (getint "\n输入参数n 或 [参数ab设置(S)]: "))
  10.   (cond
  11.     ((= n "S")      ;关键字
  12.      (p0::s)        ;调用参数设置子函数
  13.      (c:p0)         ;设置完毕回主程序
  14.     )
  15.     ((= n nil) nil) ;回车、右键、空格退出
  16.     (t              ;其它情况——正常输入
  17.      (if (>= n 100)
  18.        (progn (p0::out) (c:p0))   ;执行完毕回主程序,形成循环
  19.        (progn (princ "\n参数n必须不小于100。") (c:p0))
  20.      )
  21.     )
  22.   )
  23.   (princ)
  24. )

  25. (defun p0::out (/ pt d c)        ;输出子函数
  26.   (initget 5)     ;非空非负
  27.   (setq pt (getpoint "\n文字点: "))
  28.   (setq d (/ (- n (* (/ n 10) 10)) 10.0)
  29.         c (rtos (* (- p0_a (* (/ n 10) 10))
  30.                    p0_b
  31.                    (if (equal d 0.0 0.001)
  32.                      1
  33.                      d
  34.                    )
  35.                 )
  36.                 2
  37.                 2
  38.           )
  39.   )
  40.   (entmake
  41.     (list
  42.       '(0 . "TEXT")
  43.       (cons 10 pt)
  44.       '(40 . 300)
  45.       (cons 1 c)
  46.       '(50 . 0)
  47.       '(41 . 0.7)
  48.       '(72 . 0)
  49.       '(73 . 0)
  50.     )
  51.   )
  52. )

  53. (defun p0::s (/ p0_a0 p0_b0)   ;设置子函数
  54.   (if (not p0_a)
  55.     (setq p0_a 3000)
  56.   )
  57.   (if (not p0_b)
  58.     (setq p0_b 0.0027)
  59.   )
  60.   (initget 4)         ;非零非负
  61.   (setq p0_a0 (getint (strcat "\n输入参数a <" (itoa p0_a) "> : ")))
  62.   (if p0_a0
  63.     (setq p0_a p0_a0)
  64.   )
  65.   (setq p0_b0 (getreal (strcat "\n输入参数b <" (rtos p0_b) "> : ")))
  66.   (if p0_b0
  67.     (setq p0_b p0_b0)
  68.   )
  69. )

 楼主| 发表于 2013-7-17 15:02:54 | 显示全部楼层
ll_j 发表于 2013-7-17 13:51

哈 谢啦 大神 每次都麻烦你
发表于 2013-7-23 14:18:12 | 显示全部楼层
你应该学习下dcl,参数多了,用dcl输入会比较方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-24 00:42 , Processed in 0.187967 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表