找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6526|回复: 17

[求助] [求助]:cad中的数字消除尾零的问题

[复制链接]
发表于 2009-6-23 09:43:56 | 显示全部楼层 |阅读模式

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

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

×
请教,在cad里面处理数据时,是否有办法消除数字的尾零,例如12.3500,变为12.35,120.30变为120.3等。数据量庞大,需要手改,十分麻烦,谢谢各位。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6667个

财富等级: 富甲天下

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

使用道具 举报

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

使用道具 举报

已领礼包: 6667个

财富等级: 富甲天下

发表于 2009-6-24 12:08:41 | 显示全部楼层
Command: (setq a "12.3500")
"12.3500"

Command: (rtos (atof a))
"12.35000"

Command: dimzin
Enter new value for DIMZIN <0>: 8

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

使用道具 举报

 楼主| 发表于 2009-6-24 15:01:13 | 显示全部楼层
不懂这个是什么意思,如何使用?dimzin变量只能控制标注数字中的0,文本如何实现?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6667个

财富等级: 富甲天下

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

使用道具 举报

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

使用道具 举报

已领礼包: 6667个

财富等级: 富甲天下

发表于 2009-6-25 08:38:40 | 显示全部楼层
若您不懂程序且上传个图例文件(*.dwg)如何?
这样方便分析资料 ....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 6667个

财富等级: 富甲天下

发表于 2009-6-25 10:37:37 | 显示全部楼层
下载不了呢?
您自个儿试试能否下载?
ftp://p4.xdcad.net/591210_%D1%F9%CD%BC.rar
晓东常有这么样下载不了的情形....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-6-25 10:42:29 | 显示全部楼层

Re: [求助]:cad中的数字消除尾零的问题

最初由 chen10jing 发布
[B]请教,在cad里面处理数据时,是否有办法消除数字的尾零,例如12.3500,变为12.35,120.30变为120.3等。数据量庞大,需要手改,十分麻烦,谢谢各位。 [/B]

[PHP](defun c:nn ( / e1 en l lop n nam ss str)
   (princ "\n欢迎使用尾数清零程序! gysjy.2009.6.25")  
   (setq ss (ssget '((0 . "TEXT"))) n 0 )
   (repeat (sslength ss)
     (setq en (entget (ssname ss n)) n (1+ n)
           nam (cdr (assoc 1 en)) l (strlen nam)
           lop t
     )
     (while lop
       (setq  str (substr nam l))
       (if (= str "0")
         (setq nam (substr nam 1 (- l 1)) l (strlen nam))
         (setq lop nil)
       )
     )
     (princ nam) (princ "   ")
     (setq e1 (subst (cons 1 nam) (assoc 1 en) en))
     (entmod e1)
   )
   (princ)
)[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-25 11:33:45 | 显示全部楼层
功能强大,见0就清,而且实现一次多选,非常好用。
但还有个问题,就是当是整数的时候,能清除小数点后的0,不能清除小数点,而且当整数没有小数点而且后面有0时,一并清掉了,例如500,最后给清成5了,能否实现把这二点过滤掉,这样就可以实现一次全部选取,不管是什么样的数字,都选上,由程序去默认清不清。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-6-25 15:49:37 | 显示全部楼层
最初由 chen10jing 发布
[B]
但还有个问题,就是当是整数的时候,能清除小数点后的0,不能清除小数点,而且当整数没有小数点而且后面有0时,一并清掉了,例如500,最后给清成5了,能否实现把这二点过滤掉.. [/B]

现将程序修改如下:
[PHP](defun c:nn ( / e1 en k l lop n nam ss str)
   (princ "\n欢迎使用尾数清零程序! gysjy.2009.6.25")  
   (setq ss (ssget '((0 . "TEXT"))) n 0 )
   (repeat (sslength ss)
     (setq en (entget (ssname ss n)) n (1+ n)
           nam (cdr (assoc 1 en)) l (strlen nam)
           k 0 lop nil
     )
     (while (< k l)
       (setq k (1+ k) str (substr nam k 1))
       (if (= str ".")(setq lop t))
     )
     (while lop
       (setq  str (substr nam l))
       (if (= str "0")
         (setq nam (substr nam 1 (- l 1)) l (strlen nam))
         (setq lop nil)
       )
     )
     (if (= str ".")(setq nam (substr nam 1 (- l 1))))
     (princ nam) (princ "   ")
     (setq e1 (subst (cons 1 nam) (assoc 1 en) en))
     (entmod e1)
   )
   (princ)
)[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-6-25 17:31:11 | 显示全部楼层
最初由 Underway 发布
[B]Command: (setq a "12.3500")
"12.3500"

Command: (rtos (atof a))
"12.35000"

Command: dimzin
Enter new value for DIMZIN <0>: 8

Command: (rtos (atof a))
"12.35" [/B]


如果是纯数字,用这个方法就可以了。

Underway已经把思路给楼主了,楼主不能太懒啊。。。


  1. (defun C:TT (/ DIMZIN E ELIST I SS)
  2.   (princ "\n纯数字消零 By carrot1983 6/25/09")
  3.   (setvar "CMDECHO" 0)
  4.   (command "._UNDO" "_END")
  5.   (command "._UNDO" "_BEGIN")
  6.   (setq DIMZIN (getvar "DIMZIN"))
  7.   (setvar "DIMZIN" 8)
  8.   (if (setq SS (ssget '((0 . "TEXT") (1 . "~*[~`--9]*"))))
  9.     (repeat (setq I (sslength SS))
  10.       (setq E (ssname SS (setq I (1- I))))
  11.       (setq ELIST (entget E))
  12.       (entmod
  13.         (subst (cons 1 (rtos (read (cdr (assoc 1 ELIST))) 2))
  14.                (assoc 1 ELIST)
  15.                ELIST
  16.         )
  17.       )
  18.     )
  19.   )
  20.   (setvar "DIMZIN" DIMZIN)
  21.   (command "._UNDO" "_END")
  22.   (princ)
  23. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2009-6-26 18:33:21 | 显示全部楼层
楼上代码较好,有两个亮点:
1.  (ssget '((0 . "TEXT") (1 . "~*[~`--9]*")))   选取纯数字
2.. 使用rtos 去消零。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 10:58 , Processed in 0.424048 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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