乐筑天下

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

[编程交流] 从o添加块属性

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 13:18:10 | 显示全部楼层 |阅读模式
尊敬的各位:,
 
在不同的组中花费了很多时间后,我开始了一个新的步骤,希望我能得到一个解决方案,实际上我有数百个没有块属性的块,但是我已经从另一个具有不同块名称的项目中定义了块,现在我想做的是将块属性添加到定义块中的块,但是我想保留几何体,插入点和X,Y,Z值与原始值相同,因为我有这么多的图纸要修改和这么多不同的块要更新,我正在寻找一些lisp的脚本,以便它可以快速完成,任何在这方面的帮助将不胜感激。 
 
请查找包含这两个块的随附CAD文件。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 13:40:17 | 显示全部楼层
这是可以做到的,但有几个局限性
 
基本引擎可能看起来像这样
  1. (defun c:att-snag (/ sn sd sp an ad sl ss i tn td tp
  2.                      a10 a11 n10 n11)
  3.   (while (not sn)
  4.          (and (princ "\nSelect 1 SOURCE Insert...")
  5.               (setq ss (ssget '((0 . "INSERT")(66 . 1))))
  6.               (= (sslength ss) 1)
  7.               (setq sn (ssname ss 0)
  8.                     sd (entget sn)
  9.                     sp (cdr (assoc 10 sd))
  10.                     an (entnext sn)
  11.                     ad (entget an))))
  12.   (while (= "ATTRIB" (cdr (assoc 0 ad)))
  13.          (setq sl (cons ad sl)
  14.                an (entnext an)
  15.                ad (entget an)))
  16.   (and (princ "\nSelect TARGET Inserts...")
  17.        (setq ss (ssget '((0 . "INSERT")(66 . 0))))
  18.        (setq i 0)
  19.        (while (setq tn (ssname ss i))
  20.               (setq td (entget tn)
  21.                     tp (cdr (assoc 10 td)))
  22.               (setq td (append td (list (cons 66 1))))
  23.               (entmake td)
  24.               (foreach a (reverse sl)
  25.                 (setq a10 (mapcar '- (cdr (assoc 10 a)) sp))
  26.                 (setq n10 (mapcar '+ tp a10))
  27.                 (setq a11 (mapcar '- (cdr (assoc 11 a)) sp))
  28.                 (setq n11 (mapcar '+ tp a11))
  29.                 (setq a (subst (cons 10 n10) (assoc 10 a) a))
  30.                 (setq a (subst (cons 11 n11) (assoc 11 a) a))
  31.                 (entmake a))
  32.               (entmake (list (cons 0 "SEQEND")(cons 8 "0")))
  33.               (entdel tn)
  34.               (redraw (entlast))
  35.               (setq i (1+ i))))
  36.   (prin1))

这只是将源属性添加到目标插入中
 
它不会:
[列表]
  • 重新定义目标块定义
  • 处理源插入旋转、缩放和OCS
  • 删除属性值(复制源属性值)
  • 保留属性提示
    它可以:
    [列表]
  • 匹配从源插入点到属性的属性偏移
    我相信你可能还需要处理一些其他的怪癖。
     
    -大卫
     
  • 回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-5 14:02:42 | 显示全部楼层
    这里有一种不同的方法,使用“复制”命令并引用源几何体。
    1. (defun c:att-snac (/ sn ss sd sp tn td tp ss i ed)
    2.   (while (not sn)
    3.          (and (princ "\nSelect 1 SOURCE Insert...")
    4.               (setq ss (ssget '((0 . "INSERT")(66 . 1))))
    5.               (= (sslength ss) 1)
    6.               (setq sn (ssname ss 0)
    7.                     sd (entget sn)
    8.                     sp (cdr (assoc 10 sd)))))
    9.   (and (princ "\nSelect TARGET Inserts...")
    10.        (setq ss (ssget '((0 . "INSERT")(66 . 0))))
    11.        (setq i 0)
    12.        (while (setq tn (ssname ss i))
    13.               (setq td (entget tn)
    14.                     tp (cdr (assoc 10 td)))
    15.               (command "_.COPY" sn "" sp tp)
    16.               (setq ed (entget (entlast)))
    17.               (entmod (subst (assoc 2 td) (assoc 2 sd) ed))
    18.               (entdel tn)
    19.               (redraw (entlast))
    20.               (setq i (1+ i))))
    21.   (prin1))
    回复

    使用道具 举报

    1

    主题

    2

    帖子

    1

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-5 14:11:48 | 显示全部楼层
    感谢David的支持,
    实际上,它是可行的,但正如你所说,有一些局限性,其中之一是,它改变了比例,(X,Y)值,然后它复制了属性,但是我在块编辑器中看不到它们,甚至在Battman中,我也看不到列表中的块。还有,我们可以将块重命名为源,然后删除源吗?
     
     
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-5 14:24:52 | 显示全部楼层
    很高兴它起了一些作用。难怪块编辑器和Battman不能工作,因为我没有修改目标的块表定义。复制例程
    应该处理比例和旋转。重命名充满了问题。您可以简单地将源插入添加到选择集
     
    -大卫
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-15 08:34 , Processed in 1.996234 second(s), 62 queries .

    © 2020-2025 乐筑天下

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