找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 961|回复: 1

[LISP函数]:[LISP函数]:我想更改一个属性块中包含的所有实体对象的图层,使之与该块

[复制链接]
发表于 2006-12-22 13:02:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我想更改一个属性块中包含的所有实体对象的图层,使之与该块本身的图层一致,我的实现方法是:
  (setq ss (ssget "X" '((0 . "insert"))) i0 -1)
  
  (while (setq ent (ssname ss (setq i0 (1+ i0))))   
      (setq la (cdr (assoc 8 (entget ent)))
            color1 (cdr (assoc 62 (entget ent)))
            exit0 nil
      )
      (while (and (not exit0)
                  (setq ent (entnext ent))
                  (setq entg (entget ent))
             )
        (setq entg (subst (cons 8 la) (assoc 8 entg) entg)
              entg (subst (cons 62 color1) (assoc 62 entg) entg)
        )
        (entmod entg)        
        (setq exit0 (assoc -2 entg))
      )
  )
但是结果并满意,属性块中最后一个实体对象无法更改。
一个属性块的数据表如下:(NO.1)
((-1 . <图元名: 40083370>) (0 . "INSERT") (330 . <图元名: 40081cf8>)
(5 . "15E") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "植被层") (6 .
"18") (48 . 0.5) (100 . "AcDbBlockReference") (66 . 1) (2 . "G1012") (10
339.028 414.377 -0.0440077) (41 . 0.5) (42 . 0.5) (43 . 0.5) (50 . 0.875457)
(70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

用(entnext)依次提取上述块所包含的属性表。
第一次(entnext):(NO.2)
((-1 . <图元名: 40083378>) (0 . "ATTRIB") (330 . <图元名: 40083370>) (5 .
"15F") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbText") (10 339.738 414.566 -0.0440077) (40 . 0.849) (1 . "93720") (50 .
0.875457) (41 . 1.0) (51 . 0.0) (7 . "Standard") (71 . 0) (72 . 0) (11 339.412
414.838 -0.0440077) (210 0.0 0.0 1.0) (100 . "AcDbAttribute") (2 . "CODE") (70
. 1) (73 . 0) (74 . 2))
第二次(entnext):(NO.3)
((-1 . <图元名: 40083380>) (0 . "SEQEND") (330 . <图元名: 40083370>) (5 .
"160") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "植被层") (6 . "18")
(48 . 0.5) (-2 . <图元名: 40083370>))
第二次(entnext):
nil


        (setq entg (subst (cons 8 la) (assoc 8 entg) entg)
              entg (subst (cons 62 color1) (assoc 62 entg) entg)
        )
        (entmod entg)        
对NO.1-NO.3的对象进行修改特定的值,NO.1和NO.2的对象修改成功,但是NO.3的对象修改不成功。

期待得到帮助的问题有:
1.我的做法在NO.3处为什么会不成功?
2.我该如何正确实现上述的修改操作?
3.我想删除属性块中属性数据即上述的NO.2和NO.3的对象又该如何实现?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2014-9-28 21:50:51 | 显示全部楼层
希望高手解决,这个方案很有好。:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-6-4 23:17 , Processed in 0.328638 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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