找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 65|回复: 0

[每日一码] 属性块属性值复制

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式

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

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

×
套图框的时候,图框是个属性框,一个一个拷太麻烦了,用deepseek生成了一个代码,蛮好用的。

  1. ;;2025.8.22
  2. ;;DeepSeek生成
  3. ;;复制属性块的值
  4. (defun c:BBV (/ ss_source ss_target ent_source ent_target
  5.                           attribs_source attribs_target attdef_source
  6.                           attdef_target tag value found)
  7.         (vl-load-com)
  8. ;; 选择源属性块
  9.         (princ "\n选择源属性块: ")
  10.         (setq ss_source (ssget ":S" '((0 . "INSERT") (66 . 1))))
  11.         (if (not ss_source)
  12.                 (progn
  13.                         (princ "\n未选择源属性块或选择的对象不是属性块。")
  14.                         (exit)
  15.                 )
  16.         )
  17.         (setq ent_source (ssname ss_source 0))
  18.         ;; 选择目标属性块
  19.         (princ "\n选择目标属性块: ")
  20.         (setq ss_target (ssget ":S" '((0 . "INSERT") (66 . 1))))
  21.         (if (not ss_target)
  22.                 (progn
  23.                         (princ "\n未选择目标属性块或选择的对象不是属性块。")
  24.                         (exit)
  25.                 )
  26.         )
  27.         (setq ent_target (ssname ss_target 0))
  28.         ;; 获取源属性块的属性
  29.         (setq attribs_source (vlax-invoke (vlax-ename->vla-object ent_source) 'GetAttributes))
  30.         ;; 获取目标属性块的属性
  31.         (setq attribs_target (vlax-invoke (vlax-ename->vla-object ent_target) 'GetAttributes))
  32.         ;; 遍历源属性块的所有属性
  33.         (foreach att attribs_source
  34.                 (setq tag (vla-get-TagString att)
  35.                         value (vla-get-TextString att)
  36.                         found nil)
  37.                 ;; 在目标属性块中查找相同标签的属性
  38.                 (foreach target_att attribs_target
  39.                         (if (= tag (vla-get-TagString target_att))
  40.                                 (progn
  41.                                         (vla-put-TextString target_att value)
  42.                                         (setq found T)
  43.                                 )
  44.                         )
  45.                 )
  46.                 (if (not found)
  47.                         (princ (strcat "\n警告: 目标块中未找到属性 '" tag "'"))
  48.                 )
  49.         )
  50.         (vla-update (vlax-ename->vla-object ent_target))
  51.         (princ "\n属性值复制完成。")
  52.         (princ)
  53. )

BBV.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-2 16:06 , Processed in 0.376981 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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