对一个函数来说,出现在函数体中的除局部约束变量以外的任何变量均称为全局变量。函数求值后返回最后一个表达式的求值结果11.0,前面的表达是只有副作用。apply函数可以处理内建式和用户定义两种类型的函数。trace函数为指定的一个或多个函数设置跟踪标志。......
2023-11-02
条件分支函数用于测试其表达式的值,然后根据其结果执行相应的操作。AutoLISP提供了两个条件函数,即if和cond语句。使它们可以控制程序的流向,实现分支结构。
1.单一条件的两分支结构if。
根据对条件的判断,对不同的表达式进行求值。如果<testexpr>的求值结果为非空,则对<thenexpr>进行求值;否则,对<elsexpr>进行求值。if函数返回所选择的表达式的值。如果没有<elseexpr>表达式且<testexpr>是nil,那么,if函数返回nil。本函数的相关函数是progn函数。
图14-4 if函数语法框图
图14-5 if函数的蜕变形式
if函数的语法结构图如图14-4和图14-5所示。
例如:
(www.chuimin.cn)
2.多分支结构 cond。
此函数是AutoLISP语言的一个主要的条件函数。cond函数取任意数目的表作为变元。每一个表称为一个分支,每个分支中包含一个测试部分<testn>和测试成功的结果部分<resultn>。cond函数的求值过程是:自顶向下逐个测试每个条件分支。每个分支表仅第一个元素(即:<testn>)被求值。如果求值中遇到了一个非nil的值,则该分支便为满足条件的成功分支,后面其他分支不再被求值,cond转向对该成功分支的结果部分<resultn>中的诸表达式求值。
有以下两种特殊情况:
若所有分支的测试值都为nil,或者一个分支也不存在时,cond返回nil。
如果成功的分支表中只有一个元素,即只有测试式<testn>而没有结果部分<resultn>,那么,该元素本身的值即为cond的返回值。换言之,测试部分和结果部分可以是同一个。
cond函数的语法框图如图14-6所示。
图14-6 cond函数语法框图
对一个函数来说,出现在函数体中的除局部约束变量以外的任何变量均称为全局变量。函数求值后返回最后一个表达式的求值结果11.0,前面的表达是只有副作用。apply函数可以处理内建式和用户定义两种类型的函数。trace函数为指定的一个或多个函数设置跟踪标志。......
2023-11-02
本函数是AutoLISP中一个基本的赋值函数。将变量a的值设置为5.0,以后无论何时当对变量a进行求值时,它都会返回实型数5.0。全局变量可由任何函数访问和修改,或者在任一表达式中使用局部变量仅在定义它们的函数求值期间有意义。但当该函数退出时,全局变量恢复原值。quote函数最主要的特点就是不对表达式进行求值。为防止这种错误的产生,引用表就必须使用quote函数禁止对表求值。......
2023-11-02
数的关系运算函数在执行时对其每一个参数都要求值,然后从左到右依次比较两个参数在数值上是否满足比较函数所测试的关系,如果所有参数都满足测试关系,则返回T,否则返回nil。如果每一个变元在数值上都大于它右边的变元,则返回T;否则,返回nil。例如:4.大于等于函数 >=。每一个<numstr>既可以是一个数,也可以是一个字符串。例如:6.不等于函数 /=。......
2023-11-02
例如:表14-12 符号类型2.ATOM函数。本函数对任何非表的变元均被认为是原子。在调用atomfamily函数时,如果你提供了<symlist>变元,atomsfamily函数就会在系统中对指定的符号名表进行搜索。对于没有定义的那些符号名,在它所返回的表的对应位置上以nil表示。该函数检查其个项的值是否约束为nil。atomsfamily函数为确定一个符号的存在性提供了另一种可供选择的方法,atomsfamily函数并不自动生成一个符号。检查某一个项是否是一个实型数或整型数。......
2023-11-02
如果表中没有变量或没有未确定的项,可以用单引号括起一个表,能达到list函数同样的效果。本函数的相关函数是quota。cons是AutoLISP的基本表构造函数。在这种情况下,cons函数通常用于构造称为点对的结构。点对是一种特属类型的表,处理普通表的某些函数通常不能接受点对作为变元。append、cons和list是AutoLISP的三个基本的表构造函数。而list函数是将自变量作为返回表的元素输出。如果表中没有<old>存在,则函数值为原表。acad_strlsort函数返回重新排序后的相同字符串表。......
2023-11-02
但是,AutoLISP本身内在的错误处理不可能处理所有可能出现的错误,这就需要设计人员根据具体情况进一步进行专门处理了。表14-13 错误处理函数程序不可能总会像程序员所预想的那样运行。AutoLISP程序中作错误的预测检查是非常麻烦的。*error*函数是一个用户可定义的错误处理函数。错误捕获机制允许AutoLISP拦截一个错误,并促使程序执行轨道转到您所选择的另一个函数。首先,错误捕捉的函数名必须称为*error*。程序的控制流程将转移到错误捕获函数。......
2023-11-02
每一个已加载的ARX应用程序和它的路径都用双引号引起来作为表中的一项。在加载ARX应用程序时,会对指定的ARX应用程序的有效性进行验证。在使用arxload加载一个ARX应用程序之前,也许你应该用arx函数检测现行已加载的ARX应用程序。本函数用于加载定义了若干条命令的一个相关ARX应用程序文件。当在命令提示符Command:下第一次录入APP1、APP2或APP3命令之一时,ARX应用程序就会被加载,然后接着执行要执行的那个命令。......
2023-11-02
相关推荐