zhb236623 发表于 2011-6-6 17:54:22

刷界址点,不改变属性,只更改界址点号.

做证时经常一个CAD里面有N张土地证,里面界址点号都是(1,2,3,4.。。。。。)南方CASS自动生成的界址点号是
按大小顺序排序,1,2,3,4,5,6,7,8.。。。。。。。。。。。。。如果要把5,6,7,8,-》1,2,3,4,的话此程序就用得着。不过要手动改,不能自动。因为有些图纸界址点号有6个或者7个。不好判断。
;;此函数参照此论坛源码改写,但是具体是哪个作者没找到。不好意思就没标出来了。
;;刷界址点,不改变属性,只更改界址点号

(defun c:dd(/ n1 wz insertp)
(princ"函数功能:刷界址点,不改变属性,只更改界址点号.   ")
(if (not (setq n1 (getint "\n请输入起始顺序号 <1>: ")))
    (setq n1 1)
)

(setq wz (itoa n1))
   (while (<= n1 300) ;;这里不知道用什么判断好,用这个也可以(ent),随便写了个。一般改号只要改7,8个就好了。所以;;;怎   ;;么判断倒无所谓。
   
    (setq ent (car (entsel "\n选择目标文字:")))
                (setq ent (entget ent))
         (setq ent
    (subst (cons 1 wz) (assoc 1 ent) ent)
         )
         (entmod ent)
   (setq
      n1   (+ n1 1)
      wz (itoa n1)
   )
   )
(princ)
);end defun

sy100 发表于 2011-6-6 19:23:42

正需要,正为这个头疼呢,谢谢分享!

mandala 发表于 2011-6-6 19:46:35

本帖最后由 mandala 于 2011-6-6 21:00 编辑

程序很简单,不过用意我不太明白。我的理解是:每宗地的界址点应该分别是1.2.3.4,但是cad图纸中是连续标宗地号的,也就是说第二宗地是从5.6.7.8这样开始。现在你想把每宗地都变成从1开始,是吗?

那为何不干脆删掉所有已有的界址点号,然后编个程序自动重新编号并标注呢。当然,前提是每宗地的界址线同属一个层,并且都是独立的闭合多义线。

ljttjl 发表于 2011-6-6 21:31:05

本帖最后由 ljttjl 于 2011-6-8 13:20 编辑

http://ljttjl.ys168.com   2009-2试用程序及演示   20090805多段线上标注点号并提取坐标   目录下载bzjdg.vlx
以下为此程序演示:


zhb236623 发表于 2011-6-8 01:05:53

本帖最后由 zhb236623 于 2011-6-8 01:26 编辑

回复 mandala 的帖子

想法是好的,比如12345,6 7 8 9 10 11 ,12 13 14 15
-〉12345       123456   1234这 样子,用南方CASS软件制作的。不好实现。只能手动判断。

zhb236623 发表于 2011-6-8 01:09:50

回复 ljttjl 的帖子

南方CASS大概可以实现这个功能 ,所以就暂时不用楼主这处程序 ,我想实现的功能是下楼所述

zhb236623 发表于 2011-6-8 01:25:49

回复 ljttjl 的帖子

楼主只发图片不发程序要怎么用呢。

yshf 发表于 2011-6-8 09:10:43

请参考:http://bbs.mjtd.com/thread-87367-1-1.html

zhb236623 发表于 2011-6-8 11:58:59

回复 sy100 的帖子

http://bbs.mjtd.com/thread-87367-1-1.html这个更好用。

ljttjl 发表于 2011-6-8 13:21:16

本帖最后由 ljttjl 于 2011-6-8 13:22 编辑

回复 zhb236623 的帖子

4楼已贴出程序下载地址。
页: [1] 2
查看完整版本: 刷界址点,不改变属性,只更改界址点号.