乐筑天下

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

[编程交流] lisp make layer manager curren

[复制链接]
CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 15:59:09 | 显示全部楼层 |阅读模式
希洛,
 
是否有lisp可以使图层管理器特性过滤所有当前图层。
带命令:currentfilterall
 
见附件。
165913igo95gehx8o3e9hx.jpg
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:09:20 | 显示全部楼层
这里有一条“老”线索可能会有所帮助。
回复

使用道具 举报

CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 16:15:04 | 显示全部楼层
您好,Grrrr,
 
哪种代码适合我?链接不知道是哪个代码?
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:19:25 | 显示全部楼层
该线程中的代码并没有完全解决您的问题,而是找到了如何创建属性过滤器,这可能有助于您未来的代码。
请附上样本图纸进行测试,因为还有一个问题,你使用“属性”还是“组”过滤器。
回复

使用道具 举报

CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 16:32:04 | 显示全部楼层
谢谢你的回放,但是有Lisp程序的吗?去解决它?
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:35:09 | 显示全部楼层
我用这个:
 
加载LSP文件时执行命令:
  1. (defun SETLAYERFILTER ( / )
  2. (setvar "cmdecho" 0)
  3. (command "UNDO" "BEGIN")
  4. (setq i 0)
  5. (vlax-for x (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)))(if (eq (vla-get-IsXref x) :vlax-true)(setq i (1+ i))))
  6. (if (>= i 1)(command "-Layer" "Filter" "Set" "All non-Xref Layers" ""))
  7. (command "UNDO" "END")
  8. (setvar "cmdecho" 1)
  9. (princ)
  10. )
  11. (SETLAYERFILTER)

 
常规命令:
  1. (defun C:SETLAYERFILTER ( / )
  2. (setvar "cmdecho" 0)
  3. (command "UNDO" "BEGIN")
  4. (setq i 0)
  5. (vlax-for x (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)))(if (eq (vla-get-IsXref x) :vlax-true)(setq i (1+ i))))
  6. (if (>= i 1)(command "-Layer" "Filter" "Set" "All non-Xref Layers" ""))
  7. (command "UNDO" "END")
  8. (setvar "cmdecho" 1)
  9. (princ)
  10. )

 
当DWG文件中存在外部参照时,AutoCAD会自动创建图层过滤器。
此命令检查是否存在外部参照,如果存在。。。滤波器也存在,因此其集合也存在。
回复

使用道具 举报

CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 16:44:27 | 显示全部楼层
触摸后,
 
代码对我来说非常适合,正是我需要的,Thxxxxxxxxxx alottt Bedankt!!
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:49:02 | 显示全部楼层
@触摸后良好的努力。
 
我只是想让你们注意一个重要的问题,你们可能想知道并从中学习,因为你们迭代块表的目的是知道当前图形中是否存在任何外部引用,所以最好停止迭代图形中的其余块,以使函数高效更快地工作。
 
除此之外,尽可能长时间使用DXF编码也是一个好主意。
 
请看一下下面的内容,我相信您可以了解代码的工作原理。
 
  1. (while (and (not fnd)
  2.            (setq blk (tblnext "BLOCK" (not blk)))
  3.       )
  4. (and (assoc 1 blk)
  5.       (setq fnd t)
  6.       (command "-Layer" "Filter" "Set" "All non-Xref Layers" "")
  7. )
  8. )
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:58:10 | 显示全部楼层
@塔瓦,你的右边。
 
我的编码首先检查所有块,并计算所有外部参照,其中一个匹配就足够了。
谢谢你的提示!
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:59:18 | 显示全部楼层
 
欢迎你继续努力。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:08 , Processed in 2.392743 second(s), 75 queries .

© 2020-2025 乐筑天下

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