CAD 如何用lisp实现如图层一到二十,把全部图层变成8号色?然后其中的某个图层为红色

 我来答
bcatv
2020-04-20 · TA获得超过4433个赞
知道大有可为答主
回答量:4763
采纳率:77%
帮助的人:563万
展开全部
编程思路如下:
1、界面上放两个按钮,
2、其中一个按钮用来定义哪些层需要变成红色的,里边让用户输入字符串,比如:AAA,BBB,,也就是定义为 AAA层与BBB层 将变成红色,其它所有层变为8号色
3、另一个按钮用来执行任务
遍历所有图层,将图层名称 逐一 与定义的字符串比较,如果相同 则设为红色,否则设为8号色---------------------------图中 层的总个数 layers.count
------------------------------某一层 LAYERX= layers.item i
------------------------某一层的层名 :LAYERX.name
------------------改某一层 颜色用 LAYERX.TrueColor tcolor
-------truecolor设定起来有点难度哦,你多想想
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朱06CAD
2020-04-21 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18067
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(defun c:tes ( / n tr)
(setq n 0)
(while (< (setq n (1+ n)) 21)
(setq tr (rtos n 2 0))
(if (null (tblsearch "layer" tr))
(entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 62 8) '(70 . 0) (cons 2 tr)))
);图层代码;62颜色,负值为关闭图层;;290不打印0;打印1;;;370线宽0;默认线宽-3;;;70图层可见0;冻结1+锁定4
)
(princ)
);复制到记事本,以【.lsp】为后缀命名,加载到CAD,命令为【TES】(可以自己修改)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式