发布于:2005-06-23 00:02:23
来自:建筑设计/CAD下载及教程
[复制转发]
有些编程者编程时没有考虑到用户环境的不同,经常所编制的程序能运行在自制的模板图形上,而不能在用户的图形中运行,这种情况也是我经常碰到的。
最容易碰到的是图层。程序中,经常会使用特定的图层来放置程序所生成的对象,比如说你将图层设置为“3”层,写出的程序如下:
(setq oldLayer ( getvar "clayer")) ;将当前图层保存起来,以便以后的恢复
(setvar "clayer" "3") ;将图层“3”转换为当前图层
这时,如果用户当前图形中在存在“3”图层,程序就会出错并中断。为此,你首先应判断“3”图层是否存在,采用以下的函数判断图层的存在:
(tblobjname "layer" "3")
这时,如果图层“3”确实不存在时,则可用以下函数内容建立该名称的图层:
(entmake (list
’(0 . "LAYER")
’(100 . "AcDbSymbolTableRecord")
’(100 . "AcDbLayerTableRecord")
’(6 . "CONTINUOUS")
’(62 . 3)
’(70 . 0)
’(2. "3")
)
)
这样就可以建立新图层,完整的程序如下:
(setq old_lay (getvar "clayer"))
(if (=(tblobjname "LAYER" "3") nil)
(progn
(entmake (list
’(0 . "LAYER")
’(100 . "AcDbSymbolTableRecord")
’(100 . "AcDbLayerTableRecord")
’(6 . "CONTINUOUS")
’(62 . 3)
’(70 . 0)
(cons 2 "3")
)
)
)
)
(setvar "clayer" "3")
全部回复(4 )
只看楼主 我来说两句如果楼主找到了 能不能发到我电子邮箱里去
邮箱地址zhangfly0110@163.com
谢谢了
回复 举报
回复 举报