乐筑天下

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

[编程交流] AutoLISP删除图层

[复制链接]

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:46:03 | 显示全部楼层 |阅读模式
你好
 
我是AutoLISP的新手,需要编写一个程序来删除文件中的所有层,但这些层除外:夹具形状、检查通道、拱门墙内部(构造)、拱门墙内部、拱门墙外部。到目前为止,我得到了一条错误消息:“错误:输入列表格式错误”
 
 
谢谢你!
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:00:47 | 显示全部楼层
欢迎来到CADTutor,劳雷尔!
 
您已经考虑过PURGE和LAYDEL命令了吗?
 
至于删除层,你发布的代码有几个错误(没什么大不了的),但我更感兴趣的是了解更多关于你到底想做什么的信息?您的代码删除了所有层上的实体,除了您希望保留的实体,而不是这些实体所在的层。
 
需要更多信息。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:09:27 | 显示全部楼层
以下是一个快速参考,提供了一些常见错误消息的简要说明,以帮助您诊断问题:
 
http://lee-mac.com/errormessages.html
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:16:56 | 显示全部楼层
第一篇文章的代码平衡了偏执,你同时编辑了吗?然而,这一行有一个语法错误-点前面必须有一个空格:
  1. (-4[color=red][b].[/b][/color] "NOT>")

 
还有其他以“拱门墙”开头的层吗?如果不是,您可以将筛选器编写为:
  1. (8 . "Fixture-Shapes,CHECKLANE,Arch-Wall-*")
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:26:17 | 显示全部楼层
 
谢谢大家的帮助!
 
伦德曼,
我正在尝试从中删除所有不需要的信息。我收到的DWG文件,这样当我导出到时,它们不会使我的计算机陷入困境。PDF并在Illustrator中编辑。我知道我真正需要的唯一信息是在指定的层上。理想情况下,我想删除所有其他层和他们的艺术品。
 
非常感谢。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:38:12 | 显示全部楼层
 
1+吹扫和铺设
 
 
欢迎来到CADTutor,劳雷尔!
 
使用erase命令对您没有任何好处。如果要删除的图层上的布局(而非模型)或块内有实体
 
_Laydel将删除这些实体和层本身,而不考虑空间,唯一需要做的是确保其解锁,而不是当前层。
 
此代码将删除除列表中的层之外的所有层
  1. (defun c:demo  (/ 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.                                   '("thislayer1"
  17.                                     "thislayer2"
  18.                                     "thislayer3"))))
  19.                  (progn
  20.                        (vla-put-lock itm :vlax-false)
  21.                        (vl-cmdf "_.-laydel" "_N" name "" "_Y"))
  22.                  )
  23.            )
  24.      (repeat 4 (vla-purgeall aDoc))
  25.      (princ)
  26.      )

 
现在,如果您只想删除列表中的内容
更换此线路
  1. [b](not [/b](member name   '("thislayer1" "thislayer2" "thislayer3"))[b])[/b]

用这个
  1. 5

 
HTH公司
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:48:18 | 显示全部楼层
pBe,
 
这真是太棒了!非常感谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:29 , Processed in 0.543837 second(s), 66 queries .

© 2020-2025 乐筑天下

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