Visual LISP 第3章 程序的流程控制盒AutoLISP文件(2)AutoLISP程序文件

1.AutoLISP文件的特点

  AutoLISP文件的扩展名为".lsp",是由若干个AutoLISP表达式构成的。

  虽然在“Command:”提示下,通过键入AutoLISP表达式的方法可以定义或调用LISP函数,但不便保留或调试程序,因此,通常都是以文件形式实现函数的定义和调用。

  一个LISP文件可以定义多个函数或AutoCAD命令。

  表达式相当于语句。一个表达式可以分写在若干行上,一行可以写若干个表达式。连续的多个空格相当于一个空格。以下是一个表达式分开写在若干行上的实例:

(defun plus(x y)
  (+ (* x y) x)
)

  以下是一行写若干个表达式的实例:

(setq a 2.0) (setq b 4.0) (+ a b)

  由于AutoLISP程序中含有大量括号,不易阅读,就需要采用缩排对齐格式。

2.程序中的注释

  整行或后半行注释以分号“;”开头,至行尾注释部分。如:

(setq area (* pi r r)) ;计算圆的面积

  整段或行间注释以“;|”开头,以"|;"结尾。

(setq tilemode ;|此处添加注释|; (getvar "tilemode"))
(setvar "othomode" 1) ;|注释起始部分
  连续注释
  ……
  注释到此为止|;(princ "
ORTHOMODE set On.")

 3.在AutoCAD环境下加载AutoLISP文件

  (1)命令行方式

  加载AutoLISP文件用load函数,调用load函数的格式如下:

  (load "驱动器:\路径\文件名" ["出错信息"])

  若加载成功,则返回被夹在lisp文件的最后一个表达式的结果;若最后一个表达式是函数的定义,则返回该函数的函数名。若加载失败,则返回该用户定义的出错信息;若用户没有定义出错信息,则返回加载失败的信息。

  【例】文件file1.lsp最后一个表达式是定义函数func1,它的路径是"d:user1"加载文件的表达式如下:

(load "d:\user1\file1" "没有找到这个文件!")

  (2)对话框方式

  工具->加载外部程序。OK

  (3)自动加载

  AutoCAD在启动时,可以自动加载4个lisp文件,acad.lsp、acad2006.lsp和acad2006doc.lsp。用户可以创建和维护这些文件,其中acad.lsp和acaddoc.lsp只能由用户来创建。AutoCAD在加载过程中不报告是否找到或是否加载相关文件的信息。AutoCAD在加载菜单时,自动加载了与菜单文件同名的扩展名为.mnl的lisp文件。

  (4)间接自动加载

  目前看不懂,再说。

  

原文地址:https://www.cnblogs.com/xueniwawa/p/3967723.html