欢迎来到天天文库
浏览记录
ID:37496938
大小:661.60 KB
页数:44页
时间:2019-05-12
《清华大学的《CAD二次开发》电子教LIS》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章建立应用程序AotuCAD既可以将直接加载的AutoLISP源代码解释执行,也可以通过编译器先将AutoLISP源代码编译为可执行程序,然后加载执行。前者的优点是可随时测试或修改源代码,可以利用所有的调试程序的工具。后者的优点是提高了执行速度、对源代码保密。如果确认已加载过的AutoLISP源代码运行正常,则应将该源代码编译为可执行的机器代码文件。该文件的扩展名为".fas",是只有机器才能认识的目标文件。这样,不仅提高了程序的加载和运行速度,也起到了保护源代码的作用。VisualLISP还可生成更复杂的扩
2、展名为".vlx"的可执行文件。该文件是包括已编译的AutoLISP代码和dcl、vba等资源文件,是一个打包的应用程序。VisualLISP可以用vlisp-compile函数编译单个的AutoLISP文件,也可以用"生成应用程序向导",将多个AutoLISP文件编译成单个的".fas"和".vlx"文件。7.1通过VisualLISP_compile函数编译单个文件该函数的调用格式为:(vlisp-compile'mode"filename"[out-filename])其中:mode为编译的模式、filen
3、ame为源文件的名字、out-filename为编译后输出的".fas"类型的执行文件的名字。1.选择编译模式mode参数指定编译模式,它可以是以下三种编译模式之一:(1)st标准编译模式标准编译模式可以生成最小的执行文件,它适合于只包括单个文件的程序。(2)lsm优化并间接链接(3)lsa优化并直接链接优化选项可使生成的的编译文件效率更高,它适合于较大而且复杂的程序。优化的基本功能如下:①对已编译函数直接引用,而不是引用函数名。该功能可提高代码的运行速度并防止在运行时对函数的重定义。②去掉函数名使得已编译代码更
4、安全、减少程序的长度和缩短程序的加载时间。③去掉所有局部变量名并对其直接链接引用,同样使得已编译代码更安全、并减小程序的大小和加载程序所用的时间。2.确定要编译的LSP源文件如果源文件在AutoCAD支持的搜索路径下,可以不包括路径名。选择AutoCAD菜单ToolsOptions,然后打开Files选项卡并选取SupportFileSearchPath,可设置文件搜索路径。例如,已设置文件搜索路径为"d:user",就可以用表达式(vlisp-compile'st"sample.lsp")编译驱动器D的"
5、user1"目录下的文件"sample.lsp"。如果"d:user"不是文件搜索路径,那么,在指定源文件时必须包括完整的路径名,如:(vlisp-compile'st"d:\user\example.lsp")或(vlisp-compile'st"d:/user/example.lsp")VisualLISP默认源文件的扩展名为".lsp"。3.确定编译器生成的输出文件名如果未指定输出文件名,编译器生成的文件和源文件同名同路径,扩展名为".fas"。例如,(vlisp-compile'st"d:/user
6、/example.lsp")编译生成的文件在"d:/user/"路径下,文件名为"example.fas"。如果指定了输出文件名但没有指定输出文件的路径,VisualLISP将把输出文件放在AutoCAD的安装目录下。例如,假定安装目录为"d:autocad2006",用表达式(vlisp-compile'st"sample.lsp""sample.fas")编译生成的sample.fas,在"d:autocad2006"路径下。通常,应该指定输出文件的完整路径,可以省略输出文件的扩展名。例如:(vlis
7、p-compile'st"d:/user1/example1""d:/user2/example2")这样可以保证将输出文件放到指定的目录下。4.举例假定AutoLISP源文件的名字是example1.lsp,存放在驱动器d的user1目录下,文件的内容是定义绘制螺钉的命令,命令的名字是screw。编译后的执行文件名字是example2存放在驱动器d的user2目录下。(1)在AutoCAD的Command:或控制台_$提示下,调用vlisp-compile函数(vlisp-compile'st"d:/user1
8、/example1""d:/user2/example2")以标准模式编译驱动器d的user1目录下的LSP文件"example1.lsp",在驱动器d的user2目录下得到可执行文件"example2.fas"。(2)了解编译输出(BuildOutput)窗口如果源程序没有错误,将在图7-1所示为编译输出窗口显示编译过程各阶段的有关信息。首先是源代码的语法和词汇检查,然
此文档下载收益归作者所有