AutoLISP语言没有“语句”这一术语,AutoLISP程序一般是由一个或一系列按顺序排列的标准表所组成。AutoLISP程序的书写格式有如下特点:由于AutoLISP语言的一切成分都是函数,而所有函数又以表结构形式存在,所以AutoLISP程序的所有括号都需要左右匹配。AutoLISP程序阅读函数时,按从左到右的规则进行。AutoLISP求值器总是忽略每一行中分号以后的部分。......
2025-09-30
在设计对话框中,对于列表框/下拉框,虽然可以设置它的初始值,但是如果需要动态修改下拉框内的值的话,那么只能够用AutoLISP进行动态生成数据。
首先来看一下与列表框/下拉框相关的一些AutoLISP函数。
1.start_list。
格式:

用start_list函数开始对话框中的一个列表框或一个打开式列表控件的处理。
key变元是一个指定对话框控件的字符串。key变元是大小写敏感的。operation是一个整型值,它的含义见表15-8。
除非start_list函数调用开始的是一个改变表的内容的操作(这时operation变元的值指定为1),否则index变元就会被忽略。如果调用start_list函数是为了改变所选择的表的内容(即operation变元的值为1),所提供的index变元就指出了随后调用add_list函数要改变的表项。index变元的取值从零开始。如果您没有指定operation变元,那么隐含的operation的取值为3(生成新表);如果您指定了operation而没有指定index,那么,index取隐含值0。
表15-8 start_list函数所用的列表框代码

随后所调用的add_list函数将影响由start_list函数启动的表,直到应用程序调用end_list函数。
2.add_list。
格式:

add_list用户在现行激活的对话框的表中增加一个字符串,或者修改其中的一个字符串。
在使用add_list函数之前,必须用start_list函数打开和初始化一个表,根据start_list函数调用中指定的参数operation的不同,即:

或

add_list函数调用中的string变元,要么被加到现行表中,要么替换掉现行表中的一个表项。
3.end_list。
格式:

end_list函数用来结束现行激活对话框的表的处理。
该函数是start_list函数的配套函数。它关闭由start_list函数所打开的表控件。在start_list函数调用之后一定要调用end_list函数。
在对话框设计当中,所有的列表框/下拉框处理,都是由这三个函数来完成的。

通过使用上述三个函数的调用序列,可以在列表框和打开列表框中显示一个表。一旦一个表被生成之后,就可以修改它。对表的修改存在三种可能的操作。每一种操作都是通过start_list函数的operation变量来指定的。
(1)创建新列表。
operation变量值:3
这是为了生成一个新列表。生成新列表的操作是隐含操作。
在调用start_list函数之后,就能重复调用add_list函数。每调用一次add_list函数就往列表中增加一个新项。通过调用endlist函数结束表的处理。
例如:

可以来看一个例子。先用DCL来设计一个对话框,包含有初始值,代码如下:

