CAD里怎么用LISP调出图层管理器中的图层过滤器,并且批量更改过滤出来的图层颜色、冻结状态?
目前图纸里参照的图太多了,原先的图层都带上了图纸名称,自己设置过滤器的话要每张图都设,想寻求一个lisp来自己修改调试。...
目前图纸里参照的图太多了,原先的图层都带上了图纸名称,自己设置过滤器的话要每张图都设,想寻求一个lisp来自己修改调试。
展开
2个回答
展开全部
AcadDoc.layers.Count----得到图中所有的图层 的总层数
遍历所有的层
某一层 LLL=AcadDoc.layers.item i------也就是得到第i层
用--LLL.Name----得到某一层的层名
通过比较 如果该层正是 你想要改颜色的那个 层,那就用 LLL.TureColor ---来设置层的颜色
------------------对了,前提是图中所有图元的颜色都是"ByLayer"--也就是“随层”
遍历所有的层
某一层 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个字符
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询