乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 54|回复: 13

[编程交流] 属性值更新全局

[复制链接]

3

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 02:05:13 | 显示全部楼层 |阅读模式
大家好,
你能给我一个在不改变现有值的情况下在多个布局中更新块属性值的解决方案吗。
如:
标签
DT3
价值
“第01部分”
 
我需要将该值编辑为“MEP Part-01”
多重布局有不同的编号。
所以我需要在所有布局中添加“MEP”。
 
感谢阅读
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 02:12:59 | 显示全部楼层
欢迎来到CadTutor
 
-属性块的名称是什么?
-是否要根据第01部分或根据标记名更改值?
 
塔瓦特
回复

使用道具 举报

10

主题

598

帖子

594

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-6 02:18:35 | 显示全部楼层
下面的宏应该可以工作,它将更改DT3的所有值以添加MEP-,宏不会接受字符串中的空格,因此在结尾处为-
  1. ^C^C-attedit;n;n;;DT3;;;MEP-;

但是请先在文件的副本上使用这个来检查结果
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 02:21:48 | 显示全部楼层
快捷键。。。
 
  1. ....removed...
回复

使用道具 举报

3

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 02:28:00 | 显示全部楼层
@塔瓦特
 
块名为“Title-A1-Text”,我需要根据标签“DT3”进行更改
多个布局具有不同的值,例如:布局1具有第01部分,布局2具有第2部分等。。。
我需要在第01部分、第02部分等之前添加“MEP”。。。在不更改每个布局中的零件号的情况下
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 02:30:21 | 显示全部楼层
 
谢谢你的回复。
 
pBe发布的代码对你有帮助吗?
否则,如果你可以上传一个样例绘图,在上面测试我的代码就太好了
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 02:32:57 | 显示全部楼层
无论如何,试试这个未经测试的程序,让我知道。
 
  1. (defun c:Test (/ tag ss lock)
  2. ;; Tharwat 22. Oct. 2013    ;;
  3. (or acdoc
  4.      (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
  5. )
  6. (vlax-for x (vla-get-layers acdoc)
  7.    (if (eq :vlax-true (vla-get-lock x))
  8.      (vla-put-lock (car (setq lock (cons x lock))) :vlax-false)
  9.    )
  10. )
  11. (if (setq tag "DT3"
  12.            ss  (ssget "_X"
  13.                       '((0 . "INSERT") (66 . 1) (2 . "Title-A1-Text"))
  14.                )
  15.      )
  16.    (progn
  17.      (vla-StartUndoMark acdoc)
  18.      ((lambda (x / sn e)
  19.         (while (setq sn (ssname ss (setq x (1+ x))))
  20.           (while
  21.             (and (setq sn (entnext sn))
  22.                  (/= (cdr (assoc 0 (setq e (entget sn)))) "SEQEND")
  23.             )
  24.              (if (and (eq (cdr (assoc 0 e)) "ATTRIB")
  25.                       (eq (strcase (cdr (assoc 2 e))) tag)
  26.                  )
  27.                (entmod (subst (cons 1 (strcat "MEP " (cdr (assoc 1 e))))
  28.                               (assoc 1 e)
  29.                               e
  30.                        )
  31.                )
  32.              )
  33.           )
  34.         )
  35.       )
  36.        -1
  37.      )
  38.      (vla-EndUndoMark acdoc)
  39.    )
  40. )
  41. (foreach layer lock (vla-put-lock layer :vlax-true))
  42. (vla-regen acdoc AcAllViewports)
  43. (princ)
  44. )
  45. (vl-load-com)
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 02:41:11 | 显示全部楼层
 
以适应您发布的条件:
  1. (defun c:c2 (/ ss i e tag str_ str)
  2.    (setq tag  "DT3"
  3.   str_ "*PART*"
  4.    )
  5.    (if        (setq ss (ssget "_X" '((0 . "INSERT") (66 . 1)(2 . "`*U*,Title_A1_Text")(410 . "~Model"))))
  6.      (repeat (setq i (sslength ss))
  7. (setq e (vlax-ename->vla-object (ssname ss (Setq i (1- i)))))
  8. (if (and (Eq (Strcase (vla-get-effectivename e)) "TITLE_A1_TEXT")
  9.          (vlax-write-enabled-p e))
  10.   (vl-some
  11.     '(lambda (x)
  12.        (if
  13.          (and
  14.            (eq (vla-get-tagstring x) tag)
  15.            (wcmatch (strcase (setq str (vla-get-textstring x))) str_)
  16.            (not (wcmatch str "[MmEePp]*"))
  17.          )
  18. ;;; in case layer "0" is also locked considering        ;;;
  19. ;;; most blocks are created at layer "0"                ;;;
  20.           (vl-catch-all-error-p
  21.             (vl-catch-all-apply
  22.               'vla-put-textstring
  23.               (list x (strcat "MEP " str))
  24.             )
  25.           )
  26. ;;;                                                        ;;;
  27.        )
  28.      )
  29.     (vlax-invoke e 'Getattributes)
  30.   )
  31. )
  32.      )
  33.    )
  34.    (princ)
  35. )
回复

使用道具 举报

3

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 02:45:27 | 显示全部楼层
大家好,
我在这里附上图纸,希望它容易。。。
Attri测试。图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 02:50:56 | 显示全部楼层
更新了邮政编码#8以满足您的条件
 
HTH公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-3 19:54 , Processed in 0.370872 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表