CAD里怎么用LISP调出图层管理器中的图层过滤器,并且批量更改过滤出来的图层颜色、冻结状态?

目前图纸里参照的图太多了,原先的图层都带上了图纸名称,自己设置过滤器的话要每张图都设,想寻求一个lisp来自己修改调试。... 目前图纸里参照的图太多了,原先的图层都带上了图纸名称,自己设置过滤器的话要每张图都设,想寻求一个lisp来自己修改调试。 展开
 我来答
bcatv
2020-05-13 · TA获得超过4434个赞
知道大有可为答主
回答量:4763
采纳率:77%
帮助的人:574万
展开全部
AcadDoc.layers.Count----得到图中所有的图层 的总层数
遍历所有的层
某一层 LLL=AcadDoc.layers.item i------也就是得到第i层
用--LLL.Name----得到某一层的层名
通过比较 如果该层正是 你想要改颜色的那个 层,那就用 LLL.TureColor ---来设置层的颜色
------------------对了,前提是图中所有图元的颜色都是"ByLayer"--也就是“随层”
更多追问追答
追问

我想通过模糊搜索图层名的方式来实现,因为现在外部参照很多,图层名前面都带外部参照的文件名,文件名没有规律,原先的代码不知道怎么改了,这个是原来的代码一部分,想问一下能在这个基础上修改吗?

追答
你这个代码是逐一比较某层的层名,然后设置颜色,如果你想用模糊查找,需要稍作修改,那就不能直接用“=”这个比较符了,假设你的层名中,都是  前边几个字符相同,象 AAAA1234,AAAA5555,AAAA作为关键词,后边作为模糊词,你可以先取出其前边的4个字符,然后再用“=”比较符,这样就可以了,----------
(vla-get-name x)---取到层名,,加一个外套,,改成这样(substr (vla-get-name x) 1 4)
这里的4就是4个字符,你可以根据实际情况修改,也就是只比较“层的名称”中的前4个字符
人生丶也多礁
2020-05-12 · 超过11用户采纳过TA的回答
知道答主
回答量:72
采纳率:75%
帮助的人:5.2万
展开全部

贱人工具箱不行吗?图层功能很强大了啊

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式