第四章 Auto LISP的绘图功能

合集下载

基于AutoLISP的AutoCAD参数化绘图

基于AutoLISP的AutoCAD参数化绘图
1) 分析结构特征 ,确定绘图参数 。通常绘制一个零件的 图样 ,需要很多尺寸 ,但是不可能把所有的尺寸都作为参数 。 这时就需要我们分析这个零件 ,确定既能体现零件的结构特 征 ,又能推导出其它尺寸的基本尺寸作为绘图参数 ,参数越少 越好 。
2) 根据绘图参数 ,设计交流界面 (对话框) 。对于参数化 绘图程序来说 ,对话框主要考虑绘图参数的输入和相关控件 的布局 ,为了增加程序的可读性 ,对话框中还要配有图像按 钮 ,用幻灯片来显示各绘图参数的含义 。
Key words :Auto L ISP ;AutoCAD ;paramet ric drawing ;redevelop ment s
1 引言
AutoCAD 是美国 AutoDesk 公司推出的一种通用的计算 机辅助设计和图形处理软件 ,具有易于掌握 、使用方便 、绘图 精确和体系结构开放等优点 。因此 ,自 1982 年问世以来深受 广大设计人员的青睐 ,是 CAD 族群中使用最普遍的软件之 一 。如今 ,AutoCAD 已广泛应用于机械 、建筑 、电子 、航天 、造 船 、冶金 、纺织 、轻工等领域 ,可见 AutoCAD 是一个通用的 CAD 软件 。但要使一个通用的 CAD 系统适合自己的专业工 作需要 ,达到使用方便的要求 ,就必须进行二次开发 。在 Au2 toCAD 为用户提供的 Auto L ISP 、A RX、VBA 等开发工具中 , Auto L ISP 是一种简便易学的解释性语言 ,具有很强的数据 表格处理功能 ,是开发 AutoCAD 的一种重要手段[1] 。
2 Auto L ISP 语言的特点简介
Auto L ISP 语言是嵌套于 AutoCAD 内部 ,将 L ISP (List Processing Language) 语言和 AutoCAD 有机结合的产物 ,它 是 AutoCAD 开放式体系结构的具体表现 。使用 Auto L ISP 可直接调用几乎全部 AutoCAD 命令 ,Auto L ISP 语言既具有 一般高级语言的基本结构和功能 ,又具有一般高级语言所没 有的强大的图形处理功能 ,是当今世界上 CAD 软件广泛采用 的语言之一[2 ] 。

第四章 Auto LISP的绘图功能

第四章 Auto LISP的绘图功能

