向版主老顾求救!根据颜色自动分层的lsp问题
www.dimcax.com
向版主老顾求救!根据颜色自动分层的lsp问题
老顾,您好!
我需要一个自动分层的lsp。因为经常要用三维软件转图,要经常将转来的图改图层,线型等。
理想中的这个lsp程序可以通过颜色选择图素,然后将其转入相应的图层,当然,各人指定的图型名称等都不尽相同,如果不详尽,给我一个模板就可以了,谢谢。
问题补充:示例:
我选择一个区域的图素
然后运行程序,该程序能通过选中图素的颜色来进行筛选,然后将:
白色的图素(autocad色号:7)归入"sold"图层
黄色的图素(忘了什么色号了)归入"sec"图层
灰色的图素(autocad色号:8)归入"hed"图层
等等……
亟待佳音,谢谢!
弱弱地问一声:偶不是老顾 可以回答这个问题么?
非常实用《线割报价软件》
群16671234可下载
1楼的仁兄请帮个忙,谢谢!
下面是你要建的三个层
在引用下面的程序时它会自己先检查没有时它按你的要求去建.你把你常用的层建好后保存到摸板图*.dwt下次你打开新图时用你的摸板图层全有.
(if (not (tblsearch "layer" "sold"))
(command "layer" "n" "sold" "")) ;白色可省去
(if (not (tblsearch "layer" "sec"))
(command "layer" "n" "sec" "c" "2" "sec" "")) ;"c" 是色 2是黄色
(if (not (tblsearch "layer" "hed"))
(command "layer" "n" "hed" "c" "8" "hed" "")) ;色红1 黄2 绿3 青4 兰5 紫6 白7
gbg
谢谢老顾!虽然我对二次开发一窍不通,但是你的解析很简单明了,已基本明白。
另外,再请问,如果是在cad里建立的属性块,能不能在插入块时能自动归属到指定层呢?例如,我建立有标零件序号的属性块,然后我也专门建立了一个标号层,能不能在使用insert命令插入这个属性块时,能自动归到标号层里面呢? 如果能解决,烦请告之。
我建立有标零件序号的属性块,然后我也专门建立了一个标号层,能不能在使用insert命令插入这个属性块时,能自动归到标号层里面.
你肯定是建好了标号层,在标号层画块,建块.
方法有两种.
1.可在任意层上用插入在命令下直接输入-insert回车提示:输入块名或 [?]你在块名前加个*例:块名为xh你就输入*xh回车,提示:指定块的插入 点:你用鼠标指定块的插入点:提示:指定 xyz 轴比例因子:你输入例输入1回车,提示:指定旋转角度 <0>:你输入旋转角度,回车,块插在你指定的位置上,它不是块,所有的线都在原建块时的层上.
2.如你可在任意层上用插入在命令下直接输入-insert回车提示:输入块名或 [?]你直接输入块名,但块插好后要用explode去炸开,炸开后都是在标号层.
下面给出一个程序:
(defun c:inn ()
(prompt "块名")
(setq a (getstring) a (strcat "*" a))
(setq p1 (getpoint "插入点: "))
(setq b (getstring "比例(1) : ")) ;回车比例为1
(if (= b "")(setq b "1"))
(setq c (getstring "输入角度(0) : ")) ;回车角度为0
(if (= c "")(setq c "0"))
(command "insert" a p1 b c)
)
gbg
老顾,我的意思是指:假如当前操作层是0层,那么我建好的标号块插进来(不炸开)就属于0层的;有没有办法能不改变当前操作层(0层),而插进来的标号块不炸开而自动归到标号层里面,不影响我在0层继续用其他命令作图呢?
用下面的程序可把你的块插到bj层.
不管你在那一层,程序先把当前层转到bj层,把块插好后自动转到原来的层.
(defun c:inn ()
(setq la (getvar "clayer") os (getvar "osmode"))
(setvar "clayer" "bj")
(setvar "osmode" 0)
(prompt "块名")
(setq a (getstring) )
(setq p1 (getpoint "插入点: "))
(setq b (getstring "比例(1) : ")) ;回车比例为1
(if (= b "")(setq b "1"))
(setq c (getstring "输入角度(0) : ")) ;回车角度为0
(if (= c "")(setq c "0"))
(command "insert" a p1 b b c)
(setvar "clayer" la)
(setvar "osmode" os)
)
gbg
非常感谢老顾!程序我收下了。
thanks!!!!!!
描述:对话框中各选项均有默认值
图片:
描述:如果你只需要用到一行 那么将多余的图层名 空白 就好
图片:
问题补充:示例:
我选择一个区域的图素
然后运行程序,该程序能通过选中图素的颜色来进行筛选,然后将:
白色的图素(autocad色号:7)归入"sold"图层
黄色的图素(忘了什么色号了)归入"sec"图层
灰色的图素(autocad色号:8)归入"hed"图层
程序已经完成 参考17
非常实用《线割报价软件》
群16671234可下载