VisualLisp编程基础教程
第6章+CADLisp初步
在vlisp窗口:确认编辑窗口处于前台状态,选择菜单工具 —加载编辑器文字,程序即被运行 在cad窗口:工具—加载应用程序,选择lsp文件,选择加 载,即可在窗口启动lsp程序。或者用appload命令加载 加载后只运行一次,若需再次运行,需要重新加载lsp文件
从Tools工具条中选择Format edit window( 格式化编辑窗口),可在编辑窗口中格式化程 序源代码。程序将自动完成格式化。(可检查 语法错误) 5) 要加载程序,可以从To ols工具条中选择 Load active edit window或者从To ols菜单 选择Load Text in Editor选项。 6) 在Visual LISP控制台窗口中的“$”提示符 下输入函数名,即可运行程序
计算P2和P4的坐标
程序清单:
(defun c:rect1(/p1 p2 p3 p4) (graphscr) (setvar“cmdecho”0) (prompt“rect1 command draws a rectangle”)(terpri) (setq p1(getpoint “Enter first corner”)) (terpri) (setq p3(getpoint “Enter opposite corner”)) (terpri) (setq p2(list(car p3)(cadr p1))) (setq p4(list(car p1)(cadr p3))) (command “line”p1 p2 p3 p4 “c”) (setval “cmdecho” 1) (Princ) )
规则
AutoCAD 2008 Visual LISP二次开发入门到精通
第5章Visual LISP集成开发环境(2)在AutoCAD的命令提示行输入vlisp或者vlide。
5.2 Visual LISP环境界面Visual LISP环境界面如图5-2所示。
图5-2 Visual LISP编辑器Visual LISP环境界面由以下几部分组成:(1)菜单栏:Visual LISP编辑器提供了各式各样的菜单栏来调用Visual LISP的命令。
当某个菜单栏高亮显示时,Visual LISP就会在底部的状态栏上显示关于此命令的说明文字。
(2)工具栏:Visual LISP中一共有五个工具栏,通过单击工具栏按钮可以快速地调用Visual LISP命令。
每一个工具栏代表一个在Visual LISP中实现不同功能的命令组,大多数命令都可以在工具栏中调用。
将鼠标指针停留在工具栏某个按钮上几秒钟,将弹出说明该按钮功能的提示,同时在状态栏上会显示该功能的详细介绍。
(3)文本编辑器:Visual LISP包括了一个集成的文本编辑器,可以用来编辑AutoLISP 代码。
每打开一个文件,Visual LISP将新开一个文本编辑窗口,并在这个窗口的状态栏上显示文件名。
如果用户在编辑器中对代码作了改动,或者添加了新的文本,Visual LISP就会在文件后面显示一个星号“*”,保存或关闭文件之后星号消失。
(4)控制台:控制台是一个单独的,内容可以滚动的窗口。
在控制台中,可以像在AutoCAD命令行那样输入AutoLISP命令。
还可以在控制台窗口输入Visual LISP命令,以7980AutoCAD 2008 Visual LISP 二次开发入门到精通 附录367891011121312第5章 4代替使用菜单和工具栏命令。
(5)跟踪窗口:在启动Visual LISP 时,可以看到一个最小化了的跟踪窗口,该窗口显示Visual LISP 当前版本的信息,以及当启动Visual LISP 遇到错误时的出错信息。
Visual-LISP程序设计(第2版)第4章有关Visual-LISP的基本操作
(2)工具栏
Visual LISP提供了Standard、View、Debug、Tools和Search五 个工具栏 。
① Standard工具栏
建立一个新文件
打开一个已有的文件
存盘
打印输出
剪切
复制
粘贴
取消
恢复
完词功能
② Tools工具栏
装入当前编辑窗口的全部程序 装入选取的部分程序 对当前编辑窗口的全部程序语进行法检查 对选取的程序进行语法检查 对当前编辑窗口的全部程序格式化 对选取的程序进行格式化 将所选部分变为注释块 取消所选注释块的注释作用 在线帮助
4.4 文件操作
1. 建立一个新文件
选择菜单FileNew File或同时按下Ctrl+N键或点取按钮 空的文本编辑器窗口,用来建立一个新文件。
,将弹出一个
2. 打开一个已有的文件
选择菜单FileOpen File或同时按下Ctrl+O键或点取按钮
,将弹出
Open file to edit/view对话框,输入文件名,即可将指定的文件装入新的文本
(3)文本编辑窗口
Visual LISP 的 文 本 编 辑窗口除了具有一般文本编 辑器的全部功能外,还具有 适于AutoLISP的一些专用功 能。可以实现对AutoLISP程 序的编辑、调试、检测、编 译、运行等工作。
(4)控制台窗口
控制台窗口是Visual LISP主窗口中一个独立的可滚动窗口。 其形式与AutoCAD命令提示与信息反馈窗口类似。在控制台窗 口内可以输入AutoLISP表达式,也可以不用菜单或工具栏而 直接在控制台窗口发出Visual LISP命令。
编辑窗口,并在状态栏上显示文件名。如果对该文件进行了修改,Visual
CAD二次开发Visual_LISP指南
CAD二次开发Visual_LISP指南CAD二次开发是指在CAD软件平台上进行个性化开发和定制化编程,以满足用户特定需求Visual LISP是AutoCAD软件的一种编程语言,通过使用Visual LISP语言可以对AutoCAD进行二次开发。
下面是CAD二次开发Visual LISP的指南,希望对开发人员有所帮助。
一、入门准备1.学习基础知识在开始进行CAD二次开发前,需要充分了解AutoCAD软件的基本功能和特点,熟悉CAD软件的界面、命令、对象模型以及常用API(应用程序接口)等。
2.掌握Visual LISP语言Visual LISP是CAD软件平台上的一种编程语言,与AutoLISP类似。
学习和掌握Visual LISP语言是进行CAD二次开发的基础。
可以通过学习书籍、在线教程和参考文档等途径来提高自己的编程能力。
3.安装开发工具需要安装CAD软件的开发工具,例如AutoCAD自带的AutoCAD Developer Tools或者Visual LISP IDE等。
这些工具提供了编写、调试和管理二次开发项目的必要环境。
二、开始二次开发1.确定需求在进行CAD二次开发前,需要明确开发的具体需求和目的。
这可以包括添加自定义命令、修改现有功能、创建用户界面等等。
确保清晰地定义需求和目标,以便更好地进行开发工作。
2.编写代码通过Visual LISP语言编写代码来实现二次开发的需求。
VisualLISP提供了一系列的函数和命令,可以对AutoCAD的对象模型进行访问和操作。
根据需求,编写相应的函数、宏和命令,实现具体的功能。
3.调试和测试在编写代码后,进行调试和测试是不可或缺的步骤。
通过运行调试器、打印日志、进行单元测试等方式来验证代码的正确性和稳定性。
及时修复和调整代码中的问题,确保其能够正常运行。
4.文档和发布完成开发工作后,建议对代码进行适当的文档整理和注释,方便后续的维护和管理。
CAD二次开发Visual_LISP指南
VISUAL SLOPE软件操作说明书
AutoLISP Visual LISP教程《第五章》
(b)
图5-2 用鼠标移动和复制文本时的光标 -
4. 查找文本
选择下拉菜单Search→ ind, 选择下拉菜单Search→Find,或单击工具栏按钮 示查找对话框. 示查找对话框. ,将弹出图5-3所 将弹出图5
图5-3查找对话框 查找对话框 有关查找文本对话框的说明如下: 有关查找文本对话框的说明如下: What编辑框 用于输入要查找的字符串, 编辑框: ( 1 ) Find What 编辑框 :用于输入要查找的字符串 , 如果在查找操作前选 取了文本,被选文本将会自动出现在Find What文本框内 文本框内. 取了文本,被选文本将会自动出现在Find What文本框内.
(2)Search栏:确定查找范围.该栏有四个互锁按钮.依次是: Search栏 确定查找范围.该栏有四个互锁按钮.依次是: selection:在文本编辑器窗口中亮显的文本中查找; ● Current selection:在文本编辑器窗口中亮显的文本中查找; file:仅在活动编辑器窗口中的文件中查找; ● Current file:仅在活动编辑器窗口中的文件中查找; Project:在随后指定的工程文件所包含的全部文件中查找, ● Project : 在随后指定的工程文件所包含的全部文件中查找 , 并在新的输出窗 口中显示所有与查找字符串匹配的表达式. 口中显示所有与查找字符串匹配的表达式. ● Files : 在指定要查找文件目录和文件类型的所有文件中查找 , 并在新的输出 Files:在指定要查找文件目录和文件类型的所有文件中查找, 窗口中显示所有与查找字符串匹配的表达式. 窗口中显示所有与查找字符串匹配的表达式 . 在这个新的输出窗口用鼠标左键双击 任意亮显的表达式, LISP将打开与其相关的LISP文件 将打开与其相关的LISP文件. 任意亮显的表达式,Visual LISP将打开与其相关的LISP文件.文件的类型可以用通 配符. 配符. (3)Direction栏:确定查找方向.该栏有两个互锁按钮.依次是: Direction栏 确定查找方向.该栏有两个互锁按钮.依次是: Down:从光标当前位置处开始向下查找; ● Down:从光标当前位置处开始向下查找; ● Up:从光标当前位置处开始向上查找. :从光标当前位置处开始向上查找.
Visual LISP编程基础
实验一Visual LISP编程基础一、实验目的1.Visual LISP开发环境介绍;2.熟悉Visual LISP开发环境和开发步骤,并掌握Visual LISP调试方法和调试过程,断点设置,单步执行,自动执行和数据监视等功能的使用。
二、实验设备1.硬件环境:台式计算机;2.软件环境:WIN XP操作系统,AutoCAD 2004。
三、实验步骤1 熟悉Visual LISP开发环境(1)进入Visual LISP启动AutoCAD,通过选择菜单:工具->AutoLISP->Visual LISP编辑器,进入如下编程环境。
图5-1 Visual LISP集成开发环境(2)输入如下所示程序选择菜单:文件->新建文件,或工具按钮,启动新的文件编辑窗口如下,并输入其中的LISP程序。
图5-2 编辑hello world源程序源程序:( print “hello,world”)(3)保存选择菜单:文件->保存,或工具按钮,文件取名为helloworld.lsp,注意LISP文件名后缀。
(4)运行选择菜单:工具->加载编辑器中的文字,或工具按钮,即可运行当前程序。
程序运行结果将会显示在控制台窗口中,如图5-3所示。
图5-3 hello world程序运行结果该程序利用函数print输出字符串“hello,world”。
控制台窗口是一个单独的、可任意移动的窗口。
在控制台窗口中用户可以直接输入、运行AutoLISP表达式并查看结果,与AutoCAD命令窗口的工作方式非常类似。
但在控制窗口中显示一个AutoLISP变量的当前值只需输入变量名后回车,不再需要在变量名前加一个“!”。
在控制台中可以实现下面一些典型功能:●可以执行表达式并显示表达式的返回值●可以一次执行多个表达式●可以在控制台和文本编辑窗口之间复制或粘贴文本,在控制台中可以使用大部分文本编辑命令●通过在控制台中按Tab键可以回溯到以前输入的命令。
AutoLISP-Visual-LISP教程《第六章》
单击按钮 ,光标停在(getdist p1 "输入矩形的宽:") 之前,并亮显该表达式。注意,指示按钮内的"I"回到"()"之 前。监视窗口内的变量p1=[100.0 80.0 0.0]。重复类似的操 作,在AutoCAD窗口输入矩形的宽度为200、高度为150,旋转角 为30。在操作过程中指示按钮随时显示着光标相对于表达式的 位置,监视窗口显示着这些变量的当前值(注意,alf的单位为 弧度)。也说明单击按钮 只执行了一步表达式求值。
2. 监视窗口的快捷菜单
选择监视列表中的某一项并单击鼠标右键,可显示图6-4所示监视窗口 的快捷菜单。
调用检验功能,查看所选值。 将所选变量的值复制到系统变量 *obj* 中。 将所选变量值加上一个单引号前缀”,打印到把握台窗口。 对所选变量调用符号效劳对话框。 调用自动匹配选项对话框,用所选变量名作自动匹配参数。 从监视窗口中删除所选变量。
从断点循环退出,将恢复上一层循环。假设在该断 点循环中修改了某变量的值,程序连续运行时将使用变 量修改后的值。
断点循环分为可连续断点循环和不行连续断点循环。
1. 可连续的断点循环 可连续的断点循环是指可以在程序中断处,连续向下执行剩
余的表达式。用以下方法进入可连续断点循环: 〔1〕翻开Stop Once模式,遇到带调试信息的表达式时。 〔2〕遇到带Debug on Entry〔进入时调试〕标志的函数时。 〔3〕遇到程序中设置的断点时。 〔4〕单击暂停按钮进入断点循环时。 〔5〕在前一个断点循环状态下,执行Step Into、Step Over或 Step Out时。
图6-2 Debug下拉菜单
下下跳连退重设添显调
一一出续出置置加示试
层个表执当为或监上指
AutoLISP Visual LISP教程《第六章》
切换到AutoCAD窗口,显示着刚才绘制的矩形。
假定程序的第5行误写为 (getangl p1 "输入矩形的旋转 角: "),仍旧用上述的方法调试该程序,当执行到"输入矩形的 旋转角: "时,将出现提示"; error: no function definition: GETANGL(没有GETANGL这个函数定义)" 。点取查找按钮 , 在随后弹出的" FIND "对话框的FindWhat编辑框输入查找内容 为 " GETANGL" , 单 击 " Find" 按 钮 , 找 到 getangl 并 改 正 为 getangle。
检验窗口
跟踪堆栈 出错跟踪 符号服务 监视窗口 自动匹配窗口 断点窗口 编译输出窗口
AutoCAD
切确激打堆符匹打
换定活开栈号配开
到活控检跟服
监
动制测踪务
视
窗台窗功
窗
口窗口能
口
口
图 形 窗 口
VisualLISP控制台
浏览图形数据库
选择工具栏
图6-1 View下拉菜单
通过图6-2所示Debug下拉菜单和Debug工具栏的选项可以设置程序暂停 的模式和继续程序运行的方式。
显然,这不是预期的运行结果。
图6-6监视P1、P2、P3、P4点的值
下面演示如何利用监视窗口调试程序。调试程序的步骤如下:
(1)确定要监视的变量。选择菜单DebugAdd Watch或单击工具栏上的
[工学]第三讲 使用Visual LISP编制机械设计计算程序
3.1 Visual LISP集成开发环境(IDE)
VisualLISP集成开发环境主要是针对AutoLISP的程序语法规 则设计的,启动Visual LISP的方法如下: 1)由于Visual LISP是AutoCAD内嵌的开发工具,所以在进入 Visual LISP集成开发环境之前,应先启动AutoCAD; 2)从AutoCAD的“Tools”菜单项中,选择“AutoLISP”子菜单 项的“VisualLISP Editor”选项进入; 3)在AutoCAD的命令下键入Vlisp命令进入; 4)在AutoCAD的命令下键入Vlide命令进入。 注:Vlide---即 “Visual LISP Interactive Development Environment” 的缩写。
实例4.一类数据文件检索函数定义
(defun js1 (fname kd / ft nt j x) (setq f (open fname "r")) 数据文件格式: (setq ft (read (read-line f)) nt (read (read-line f))) (b0 b1 b2 …) (while (/= kd (car nt)) (K1 x1 x2 …) (setq nt (read (read-line f)))) (K2 y1 y2 …) (setq j -1) (repeat (length nt) ….. (setq j (1+ j) x (nth j ft)) (set x (nth j nt))) (close f) nt);end
3.3 机械设计计算实例程序
• 实例1:任意压力角对 应的渐开线函数计算。
第四讲 使用Visual LISP编制参数化绘图程序
实例3.根据轴的直径d 轴或孔的标识1 实例3.根据轴的直径d、轴或孔的标识1或0,调用键的数据绘制图形 3.根据轴的直径
• • • • • • • • • • • • • • • • • • • • (defun jc (d flag / x1 x2 x cp pt1 pt2 pt3 pt4 t1) (if (not js2) (load "d:/cad_1/jstxt")) (js2 "d:/cad_1/jc.dat" d) "\ (setq cp (getpoint "\nCenter point:")) (command "ucs" "o" cp) (setq x1 (expt (* 0.5 d) 2.0) x2 (expt (* 0.5 b) 2.0)) ((setq x (sqrt (- x1 x2))) (if (= flag 1) (setq t1 tz) (setq t1 (* -1 tk))) (setq pt1 (list x (* 0.5 b)) (pt2 (list (- (* 0.5 d) t1) (* 0.5 b)) pt3 (polar pt2 (* 1.5 pi) b) pt4 (polar pt1 (* 1.5 pi) b)) (command "pline" pt1 "a" "ce" "0,0" pt4 "l" pt3 pt2 pt1 "") (if (= flag 1) (command "hatch" "u" 45 4 "" "l" "")) (command "layer" "m" "cen" "c" 1 "cen" "l" "center" "cen" "") (command "dim1" "cen" "nea" (polar '(0 0) (* 0.75 pi) (* 0.5 d))) (command "layer" "s" 0 "") (command "ucs" "") (princ));end
VisualLisp编程基础教程
华南理工大学化学与化工学院方利国 lgfang@
8
2、基本运算
(6)普通数求幂 格式: (expt <底数> <幂>) 功能:求<底数>的 <幂>次方值 实例:(expt 3 3)结果为27 (expt 5 2)结果为25 (expt 2 4)结果为16 (expt 2 1.3)结果为 2.46229
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 17
(6)赋值函数SETQ 格式:(setq <变量1> <表达式1> [<变量2> <表达式 2>]…..) 功能:将表达式的值赋给变量,变量和表达式需成对出现 实例: (setq a 10) 结果 a=10 (setq s “it” ) 结果 s=“it” (setq b 123 c 10 d 45) 结果 b=123 c=10 d=45 (setq t (+ 34 45)) 结果 t=79 (setq P1 ' ( 34 45)) 结果是P1点x轴的坐标为34,y轴的坐标为45, 其中在表(34 45)前面加了单引号“' ”号,是为了禁止对表(34 45)的求值,需要注意的是所有的单引号和双引号必须在英文状态 下输入,否则就会出现错误。如果不用“'”,也可以用quote表示, 例如用下面的小程序就可以绘制一条从(130,140)到(200,400) 的直线。 (setq p1 '(130 140)) //确定点P1的坐标 (setq p2 '(200 400)) //确定点P2的坐标 (command “line” p1 p2 “”) //绘制从P1点到P2点的直线是AutoLISP程序 中应用程度较高的一个函数,希望读者引起注意
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、基本函数
(3)反正切函数ATAN 格式: (atan <数> ) 功能:求<数>反正切值,单位为弧度,为[-π/2,π/2] 实例:(atan 1) 结果为0.785398 , 即(π/4) (atan -1) 结果为0.-785398 , 即(-π/4) (atan 0) 结果为0 (atan 100000000000) 结果为1.5708,接近π/2
华南理工大学化学与化工学院方利国 lgfang@
8
2、基本运算
(6)普通数求幂 格式: (expt <底数> <幂>) 功能:求<底数>的 <幂>次方值 实例:(expt 3 3)结果为27 (expt 5 2)结果为25 (expt 2 4)结果为16 (expt 2 1.3)结果为 2.46229
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 9
2、基本运算
(7)求自然对数 格式: (log <数> ) 功能:求<数>的自然对数,要求<数>必须大于零 实例:(log 10.0) 返回2.3025851 (log 9) 返回 2.19722 (log 12) 返回 2.48491 (8)求平方根 格式: (sqrt <数> ) 功能:求<数>的平方根,要求<数>必须大于零 实例:(sqrt 4.0) 返回2.0 (sqrt 12) 返回3.4641 (sqrt 15.0) 返回3.87298
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 12
2、基本运算
2、基本运算
(13)求余数 格式: (rem <数1> <数2> …. ) 功能:求<数1>整除<数2>的余数,若参数多于两 个,则将<数1>整除<数2>后的余数再整除<数 3>,求出余数,依此类推。 实例:(rem 50 9 4) 返回1 (rem 55 7 5 3) 返回1 (rem 103 12 8 4) 返回3
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 19
3、基本函数
(9)CAR和CDR的组合函数 • CAR和CDA可以任意组合,其组合深度可达4 层,其执行顺序从右到左依此执行,若搞错次 序,其结果必然出错。4个层次的组合形式为: CAR、CXXR、CXXXR,CXXXXR,其中X既可以是 A也可以是D,例如: • (cadr '(2 (1 2 3) 34 )) 结果为(1 2 3) • (caadr '(2 ((11 6) 2 3) 34 )) 结果为(11 6) • (caaadr '(2 ((11 6) 2 3) 34 )) 结果为11 • (caaddr '(2 ((11 6) 2 3) (3 4) )) 结果3
2018/10/19
华南理工大学化学与化工学院方利国 lgfang@
14
3、基本函数
(1)正弦函数SIN 格式: (sin <角度> ) ,其中 <角度>用弧度表示 功能:求<角度>正弦值 实例:(sin (/ pi 2)) 结果为1
(2)余弦函数COS 格式: (cos <角度> ) ,其中 <角度>用弧度表示 功能:求<角度>余弦值 实例:(cos (/ pi 2)) 结果为0
2018/10/19
华南理工大学化学与化工学院方利国 lgfang@
16
3、基本函数
(4)取整函数FIX 格式: (fix <数> ) 功能:求<数>的整数部分,相当于高级语言中的“INT(数)” 这个语句。 实例:(fix 8.8) 结果为8 (fix -8.8) 结果为-8 (fix 19) 结果为19 (5)实型化函数FLOAT 格式: (float <数> ) 功能:求<数>转化为实型数,不考虑该数原来的类型 实例:(float 13) 结果为13.0 (float 13.3) 结果为13.3 (float -23.3) 结果为-23.3
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 10
2、基本运算
(9)求绝对值 格式: (abs <数> ) 功能:求<数>的绝对值; 实例:(abs -3) 结果为3 (abs 5) 结果为5 (abs -6.7) 结果为6.7 (10)求最大值 格式: (max <数1> <数2> …. ) 功能:求<数1>,<数2> ……的最大值 实例:(max 2 3 4 10) 结果为10 (max 5 2 3.6 6.9) 结果为6.9 (max -2 3 4 -10) 结果为4 ,一定要英文状态下的括号
2018/10/19
华南理工大学化学与化工学院方利国 lgfang@
5
2、基本运算
(3)乘法 格式: (* <数> <数> ….) 功能:求出所列数的乘积 实例: (* 20 30) 结果为600 (* 1.5 -10 2) 结果为-30 (* 2.5 20 -4) 结果为-80
2018/10/19
华南理工大学化学与化工学院方利国 lgfang@
6
2、基本运算
(4)除法 格式: (/ <数> <数> ….) 功能:求出第一个数逐次除以后面数的商 实例:(/ 10 ) 结果为10 (/ 110 2) 结果为55 (/ 5 50) 由于表中的两个元素均为整型数, 结果也为整型数,故结果为0 (/ 5.0 50) 结果为0.1 (/ 40 (/ 7 10) 系统显示被0除,原因在于表 ( / 7 10)的值为0
2018/10/19
华南理工大学化学与化工学院方利国 lgfang@
13
2、基本运算
(14)综合运算 格式:(运算符1 (运算符2 <数1>) (运算符3 <数2> <数2>) <数4> ….) 功能:利用括号达到各种数据混合运算的目的,要求 先进行括号内的运算,数据和括号嵌套可增加。 实例:(+ (/ 100 10) (- 20 8 (sqrt 4))) 返回 20.0 (* (/ 100 10) (max 20 8 (sqrt 4)) 5) 返回1000.0 (* (/ 100 10) (max 20 8 (log 4)) 5 (- 65 (sin (/ pi 2)))) 返回64000.0
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 11
(11)求最小值 格式: (min <数1> <数2> …. ) 功能:求<数1>,<数2> ……的最大值 实例:(min 2 3 4 10) 结果为2 (min 5 1.2 3.6 6.9) 结果为1.2 (min -2 3 4 -10) 结果为-10 (12)求自然对数 格式: (log <数> ) 功能:求<数>的自然对数,要求<数>必须大于零 实例:(log 10.0) 返回2.3025851 (log 5) 返回 1.60944 (log 7) 返回 1.94591 (/ (log 0.1) (log 10)) 返回 -1
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 17
(6)赋值函数SETQ 格式:(setq <变量1> <表达式1> [<变量2> <表达式 2>]…..) 功能:将表达式的值赋给变量,变量和表达式需成对出现 实例: (setq a 10) 结果 a=10 (setq s “it” ) 结果 s=“it” (setq b 123 c 10 d 45) 结果 b=123 c=10 d=45 (setq t (+ 34 45)) 结果 t=79 (setq P1 ' ( 34 45)) 结果是P1点x轴的坐标为34,y轴的坐标为45, 其中在表(34 45)前面加了单引号“' ”号,是为了禁止对表(34 45)的求值,需要注意的是所有的单引号和双引号必须在英文状态 下输入,否则就会出现错误。如果不用“'”,也可以用quote表示, 例如用下面的小程序就可以绘制一条从(130,140)到(200,400) 的直线。 (setq p1 '(130 140)) //确定点P1的坐标 (setq p2 '(200 400)) //确定点P2的坐标 (command “line” p1 p2 “”) //绘制从P1点到P2点的直线是AutoLISP程序 中应用程度较高的一个函数,希望读者引起注意
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 18
3、基本函数
3、基本函数
(7)取表中第一元素CAR函数 格式: (car <表> ),表必须为引用表而非标准表,但可以是 简单表,也可以是嵌套表。 功能:提取<表>的顶层第一个元素 实例:(car '(1 3 5)) 结果为1 (car '((1 3)6 5)) 结果为(1 3) (8)取表中除第一元素外其它元素的CDR函数 格式: (cdr <表> ),表必须为引用表而非标准表,但可以是 简单表,也可以是嵌套表。 功能:提取<表>的除顶层第一个元素外的其它元素 实例:(cdr '(1 3 5)) 结果为(3 5) (cdr '((1 3)6 5)) 结果为(6 5)
Visual Lisp 编程基础