【KAIXIN】 发表于 2013-7-31 18:31 http://bbs.mjtd.com/static/image/common/back.gif
也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可
要修改的文字不单都是001,只是求快复制的,可能为任意数,其实要实现的功能是把这些数字按坐标排序的顺序从小到大变成001,002 ,003.…………。
坐标排序用我发的那个函数可以,能掌握。但是排序后如何把这个坐标对匹配到原来要更更改的文字 目前不懂……所以无法更改文字。 是复制吗?貌似只是递增啊 本帖最后由 zhb236623 于 2013-7-31 18:52 编辑
【KAIXIN】 发表于 2013-7-31 18:31 http://bbs.mjtd.com/static/image/common/back.gif
也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可
(if (not (setq n1 (getint "\n请输入尾数起始顺序号 <0>: ")))
(setq n1 0)
)
;;地号最后三位数不够补0,例3=003,34=034,189=189
(command ".style" "仿宋体" "仿宋_GB2312" wzstyle 1 0 "" "")
(setq slist nil)
(setq i 0)
(setq ss (ssget '((0 . "text"))))
(repeat (sslength ss)
(setq en (ssname ss i)) ;(setq en (entget ssn))
(vla-getboundingbox (vlax-ename->vla-object en)
'minpoint
'maxpoint
)
(setq pmax (vlax-safearray->list maxpoint)
pmin (vlax-safearray->list minpoint)
)
(setq xmin (car pmin))
(setq xmax (car pmax))
(setq ymin (cadr pmin))
(setq ymax (cadr pmax))
(setq xmid (/ (+ xmin xmax) 2))
;;(setq ymid ( / ( + ymin ymax) 2))
(setq xmid_ymax (list xmid ymax))
(setq slist (cons xmid_ymax slist))
(setq i (1+ i))
)
;;;关键就是这里了,排序,1e-6为容差,意思是1乘以10的负6次方。你可以自己改
;;(setq tmp_slist (dh_zhy_sort_pt slist 1e-6))
(setq tmp_slist (dh_zhy_sort_pt slist 3))
(foreach insertp_mid tmp_slist
;;(setq insertp_move (pmove insertp_mid 0 wz_insertp_move_down)) ;;;最后一位为向下移动距离
(cond
((< n1 10)
(setq wz_n(strcat "00" (itoa n1)))
)
( (< 9 n1 100)
(setq wz_n(strcat "0" (itoa n1)))
)
( (> n1 99)
(setq wz_n (itoa n1))
)
)
(setq Parameter_a5"aa")
(setq wz (strcat Parameter_a5 wz_n)) ;;;
;;;就是要如何才能更改这个坐标点对应的文字呢?
;;直接生成文字可能还更容易……
;;(setq P_center_fz_nn_d1 (list 3 5))
(entmake (list '(0 . "TEXT") (cons 1 "me") (cons 7"仿宋体") (cons 10 insertp_mid ) (cons 40 0.5)(cons 41 0.8)(cons 71 1)(cons 72 1)(cons 73 1)(cons 8 "jj")))
(setq n1 (+ n1 1))
) 【KAIXIN】 发表于 2013-7-31 18:38 static/image/common/back.gif
是复制吗?貌似只是递增啊
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。 zhb236623 发表于 2013-7-31 18:45 static/image/common/back.gif
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。
文字批量替换,数字递增问题 zhb236623 发表于 2013-7-31 18:45 static/image/common/back.gif
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。
我说的复制是CAD里面的数字都为001是为了快速弄出来那些文字直接复制的。不是说这个问题是复制的问题 zhb236623 发表于 2013-7-31 18:45 static/image/common/back.gif
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。
;;;就是要如何才能更改这个坐标点对应的文字呢?color]
;;直接生成文字可能还更容易……
做这个还是挺有难度的,学习一下 期待完成稿 这个搞好了吗,能发个源程序给我不,我的邮箱是yxl33168@163.com 谢谢你
页:
1
[2]