乐筑天下

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

[编程交流] 删除Mult中的特定层

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:39:30 | 显示全部楼层 |阅读模式
大家好!
 
我是AutoLISP的新手,希望能得到一些帮助。我想要一个lisp例程,可以从特定目录中的所有图形中删除特定层(以及其中的任何实体)(我可以在例程开始时选择)。图层列表可以特定于例程,因为所有图形都具有相同的图层。
 
我有1000多张画,我需要这样做,我真的不想把它们都单独做。
 
提前感谢您的帮助!
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 16:48:04 | 显示全部楼层
听起来像是一个脚本,可以批量处理一个文件夹充满了图纸将是一种方式。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:58:44 | 显示全部楼层
评论
 
以下是我目前掌握的信息:
 
  1. (defun c:ELAYER (/ aDoc name)
  2. (setvar 'Clayer "0")
  3. (repeat 4
  4. (vla-purgeall
  5. (setq aDoc (vla-get-ActiveDocument
  6. (vlax-get-acad-object)))))
  7. (vlax-for
  8. itm
  9. (vla-get-layers aDoc)
  10. (if (and
  11. (not (wcmatch
  12. (setq name (vla-get-name itm))
  13. "*|*"))
  14. (not (eq name "0"))
  15. (not (member name
  16. '("STREETCL_CENTERLINE"
  17. "SPOT_X_WATER_TEST"
  18. "SPOT_X_GROUND_TEXT"
  19. "SPOT_X_GROUND"
  20. "SPOT_X_BRIDGE_TEXT"
  21. "SPOT_X_BRIDGE"
  22. "RAILROAD_CENTERLINE"
  23. "CONTOUR_SIXHUNDEREDEIGHTYONE"
  24. "CONTOUR_LABEL"
  25. "CONTOUR_INTER_DEP"
  26. "CONTOUR_INTER"
  27. "CONTOUR_INDEX_DEP"
  28. "CONTOUR_INDEX"
  29. "CONTOUR_FOURNINETYTWO"
  30. "SPOT_X_WATER"))))
  31. (progn
  32. (vla-put-lock itm :vlax-false)
  33. (vl-cmdf "_.-laydel" "_N" name "" "_Y"))
  34. )
  35. )
  36. (repeat 4 (vla-purgeall aDoc))
  37. (princ)
  38. )

我在vlax get acad object命令中遇到一个错误,它还没有批处理。有什么想法吗?
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:05:39 | 显示全部楼层
好的,我修复了错误,现在例程运行得很好。我怎样才能使它成为一个多批处理。dxf图形在同一文件夹中?
 
  1. (defun c:ELAYER (/ aDoc name)
  2. (setvar 'Clayer "0")
  3. (repeat 4
  4. (vla-purgeall
  5. (setq aDoc (vla-get-ActiveDocument
  6. (vlax-get-acad-object)))))
  7. (vlax-for
  8. itm
  9. (vla-get-layers aDoc)
  10. (if (and
  11. (not (wcmatch
  12. (setq name (vla-get-name itm))
  13. "*|*"))
  14. (not (eq name "0"))
  15. (not (member name
  16. '("STREETCL_CENTERLINE"
  17. "SPOT_X_WATER_TEST"
  18. "SPOT_X_GROUND_TEXT"
  19. "SPOT_X_GROUND"
  20. "SPOT_X_BRIDGE_TEXT"
  21. "SPOT_X_BRIDGE"
  22. "RAILROAD_CENTERLINE"
  23. "CONTOUR_SIXHUNDEREDEIGHTYONE"
  24. "CONTOUR_LABEL"
  25. "CONTOUR_INTER_DEP"
  26. "CONTOUR_INTER"
  27. "CONTOUR_INDEX_DEP"
  28. "CONTOUR_INDEX"
  29. "CONTOUR_FOURNINETYTWO"
  30. "SPOT_X_WATER"))))
  31. (progn
  32. (vla-put-lock itm :vlax-false)
  33. (vl-cmdf "_.-laydel" "_N" name "" "_Y"))
  34. )
  35. )
  36. (repeat 4 (vla-purgeall aDoc))
  37. (princ)
  38. )
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 17:08:36 | 显示全部楼层
我认为您必须编写一个“调用”lisp例程的脚本。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:19:05 | 显示全部楼层
您可以使用以下脚本行,通过我的旧脚本编写器应用程序评估您的程序:
 
根据需要更改红色标记的项目。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:19:50 | 显示全部楼层
请你妥善处理好吗
脚本名称和命令。
如果你能放在youtube上,像这样打印屏幕示例,那就更容易了
当做
伊姆兰
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:30:17 | 显示全部楼层
如何使用脚本请制作打印屏幕
举个例子。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:36:47 | 显示全部楼层
关于特定的同一层,你能帮我删除多个图形(打印边界)我如何删除打印边界(所有多个图形)
回复

使用道具 举报

28

主题

118

帖子

95

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2022-7-5 17:43:45 | 显示全部楼层
这条线索可能很有趣:
 
https://www.theswamp.org/index.php?topic=40745.msg460267#msg460267
 
多亏了李·麦克
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-23 13:24 , Processed in 0.987872 second(s), 73 queries .

© 2020-2025 乐筑天下

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