找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 561|回复: 4

[求助] [求助]:能否用edit-box控件中输入的多个数进行画图

[复制链接]
发表于 2004-4-19 14:57:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
比如:我想画几根轴线,间距为6+3*5+6米
在edit-box 中输入6 3*5 6,能否用lisp实现
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1个

财富等级: 恭喜发财

发表于 2004-4-19 16:41:03 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-19 17:25:00 | 显示全部楼层
最初由 netbee 发布
[B]完全可以!
看看我的这个
http://www.xdcad.net/forum/showthread.php?s=&threadid=166187 [/B]


必须要有你的LIB库文件支持才行吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-4-19 18:31:32 | 显示全部楼层

Re: [求助]:能否用edit-box控件中输入的多个数进行画图

最初由 wzg 发布
[B]比如:我想画几根轴线,间距为6+3*5+6米
在edit-box 中输入6 3*5 6,能否用lisp实现 [/B]


edit-box输出的是字符串,应该可以包含空格,难点是将3*5解释成3个5,这需要自己在编程是处理。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2004-4-19 22:42:58 | 显示全部楼层
其实你只要有天正软件5.0就知道了,其中的LISP程序是开源的,里面就有关于这方面的函数。


  1. ;;---------------------------
  2.   ;;键入文本框定义函数
  3.   (defun Do_EnterData (/ str s listtmp tf)
  4.     (setq str          (get_tile "EnterData")
  5.           tf          nil
  6.           listtmp
  7.                   (mapcar
  8.                     '(lambda (s)
  9.                        (if (/= "" s)
  10.                          (if (and (not (= (substr str 1 1) "*"))
  11.                                   (not (= (substr str 1 1) "."))
  12.                              ) ;_ 结束and

  13.                            (cond
  14.                              ((and (= (Substrnumber s "*") 1)
  15.                                    (or (= (type (read (car (StrParse s "*")))) 'INT)
  16.                                        (= (type (read (car (StrParse s "*")))) 'REAL)
  17.                                    ) ;_ 结束or
  18.                                    (= (type (read (cadr (StrParse s "*")))) 'INT)
  19.                               ) ;_ 结束and
  20.                               s

  21.                              )
  22.                              ((and (= (Substrnumber s "*") 0)
  23.                                    (or (= (type (read s)) 'INT)
  24.                                        (= (type (read s)) 'REAL)
  25.                                    ) ;_ 结束or
  26.                               ) ;_ 结束and
  27.                               (strcat s "*1")
  28.                              )
  29.                              (t (setq tf T) s)
  30.                            ) ;_ 结束cond
  31.                          ) ;_ 结束if
  32.                        ) ;_ 结束if
  33.                      ) ;_ 结束lambda
  34.                     (StrParse str " ")
  35.                   ) ;_ 结束mapcar

  36.     ) ;_ 结束setq
  37.     (if        tf
  38.       (progn
  39.         (mode_tile "EnterData" 2)
  40.         (set_tile "error" "数据错误!--本编辑框只能是数字!!!")
  41.       ) ;_ 结束progn
  42.       (progn (set_tile "error" "")
  43.              (setq Common_List (append listtmp '("")))
  44.              (Dcl_up)
  45.       ) ;_ 结束progn
  46.     ) ;_ 结束if

  47.   ) ;_ 结束defun
  48.   ;;-------------------------
  49.   ;;保存列表函数
  50.   (defun save_list ()
  51.     (cond ((= show_type 0) (setq UpKJ_list Common_List))
  52.           ((= show_type 1) (setq LowKJ_list Common_List))
  53.           ((= show_type 2) (setq LeftJS_list Common_List))
  54.           ((= show_type 3) (setq RightJS_list Common_List))
  55.     ) ;_ 结束cond
  56.   ) ;_ 结束defun
  57.   ;;-----------------
  58.   ;;字符串表转换至数字表函数
  59.   (DEFUN Do_resolve (l / l1 n i x s)
  60.     (FOREACH x (REVERSE l)
  61. ;;;      (IF (/=
  62.       (SETQ s (ATOF x))
  63. ;;;      0.0)
  64. ;;;        (progn
  65.       (IF (SETQ N (VL-STRING-POSITION (ASCII "*") x))
  66.         (SETQ I (ATOI (SUBSTR x (+ 2 n))))
  67.         (SETQ I 1)
  68.       ) ;_ 结束if
  69.       (REPEAT i (SETQ l1 (CONS S l1)))
  70. ;;;      )
  71. ;;;      ) ;_ 结束if
  72.     ) ;_ 结束foreach
  73.     l1
  74.   ) ;_ 结束defun
  75.   ;;-------------------------

你肯定没有仔细读程序!
只是我将天正的个数在前面改为个数在后面了
如 2500*3  理解为 2500间距的尺寸有3个

你要想作这方面的编程,最好仔细读读我从天正里修改来的轴线绘制程序,最好是用CAD中的Vlisp下中断来跟踪。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 03:38 , Processed in 0.185678 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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