zhb236623 发表于 2013-7-31 18:36:30

本帖最后由 zhb236623 于 2013-7-31 18:38 编辑

【KAIXIN】 发表于 2013-7-31 18:31 http://bbs.mjtd.com/static/image/common/back.gif
也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可

要修改的文字不单都是001,只是求快复制的,可能为任意数,其实要实现的功能是把这些数字按坐标排序的顺序从小到大变成001,002 ,003.…………。

坐标排序用我发的那个函数可以,能掌握。但是排序后如何把这个坐标对匹配到原来要更更改的文字 目前不懂……所以无法更改文字。

【KAIXIN】 发表于 2013-7-31 18:38:52

是复制吗?貌似只是递增啊

zhb236623 发表于 2013-7-31 18:40:32

本帖最后由 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))
)

zhb236623 发表于 2013-7-31 18:45:29

【KAIXIN】 发表于 2013-7-31 18:38 static/image/common/back.gif
是复制吗?貌似只是递增啊

相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

zhb236623 发表于 2013-7-31 18:47:36

zhb236623 发表于 2013-7-31 18:45 static/image/common/back.gif
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

文字批量替换,数字递增问题

zhb236623 发表于 2013-7-31 18:48:48

zhb236623 发表于 2013-7-31 18:45 static/image/common/back.gif
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

我说的复制是CAD里面的数字都为001是为了快速弄出来那些文字直接复制的。不是说这个问题是复制的问题

zhb236623 发表于 2013-7-31 18:53:50

zhb236623 发表于 2013-7-31 18:45 static/image/common/back.gif
相当于把老的字去掉,在相同的位置按顺序从小到大重新编号。

;;;就是要如何才能更改这个坐标点对应的文字呢?color]
;;直接生成文字可能还更容易……

cocoorange 发表于 2015-1-28 16:55:29

做这个还是挺有难度的,学习一下

chcumt 发表于 2015-3-23 14:23:16

期待完成稿

yxl88168 发表于 2017-8-22 12:51:50

这个搞好了吗,能发个源程序给我不,我的邮箱是yxl33168@163.com 谢谢你
页: 1 [2]
查看完整版本: 求助 关于文字批量替换,数字递增问题