乐筑天下

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

[编程交流] 按层设置

[复制链接]

21

主题

89

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 15:50:09 | 显示全部楼层 |阅读模式
  1. (defun c:tt (/ CNT DXDT DXFDNEW DXFNEW DXFOLD ENT SSET )
  2. (command "_.Layer" "_Make" "L-ANNO_TEXT" "_Color" "7" "" "_LType" "Continuous" "" "")
  3. (setq sset (ssget))
  4. (setq cnt 0)
  5. (repeat (sslength sset)
  6.    (setq ent (ssname sset cnt))
  7.    (setq dxdt (entget ent))
  8.    (setq dxfold (assoc 8 dxdt))
  9.    (setq dxfnew '(8 . "L-ANNO_TEXT"))
  10.    (setq dxfdnew (subst dxfnew dxfold dxdt))
  11.    (entmod dxfdnew)
  12.    (setq cnt (1+ cnt))
  13. )
  14. [color="olive"][color="olive"][color="red"](command "change" "P" "c" "" "BYLAYER" "" sset)[/color][/color][/color]
  15. (princ)
  16. )

 
首先,感谢Grrr在上述程序上对我的帮助。它工作得很好。我只想再添加一个命令,将图层颜色设置为“按图层”。我试图添加突出显示的代码,但没有成功。任何帮助都将不胜感激。提前谢谢。
回复

使用道具 举报

21

主题

89

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 15:56:08 | 显示全部楼层
  1. (defun c:tt (/ CNT DXDT DXFDNEW DXFNEW DXFOLD ENT SSET )
  2. (command "_.Layer" "_Make" "L-ANNO_TEXT" "_Color" "7" "" "_LType" "Continuous" "" "")
  3. (setq sset (ssget))
  4. (setq cnt 0)
  5. (repeat (sslength sset)
  6.    (setq ent (ssname sset cnt))
  7.    (setq dxdt (entget ent))
  8.    (setq dxfold (assoc 8 dxdt))
  9.    (setq dxfnew '(8 . "L-ANNO_TEXT"))
  10.    (setq dxfdnew (subst dxfnew dxfold dxdt))
  11.    (entmod dxfdnew)
  12.    (setq cnt (1+ cnt))
  13. )
  14. (command "CHPROP" sset "" "COLOR" "BYLAYER" "LTYPE" "BYLAYER" "")
  15. (princ)
  16. )

 
知道了!
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:58:11 | 显示全部楼层
您还可以使用子功能更改重复循环中的实体颜色:
史蒂夫
回复

使用道具 举报

13

主题

146

帖子

136

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2022-7-5 16:06:09 | 显示全部楼层
@StevJ你试过命令setbylayer吗?
 
不确定添加了哪个版本的AutoCAD,但其工作原理与您发布的代码类似。具有在块上工作的优势。注意,命令行上的设置提示可以修改命令的工作方式-仅限setbylayer颜色、线型等。。
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-5 16:07:37 | 显示全部楼层
是的,我不是它的真正粉丝。要得到结果,需要回答的问题太多。
我想选择我的对象,发出命令(BL),按Enter键并继续。
 
史蒂夫
回复

使用道具 举报

13

主题

146

帖子

136

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2022-7-5 16:13:19 | 显示全部楼层
 
我非常感谢Grrr,但我只知道基本代码;(
回复

使用道具 举报

21

主题

89

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 16:14:40 | 显示全部楼层
 
谢谢StevJ,我以后会用这个。
回复

使用道具 举报

21

主题

89

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 16:19:07 | 显示全部楼层
好啊我真的很烦,我不能相信作者,所以我在搜索了一段时间后又找到了它。
 
作者:LeeMac 2010年2月2日
http://www.cadtutor.net/forum/showthread.php?44398-宏
职位#2
 
史蒂夫
回复

使用道具 举报

13

主题

146

帖子

136

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2022-7-5 16:24:28 | 显示全部楼层
 
非常感谢史蒂夫,我很欣赏你的高贵。
 
以下是Vanilla AutoLISP版本,它可能提供更好的性能:
或者,为了避免选择已经具有所需特性的对象:
  1. (defun c:bl ( / i s )
  2.    (if (setq s (ssget "_:L"))
  3.        (repeat (setq i (sslength s))
  4.            (entmod (append (entget (ssname s (setq i (1- i)))) '((006 . "ByLayer") (062 . 256) (370 . -1))))
  5.        )
  6.    )
  7.    (princ)
  8. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:27:13 | 显示全部楼层
 
这张看起来很有创意,谢谢你的发帖!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 21:13 , Processed in 0.891002 second(s), 72 queries .

© 2020-2025 乐筑天下

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