[讨论]对数字文本的计算修改。
遇到这样的问题单行文本总的数字,需要凡是数字都想编辑修改加同一个数字后的结果
比如以前是a,b,c....
现在都修改为a+1.3,b+1.3,c+1.3..........
但有些文本还有这样的情况,比如是写的范围a~b,这是在同一个文本中,想修改为
a+1.3~b+1.3,这样的情况,这就不知道怎修改了。请高手帮忙,由于文本很多,现在所有文本都要加,减同一个数字,手动编辑很难改,还怕修改错 本帖最后由 作者 于 2005-6-20 0:21:44 编辑
不适合a~b的情况:
修改程序见4楼。 测试了,好像不行的
比如以前我的文本是:1.350~2.300,需要同时加入一个数字比如是1,则修改后是数值是2.350~3.300,就是这个意思,可能我开始没表述清楚 (load "xyp_lib") ;加载通用函数
;|
如果已经下载xyp_lib并放到搜索路径下可以不再下载!
利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
1.在acad.lsp中增加(load"xyp_lib")
2.在每个程序内增加(load"xyp_lib")
3.在command下,输入(load"xyp_lib")
4.在菜单.mnl中增加(load"xyp_lib")
通用函数下载地址:
dispbbs.asp?boardID=3&ID=37554&page=1
|; ;;;
(defun c:test () ;(/ m n leng)
(CMDLA0)
(setqnum (UREAL 1 "" "\n数值" num)
ss (ssget '((0 . "*TEXT")))
i -1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq txt (dxf 1 (entget s1))
leng (strlen txt)
n 1
m ""
)
(while (< n leng)
(setq t1 (substr txt n 2))
(if (= t1 "~")
(setq m n)
)
(setq n (1+ n))
)
(if(/= m "")
(progn
(setq tx1 (substr txt 1 (- m 1))
tx2 (substr txt (+ m 2))
txt-new (strcat (rtos (+ (atof tx1) num) 2)
"~"
(rtos (+ (atof tx2) num) 2)
)
)
)
(setq txt-new (rtos (+ (atof txt) num) 2))
)
(sub_upd s1 1 txt-new)
)
(CMDLA1)
) 很简单啊,首先转化为DXF格式,然后用编程语言对数字逐个加减一个指定值不久可以了。我倒 很简单啊。在DXF文件中修改就可以了啊,
QQ 10364426
页:
[1]