求助 关于文字批量替换,数字递增问题
本帖最后由 zhb236623 于 2013-7-31 18:33 编辑如图,或者下载CAD图里面有我想要达到的效果……想要把数字批量替换,然后数字递增,批量替换数字的时候按从左到右,从上到下的顺序替换……。应该用得着下面的程序,但是自己能力有限,写不出来。盼高手赐教。 ;;;;取得点集行数,将每行的y坐标列表,lst为点坐标表,rc为容差
(defun y_lst (lst rc / it lst2)
(while (setq lst2 (cons (setq it (cadr (car lst))) lst2)
lst(vl-remove-if '(lambda (x) (equal it (cadr x) rc)) lst)
)
)
(vl-sort lst2 (function (lambda (e1 e2) (> e1 e2))))
)
;;;将点集按从上到下,从左到右的顺序排序。pt_lst为点坐标表,rc为容差
(defun dh_zhy_sort_pt (pt_lst rc / pt_y lst1 pt_lst_new n1 n2 m1 m2 pt_y_a pt_lst_a lst2)
(setq pt_y (y_lst pt_lst rc))
(setq pt_lst_new '())
(setq lst1 '())
(setq m1 0)
(setq n1 (length pt_y))
(setq n2 (length pt_lst))
(while (/= m1 n1)
(setq pt_y_a (nth m1 pt_y))
(setq m2 0)
(while (/= m2 n2)
(setq pt_lst_a (nth m2 pt_lst))
(if (equal pt_y_a (cadr pt_lst_a) rc)
(setq lst1 (cons pt_lst_a lst1))
)
(setq m2 (1+ m2))
)
(if (/= (length lst1) 1)
(setq lst1 (vl-sort lst1
(function (lambda (e1 e2) (< (car e1) (car e2))))
)
)
)
(setq pt_lst_new (cons lst1 pt_lst_new))
(setq lst1 '())
(setq m1 (1+ m1))
)
(setq pt_lst_new (reverse pt_lst_new))
(setq n1 (length pt_lst_new))
(setq m1 0)
(setq lst2 '())
(while (/= m1 n1)
(setq lst1 (nth m1 pt_lst_new))
(setq n2 (length lst1))
(setq m2 0)
(while (/= m2 n2)
(setq lst (nth m2 lst1))
(setq lst2 (cons lst lst2))
(setq m2 (1+ m2))
)
(setq m1 (1+ m1))
)
(reverse lst2)
) 这个搞好了吗,能发个源程序给我不,我的邮箱是yxl33168@163.com 谢谢你 虽然不会帮给顶一下! langjs的递增刷,看他的帖子 帮不了忙,顶起来! 我用的1 选择集根据点坐标排序http://bbs.mjtd.com/thread-96090-1-1.html
2 未尾数字增加http://bbs.mjtd.com/thread-102143-1-1.html 7楼
仅供参考 提供思路 :
就以上情况而言,可以用排序加1的方法直接写入文字 自贡黄明儒 发表于 2013-7-31 12:05 static/image/common/back.gif
我用的1 选择集根据点坐标排序http://bbs.mjtd.com/thread-96090-1-1.html
2 未尾数字增加http:/ ...
谢谢,这几天有空把你的两个帖子消化下再看看能不能写得出来。 【KAIXIN】 发表于 2013-7-31 18:22 http://bbs.mjtd.com/static/image/common/back.gif
提供思路 :
就以上情况而言,可以用排序加1的方法直接写入文字
直接写入文字实现起来是相对比较容易,然后把旧的直接删除,因为文字样式,对中方式,大小都是一样的,只要设定统一的不用针对每个文字更改。如果要根据旧的文字只更改内容感觉会比较难。 zhb236623 发表于 2013-7-31 18:29 static/image/common/back.gif
直接写入文字实现起来是相对比较容易,然后把旧的直接删除,因为文字样式,对中方式,大小都是一样的, ...
也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可
页:
[1]
2