乐筑天下

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

[编程交流] Lisp搜索层和通道

[复制链接]

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:58:10 | 显示全部楼层
您好,
如何添加以搜索“*BFREE*,*CLEAR*”,然后冻结这些层。
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:03:34 | 显示全部楼层
正如我所说,你指的是哪种代码?
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 00:06:02 | 显示全部楼层
 
哈哈。很抱歉我的错。
 
  1. (defun c:LWChange ( / n )
  2. (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  3.    (if
  4.      (and
  5.        (wcmatch (setq n (strcase (vla-get-name l))) "*FURN*,*EQPM*,*PFIX*")
  6.        (not (wcmatch n "MV-*EQPM*"))
  7.      )
  8.      (vla-put-lineweight l acLnWt005)
  9.    )
  10. )
  11. (princ)
  12. )
  13. (vl-load-com) (princ)

 
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:09:48 | 显示全部楼层
只需在vlax for循环中添加另一条IF语句:
 
  1. (defun c:LWChange ( / n )
  2. (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  3.    (if
  4.      (and
  5.        (wcmatch (setq n (strcase (vla-get-name l))) "*FURN*,*EQPM*,*PFIX*")
  6.        (not (wcmatch n "MV-*EQPM*"))
  7.      )
  8.      (vla-put-lineweight l acLnWt005)
  9.    )
  10. )
  11. (princ)
  12. )
  13. (vl-load-com) (princ)
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 00:11:57 | 显示全部楼层
精彩的!!
非常感谢。
干杯
凯尔
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:16:47 | 显示全部楼层
不客气,克尔
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
423
发表于 2022-7-6 00:18:07 | 显示全部楼层
李。。。
 
这个主题问题的变体。。。
 
我们从Solidworks引入图形,它将各种线宽分配给图层
如果我们忘记手动将其全部更改为默认值,那么这真的会把我们的绘图搞砸。
 
我希望能够在一个步骤中将所有层更改为默认值(-3)。
 
我知道我必须得到图层表,但我不知道怎么做
翻阅所有内容,并对每个内容进行更改。
 
请帮忙?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:22:39 | 显示全部楼层
 
以上示例演示了如何使用vlax for循环遍历层集合中的层对象。
 
删除IF语句后,剩下的是:
 
  1. (defun c:LWChange ( / n )
  2. (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  3.    (if
  4.      (and
  5.        (wcmatch (setq n (strcase (vla-get-name l))) "*FURN*,*EQPM*,*PFIX*")
  6.        (not (wcmatch n "MV-*EQPM*"))
  7.      )
  8.      (vla-put-lineweight l acLnWt005)
  9.    )
  10.    (if (wcmatch n "*BFREE*,*CLEAR*")
  11.      (vla-put-freeze l :vlax-true)
  12.    )
  13. )
  14. (princ)
  15. )
  16. (vl-load-com) (princ)

 
或者,如果你想走香草路线。。。
 
  1. 5
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
423
发表于 2022-7-6 00:23:41 | 显示全部楼层
令人惊叹的
 
虽然香草对我的大脑更容易,但我很欣赏这两种方式!
 
 
李,我太感谢你了!!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:29:07 | 显示全部楼层
不客气
 
对于这个特定的任务,我认为VL方法更简洁,但普通方法可能更快。
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:13 , Processed in 0.813162 second(s), 70 queries .

© 2020-2025 乐筑天下

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