找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 833|回复: 9

[LISP程序]:数字相加出错了

[复制链接]
发表于 2005-2-25 00:32:10 | 显示全部楼层 |阅读模式

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

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

×
数字相加程序出错了
请各位高手帮忙修改一下,
它不能返回最终结果
比如选中的数字12
输入增加值为2
最终返回显示结果为12+02
以下附件是程序源码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-2-25 07:55:46 | 显示全部楼层
看不懂,呵呵……
[php]
;;;加载通用函数
;;;下载:http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
(load "xyp_lib")

;;;数值增减一个常数
(defun c:test ()
  (cmdla0)
  (setq        no1 (ureal 1 "" "\n\t增减值" no1)
        n   -1
  )
  ;;(COMMAND "UNITS" "2" "3" "1" "3" "0" "N");;确保小数点后保留3位数,3改为4即为4位,自定
  ;;(setq la (ddxf 8 (entsel "\n\t任选一高程 :")));保证只改变某层数值
  ;;(setq ss (ssget "X" (list (cons 0 "TEXT") (cons 8 la))));如果是全部修改,利用此句可以自行选择
  (setq ss (ssget (list (cons 0 "TEXT"))));如果是局部修改,利用此句可以自行选择
  (while (setq s1 (ssname SS (setq n (+ 1 n))))
    (setq mode (dxf 1 (entget s1))
          mode (+ (atof mode) no1)
          mode (rtos mode 2)
    )
    (sub_upd s1 1 mode)
  )
  (cmdla1)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-2-25 09:06:33 | 显示全部楼层

Re: [LISP程序]:数字相加出错了

最初由 li809 发布
[B]数字相加程序出错了
请各位高手帮忙修改一下,
它不能返回最终结果
比如选中的数字12
输入增加值为2
最终返回显示结果为12+02
以下附件是程序源码 [/B]

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

使用道具 举报

 楼主| 发表于 2005-2-25 10:31:08 | 显示全部楼层
RE:你想要得到什么结果?  
我想要可以返回最终结果值的函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-25 10:39:41 | 显示全部楼层
2楼的可以解决问题,但要下载通用函数不好
三楼的我按此改了还是不行
结果一样
比如选中的数字10
输入增加值为40
最终返回显示结果为10+40
而我想要的是50的最终结果
并且多了以下的东西
Copy to:  ((-1 . <Entity name: 7ef5bea0>) (0 . "TEXT") (330 . <Entity name:
7ef5bcf8>) (5 . "8C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0")
(100 . "AcDbText") (10 95.5811 3.07038 0.0) (40 . 20.0) (1 . "10+80") (50 .
0.0) (41 . 1.0) (51 . 0.0) (7 . "Standard") (71 . 0) (72 . 0) (11 0.0 0.0 0.0)
(210 0.0 0.0 1.0) (100 . "AcDbText") (73 . 0))

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

使用道具 举报

发表于 2005-2-25 11:30:38 | 显示全部楼层
程序本身就说不清楚,不知是从哪里得来的?
还是用“老王”的吧!呵呵……
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-25 11:54:25 | 显示全部楼层
最初由 li809 发布
[B]2楼的可以解决问题,但要下载通用函数不好
三楼的我按此改了还是不行
结果一样
比如选中的数字10
输入增加值为40
最终返回显示结果为10+40
而我想要的是50的最终结果
并且多了以下的东西
Copy to:  ((-1 . <... [/B]


楼主下次提问题要说得清楚些,不然别人怎么会知道你真正的目的
再说看你的程序里的思路好象不是你说的结果,比如:
“选中的数字10
输入增加值为40
最终返回显示结果为10+40
而我想要的是50的最终结果”
根据你程序的思路,那结果应该是10.4
你看这句:(rtos (+ (atof s)(/ nv 100.0)) 2 2)))
真是搞不懂你的本意
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-25 12:59:31 | 显示全部楼层
最初由 li809 发布
[B]2楼的可以解决问题,但要下载通用函数不好
三楼的我按此改了还是不行
结果一样
比如选中的数字10
输入增加值为40
最终返回显示结果为10+40
而我想要的是50的最终结果
并且多了以下的东西
Copy to:  ((-1 . <... [/B]

替你修改了一下,应该是你想要的了吧?
另外,建议你以后直接贴出代码,不要用附件的形式上传,不便于大家阅读。

  1.   [FONT=courier new]
  2. (defun c:na (/ E ENEW NV P S)
  3.   (if (and (setq e (car (entsel "\nSelect Text: ")))
  4.            (setq e (vlax-ename->vla-object e))
  5.            (or (= "AcDbText" (vla-get-ObjectName e))
  6.                (= "AcDbMText" (vla-get-ObjectName e))
  7.            )
  8.       )
  9.     (progn
  10.       (setq s (vla-get-TextString e))
  11.       (if (null (setq nv (getreal (strcat "\nNew value:" "<40>"))))
  12.         (setq nv 40)
  13.       )
  14.       (princ "\nCopy to: ")
  15.       (while (setq p (getpoint))
  16.         (setq enew (vla-copy e))
  17.         (vla-put-textstring enew (setq s (rtos (+ (atof s) nv) 2)))
  18.         (vla-put-InsertionPoint enew (vlax-3d-point p))
  19.       )
  20.     )
  21.     (princ "\n选中的不是文本或没有选择到实体.")
  22.   )
  23.   (princ)
  24. )  [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-25 22:26:47 | 显示全部楼层
非常感谢大家
你们的意见我都乐间接受
因为程序我也是从网上下来的
我又不懂编程
出错了也只有暂时求救大家
9楼的程序正是我想要的
谢谢了
我想请问能改成可以指定复制基点的吗?
现在只能指定复制至哪一点
谢谢大家再次帮忙
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 22:57 , Processed in 0.200719 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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