scottE 发表于 2022-7-6 14:21:47

增量属性编辑依据

我一直在搜索论坛,以找到一个Lisp例程,这对我来说是可行的,很多都很接近,但他们都缺少一件事,那就是像属性一样编号。我要做的是,当我的图纸上有一堆零件标记块时,我会有输入信息,如模具、长度、方向等,稍后我会提取这些信息。我想要的是在我的die#(例如1003-01、1003-02)中添加一个增量后缀,该后缀仅在该块中的其他属性或属性更改时才更改。有办法做到这一点吗?如果需要的话,我可以提供一个例子画有块,并显示我在做什么。

Lee Mac 发表于 2022-7-6 14:35:45

我认为这是可以实现的,但编号是随机的(取决于程序的编码方式)。
 
样图总是有用的

BIGAL 发表于 2022-7-6 14:44:12

正如李所建议的那样,块将按照创建顺序从数据库中找到,并且与绘制位置无关。如果你选择块,那么你可以按顺序编号。
 
另一种方法是在创建块时对其进行编号,并检查最后一个编号。ie使用lisp插入块。

scottE 发表于 2022-7-6 14:50:19

我不担心它是否随机编号。我要找的是,它对相同的部分进行编号。正如你在我的附图中看到的,我的框架中有多个水平面,但两个“1003”部分是相同的部分,但垂直面不同。这只是我可能要处理的一个简单版本,除了数百个不同尺寸的框架。我正在寻找一个例程,将添加“-01”到“1003”以任何顺序递增。
示例1。图纸

Lee Mac 发表于 2022-7-6 14:58:06

六羟甲基三聚氰胺六甲醚。。这可能比最初预期的更困难。标签是具有属性的块,但梁本身只是多段线,因此困难的部分是告诉程序哪个梁与每个标签配对,并记住,所有梁和标签都将随机出现在集合中。。。

scottE 发表于 2022-7-6 15:06:03

我认为如果你能把“光束”和标签联系起来,那将是非常棒的,但我目前只是通过DLO属性通过插入字段OBJECT将其链接到维度。这更像是一个手动输入,但它很好,因为它允许我更改fame大小并更新,以自动获得新的测量值。我真正需要的是一个命令,允许我在我的part#中添加后缀,以区分各个部分。

Lee Mac 发表于 2022-7-6 15:08:06

嗨,斯科特,
 
我对这个问题考虑了很多,并试图使程序尽可能简洁-因此它可能有点复杂。但它应该完成这项工作。
 
(defunc:tagupd(((i0doc(vla get ActiveDocument(vlax get acad objectif如果ssssget “_X”((0“插入”(661[/(progn(蓝色]λ(x/y(如果((颜色=红色)lst((setqlst(subst(x)y lstb](setqlst(consx lst(红色](功能(lambda(list((x)[/颜色)(carx(蓝色]λ(x)(vl如果没有函数(lambda](y) vl位置(strcase(vla get标记字符串y(“零件#”“长度”x((=BLUE]函数(lambda(x)(vlax safearray->listvlax variant valuevla GetAttributesx[lambda(x)(eq(vla get EffectiveNamex“零件标记2”(mapcar'vlax ename->vla object(mapcar'cadrssmapcarcdrlst(setqi(1+/color]i(如果(

scottE 发表于 2022-7-6 15:17:45

李,
很酷!!但你的权利,这是极难遵循。我一直想弄明白的一件事是为什么它只比较长度?我如何使其与所有其他属性进行比较?

Lee Mac 发表于 2022-7-6 15:27:07

 
我最初认为您只希望它比较长度属性,因为一些块只有这个和一个空的“NOTE”属性。。。
页: [1]
查看完整版本: 增量属性编辑依据