乐筑天下

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

[编程交流] 清除LISP例程

[复制链接]

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-5 17:43:35 | 显示全部楼层 |阅读模式
所以我有一个我写的LISP例程,它将清除图形中的所有样式,然后清除我能够清除的所有其他样式,然后将wblock出图形并保存在现有图形上。我想添加的最后一步是去掉wblock之后仍然保留的层,但这些层上没有任何对象。我现在知道,如果我使用laymrg命令,我可以通过将所有未使用的层与层0合并来轻松完成这一点。我的问题是,我想不出最有效的方法来确定一个层是否为“空”。我将只使用ssget并遍历图形中的每个层,如果选择集为null,则使用层0来laymrg。但这看起来效率很低,所以我想知道是否有人对如何做到这一点有任何其他建议。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 17:57:37 | 显示全部楼层
某些层可能很难清除
 
[列表]
  • 仅在视口(扩展数据)VPLAYER设置中引用的空层
  • 使用Sequend实体创建的空
  • 参考块中的空层
    [/列表]
     
    多年来,欧文一直保持着稳健的写作习惯:
     
    https://www.manusoft.com/software/superpurge.html
     
    这可能有用。
     
    -大卫
  • 回复

    使用道具 举报

    24

    主题

    1265

    帖子

    1028

    银币

    后起之秀

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

    铜币
    362
    发表于 2022-7-5 18:00:30 | 显示全部楼层
    虽然《大卫》提出了一些好的观点,但我认为《broncos15》并不关心这些场景。LayMrg会很好地处理这些案件。
     
    那么回到[找出一个层是否“空”的最有效方法]。。。。。。其中“空”表示没有正常的几何形状。
     
    尽管这是为了。NET代码、文章和评论可能会给你一些想法:
    http://through-the-interface.typepad.com/through_the_interface/2008/05/finding-all-the.html
    回复

    使用道具 举报

    106

    主题

    1万

    帖子

    101

    银币

    顶梁支柱

    Rank: 50Rank: 50

    铜币
    1299
    发表于 2022-7-5 18:12:31 | 显示全部楼层
    Civ3D样式存在问题,即使未使用,也会链接到图层。你在吹扫之前做吹扫吗?
     
    2019年更好的选择?将定义一个要使用的层,但在实际用于CIV3D之前不存在。
    回复

    使用道具 举报

    95

    主题

    477

    帖子

    383

    银币

    后起之秀

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

    铜币
    475
    发表于 2022-7-5 18:19:18 | 显示全部楼层
    rkmcswain,谢谢你的文章,这非常有帮助!我将看看如何将这些概念应用于LISP。比加尔,是的,我在吹扫之前做吹扫。如何定义要在模板文件中使用但在实际使用之前不存在的图层?我正在运行2015,在这个版本中可能吗?这似乎是一个更好的实践,适用于模板文件,它肯定会有助于消除这样一个“深度”清除的需要。
    回复

    使用道具 举报

    95

    主题

    477

    帖子

    383

    银币

    后起之秀

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

    铜币
    475
    发表于 2022-7-5 18:23:59 | 显示全部楼层
    我意识到我需要考虑的另一件事是图层是在外部参照中还是在图形中。这比我最初想象的要复杂一点,哈哈。
    回复

    使用道具 举报

    5

    主题

    1334

    帖子

    1410

    银币

    限制会员

    铜币
    -20
    发表于 2022-7-5 18:34:19 | 显示全部楼层
    外部参照图层不应该影响DWG中的正常图层。。。就在最近,我编写了lisp来检查DWG中的嵌套层。。。您可以将例程更改为遍历所有(ai_表“LAYER”4)层列表,如果修改后的例程作为子函数返回nil,您可以将该层设置为LAYMRG,层为0。。。Lisp可在此处找到:
    http://www.cadtutor.net/forum/showthread.php?96685-嵌套层位于其中块和p=#6
     
    [编辑:(ai_table“LAYER”4)应提供不包括外部参照层的正确层列表…请查看此处以了解更多信息:
    https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/ai-table-parameters/m-p/1547150/highlight/true#M203243 ]
     
    HTH,M.R。
    回复

    使用道具 举报

    95

    主题

    477

    帖子

    383

    银币

    后起之秀

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

    铜币
    475
    发表于 2022-7-5 18:40:09 | 显示全部楼层
    谢谢Marko,这是一个很好的起点!此外,感谢链接,这对于了解ai_表的参数都有什么作用非常有用。
    回复

    使用道具 举报

    106

    主题

    1万

    帖子

    101

    银币

    顶梁支柱

    Rank: 50Rank: 50

    铜币
    1299
    发表于 2022-7-5 18:47:43 | 显示全部楼层
    Broncos15我们绕过了一个proprietry包中的层exist,但它使用了自定义,所以当你绘制一个对象时,它进入了一个为该类型对象设置的文本文件中定义的层。绘制时添加了层。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

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

    © 2020-2025 乐筑天下

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