4.2.2求两点间距离的函数DISTANCE
1.调用格式 (distance 〈点1〉 〈点2〉) 2.功用及求值结果 该函数的功用是求〈点1〉和〈点2〉的距离,并返回该函数值。同样, 若为三维点,它返回到投影在当前作图平面上的两点间的距离。 例如: (distance /(5.0 1.2) /(2.4 1.2) 返回值2.600000 (distance /(5.0 1.2 3.0) /(2.4 1.2 5.1) 返回值4.045990
3.一条Auto CAD命令,可以由多个command函数完成。例如: (command “circle”) (command /(5.0 4.0) (command 3) 在这种情况下可在其中间插入其它函数,如前所述command函数是不 允许用get类函数作参数的。如(command “circle” (getpoint) (getreal))就 是错误的。但我们可以在多个command函数调用中间,插进get类函数。 例如; (command “circle”) (setq p1 (getpoint “\n 圆心点”)) (command p1) (setq r (getreal “\n 半径”)) (command r) 4 . 利 用 暂 停 符 号 pause 使 正 在 执 行 的 Auto CAD 命 令 暂 停 。 作 法 是 command函数调用参数表中加pause符号,该Auto CAD命令即暂停,以等 待用户键入或拖拽输入。例如: (command “circle” /(5.0 4.0) pause) 该式是用command函数调入Auto CAD中的circle命令。先设置圆心 (5.0 4.0),然后暂停下来让用户在屏幕上拖拽圆的半径,当用户给出 所要的点或输入所需的半径后,在屏幕上便画出一个圆。

第2讲利用AutoLisp语言绘图

第2讲利用AutoLisp语言绘图

第2讲利⽤AutoLisp语⾔绘图第2讲利⽤AutoLisp语⾔绘图在AuotCAD绘制简单图形时,有三种主要⽅式:(1)图标菜单(2)下拉式菜单(3)命令⾏。

事实上还有另外⼀种绘图⽅式,即通过lisp语⾔实现绘制图形。

利⽤Lisp语⾔绘图的最⼤优点是可以实现批处理,降低劳动强度。

⼩知识:Lisp语⾔最⼤优势是和AutoCAD绘图结合的很好,这也是该语⾔⾄今仍未被淘汰的最主要原因。

1、简单的绘图语句⼏乎AuotCAD中所有的绘图及环境设置命令都可以通过程序调⽤!,利⽤Lisp语⾔编写绘图命令的窍门是⾸先在命令⾏下把绘图命令和对应的参数记住,然后⽤Lisp语⾔的格式书写出即可。

1.1 绘制直线(command "line" "0,0" "1,1" "")1.2 绘制圆(command "circle" "0,0" 5)1.3 绘制正多边形(command "polygon" 5 "0,0" "i" 5)(command "polygon" "5" "0,0" "i" "5")都正确1.4 新建图层(command "la yer" "m" "道路" "c" 2 "" "")请同学⾃⼰编写⾼度为2,起点位置在“0,0”,⽂字内容是“理⼯⼤”的程序2、⽤多条绘图语句表⽰复杂图形正常情况下图形都⽐较复杂,需要⽤多条语句编写,例如测绘中的下⽔井、路灯等符号。

例1、下⽔井的绘制(defun c:xsj()(command "circle" "0,0" 0.5)(command "line" "-0.5,0" "0.5,0" "")(command "line" "0,-0.5" "0,0.5" ""))3、循环控制语句例2、绘制同⼼圆例3、绘制可多次插⼊的下⽔井符号例4、绘制y=sinx 曲线4、课后练习题4.1 编写lisp 程序,绘制路灯图案,参照下⽔井程序,改写成可以多次插⼊的程序。

CAD二次开发lisp教程《第四章》

CAD二次开发lisp教程《第四章》

(2)工具栏 Visual LISP提供了 提供了Standard,View,Debug,Tools和Search五 提供了 , , , 和 五 个工具栏 .
① Standard工具栏 工具栏
建立一个新文件 存盘 剪切 粘贴 恢复 打开一个已有的文件 打印输出 复制 取消 完词功能
Tools工具栏 ② Tools工具栏
删除被选中的文本并将其移到Windows剪贴板 剪贴板 删除被选中的文本并将其移到 将选中的文本复制到剪贴板中 将剪贴板内容粘贴到光标位置 清空控制台窗口 在控制台窗口中查找指定文本 打开"检验" 打开"检验"对话框 打开"监视" 打开"监视"窗口 打开"自动匹配选项" 打开"自动匹配选项"窗口 打开"符号服务" 打开"符号服务"对话框 放弃最近的操作 重新执行上次放弃的操作 将所有输入传送到 AutoCAD 命令行以供求值 切换是否将控制台窗口的输出复制到日志文件
Hale Waihona Puke 2. 使用控制台窗口的历史记录
提示下, 在_$提示下,每按一次 提示下 每按一次Tab键,回溯前一次输入的字符串,作为当前输入. 键 回溯前一次输入的字符串,作为当前输入. 到了第一次输入的字符串时,再按Tab键,返回最后一次输入的字符串,周 到了第一次输入的字符串时,再按 键 返回最后一次输入的字符串, 而复始.每按一次Shift+Tab键时,将进行反向回溯. 键时, 而复始.每按一次 键时 将进行反向回溯.
控制台快捷菜单
4. 记录控制台窗口的活动
日志文件的文件类型为" 日志文件的文件类型为 " .log", , 它记录了控制台窗口的所有活动, 它记录了控制台窗口的所有活动 , 通 过浏览该文件可以回顾控制台窗口中 执行的命令. 执行的命令. 在控制台窗口通过下拉菜单 File→Toggle Console Log或快捷菜单 → 或快捷菜单 Toggle Console Log可以建立日志文件. 可以建立日志文件. 可以建立日志文件

用LISP语言实现控制网的图形自动绘制

用LISP语言实现控制网的图形自动绘制

用LISP语言实现控制网的图形自动绘制(defun f16(n p1dh z sl1/p2p3p4p5kk1);定义被调用函数f16,该函数的作用是用相应符号表示不同类型的控制点,并对其进行标注(command"insert"n p1sl1sl10);调用AutoCAD内部插入命令(setq p2(polar p10(*1sl1)))(setq p3(polar p20(*1sl1)))(setq p4(list(+(car p2)(*0.5sl1))(+(cadr p2)(*0.05sl1))))(setq p5(list(car p4)(-(cadr p4)(*0.35sl1))))(setq kk1(*sl10.25));分别对p2p3p4p5kk1赋值(command"line"p2p3);调用画线命令(command"")(command"text""c"p4kk10dh);调用TEXT命令标注不同类型的控制点(command"text""c"p5kk10z));;;;;;;;;;;;;;(defun c:kzd();定义主程序(command"layer""m""kzd""");设置层(setq scl(getstring"输入比例尺:"));提示用户输入绘图比例尺(setq scl(atoi scl));定义几个绘图参数,并对其赋值(setq s-utomm1000.0);s-utomm为图上一绘图单位代表的实地距离的毫米数(setq s-mtou(/scl s-utomm));s-mtou实地距离1米代表的绘图单位数(setq k1(/scl s-utomm))(setq s1(*10k1))(setq sl1s1);对过程变量赋值(princ"\数据文件格式:\\第一行:注释行")(princ"\\其它行:点号X Y H\");显示提示信息(graphscr);显示AutoCAD的图形屏幕(findfile(setq path(getstring"请输入数据文件名:")))(setq fp(getfiled"请选择数据文件:""path""txt"4));提示用户选择数据文件(princ fp);打印数据文件(包括路径和文件名)(if(setq fp(open(findfile fp)"r"))nil(exit));不管文件是否已经打开都转而去执行后面的语句(setq zsh(read-line fp));读注释行(princ zsh);打印显示注释行(setq in(read-line fp));从数据文件中读取一行数据(while in;当没有读到数据文件结尾时,进行while循环(setq in(strcat"("in")"));将读取的字符串构建成一个“表”(setq in(read in));将“表”转换成数值型表(princ in);打印显示表的内容(setq L(length in));返回表中元素的个数(princ L)(setq dh(itoa(nth0in)));提取表中第一个元素,并将其转换成字符型(setq x(nth1in));提取表中的第二个元素,即控制点的X坐标(setq y(nth2in));提取表中的第三个元素,即控制点的Y坐标(setq z(rtos(nth3in)));提取表中的第四个元素,即控制点的高程,并将其转换成字符型(setq k(nth4in));提取控制点的类型说明符(setq i(/(-L5)2));计算能与控制点通视的控制点的个数(setq i24);为工作变量i2赋初值,这里赋值之所以为4是因为,表中第六个元素才是能通视点的坐标(setq p1(list(*s-mtou y)(*s-mtou x)));构建一个点表,并将其赋值给p1(princ p1);打印显示p1(cond((=k1)(setq n"1"))((=k2)(setq n"2"))((=k3)(setq n"3A"))((=k4)(setq n"3B"))((=k5)(setq n"4"))((=k6)(setq n"5A"))((=k7)(setq n"5B"))((=k8)(setq n"6")))(setq n n);利用cond循环,选择不同类型的控制点(f16n p1dh z sl1);调用函数f16自动展绘控制点并自动对其进行标注(while(>i0);以下部分是循环提取能够通视的控制点的坐标,并将它与先前的控制点连结起来(setq i3(1+i2))(setq x(nth i3in))(setq y(nth(1+i3)in));依次提取通视点的X,Y坐标(setq p2(list(*s-mtou y)(*s-mtou x)))(command"point"p2)(command"line"p1p2"")(setq i2(+2i2));工作变量i2自动增加2,因为每读次循环可以从表中读取两个数据(setq i(1-i));工作变量i自动减1)(setq in(read-line fp)))(close fp)(command"undo""end"))。

AutoLisp

AutoLisp

高速公路路面单元块测量与数据转换接口的二次开发默认分类2008-06-21 13:42:18 阅读56 评论1 字号:大中小订阅3.4.4 Auto LISP/ Visual LISP 开发工具Auto LISP的全名是LISP Processing Language,它出现于1985年推出的AutoCAD 82.18中,是一种嵌入在AutoCAD内部的编程语言,是LISP原版的一个子集,一直是低版本AutoCAD的首选编程语言。

Auto LISP是一种表处理语言,是被解释执行的,任何一条语句键入后就能马上执行,它对于交互式的程序开发非常方便。

使用Auto LISP可直接调用几乎所有的AutoCAD命令。

Auto LISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。

另一个典型应用就是驱动AutoCAD提供PDB模块构成DCL ( Dialog Control Language)文件,创建自己的对话框。

Visual LISP是Auto LISP的换代产品。

它与Auto LISP完全兼容,并提供它所有的功能,是新一代的AutoCAD LISP语言。

Visual LISP对语言进行了扩展,可以通过Microsoft AdiveX Automation接口与对象交互。

同时,通过实现反应器函数,还扩展了Auto LISP响应事件的能力、此外VLISP还提供了工具用于发布独立的应用程序。

自从AutoCAD 2000版本开始,Visual LISP就已经被完整地集成到Auto CAD 中,它为开发者提供了崭新的、增强的集成开发环境(IDE ),大大提高了程序开发效率。

Visual LISP一改过去在Auto CAD中内嵌Auto LISP运行引擎的机制,使开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发,大大提高了开发的灵活度。

Visual LISP是Auto CAD2000版本以后集成的代码编辑工具,所以用它开发Auto LISP程序的时间将被大大地缩短,源代码也能被保密,以防盗版和被更改。

应用Autolisp语言实现圆锥齿轮参数化自动绘图

应用Autolisp语言实现圆锥齿轮参数化自动绘图
} :boxed-column{label = ”确定图纸幅面”; / / 对话 框标签 initial-focus = ”a3”;/ / 初始的焦点 :toggle{label = ”垂直放置”;key = ”ver”;}/ / 切换开 关 :boxed- radio- row{label = ”幅面规格”; / / 加框互锁 行标签 :radio- button{label = ”A0”;key = ”a0”;mnemonic = ” 0”;}/ / 按钮 A0 :radio- button{label = ”A1”;key = ”a1”;mnemonic = ” 1”;}/ / 按钮 A1 :radio- button{label = ”A2”;key = ”a2”;mnemonic = ” 2”;}/ / 按钮 A2 :radio- button{label = ”A3”;key = ”a3”;mnemonic = ” 3”;}/ / 按钮 A3 :radio- button{label = ”A4”;key = ”a4”;mnemonic = ” 4”;}/ / 按钮 A4 :radio- button{label = ”A5”;key = ”a5”;mnemonic = ” 5”;}/ / 按钮 A5
引言
Autolisp 是一种面向对象的人工智能语言 ,是 Au2 toCAD 内嵌的编程工具 ,应用 Autolisp 语言并结合 Au2 toCAD 的绘图命令及相关内部函数就可以用来编写用 户自己的应用程序[1] 。在工程设计中齿轮的设计与制 图是一项繁琐且重复性大的工作 ,传统的人工设计费 时费力 ,而且容易出错 ,花在创 造性设计的时间大大减少 ,导 致产品开发周期长 ,产品质量 差 ,市场竞争力弱 。如何在机 械设计中快捷地使用齿轮 ,最 有效的途径就是利用 Autolisp 语言 进 行 AutoCAD 的 二 次 开 发 ,实现参数化绘图程序设计 , 可使工程设计人员减少不必要 的重复劳动 ,把更多的时间投 图 1 参数化绘图程序设

基于Auto LISP的参数化绘图技术与实例分析

基于Auto LISP的参数化绘图技术与实例分析

基于Auto LISP的参数化绘图技术与实例分析摘要:AutoCAD 是一款通用的绘图软件,Auto LISP是嵌入AutoCAD的二次开发工具,参数化绘图是其典型的应用。

文章探讨了参数化绘图设计原理及步骤,并以轴承参数化绘图为例,介绍了Auto LISP的参数化绘图技术。

关键词:参数化;AutoCAD;Auto LISPAutoCAD是由Autodesk公司发行的一款应用于多领域的设计辅助和图形处理软件。

在机械行业得到了广泛应用。

AutoCAD虽然功能强大,但在专业应用上还是有不足之处,如何让通用的CAD系统更适合行业需要,必须对其要进行二次开发。

AutoCAD在30多年时间里相继推出了Auto LISP、ADS、Visual LISP、VBA、Object ARX、几种不同层次的二次开发工具。

“其中Auto LISP是唯一的一种以解释方式运行于AutoCAD内部的解释性程序设计语言,Auto LISP把数据和程序统一表达为表结构,所以它既可以把程序当作数据来处理,还可以把数据当作程序来执行”。

其语言规则简单,直接针对AutoCAD,易学易用,AutoCAD的绝大多数命令可直接调用,参数化绘图是其典型的应用之一。

1 参数化绘图设计原理及步骤所谓参数化就是将图形的有关几何关系、约束关系有机地结合起来,从而构成一个完整的参数化模型。

当设计人员改变图形的某一参数时,模型能根据尺寸及几何约束等自动计算出满足约束关系的工程图形。

参数化编程方法的实质,就是将图形信息记录在程序中。

它用一组变量记录图形的几何参数,用一些约束条件或者赋值语句来表达几何参数与结构参数之间的关系,再用一些绘图语句来表述图形的拓扑关系。

参数化方法快捷、高效,参数化绘图程序编写步骤是:①先进行图形结构特征分析,一般绘制一个零件的图样,需要很多尺寸,这就需要我们分析这个零件,确定图形中的关健几何尺寸及图形对象之间的依赖关系。

②从设计角度具体分析,确立不仅能体现零件的结构特征,又可以推导出其它尺寸的基本尺寸作为图形参数,并明确尺寸与图形参数之间的关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例如:用command函数调用Auto CAD命令画一直线, 可写成 (command “line” /(5.0 6.0) /(10.0 15.0) ””) 它相当于在Auto CAD中键入 command:line From point:5.0,6.0 To point:10.0,15.0 To point:〈回车〉 由此可见,command函数的参数格式取决于所执行的 Auto CAD命令及其所需的数据类型。但是由于command 是Auto LISP的内部函数,其参数必须符合Auto LISP的 数据类型,即采用S—表达式形式。为此,将Auto CAD 的命令及其子命令所要求的数据作为command函数的参 数时,作了以下规定:
4.2.4求二直线交点坐标的函数 INTERS
4.利用暂停符号pause使正在执行的Auto CAD命 令暂停。作法是command函数调用参数表中加 pause符号,该Auto CAD命令即暂停,以等待 用户键入或拖拽输入。例如: (command “circle” /(5.0 4.0) pause) 该式是用command函数调入Auto CAD中的 circle命令。先设置圆心(5.0 4.0),然后暂停 下来让用户在屏幕上拖拽圆的半径,当用户给 出所要的点或输入所需的半径后,在屏幕上便 画出一个圆。
1. Auto CAD的命令、子命令和选择项要用字符串 表示,大小写均可。 例如: (command “DIM” “hor” /(2.0 3.0) /(5.0 3.0) /(5.0 5.0) 8) “DIM”为命令,“hor”为子命令,均用字符串 表示。 2.数字常量(整型数或实型数)可写成本身亦可 写成字符串形式。如上例中数字8亦可写成“8”。 3.点常量有两种表示法:一是Auto LISP表的形 式,如上例中/(2.0 3.0),/(5.0 3.0)。二是用字符 串表示,字符串中数据要符合Auto CAD的规定。 如写成“2.0,3.0”,“5.0,10.0”。
在编制绘图程序时,已知一点求另一相关点时,常采用 p1 b p3 两个函数即 List和polar。由于polar函数在很多情况下,使 a 用起来更简便,应尽可能使用polar函数,例如: c 已知p2点及三角形三个边长a,b,c,确定p1p2 、p3点,用 图4.1 polar函数: (setq p1 (polar p2 (/ pi 2.0) a)) p3 (polar p1 0 b)) ;注意p2、a、b、c应先赋值 用List函数: (setq p1 (list (car p2) (+ (cadr p2) a)) p2 p3 (polar (+ (car p1) b) (cadr p1)) ) p3 显然,用polar函数确定相对坐标点是比较简单的。
4.2.2求两点间距离的函数DISTANCE
1.调用格式
(distance 〈点1〉 〈点2〉) 2.功用及求值结果 该函数的功用是求〈点 1 〉和〈点 2 〉的距离,并返 回该函数值。同样,若为三 (distance /(5.0 1.2) /(2.4 1.2)) 返回值 2.600000 (distance /(5.0 1.2 3.0) /(2.4 1.2 5.1)) 返回值 4.045990
6. command可以不带任何参数,即(command),
它等效于在键盘上按CTRL—C键,即取消了Auto CAD 命令。 例如: (command “dim” “hor” /(4 4) /(6 4) /(5 4) 10) (command) 相当于取消DIM命令并返回到命令提示。 (command)也可以用“∧”代替,如上式可写成: (command “dim” “hor” /(4 4) /(6 4) /(5 4) 10∧)
第四章 Auto LISP的绘图功能
如前所述, Auto LISP 语言体现了人工智能语言 lisp 的特点和Auto CAD强大的图形编辑功能,可以说它是集 设计与绘图为一体的人工智能语言,因此,它是开发实 用工程计算机辅助设计和绘图软件的强有力工具。Auto LISP 具有强大的绘图编辑功能,主要是由于它提供了与 Auto CAD相互通讯的简单透明的接口功能,即提供了一 个 系 统 内 部 函 数 command,AutoLISP 程 序 中 利 用 command 函数可以非常简单而方便地调用几乎全部 Auto CAD命令,以完成所要求的各种工程图形的绘制任务, 本章将重点介绍 command 函数的功能、编程技巧及应用 实例。
3.一条Auto CAD命令,可以由多个command函数完成。例如: (command “circle”) (command /(5.0 4.0) (command 3) 在这种情况下可在其中间插入其它函数,如前所述command函数是不 允许用get类函数作参数的。如(command “circle” (getpoint) (getreal))就 是错误的。但我们可以在多个 command 函数调用中间,插进 get 类函数。 例如; (command “circle”) (setq p1 (getpoint “\n 圆心点”)) (command p1) (setq r (getreal “\n 半径”)) (command r)
4.2.3求极坐标函数POLAR
1.调用格式
(polar 〈点〉 〈方向角〉 〈距离〉) 2.功用及求值结果
该函数用于求一个点的极坐标,返回在UCS坐标系统中 的一个点。其〈方向角〉是从X轴方向按逆时针方向计 算,其单位为弧度。〈点〉不管二维点还是三维点总是 返回二维点。
例如: (polar /(7.0 1.0) pi (+ 2.0 3.0) (polar /(4.0 7.0) 0 (/ 4.0 2) (polar /(4.0 7.0) (/ pi 3.0) 4.0) 返回值(2.00000 1.000000) 返回值(6.00000 7.000000) 返回值(6.00000 10.464100)
4. command调用参数中的空串(””)等效于键盘上 按一次空格键。如上例中画直线的程序最后要求以终止该 命令的执行,即用(“”)。 空串亦可代表缺省值。例如: (command “text” “2.0,3.0 ” “” “” “example”) 标准表中二空串表示写文本时,其高度和旋转角采用 缺省值。 5. command调用的参数,如数字、点常量亦可为Auto LISP 的其它表达式 ,但其求值结果的数据类型 ,要与 Auto CAD命令要求的数据类型一致。例如: (setq p1 (list 30.0 20.0) (command “line” p1 (list (+ (car p1) 50.0) (cadr p1)) ””) 但command函数的参数不能用get类函数,这是特别 要注意的,否则将出错。
4.1.3注意
1 . command 函 数 调 用 中 的 参 数 类 型 , 个 数 与 顺 序 应 与 Auto CAD 命 令 严 格 对 应 。 为 防 止 出 错 , 对 于 初 学 者 建 议 在 编 写 用 command函数的Auto LISP程序之前,先用Auto CAD的命令提示状 态下敲入命令,确定其输入命令、子命令及其数据后,再进行编程 。 2 . command 函 数 在调 用 象 line,pline,layer 等 需 要 不定 个 数 据的 Auto CAD命令时,最后必须按一次空格键,以终止该命令的执行。 即在command参数最后加一个(“”)。 mand函数中的参数不能用get族函数。 mand 函数调用中的命令、子命令及其选项等字符串中不 能含空格,因为空格在字符串中也是有效的。例如: (command “line” “1” “2” “3 4” “”) ;非法命令 (command “line” “1,2” “3,4” “”) ;合法 5. command函数调用script命令时只能作为程序文件或函数定 义中的最后一个表达式,否则程序易于出现不正确的结果,这在开 发CAD应用软件中特别出现要加以注意。
4.1.2 功用及求值结果
command函数的功用是在Auto LISP编程中直接 调用Auto CAD命令,以编制绘图程序。求值器 在遇到 command函数时与对其它 Auto LISP函数 一样,也要对各参数求值。但不同的是它把各 参数的求值结果交给 Auto CAD 去调用相应的 Auto CAD命令,执行完Auto CAD命令后,又返 回到Auto LISP。command函数求值结果总是返 回nil。
4.1 COMMAND函数
4.1.1 调用格式 (command 〈参数〉……) command函数的参数可以是任意的Auto LISP的 S—表达式,但与Auto LISP其它函数不同,它 的参数是没有固定的格式。由于它是Auto LISP 系统提供的与Auto CAD相互通讯的接口,利用 它可以直接执行Auto CAD的命令,所以它的 〈参数〉就是它所调用的Auto CAD命令及其子 命令或命令所需的数据。
command函数的实际应用有如下几种情况: 1.用一个command的实际应用是在执行一条Auto CAD命 令。这是最常用的,例如: (setq p1 /(1.2 1.2) p2 /(5.8 12.4)) (command “line” p1 p2 ””) (command “circle” /(5.0 4.0) 3) (command “text” /(4.0 0.4) “3.5” “0.0” “ABC”) 2.用一个command函数执行多条Auto CAD命令,这也是 正确的。 例如: (command “line” p1 p2 ”” “circle” /(5.0 4.0) 3 “text” /(4.0 0.4) “3.5” “0.0” “ABC” )
4.2图形处理函数
Auto LISP编写绘图程序时,常需要一些几何特征点 、距离、角度等数据,如两点距离、两直线交点等。 Auto LISP专门提供了一些解决这类问题的函数,即图 形处理函数。利用这些函数,可使很多复杂问题的求 解简化,充分利用这些函数,可使编程大大简化。
相关文档
最新文档