找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1163|回复: 5

[求助] [求助]:编了一半出现问题。解决不来~!!

[复制链接]
发表于 2006-11-18 12:02:39 | 显示全部楼层 |阅读模式

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

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

×
;本来这个程序的运行过程是:
第一次如果选中数字"1",然后选择复制第一个数字“1”的基点pt_base(这个基点跟第一个数字的(10的值)是有一定相对距离的),然后就跟多重复制有点像,以pt_base为基点,复制出其它的数字都是以txt_add为增值的。(用这个来标楼梯台阶数,哈:))
可是我现在只是在同一个位置累加。怎么办?哪位帮我提点建议吧。

  1.   [FONT=courier new]
  2. ;********************************数字递增复制add
  3. (defun C:add()
  4.     (setq sel (entsel "\n选择TEXT文本:"))
  5.   (if (= nil sel)
  6.     (progn
  7.       (princ "\n>>error!")
  8.       (exit)
  9.   ));  end if

  10.   (setq ss (ssadd))         
  11.   (setq na (car sel)) ;取得选到的图元的图元名。
  12.   (ssadd na ss)       
  13.   (setq txt_add (getint "\n请输入增值(默认为1):"))
  14.   (if (= nil txt_add) (setq txt_add 1))
  15.   (setq pt_base (getpoint "\n基准点:"))
  16.       
  17.   (setq k 1)
  18.   (while (= k 1)
  19.           (setq pt_to (getpoint "\n拷贝至(点回车退出):"))
  20.           (setq ss_new (ssadd))
  21.           (command "copy" ss_new"" "m" pt_base pt_to)
  22.           (ssadd (entlast) ss_new)
  23.           (setq txt_name (ssname ss_new 0))
  24.           (setq txt_data (entget txt_name))
  25.           (setq txt_txt (cdr (assoc '1 txt_data)))
  26.           (setq faq1 (atoi txt_txt))
  27.           (setq faq2 (itoa (+ faq1 txt_add)))
  28.           (setq txt_data (subst (cons 1 faq2) (assoc '1 txt_data) txt_data))
  29.           (entmod txt_data)
  30.          
  31.   );end while
  32.   (prin1)
  33. )
  34.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 7233个

财富等级: 富甲天下

发表于 2006-11-18 15:21:08 | 显示全部楼层


  1. (defun C:add ()
  2.   (cond
  3.     ((null (setq sel (entsel "\n选择TEXT文本:"))))
  4.     (T
  5.      (setq ss (ssadd))
  6.      (setq na (car sel))                ;取得选到的图元的图元名。
  7.      (setq txt_add (getint "\n请输入增值(默认为1):"))
  8.      (setq txt_txt (cdr (assoc '1 (entget na))))
  9.      (setq faq1 (atoi txt_txt))
  10.      (if (= nil txt_add)
  11.        (setq txt_add 1)
  12.      )
  13.      (setq pt_base (getpoint "\n基准点:")
  14.                idx 1
  15.      )
  16.      (while (setq pt_to (getpoint "\n拷贝至(点回车退出):"))
  17.        (command "copy" na "" pt_base pt_to)
  18.        (setq txt_data (entget (entlast)))
  19.        (setq faq2 (itoa (+ faq1 (* txt_add idx))))
  20.        (setq
  21.          txt_data (subst (cons 1 faq2) (assoc '1 txt_data) txt_data)
  22.        )
  23.        (entmod txt_data)
  24.        (setq idx (1+ idx))
  25.      )        ;end while
  26.     )                               
  27.   )
  28.   (prin1)
  29. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-19 01:17:51 | 显示全部楼层
感谢楼上。还没去试,cond我不太会用。呵。现在只会用if 和while的一点皮毛。呵。考回去好好学习学习。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-19 09:55:57 | 显示全部楼层
  1. [FONT=courier new];;;数字文本递增复制
  2. (defun C:test ()
  3.   (cmdla0)
  4.   (if (null INT)
  5.     (setq INT 1)
  6.   )
  7.   (if (setq na (car (entsel "\n选择TEXT文本<退出>: ")))
  8.     (if        (= (xyp-get-dxf 0 na) "TEXT")
  9.       (progn
  10.         (setq INT (UINT 1 "" "请输入增值" INT)
  11.               faq (atoi (xyp-get-dxf 1 na))
  12.               PT0 (getpoint "\n基准点: ")
  13.         )
  14.         (while (setq PT1 (getpoint PT0 "\n拷贝至<退出>: "))
  15.           (command "copy" na "" PT0 PT1)
  16.           (setq        s1  (entlast)
  17.                 faq (+ faq INT)
  18.                 tx  (itoa faq)
  19.           )
  20.           (xyp-SUBUPD s1 1 tx)
  21.         )
  22.       )
  23.       (princ"\n所选非文本!")
  24.     )
  25.   )
  26.   (cmdla1)
  27. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-20 17:48:20 | 显示全部楼层

楼上的大虾好生厉害。

把厉害啊,把一个程序精简得很帅。
激动之情不知道怎么表达啦。哈哈~~~

错误: no function definition: CMDLA0
错误: no function definition: XYP-GET-DXF

我不懂为什么会这样。呵,心里有点明白,就是不理解没有在lisp里的副函式里定义的命令能用吗?
(顺便问一下vl-***的lisp命令可以在r14下用吗?有点菜~~)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 02:24 , Processed in 0.407088 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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