乐筑天下

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

[编程交流] 将所有内容移动到自定义La

[复制链接]

21

主题

73

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:20:51 | 显示全部楼层 |阅读模式
你好
 
有谁知道lisp例程可以将模型空间中的所有内容更改为自定义层名称(G541-M_General lighting),并将颜色设置为白色(7)。
 
同时,让它删除所有其他未使用的层也会很好。
 
谢谢
 
上下快速移动
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 18:27:16 | 显示全部楼层
将为该新图层指定什么线型?
回复

使用道具 举报

21

主题

73

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:34:01 | 显示全部楼层
连续线型和默认线宽。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:35:38 | 显示全部楼层
类似手动版本的键盘操作
使用颜色和类型制作G541-M_通用照明层
CHPROP“select all required”la G541-M_General lighting lt bylayer C bylayer
 
未测试
  1. (defun sslighting ( / ss)
  2. (setq ss (ssget "X" (list (cons 410 "Model"))))
  3. (command "-layer" "M" "G541-M_General lighting" "c" 7 "G541-M_General lighting" "lT" "Continuous"
  4. "G541-M_General lighting" "S" "G541-M_General lighting" "")
  5. (command "chprop" ss "" "La" "G541-M_General lighting")
  6. )
  7. (sslighting)
回复

使用道具 举报

21

主题

73

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:43:06 | 显示全部楼层
谢谢你的代码,不管怎样,代码是否可以创建新层并使其成为当前层,而无需手动创建?
回复

使用道具 举报

21

主题

73

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:46:08 | 显示全部楼层
lisp例程可能会执行以下操作吗?
 
1.创建一个新层,名为:G541-M_General lighting(层默认值很好)。
2、将其设置为当前。
3.将图纸中的所有项目(包括块内的层)移动到新层上。
4、自动运行“按层设置”命令,将所有内容恢复为默认值。
删除所有其他层,包括任何关闭或冻结的层。
6、删除图纸中的所有擦除。
7、清除图纸。
 
也许我需要花钱请人来写。
 
谢谢
 
上下快速移动
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:49:36 | 显示全部楼层
修复了1和2我的错误-层代码更新。
 
第3步“搜索块到当前层”
 
4.
 
5搜索删除层需要一个版本来检查和冻结
;   作者:马克·托马斯
;   该文件包含2个函数:
;   del layer将删除选定图层上的所有对象并将其清除
 
6.
  1. (setq ss (ssget "X" (list (cons 0 "WIPEOUT"))))
  2. (command "erase" ss "")

 
7-清除!!
回复

使用道具 举报

21

主题

73

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:54:14 | 显示全部楼层
谢谢BIGAL,代码正在变得更好。
 
第三步-我会在网上搜索。
 
步骤4-该命令已存在于AutoCAD SETBYLAYER中,是否可以将其合并到代码中?
http://help.autodesk.com/view/ACDLT/2016/ENU/?guid=GUID-A9D9FF14-4EF6-4A25-B0F4-506C6B792E9E
 
第五步-我会在网上搜索。
 
第6步-我尝试将该代码添加到我的代码中,但它不起作用,也许我把它放错了位置。
 
第7步-同上。
回复

使用道具 举报

21

主题

73

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:59:32 | 显示全部楼层
这就是我目前所拥有的。
 
(定义c:cadqa(/ss)
(setq ss(ssget“X”(列表(cons 410“模型”)))
(命令“-layer”“M”“G541-M_General lighting”“c”7“G541-M_General lighting”“lT”“Continuous”
“G541-M_General lighting”“S”“G541-M_General lighting”“”)
(命令“chprop”ss““La”G541-M_General lighting”)
)
(cadqa)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:05:14 | 显示全部楼层
也许这个添加层
 
  1. (setq  doc (vla-get-activedocument (vlax-get-acad-object))) ; open database
  2. (vlax-for block (vla-get-blocks doc)
  3. (if (not (wcmatch (strcase (vla-get-name block) t) "*_space*"))
  4. (vlax-for ent block
  5. (vla-put-layer ent (getvar "clayer")) ; current layer
  6. (vla-put-color ent 0)
  7. (vla-put-linetype ent "Bylayer")
  8. (vla-put-lineweight ent aclnwtbyblock)
  9. ) ;_ end of vlax-for
  10. ) ;_ end of if
  11. ) ;_ end of vlax-for
  12. (vla-regen doc acactiveviewport)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:53 , Processed in 0.955255 second(s), 72 queries .

© 2020-2025 乐筑天下

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