在程序中实现图层的检查及新建

在程序中实现图层的检查及新建

ID:34457031

大小:35.43 KB

页数:10页

时间:2019-03-06

在程序中实现图层的检查及新建_第1页
在程序中实现图层的检查及新建_第2页
在程序中实现图层的检查及新建_第3页
在程序中实现图层的检查及新建_第4页
在程序中实现图层的检查及新建_第5页
资源描述:

《在程序中实现图层的检查及新建》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、在程序中实现图层的检查及新建.txt其实全世界最幸福的童话,不过是一起度过柴米油盐的岁月。一个人愿意等待,另一个人才愿意出现。感情有时候只是一个人的事,和任何人无关。爱,或者不爱,只能自行了断。在程序中实现图层的检查及新建有些编程者编程时没有考虑到用户环境的不同,经常所编制的程序能运行在自制的模板图形上,而不能在用户的图形中运行,这种情况也是我经常碰到的。最容易碰到的是图层。程序中,经常会使用特定的图层来放置程序所生成的对象,比如说你将图层设置为“3”层,写出的程序如下:(setqoldLayer(getvar"clayer"));将当前图层保存起来,以便以后的恢复(setv

2、ar"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")))这样就可以建立新图层,完整的

3、程序如下:(setqold_lay(getvar"clayer"))(if(=(tblobjname"LAYER""3")nil)(progn(entmake(list'(0."LAYER")'(100."AcDbSymbolTableRecord")'(100."AcDbLayerTableRecord")'(6."CONTINUOUS")'(62.3)'(70.0)(cons2"3")))))(setvar"clayer""3")可能有人会说,使用command转换及新建图层不是更加简单吗?但我总认为其它函数能完成的动作,最好不要使用“command”函数,因为可能下一个

4、版本中,command所引用的命令内容会有变化(如功能的加强),使用程序出错。就象R12、R13、R14版中的清理命令[Purge]就各不相同。<回到顶部> 将一个大程序分成多个小程序以简化编写过程初学者常常会将所有的功能都编入到一个程序(或函数)中。这不仅会使程序冗长难读,也会给修改和重用带来麻烦。AutoLISP是一种函数式的语言,因此,将一个单独的功能编制成一个函数可以使程序简明易读。对于重复调用次数较多的程序,应编制一个通用函数并在初始化时加载到环境中,以便于调用。<回到顶部>将自己编制的程序或函数的调用放在菜单系统中不要让自己编制的程序只能够从命令行调用,要将它们安

5、排在菜单中以方便用户的调用。<回到顶部>不要将自己编制的程序全都放入ACAD.LSP文件中一些程序只喜欢将自己编写的程序或函数放在ACAD.LSP文件中,因为该文件可以在AutoCAD启动时装载到环境中。这样做的确可以方便自己编制函数的调用。不过,如果ACAD.LSP文件太大,则调入每个绘图的时间将变长,因为内存减小了。事实上,ACAD.LSP是用来存放通用函数的,只有频率很高的函数才应放入到ACAD.LSP中。例如:用户库函数通常都放在ACAD.LSP中,或在ACAD.LSP中加载。<回到顶部>加载文件前应判别程序是否已被加载在调用用户自己定义的函数之前,应将与之相关的应用

6、程序加载到AutoCAD环境中,否则AutoCAD会报告不存在该函数。当一个函数会被多次调用时,如果每次调用之前都加载一次文件,则会浪费很多时间,因为一个文件只需加载一闪即可。这时,判别一下某文件是否已经装入是非常必要的,这种用法在菜单文件的语句中很常见,例如:...[技术要求](if(notjsyq)(load"jsyq"));(jsyq);...这里我们假定jsyq是文件jsyq.lsp中的一个函数(不是一个变量),在调用函数(jsyq)之前,(ifnot...)语句首先判断一下该函数是否已经存在。如果不存在,就加载相关文件jsyq.lsp;否则说明步过加载语句。<回到顶

7、部>为自己的应用程序建立一个单独的目录不要将自己的应用程序放在AutoCAD软件包所在的目录下,这样不仅会扰乱软件包中文件的排列,也不便于管理。通常开发者会建立一个单独的目录来旋转自己的应用程序。此建立目录的名字应尽量避免可能会因安装AutoCAD或其它第三方软件包而产生的冲突。<回到顶部>尽量减小应用程序的文件数AutoLISP程序通常都很短小,因为一个功能一般只需几十条语句就可以完成,这也是AutoLISP语言的效率所在。不过,如果将每一个编制的功能都生成一个单独的文件,不仅会使程序的数量繁多,而且

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。