明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2740|回复: 11

[求助]如何修改扩展数据?

  [复制链接]
发表于 2005-12-13 11:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-12-13 15:48:01 编辑

各位斑竹:

        我单位有一批图件因重新调整数据后产生大量的重复序号(带有扩展数据),如附图上面左边和右边的序号重复,如何产生下面从新编号的结果(编号顺序不计)。时间很紧迫,请各位斑竹尽快帮助我解决一下这个问题,先谢谢了!!![附CAD图和编号1的扩展数据-主要是修改红字序号(1000. 1|14|2.2200|25500300)]注:提供图形右边的序号只是简单修改了一下块形成的,要求修改扩展数据内的序号。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2005-12-13 16:24 | 显示全部楼层

Att_reorder.vlx,先试试吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2005-12-14 10:54 | 显示全部楼层
本帖最后由 作者 于 2005-12-14 11:22:37 编辑

龙哥:

  太感谢了!我有一个小的要求,能否这样:选择对象:25500300

再运用Att_Reorder程序修改序号。因为扩展数据中的TBH_INFO项中的25500300才是选择集的标准!

发表于 2005-12-14 14:22 | 显示全部楼层
本帖最后由 作者 于 2005-12-16 7:45:56 编辑

程序更新,增加选集回传值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2005-12-14 16:24 | 显示全部楼层
龙哥,先谢谢了!
 楼主| 发表于 2005-12-15 10:49 | 显示全部楼层

龙哥,程序有误:错误: 参数类型错误: numberp: nil。

 附图:绿色圆圈定的是有相同权属单位(25500300),如果手选,相当耗时(附图只取了小部分)。只有采取:选择对象:25500300→自动编号→完成。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2005-12-16 12:17 | 显示全部楼层
龙哥:你的程序很好,可是我给你的只是一小部分,因为涉及权属代码重复的不只是这张图,还有107张图件需要处理,它们都有不同的权属代码,能否提供一个输入任意权属代码(XXXXXXXX)进行选择的程序,通过它进行序号修改?谢谢了!
发表于 2005-12-16 13:00 | 显示全部楼层
你还是一次说清楚吧!我只能再改一次了,没有那么多时间....
 楼主| 发表于 2005-12-16 15:08 | 显示全部楼层

龙哥:不好意思,麻烦你很多时间。如上传图2-1.dwg上有4个大的标注(25500300、25500200、25401000、25400100),如果修改编号程序提示选择对象时输入上述4个代码中任意一个,与之相应编号才发生改变,不采取框选。因为象这样的八位数代码很多,第二个程序(增加选集回传值)带有局限性,只有麻烦龙大哥再修改一次。要不供现一下源码供小弟学习一下。137dky@163.com

发表于 2005-12-16 16:04 | 显示全部楼层
;改变扩展数据中"TBH_INFO"的内容
(defun c:cg (/ ss n k en en1 en_data en1_data old_list new_list
      t_old t_new t1 t2 tt)
    (setq ss (ssget "x" '((0 . "INSERT") (-3 ("TBH_INFO")))))
    (setq n  0
   tt 1
    )
    (repeat (sslength ss)
 (setq en (ssname ss n))
 (setq en_data (entget en '("TBH_INFO")))
 (setq old_list (assoc -3 en_data))
 (setq t_old (cdr (cadr (cadr old_list))))
 (if (wcmatch t_old "*25500300");你自己该吧,老是有新要求
     (progn
  (setq en1 (entnext (entnext en)))
  (setq en1_data (entget en1))
  (if (= (cdr (assoc 2 en1_data)) "TBH")
      (progn
   (setq t1 (assoc 1 en1_data))
   (setq t2 (cons 1 (itoa tt)))
   (setq en1_data(subst t2 t1 en1_data))
   (entmod en1_data)
   (entupd en1)
      )
  )
  (setq k 1)
  (while (and (/= (substr t_old k 1) "|")
       (wcmatch t_old "*|*")
         )
      (setq k (1+ k))
  )
  (if (= k 1)
      (exit)
  )
  (setq t_new
    (strcat
        (itoa tt)
        (substr t_old k (- (strlen t_old) (1- k)))
    )
  )
  (setq
      new_list (list -3
       (list "TBH_INFO" (cons 1000 t_new))
        )
  )
  (setq en_data (subst new_list old_list en_data))
  (entmod en_data)
  (setq tt (1+ tt))
     )
 )
 (setq n (1+ n))
    )
    (prin1)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 20:25 , Processed in 0.202740 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表