AutoLISP的绘图功能.ppt
《AutoLISP的绘图功能.ppt》由会员分享,可在线阅读,更多相关《AutoLISP的绘图功能.ppt(15页珍藏版)》请在三一办公上搜索。
1、第七章AutoLISP的绘图功能,7.1command函数执行一条或多条 AutoCAD 命令,实现AutoLISP的绘图功能,主要接口。(command arguments.)参数arguments AutoCAD 命令、选项或表达式。返回值nil例题:CAD操作方式line指定第一点:1,1指定下一点或 放弃(U):1,5指定下一点或 放弃(U):命令:AutoLISP操作方式(command line(1 1)(1 5),command函数参数书写规定命令名和选项用字符串表示,大小写皆可。数值常数(整数、实数)可以写成数本身,也可写成字符串。点常数可以写成引用表或字符串,例如(2 3)或
2、“2,3”空字符串()表示从键盘键入 ENTER 键,可以终止一个需要不定个数数据的CAD命令,或接受缺省值。例题:(command text m.1,1 3.0 0 AutoCAD)“0.1,1.1,1(0.1 1)正确”0.1 1(.1 1)错误不带参数调用 command 相当于键入 ESC 键,这样可取消大多数 AutoCAD 命令,两个不带参数调用 command,可取消所有 AutoCAD 命令。也可以用符号取消AutoCAD 命令例如:(command text m.1,1 3.0 0 AutoCAD)符号pause暂停AutoCAD命令,等待用户输入,它表示一个反斜杠。若用反斜
3、杠表示,应写成。例如:(command line pause)等待用户输入两点画一条线段若一个期待输入字符串(如TEXT命令)或属性值的命令碰到pause,那么仅当系统变量textval置为非零时才会引起暂停,否则pause符号的值(反斜杠)被视为输入文本,不会引起暂停。,(setvar texteval 1)(command txet r pause 3 0 pause)右对齐 右对齐点 字高 转角 等待输入字符(setvar texteval 0)(command txet r pause 3 0 pause)文本为反斜杠不建议采用暂停的办法等待用户输入,输入错误导致程序出错。等待用户输入
4、的getxxx函数不能用在command函数中,另外在command函数中不能使用sketch(绘草图)、SCRIPT(执行一组命令)命令。如果在函数中使用 SCRIPT 命令,它必须是出现在该 AutoLISP 程序的最后。同样,如果在 acad.lsp 或 MNL 文件中使用 command 函数,则只能在 defun 表达式中调用。应使用 S:STARTUP 函数定义在绘图任务开始时就要执行的那些初始化命令。例题(initget 1)(setq pt(getpoint n输入文本起点:)(command text m pt 3.0 0 AutoCAD),(command text m(p
5、rogn(initget 1)(setq pt(getpoint n输入文本起点:)3.0 0 AutoCAD);错误一个command函数调用可以执行多条CAD命令;多个command函数调用可完成一条CAD命令。例题:(command line(1 1)(1 5)line(2 2)(2 8)(command line)(command(1 1)(command(1 5)系统变量 cmdecho为0,通过command函数执行的cad命令不会在命令行中显示;系统变量 blipmode为0,可以消除命令执行过程中小十字线的显示,如果开发的应用程序运行在外文版的AutoCAD,由command函
6、数发出的命令必须加下划线前缀,这样命令就可以被转换。例如(command _redraw)如果要避免命令被重新定义,可以加圆点前缀。圆点前缀和下划线前缀可以任意组合。例如(command._redraw)或(command _.redraw)command函数调用中的命令和选择项不允许有空格例如(command line 5,6 6,0)错误要注意的是,如果从 Visual LISP 中使用 command 函数,控制并不会转移到 AutoCAD 中。如果命令要求用户输入,则可以在控制台窗口中看到返回结果(nil),但 AutoCAD 将等待输入,必须手动激活 AutoCAD 并响应提示。在这
7、样做以前,任何后续命令都会失败。,;画一个矩形(defun abcd(/p1 p2 p3 p4)(initget 1)(setq p1(getpoint n输入一点:)(initget 1)(setq p3(getpoint p1 n输入对角点:)(setq p2(list(car p3)(cadr p1)(last p1)(setq p4(list(car p1)(cadr p3)(last p1)(command line p1 p2 p3 p4 C),7.2图形处理函数求两点连线的角度angle函数(angle pt1 pt2)求UCS的点pt1到pt2的连线在当前构造平面的投影与UCS
8、的X轴的夹角,逆时针为正,单位为弧度,二三维点皆可。与getangle函数在指定两点时测量角度方式相同样例命令:(angle(1.0 1.0)(1.0 4.0)1.5708命令:(angle(5.0 1.33)(2.4 1.33)3.14159求UCS两点的距离distance(distance pt1 pt2)如果提供的参数中有一个或两个二维点,distance 函数会忽略所提供的任何三维点的 Z 坐标,而返回将这些点投影到当前构造平面上后所得的点之间的二维距离。样例命令:(distance(1.0 2.5 3.0)(7.7 2.5 3.0)6.7命令:(distance(1.0 2.0 0
9、.5)(3.0 4.0 0.5)2.82843,在 UCS 坐标系下,求某点的指定角度和指定距离处的点polar(polar pt ang dist)参数pt 二维或三维点。ang 以弧度为单位的角度值,它是相对于当前构造平面 X 轴按逆时针方向计算的。dist 与指定点 pt 的距离。返回值根据 pt 指定点的类型,返回二维或三维点。如果pt为三维点,返回点的z坐标与pt的z坐标相同。样例为 polar 提供一个三维点:命令:(polar(1 1 3.5)0.785398 1.414214)(2.0 2.0 3.5)为 polar 提供一个二维点:命令:(polar(1 1)0.785398
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AutoLISP 绘图 功能
链接地址:https://www.31ppt.com/p-6502059.html