乐筑天下

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

[编程交流] 列出图层名称和实体#039;s

[复制链接]

13

主题

56

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 16:32:56 | 显示全部楼层 |阅读模式
我的部分工作涉及检查是否有任何图层名称和实体处于/或已被洋红色覆盖
在视觉上看不到整个图形并忽略一些观察实体的情况下,是否有一个或多个LISP可以更快地完成:
1) 列出洋红色的图层名称
2) 列出被洋红色覆盖的实体的层名称
3) (如有可能)隔离或放大到洋红颜色的实体或用洋红颜色覆盖的实体的方法
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:50:39 | 显示全部楼层
1非常可行
2和3搜索1000000个实体可能需要一些时间。
回复

使用道具 举报

13

主题

56

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 16:57:07 | 显示全部楼层
 
1和2对我来说最重要,因为查看许多图形很耗时&至于3,我仍然可以手动隔离这些层,尽管这会有所帮助。但是1和2是我最需要的。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:06:46 | 显示全部楼层
项目1
 
  1. (defun c:test ( / col ans doc lay)
  2. (setq col (strcat "Color_" (getstring "Enter color number 1-255")))
  3. (setq ans (strcat "Layers with " col))
  4. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  5. (vlax-for lay (vla-get-Layers doc)
  6. (if (= (vla-get-PlotStyleName lay) Col)
  7. (setq ans (strcat  ans "\n" (vla-get-name lay)))
  8. )
  9. )
  10. (alert ans)
  11. )
回复

使用道具 举报

13

主题

56

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 17:13:57 | 显示全部楼层
谢谢比格尔。弹出消息很好。此外,它是否也可以在命令行中列出,以便我可以复制文本。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:26:06 | 显示全部楼层
将“ans”行更改为将层名称写入文件比复制文本更容易。或根据下面的新行删除(警报ans)
 
  1. (setq ans (strcat  ans "\n" (vla-get-name lay)))
  2. (princ (strcat "\n" (vla-get-name lay)))
回复

使用道具 举报

13

主题

56

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 17:34:15 | 显示全部楼层
 
将行修改为2,但不完全正确。怎么了?
 
  1. (defun c:test ( / col ans doc lay)
  2. (setq col (strcat "Color_" (getstring "Enter color number 1-255")))
  3. (setq ans (strcat "Layers with " col))
  4. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  5. (vlax-for lay (vla-get-Layers doc)
  6. (if (= (vla-get-PlotStyleName lay) Col)
  7. (princ (strcat "\n" (vla-get-name lay)))
  8. )
  9. )
  10. )
  1. (defun c:test ( / col ans doc lay)
  2. (setq col (strcat "Color_" (getstring "Enter color number 1-255")))
  3. (setq ans (strcat "Layers with " col))
  4. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  5. (vlax-for lay (vla-get-Layers doc)
  6. (if (= (vla-get-PlotStyleName lay) Col)
  7. (setq ans (strcat  ans "\n" (vla-get-name lay)))
  8. )
  9. )
  10. (princ (strcat "\n" (vla-get-name lay)))
  11. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-21 01:56 , Processed in 1.224275 second(s), 66 queries .

© 2020-2025 乐筑天下

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