几个lisp程序.ppt
文本预览下载声明
* AutoCAD在测绘中的应用 10.6 AutoLISP程序调试与编程实例 1.AutoLISP语言程序的调试方法 程序的调试过程就是程序运行中反复发现错误和修改错误,直到满足设计要求的过程。其中最主要的是如何发现错误发生的位置及其性质。AutoLISP程序是以解释方式执行的,运行出错时,一般先终止程序运行,并显示出错信息。 (1)AutoLISP语言调试的一般方法 (2)设置断点打印变量值的方法 (3)分段调试法 (4)单步执行调试法 例1:下面定义的是一个用多义线画正方形的函数: 像这样的定义函数,在用load函数装载(load hzfx) 后,就可以在Command:提示行只输入函数名的“hzfx”部分。 (defun C:hzfx(/ pt1 pt2 pt3 pt4 len) (setq pt1(getpoint Lower left corner:)) (setq len(getdist Length of one side:)) (setq pt2(polar pt1 0.0 len)) (setq pt3(polar pt2(/ pi 2.0)len)) (setq pt4(polar pt3 pi len)) (command pline pt1 pt2 pt3 pt4 C) ) 2.AutoLISP语言程序示例 (defun C:hld(/ dwd r ) ;画路灯符号 (setq dwd(getpoint inter dingweidian:)) (setq r 0.5 ) (setq pt1(polar dwd (/ pi 2.0) 0.5)) (setq pt2(polar pt1(/ pi 2.0)3.0)) (setq pt3(polar pt2 0.0 1)) (setq pt4(polar pt2 pi 1)) (setq pt5(polar pt4 (-(/ pi 2)) 0.5)) (setq pt6(polar pt5 (-(/ pi 2)) 0.5)) (setq pt7(polar pt3 (-(/ pi 2)) 0.5)) (setq pt8(polar pt7 (-(/ pi 2)) 0.5)) (command circle dwd r ) (command circle pt6 r ) (command circle pt8 r ) (command line pt1 pt2 pt3 pt7 ) (command line pt2 pt4 pt5 ) ) 例2:下面是一个绘制路灯符号的lisp程序。 根据《图式》 (defun C:tu ( / pc1 pc2 pc3 r ) (setq pc1 (list 50.0 50.0)) (setq r 20 ) (setq pc2 (polar pc1 (/ pi 2) (* r 2))) (setq pc3 (polar pc2 pi (* r 2))) (command circle pc1 r ) (command circle pc2 r ) (command circle pc3 r ) (command line pc1 pc2 pc3 c ) (princ pc1) (princ pc2) (princ pc3) (princ r) ) 练习1:写出在AotuCAD编辑状态中运行函数tu时,在屏幕图形区和文本区的显示结果。 文本区:(50.0 50.0) (50.0 90.0) (10.0 90.0) 20 pc1 pc2 pc3 (defun c:hzjx (/ p1 p2 p3 p4) (setq p1(getpoint \n输入矩形的一个角点:)) (setq p3(getpoint \n输入矩形的另一个角点:)) (setq p2(list (car p3)(cadr p1))) (setq p4(list (car p1)(cadr p3))) (command pline p1 p2 p3 p4 c) ) 练习2:定义输入矩形的对角点绘制矩形的命令函数。
显示全部