CAD程序设计课程第一次作业讲解学习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一作业Visual LISP练习
一、目的要求
1、了解如何启动Visual LISP,熟悉VLISP编程界面。
2、在Visual LISP环境下编辑并运行程序。
3、Visual LISP环境下查找VLISP程序错误。
4、了解VLISP赋值与求值函数及主要计算函数的功能、格式及应用。
二、作业内容
1、按下列步骤试运行程序
1)启动Visual LISP
启动AutoCAD后,可采用以下任一种方法进入VLISP:Command: VLISP或者VLIDE
菜单→Tools→AutoLISP→Visual LISP Editor
2)在文本编辑区键入以下程序
该程序的功能是定义一个画矩形的函数,此函数有四个形参:x 、y 、p1 及lw分别代表矩形的长、宽、基点和线宽,用户调用该函数时用实际的数值赋予该四个形参即可画出任意尺寸的矩形。注::程序中可能存在错误请自行查找
3)保存文件:
下拉菜单→File→Save 保存该文件,取名为:box.lsp
4)文件装入内存
command: (l oad “box”)
程序如无语法错误,将返回函数名box;如有语法错误,将返回错误提示用户需回到VLISP 编辑器中,修改程序。注意:如果用load函数加载,后面的文件需要标明盘符/文件夹等5) 运行应用程序
在AutoCAD图形窗口中:Command: (box 80 60 ‘(40 40) 0.4)并回车,程序执行结果自动画出,基点在40,40点,宽80, 高60,线粗0.4的矩形。
2、用VLISP 表达式计算下列各式 1).7154.2
程序段:(setq x (expt 2.154 (/ 1.0 7)))
结果: 1.11585
2).
44.7856.3445
.1133.1877.1655.23⨯⨯-⨯
程序段:(setq x (/ (- (* 23.55 16.77) (* 18.33 11.45))(* 34.56 78.44)))
结果: 0.0682636
3).3
23299.855.278.634.355.4+⨯+ 程序段:
(setq x (expt (+ (expt 4.55 2) (/ (* 3.34 (expt 6.78 3)) (+ (expt 2.55 2) (expt 8.99 3)))) 0.5)) 结果:4.70346
4).Log521
程序段:(setq x (log (expt 5 21)))
结果:20.9849
5).tag45
程序段:(setq x (/ (sin(* 0.017453 45))(cos(* 0.017453 45))))0.999974
结果:0.999974
6).arcsin0.4
程序段:(setq x (* (/ (atan (expt (- (/ 1 (- 1 (expt 0.4 2))) 1) 0.5)) pi) 180))
结果:23.5782
3、求下列表达式的返回值
程序段:
_$ (setq LLL '( (1 "A") (2 "B") (3 "C") (4 "D") )))
((1 "A") (2 "B") (3 "C") (4 "D") )
_$ (assoc 2 LLL)
(2 "B")
_$ (car LLL)
(1 "A")
_$ (cadr LLL)
(2 "B")
_$ (nth 3 LLL)
(4 "D")
_$ (length LLL)
4
_$ (cadr (assoc 3 LLL))
"C"
4、设(setq La ’(((A B)(C))(D E)) )从La表中取出元素A、B、C、D、E
程序段:
_$ (setq La '(((A B)(C))(D E)))
(((A B) (C)) (D E))
_$ (car (car (car La)))
A
_$ (last (car (car La)))
B
_$ (car (cadr (car La)))
C
_$ (car (car (cdr La)))
D_
_$ (last (cadr La))
E
5、比较LIST、APPEND、CONS用法的区别(LIST ‘(a b c) ‘(x y z))
(APPEND ‘(a b c) ‘(x y z))
(CONS ‘(a b c) ‘(x y z))
程序段:
_$ (list '(a b c) '(x y z))
((A B C) (X Y Z))
_$ (append '(a b c) '(x y z))
(A B C X Y Z)
_$ (cons '(a b c) '(x y z))
((A B C) X Y Z)
6、实践练习:输入下面程序,查看结果:
输出:本程序的功能是什么?
答:本程序用于绘制直角三角形,三角形的直角顶点是pa点,两条底边长分别为ww、hh,斜边长为kk. PB夹角=53.1301度, PC夹角=36.8699度.
三、思考题
1、运行一个自定义的VLISP程序需要那几个步骤?
1.进入AutoCAD。
mand:VLISP进入VLISP编程环境。
3.下拉菜单——File——New File创建一个新文件。
4.在文本编辑区键入自定义程序。
5.下拉菜单—Load —File ——Save,保存该文件。
6.下拉菜单——Tools——Load Text in Editor,加载当前编辑窗口的文件。
7.运行应用程序。
2、如何利用VLISP的分色功能、括号匹配和设置断点检查程序的错误?
分色功能:
VLISP编程环境具有按照语法分色的功能,系统内的标准函数(如setq、defun、getpoint等)被显示为蓝色;而VLISP不能识别的内容将显示为黑色,如用户定义的变量;字符串用粉红色。如果应当是系统函数而没有呈蓝色显示,就一定是函数名拼写错误。如果字符串中的文字不为粉红色,一定是在当前程序的后方少了引号。
括号匹配:
将光标放在检查的起始位置上之后,按下相关的快捷键:
Ctrl+]:向程序前方匹配括号
Ctrl+[:向程序后方匹配括号
设置断点:
先在编辑器中选定需要检查的若干行程序片段,然后执行以下操作:
菜单——Tools——Check Selection(检查编辑器中选定的程序)。
如果有错误,就在编译输出窗口中双击这个错误信息,VLISP就会激活编辑窗口,并将光标放在出错的程序行的头部,并亮显相关表达式。
3、VLISP程序结构有什么特点?
1.AutoLISP程序是一个由许多子表组成的一个大表。所谓表,就是由圆括号括起来的,用空格分
隔的若干元素形成的数据结构形式,如表(A B C),表中有三个元素,表的长度为3.表的结构