和尚777 发表于 2023-4-14 17:50:09

[首创]向块中添加块属性并修改

本帖最后由 和尚777 于 2023-4-15 09:58 编辑

   向块中增加属性后再修改             不会破坏原块属性,无属性的直接增加
      新发现一个函数acet-attsync,可代替command(defun C:tt (/ b blkref bname doc ent i list0 list1 num ss);向块中添加属性
(setq doc(vla-get-ActiveDocument(vlax-get-acad-object)))
;"和尚777"
(if(and (setq bName (cdr(assoc 2 (entget (car(entsel))))))
       (setq b(vla-item (vla-get-Blocks doc) bName)))
    (progn
      (vla-AddAttribute b
      50 4 "表示长度" (vlax-3D-point '(0 0 0)) "c" "777")
      (acet-attsync bName);(command "attsync" "n" bname)
      (if(setq ss(ssget "x"(list'(0 . "insert")(cons 2 bName))))
      (progn
          (setq i -1)
          (while(setq ent(ssname ss (setq i(1+ i))))
            (if (= (vla-Get-ObjectName (setq blkref (vlax-Ename->vla-Object ent))) "AcDbBlockReference")
            (if (vla-Get-HasAttributes blkref)
                (progn (setq liST0 (vlax-safearray->list(vlax-variant-value (vla-GetAttributes blkref))))
                  (setq liST1 (mapcar 'vla-Get-TagStringliST0))
                  (setq num (vl-position "c" list1))
                  (vla-put-TextString (nth num liST0) (itoa i))
                )
            )
            )
          )
      )
      )
    )
)(princ)
)


liuhe 发表于 2023-4-19 09:47:39

attsync是一个cad自带的命令
将块定义中的属性更改应用于所有块参照。

查找
使用该命令来更新包含属性的块的实例,曾经使用 BLOCK 或 BEDIT 命令重定义这些属性。ATTSYNC 不更改现有块中指定给属性的任何值。

注: ATTSYNC 删除所有使用 ATTEDIT 或 EATTEDIT 命令进行的格式更改或特性更改。也将删除所有与块关联的扩展数据,并可能影响动态块和第三方应用程序创建的块。


ACET-ATTSYNC大概率也是用command调用的

weimeng555 发表于 2024-8-7 21:14:41

liuhe 发表于 2023-4-19 09:47
attsync是一个cad自带的命令
将块定义中的属性更改应用于所有块参照。



attsync命令,只能针对一个块,是否有什么命令,可以批量操作呢,刚好要批量对多个不同块,添加同一个定义属性,但是添加之后,需要每个块使用一次attsync,感觉比较麻烦

KO你 发表于 2023-4-17 16:51:26

本帖最后由 KO你 于 2023-4-18 01:25 编辑

测试了,提示显示
调用(*push-error-using-command*)前无法从 *error* 调用(command)。
建议将(command)调用转换为(command-s)。
增加不了,什么问题


添加的属性文字能按所需要指定位置添加吗,经测试有时不行,有时添加在右下角,还有添加的属性文字不可以带点拖动

lxl217114 发表于 2023-4-14 18:06:08

首赞
谢谢分享
很牛逼的功能

paulpipi 发表于 2023-4-14 21:33:25

感谢分享,支持源码,,,,

yaojing38 发表于 2023-4-14 21:54:44

谢谢大佬无私奉献

xudongchu 发表于 2023-4-15 08:09:25

牛逼谢谢分享!!

菜鸟初来乍到 发表于 2023-4-15 09:07:27

太强了,感谢楼主分享

wharan 发表于 2023-4-15 12:59:44

提示函数ACET-ATTSYNC未定义

依然小小鸟 发表于 2023-4-15 18:24:57

增加属性文字的位置 是怎么定的

nsh935 发表于 2023-4-15 20:42:49

厉害力哈哈哈

flowerson 发表于 2023-4-17 15:50:57

厉害。请问acet-attsync怎样加载出来呢?另外就是新加的属性位置怎样定义呢?
页: [1] 2 3
查看完整版本: [首创]向块中添加块属性并修改