可以看到,在上面给列表框“keylistbox”赋了初值“1\n2\n3\n4\n5\n6\n7”,我们先通过预览功能,查看所设计的对话框,如图15-36所示。
编辑LSP文件。(https://www.chuimin.cn)
;主程序

通过主程序运行,可以发现列表框的内容已经不是“1\n2\n3\n4\n5\n6\n7”了,而变成了("a""b""c""d""e""f"),如图15-37所示。

图15-36 列表框显示1

图15-37 列表框显示2
(2)改变已存在的列表中的值。
operation变量值:1
这种情况是为了改变表中的一项。
使用时,除了需要指定operation变量值以外,还要指定需要改变项的index值,即其在列表中的位置。
比如上一个例子,初始化值是“1\n2\n3\n4\n5\n6\n7”,现在希望将第4个值(也就是数字4)改变一下,变成“Item Changed”。
那么可以通过operatioin的1操作来完成这项功能。

;注意这里,使用了operatioin的1操作,后面接的是
;被操作项的序列号。
;需要注意的是autolisp是从0开始算的。

;在这里进行修改

从上面的代码可以看到,采用start_list的operatioin的1操作,并且指定了被操作数的序号,即3,从零开始算,也就是“4”这个字符。

以上这条语句将字符“Item Changed!”替换掉原有的字符“4”。可以来看一下程序运行的结果,如图15-38所示。

图15-38 改变列表框中的值
4.在已存在的列表中增加新的值。
operation变量值:2
如果想在列表中增添新的项,可以使用operation的2操作。
首先,调用start_list函数,指定2操作。

然后,用addlist函数加入一个新项。

最后调用(endlist)函数即可。
如果列表框支持多个选择,应用程序就必须对值串中的多个值分步取出,并分别进行转换。下面给出的MultiLIST函数返回的一个表,就包含了用户从源displist中所选择的那些表项。在本例中,显示表displist作为全局变量被维持。
MKLIST函数要求用列表框的$value来调用。

上述所有样例都在单选情况下工作。
相关文章
 
                                
                                AutoLISP语言没有“语句”这一术语,AutoLISP程序一般是由一个或一系列按顺序排列的标准表所组成。AutoLISP程序的书写格式有如下特点:由于AutoLISP语言的一切成分都是函数,而所有函数又以表结构形式存在,所以AutoLISP程序的所有括号都需要左右匹配。AutoLISP程序阅读函数时,按从左到右的规则进行。AutoLISP求值器总是忽略每一行中分号以后的部分。......
2025-09-30
 
                                
                                最后,对其他细节进行了完善,并赋材渲染。图11-176 绘制多段线图11-177 旋转成曲面17.打开图层“机身1”、“机身2”、“发动机喷口”,然后用“自由动态观察器”将图形调整到合适的视角。图11-178 机舱结果18.绘制导弹。图11-179 “图层特性管理器”对话框19.将图层“导弹”设置为当前图层,然后用“isolines”命令设置总网格线数为8。......
2025-09-30
 
                                
                                通过本例图形的绘制,使读者掌握怎样灵活利用工具选项板进行快速绘图。利用“图案填充”命令对图形剖面进行填充。设计中心与工具选项板的优点是能够建立一个完整的图形库,并且能够快速简洁地绘制图形。打开一个新图形文件。将需要的图形文件模块从工具选项板上拖入到当前图形中,并进行适当的缩放、移动、旋转等操作,最终完成如图9-125所示的图形。图9-124 绘制图形图9-125 盘盖组装图......
2025-09-30
 
                                
                                绘制如图2-86所示的小房子。图2-86 小房子绘制步骤:参见光盘光盘动画演示\第2章\小房子.avi1.绘制屋顶轮廓。将“门窗”层设置为当前层。图2-88 墙体轮廓图2-89 显示线宽绘制门把手。选择菜单栏中的“绘图”→“矩形”命令,在适当的位置上,绘制一个长度为10,宽度为40,倒圆半径为5的矩形。单击“确定”按钮后,返回到“图案填充和渐变色”对话框,将“比例”设置为2。单击“确定”按钮后,选择屋顶区域进行填充,结果如图2-86所示。......
2025-09-30
 
                                
                                每一个已加载的ARX应用程序和它的路径都用双引号引起来作为表中的一项。在加载ARX应用程序时,会对指定的ARX应用程序的有效性进行验证。在使用arxload加载一个ARX应用程序之前,也许你应该用arx函数检测现行已加载的ARX应用程序。本函数用于加载定义了若干条命令的一个相关ARX应用程序文件。当在命令提示符Command:下第一次录入APP1、APP2或APP3命令之一时,ARX应用程序就会被加载,然后接着执行要执行的那个命令。......
2025-09-30
 
                                
                                图15-1显示了一个标准的AutoCAD对话框,其中部分部件加了标签。组件可以将应用在许多对话框中的控件或控件组定义成组。DCL文件按照树型结构组织,其中树型结构顶端的控件用于定义对话框本身。例如,dialog和多数控件类型都有一个label属性,用于指定与控件关联的文字。图15-2 对话框树状结构设计对话框初期,即开始编码和调试之前,需要考虑设计对话框和应用程序的具体细节。......
2025-09-30
 
                                
                                图9-32 “创建布局-图纸尺寸”对话框该对话框用于选择打印图纸的大小和所用的单位。图9-33 “创建布局-方向”对话框单击“下一步”按钮,打开如图9-34所示的“创建布局-标题栏”对话框。在该对话框中可以指定新创建的布局默认视口设置和比例等。系统自动返回到布局空间,显示新创建的布局“机械零件图”,如图9-38所示。......
2025-09-30
 
                                
                                在一个图块被插入图形之后,如果原来的图块被修改,则插入到图形当中的图块也随之改变。当其他命令正在执行时,不能插入图块到图形当中。AutoCAD设计中心提供了插入图块的两种方法:1.利用鼠标指定比例和旋转方式插入图块。系统根据光标拉出的线段长度、角度确定比例与旋转角度,插入图块的步骤如下:从文件夹列表或查找结果列表中选择要插入的图块,按住鼠标左键,将其拖动到打开的图形中。......
2025-09-30
相关推荐