pmxcad 发表于 2022-7-6 23:33:34

复制多块属性

我想知道是否可以用脚本或lisp或类似01的东西将“SYMBOL01”(02)的属性数据复制到块“产品代码”中。
 
谢谢
 
Pmx公司
试火。图纸

BIGAL 发表于 2022-7-6 23:50:05

只要看看这里关于编辑属性的任何示例代码,这实际上有点容易,因为您可以使用foreach属性更新其他块。
 
这是一个开始
 

vl-load-com)
(setq obj1 (vlax-ename->vla-object (car (entsel "pick block 1"))))
(setq obj2 (vlax-ename->vla-object (car (entsel "pick block 2"))))
(setq lstatts "")
(foreach att (vlax-invoke obj1 'getattributes)
(setq lstatts (strcat lstatts (vla-get-textstring att)))
)

(foreach att2 (vlax-invoke obj2 'getattributes)
(vla-put-textstring att2 lstatts)
)

pmxcad 发表于 2022-7-6 23:55:07

你好,
谢谢你的评论。我不知道如何使用这个口齿不清。我不喜欢lisp,我知道如何写脚本。
块乘积码中有一个属性。在该属性中有六个字段,其中将查看块SYMBOL01的属性。我这样做是为了创建由所有六个属性的文本连续组成的代码。我想这样做,因为如果我把这个属性放到块SYMBOL01中,它不起作用,我不会更新它。我得到那些字符。
 
这可以通过lisp实现吗?或者有没有方法将带有六个字段的属性放入SYMBOL01块并wblock它?(我使用动态块)
 
PmxCAD

BIGAL 发表于 2022-7-7 00:06:21

我不能提供一个快速的答案领域是不是我用了很多希望有人会提高。

steven-g 发表于 2022-7-7 00:22:57

尝试附加的块,插入块后对其执行动态操作,可以解决在块内放置属性时出现问题的原因。它可以是任何动态动作。在字段读取块定义之前,一旦执行了动态操作,则从实际块读取的字段(您还需要重新生成)。插入后只需执行一次,即可复制任何激活的块或更新其他属性,然后重新生成即可。PS我没有将属性复制到块中,它是在块编辑器中创建的新属性。
试火(1)。图纸

pmxcad 发表于 2022-7-7 00:32:54

是的,是的。。。。谢谢史蒂文。它起作用了
那么,仅仅改变动态特性,就这样?
Ooookay。
 
谢谢

steven-g 发表于 2022-7-7 00:38:31

它与块的工作方式有关,字段会查看块定义文件中的值,但通过更改动态特性,它会创建一个注释性块,然后字段会切换到使用该信息(来自唯一块),然后可以将动态特性更改回原来的状态!很高兴它像你希望的那样工作。
页: [1]
查看完整版本: 复制多块属性