找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 773|回复: 12

[源码] 不开图修改属性块信息

[复制链接]
发表于 2021-4-1 23:19:27 | 显示全部楼层 |阅读模式

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

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

×
  1. (defun $修改外部DWG中属性块信息$
  2.          (path       BLOCKNAME  TAG-VALUE
  3.           LST       /    dbxdoc
  4.           dbxmodelspace    tags
  5.           data       v
  6.          )
  7.           ;属性块属性标记,外部dwg属性标记
  8.   (if path
  9.     (progn
  10.       (setq
  11.   DBXDOC
  12.    (vla-getinterfaceobject
  13.      (vlax-get-acad-object)
  14.      (strcat "ObjectDBX.AxDbDocument."
  15.        (substr (getvar 'acadver) 1 2)
  16.      )
  17.    )
  18.       )
  19.       (cond
  20.   ((vl-catch-all-error-p
  21.      (vl-catch-all-apply
  22.        'vla-Open
  23.        (list DBXDOC path)
  24.      )
  25.    )
  26.    (princ (strcat "无法打开图纸: " path))
  27.   )
  28.   (t
  29.    (setq DBXModelSpace
  30.     (vl-catch-all-apply 'vla-get-ModelSpace (LIST DBXDOC))
  31.    )
  32.   )
  33.       )
  34.       (if DBXModelSpace
  35.   (setq
  36.     data
  37.      (vl-catch-all-apply
  38.        (FUNCTION
  39.          (lambda (/ array-value data km objname tags tbl v wz ss)
  40.      (vlax-for item  DBXModelSpace
  41.        (if (and (setq objname (vl-catch-all-apply
  42.               'vla-get-objectname
  43.               (list item)
  44.             )
  45.           )
  46.           (= objname "AcDbBlockReference")
  47.            )
  48.          (progn
  49.            (setq v nil)
  50.            (or (and  (setq km (vl-catch-all-apply
  51.              'vla-get-effectivename
  52.              (list item)
  53.            )
  54.         )
  55.         (not (vl-catch-all-error-p km))
  56.          )
  57.          (and  (setq km (vl-catch-all-apply
  58.              'vla-get-name
  59.              (list item)
  60.            )
  61.         )
  62.         (not (vl-catch-all-error-p km))
  63.          )
  64.          (setq km nil)
  65.            )
  66.            (if (and  km
  67.         BLOCKNAME
  68.         (wcmatch km
  69.            (strcat (strcase BLOCKNAME)
  70.              ","
  71.              (strcase BLOCKNAME t)
  72.            )
  73.         )
  74.          )
  75.        (PROGN
  76.          (if
  77.            (and
  78.              (setq array-value
  79.               (vl-catch-all-apply
  80.           'vlax-variant-value
  81.           (list (vla-GetAttributes item))
  82.               )
  83.              )
  84.              (not
  85.          (vl-catch-all-error-p array-value)
  86.              )
  87.              (setq tbl (vl-catch-all-apply
  88.              'vlax-safearray->list
  89.              (list array-value)
  90.            )
  91.              )
  92.              (not (vl-catch-all-error-p tbl))
  93.            )
  94.             (progn
  95.         (setq ss
  96.                (mapcar
  97.            (function
  98.              (lambda (x / tag put-v s v-o)
  99.                (if
  100.                  (and (setq
  101.                   tag
  102.                    (vla-get-tagstring x)
  103.                 )
  104.                 (setq s
  105.                  (vl-some
  106.                    (function
  107.                      (lambda (x)
  108.                  (if (=  (car x)
  109.                   tag
  110.                      )
  111.                    x
  112.                  )
  113.                      )
  114.                    )
  115.                    TAG-VALUE
  116.                  )
  117.                 )
  118.                  )
  119.             (progn
  120.               (setq
  121.                 v-o  (vla-get-TextString x)
  122.               )
  123.               (setq put-v (cdr s))
  124.               (vla-put-TextString x put-v)
  125.               (if
  126.                 (= (vla-get-TextString x)
  127.                    put-v
  128.                 )
  129.                  (progn
  130.                    (setq s '())
  131.                    (setq s
  132.                     (cons (cons "字段" tag)
  133.                     s
  134.                     )
  135.                    )
  136.                    (setq s
  137.                     (cons (cons "原值" v-o)
  138.                     s
  139.                     )
  140.                    )
  141.                    (setq s
  142.                     (cons (cons "新值" put-v)
  143.                     s
  144.                     )
  145.                    )
  146.                  )
  147.               )
  148.             )
  149.                )
  150.                s
  151.              )
  152.            )
  153.            tbl
  154.                )
  155.         )
  156.         (vl-catch-all-apply
  157.           'vla-saveas
  158.           (list DBXDOC path)
  159.         )
  160.             )
  161.          )
  162.        )
  163.            )
  164.          )
  165.        )
  166.      )
  167.      ss
  168.          )
  169.        )
  170.      )
  171.   )
  172.       )
  173.       (vlax-release-object DBXDOC)  ;关闭打开的图纸
  174.     )
  175.   )
  176.   data
  177. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 110个

财富等级: 日进斗金

发表于 2021-4-2 00:57:26 | 显示全部楼层
谢谢分享谢谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2021-4-2 08:14:29 | 显示全部楼层
好动画系啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2021-4-2 09:20:38 | 显示全部楼层
学习到了!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 10个

财富等级: 恭喜发财

发表于 2021-4-2 10:26:12 | 显示全部楼层
怎么使用啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2021-4-2 11:09:18 | 显示全部楼层
好像用不了了,LST参数也没出现,能不能具体点用法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4365个

财富等级: 富可敌国

发表于 2021-4-3 09:09:46 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 6202个

财富等级: 富甲天下

发表于 2021-4-5 17:17:44 | 显示全部楼层
思路不错,看看效果如何,谢谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 914个

财富等级: 财运亨通

发表于 2021-4-6 04:53:32 | 显示全部楼层
神操作哇!摩拜
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 146个

财富等级: 日进斗金

发表于 2021-4-6 08:01:29 | 显示全部楼层
有時需要不開圖修改 感謝樓主分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

发表于 2021-4-7 09:37:49 | 显示全部楼层
做一个热心并受欢迎的人
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

发表于 2021-4-7 09:56:29 | 显示全部楼层
做一个热心并受欢迎的人
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 375个

财富等级: 日进斗金

发表于 2021-4-7 10:02:15 | 显示全部楼层
感谢楼主分享学习!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 04:32 , Processed in 0.422036 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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