如何添加以搜索“*BFREE*,*CLEAR*”,然后冻结这些层。
谢谢 正如我所说,你指的是哪种代码?
哈哈。很抱歉我的错。
(defun c:LWChange ( / n )
(vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
(if
(and
(wcmatch (setq n (strcase (vla-get-name l))) "*FURN*,*EQPM*,*PFIX*")
(not (wcmatch n "MV-*EQPM*"))
)
(vla-put-lineweight l acLnWt005)
)
)
(princ)
)
(vl-load-com) (princ)
谢谢 只需在vlax for循环中添加另一条IF语句:
(defun c:LWChange ( / n )
(vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
(if
(and
(wcmatch (setq n (strcase (vla-get-name l))) "*FURN*,*EQPM*,*PFIX*")
(not (wcmatch n "MV-*EQPM*"))
)
(vla-put-lineweight l acLnWt005)
)
)
(princ)
)
(vl-load-com) (princ) 精彩的!!
非常感谢。
干杯
凯尔 不客气,克尔 李。。。
这个主题问题的变体。。。
我们从Solidworks引入图形,它将各种线宽分配给图层
如果我们忘记手动将其全部更改为默认值,那么这真的会把我们的绘图搞砸。
我希望能够在一个步骤中将所有层更改为默认值(-3)。
我知道我必须得到图层表,但我不知道怎么做
翻阅所有内容,并对每个内容进行更改。
请帮忙?
以上示例演示了如何使用vlax for循环遍历层集合中的层对象。
删除IF语句后,剩下的是:
(defun c:LWChange ( / n )
(vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
(if
(and
(wcmatch (setq n (strcase (vla-get-name l))) "*FURN*,*EQPM*,*PFIX*")
(not (wcmatch n "MV-*EQPM*"))
)
(vla-put-lineweight l acLnWt005)
)
(if (wcmatch n "*BFREE*,*CLEAR*")
(vla-put-freeze l :vlax-true)
)
)
(princ)
)
(vl-load-com) (princ)
或者,如果你想走香草路线。。。
5 令人惊叹的
虽然香草对我的大脑更容易,但我很欣赏这两种方式!
李,我太感谢你了!! 不客气
对于这个特定的任务,我认为VL方法更简洁,但普通方法可能更快。
李
页:
1
[2]