通过上节的学习,读者基本掌握了编写小程序的技巧。但是对不同情况的平面斜截圆柱管的使用,需要修改源程序和多次调用,觉得十分麻烦和不便。本节将要解决这个问题。首先介绍本节要用到的几个AutoLISP函数。
1.增1函数
(1+number)
参数number为任意数字,返回参数加1。
样例:(1+5) 返回6
(1+-17.5) 返回-16.5
小于或等于函数:
(<=numstr[numstr]...)
参数numstr为数值型或字符串型,每个参数值都小于或等于它右边的参数则返回T,否则返回nil。
如果仅提供一个参数,<=函数返回T。
样例:(<=1020) 返回T
(<="b""b") 返回T
(<=35733.2) 返回nil
(<=299) 返回T
(<=2945) 返回nil
2.将整数转换成字符串函数
(itoa int)
参数int为整数型,返回转换所得的字符串。
样例:(itoa 33) 返回"33"
(itoa-17) 返回"-17"
3.暂停以等待用户输入一个整数函数
(getint[msg])
参数msg为用于提示用户的字符串。如果忽略该参数,则不显示提示信息。
传给getint函数的有效数值范围是从-32768到+32767。如果用户输入非整数,getint将显示信息“需要整数值”,然后等待用户重试。用户输入整数后返回该整数,如果用户没有输入整数而直接按Enter键,则返回nil。
样例:(getint"等分数N:")
命令:'VLIDE等分数N:16返回16
4.暂停以让用户输入一个实数函数
(getreal[msg])
参数msg为用于提示用户的字符串。如果忽略该参数,则不显示提示信息。
用户输入实数后返回该实数,如果用户没有输入实数而直接按Enter键,则返回nil。
样例:(getreal"圆管直径D:")
命令:VLIDE圆管直径D:426返回426(www.xing528.com)
5.循环函数
(while testexpr[expr...])
参数testexpr为包含测试条件的表达式;expr在testexpr为nil之前要求值的一个或多个表达式。
对测试表达式进行求值,如果它不是nil,则执行循环体中的表达式,重复这个过程,直到测试表达式的求值结果为nil,退出循环。并且返回最后的expr表达式最新的值。
样例:假如已经定义some-func函数,下列代码在test赋初值1后调用了10次some-func函数,其参数test的取值从1到10。最后它返回11,因为这是它最后那个表达式的值:
上面已经写完了全部程序,接下来就可以使用了。这些程序代码可以从随本书赠送光盘Program的目录中,把BJZK8-3.LSP文件直接复制到读者的计算机里,并由Visual Lisp的下拉菜单文件→打开文件将它打开,接着点选工具→加载活动编辑窗口按钮,加载成功在控制台窗口显示信息;3表格从#<editor"D:/Program/BJZK8-3.LSP">加载。
加载上述源程序后可以在VLISP控制台窗口中输入(c:BJZK8)运行。也可以Auto-CAD命令行输入BJZK8命令后,直接运行。
命令:BJZK8命令行输入BJZK8命令
等分数N:16用户交互输入等分数
圆管直径R:213用户交互输入圆管直径
斜截管截面高H: 200用户交互输入斜截管截面高
斜截面和管底夹角β: 30用户交互输入斜截面和管底夹角
1#线77.0244 输出各等分号位置处素线的高度
2#线86.3854
3#线113.043
4#线152.939
5#线200.0
6#线247.061
7#线286.957
8#线313.615
9#线322.976
10#线313.615
11#线286.957
12#线247.061
13#线200.0
14#线152.939
15#线113.043
16#线86.3854
17#线77.0244
读者如果对窗口交互输入感兴趣,可以进一步研究可编程对话框函数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。