当前课程知识点:计算机辅助设计 > 第7章 AutoCAD 二次开发 > 7.2 Visual Lisp 语言特性分析 > Video
同学们好
这一讲 是AutoCAD二次开发的第二讲
在第二讲里 主要介绍Visual Lisp的语言的特点
首先 我们哪里找到这个语言
Visual Lisp在哪里
Visual Lisp是跟Autocad绑定的
可以通过工具 工具下面是AutoLisp
然后点击AutoLisp
就可以看到Visual Lisp这个编辑器
所以说 很容易找到Visual Lisp
在哪里 就是在工具 在AutoLisp下面
我们就可以看到Visual Lisp
那我们找到了Visual Lisp
怎么样来编写代码
Visual Lisp打开的时候
我们可以看到有三个窗口
一个是编辑的窗口 一个是控制的窗口
这是编辑代码的 编辑好了以后
如果加载 通过工具加载以后
它的结果在控制窗口
还有一个跟踪窗口
跟踪窗口主要指的是软件的运行状况
比如 这个Visual Lisp for Autocad 2008
这个界面打开以后也有通用的菜单
这个是视窗系统都通用的
也有基本工具 有复制有剪切
当然 下面还有一些专用工具
这样就可以看到 Visual Lisp的程序
打开以后 有三个窗口
编辑窗口 控制窗口 跟踪窗口
那么 Visual Lisp的语言有哪些特点
可以通过反向的这样来看
首先Visual Lisp 是由AutoLisp开发而来的
AutoLisp 又由LISP开发而来
所以Visual Lisp具有LISP这样一个特点
当然也具有AutoLisp的特点
LISP 是一个表的语言
所以用成双成对的框来表示
然后 AutoLisp 是具有解释的语言 不用编译
可以直接写完一句 就调试一句
写完若干句 把若干句进行调试
调试成功就变成一个小段 一个功能段
我们最后 就把它可视集成
注意 我们这里指的可视
应该跟Visual Basic控件可视还是有一点区别的
因为Visual Basic里面
控件一拉就可以看到那个控件
这里的控件 到最后还是要编辑的
但是 我们在编写代码的时候
它是可以看到不同的代码 由颜色体现的
有红的 有绿的 看到不同的颜色
那么表示代码编写是否正确
代码的功能是体现了不同的功能是不同的颜色
这样Visual Lisp 大大的 方便了编程
同时Visual Lisp基本上跟Autocad版本没有关系
可移植性非常的强
Visual Lisp 由于它是一个表的语言
是一个可解释的语言
所以它的变量没有明确的类型
变量的类型不要预先声明
像VB里面的数组结构的记录
我们全都是用表来处理
所有的运算也是由表的函数的调用来完成
那么Visual Lisp语言
我们具体在编程过程中要注意哪些问题
注意 这些问题都是我们十几年 应该是十多年
我们二次开发过程中碰到的一些问题
首先第一个 尽量不要使用
内部分配给保护的这些变量名称
比如说我们曾经遇到过的T
T 看到没有 T 是分配给保护的符号
那就不要用 尽量不要用这个T
第二个 尽量不要用容易混淆的字母
混淆的字母或者数字 都不要用
比如说1和l 字母l 数字1 容易混淆
单个的千万不要用 除非整体的用
整体的用问题不大
还有字母O和数字0
注意这个数字0做了特殊处理
本来这个0这个斜杠是没有的
是不是啊 所以说O和0也容易混淆
比如这个POP1 菜单文件里面
注意这个是O 曾经我们有学生 写了个0
所有的程序都找不到错误 就是0和O的问题
那么在编写的时候 注意 框一定要成双成对
千万不要像这一句这么长
左边多少个右边也要多少个 一定要相等
括号不管离了多远 这个括号 这边在这
中间还隔了许许多多的句子 到最后才到这
这个括号成双成对 中间可能有二三十个句子
所以不管离了多远 都要成双成对的出现
在编程时 还要注意
都是表以及表中的元素
来进行Visual Lisp 代码的编写
表 括号 注意一定要英文状态
括号里面的元素或者是原子 我们在这知道
2 3 5注意 空一格空一格
注意 里面的原子之间或者元素之间一定要空一格
表中还可以套表
看到没有 是+ 这个+是直接空一格
但是 这个括号跟4之间 可以空也可以不空
你看这个没空 这一行跟这一行
如果进行运算 结果都是25
但是 我们建议大家还是空一格
尽量不要用这种形式
第五个 表的大小一定要注意
表的大小就是表中元素的个数
但是元素的序号 来看一下
一定要注意 第1号就是0
那么同时 这个B实际上是0号 这个是1号
就是说表中可以套表
比如 这个表的长度就是4
但有人说 这不是还有CD吗
因为CD是自己里面表中的表 123也是这样的
所以 表里面套的小表 可以说是小的表
那不管是多少个元素 只算一个表 1
所以这个大表元素或者长度 是4
那么 它的序号怎么办
从0开始 0 1 2 3
这也是这样的
像这个 有多少个
1个 这里还有这个符号也是的
0 1 2 这个整个算3
表中元素的序号 要注意
是从0开始排的
里面套一个表 不管套的表里面有多少的元素
只能算1
只能算1个的元素
我们经常会有空表
空表就是一个框 空的框
然后 有时候返回的时候空的 nil
注意这个nil 既可以表示一个表
又可以表示一个原子
这个 后面编程里面我们会碰到这些问题
那么Visual Lisp程序
在运行时候出现错误怎么解决呢
如果缺少括号 或者有多余的括号
有些错误 可以根据编写代码中颜色来判断
尤其是这个括号 看看有没有成双成对
通过颜色 少了一个颜色的括号
但是 我们在编写代码的时候
有时候 代码一点错误都没有
是由于什么
是由于Autocad运行状态引起的
Autocad的运行状态 还没有结束
常常由于这个问题 引起程序调试不成功
有些同学 经常是不明白
怎么回事 代码是对的 最后调试无法成功
这个时候 一定要注意
一定要进入打开的Autocad界面
把Autocad界面里面的命令状态 把它结束
这个等会我们可以给大家演示一下
所以Visual Lisp程序运行错误的时候
一定要认真的判断问题所在 然后解决问题
那我们Visual Lisp程序开发
这个是我们总结的比较优化的一个策略
就是说你这个开发的时候
由于它是一个解释的语言
所以 我们不用整个都开发完了 再调试
把这个软件可以分成若干的小段 小程序
再把这个小程序功能块调试通过
然后再把小程序封装
封装以后 把若干的小程序封装成一个大的程序
然后把大的程序再跟全局的菜单 对话框
再把它放在一起 进行完善 然后再进行测试
然后就可以加载
注意加载的时候 要关闭对象的捕捉功能
当然也可以在命令里面
加一句对象捕捉 把它关掉的命令
否则如果没有关掉对象捕捉
程序软件在绘制的时候 就会出现问题
下面 我给大家来演示一下
代码运行的时候 代码是正确的
但是由于其他原因而出错
我们来演示一下
通过演示以后大家在绘制的时候就不会出现这个错误
下面我们进入Autocad的实时操作界面
比如 我们先来看看成功的代码
我们再来看看编辑器
看到没有 已经有这样一段代码
比如 这一段是进行角度标注的
我们来看看
就是说 画一个角 还要标注它的
好 然后我们来看一下 加载代码
可以看到控制台 最后出现一个_一个$
就是表明没有问题 全都通过
全都通过以后 我们来看看
我们在这 画了一个什么东西
这个时候 我们要通过视图通过缩放
缩放里面 是全部
全部以后 可以看到 画的东西在这
既然是这个东西 现在把它删掉
这一条留着也没有问题
我们有时候 这里画一条线
画完以后 我们现在 继续进到这里去
我们来看看 这时候代码完全没有变
我们先来看看 现在再加载
你看 错误 函数被取消
我们在以前的教学里面 好多学生经常碰到这个
老师 代码跟你的一模一样 怎么错误
或者是 到其他机上又行了
因为其他机上刚刚好没有这个命令
那什么原因
大家看到 我们进入这
其实很简单 把命令 按esc 退出
退出以后 再把这个删掉
当然 不删也可以 那就不删
然后我们再进到这来
那我们再同样的代码 再加载一次
工具 好 没有了 错误函数被取消 没有了
没有的话 我们再来看看 那你画了没有
那我们来看一下 90度画好了
所以说 我们碰到错误 函数被取消
并且这个问题 经常被碰到 在具体调试过程中
现在把这个问题拿出来 给大家演示一遍
因为6次讲完以后 开发一个大作业
开发完以后 你这门课程才可以取得考试的资格
我们就是告诉大家
是由于Autocad里面的命令没有结束
下面 我们就回到这个PPT界面
对不是代码本身出错误 我们进行了演示
到时 在具体程序开发的时候
碰到这样的问题 那也有解决的方法
我们就提出了这个五点的小结
关键的 我们提出就是
Visual Lisp调试是有难度的
主要是有些错误不是程序本身引起的
没有提示信息 就完全不知道到底为什么是错的
这个时候 我们就给大家演示了一下
回去以后 我们做一个五道的是非判断
看看是对的还是错的
那么我们今天这一讲的内容
就到这里为止 谢谢大家
-0 绪论
-0 绪论--作业
-1.1 Auto CAD 基本绘制工具
-1.1 Auto CAD 基本绘制工具--作业
-1.2 Auto CAD 基本修改工具
-1.2 Auto CAD 基本修改工具--作业
-1.3 Auto CAD 基本标注工具
-1.3 Auto CAD 基本标注工具--作业
-1.4Auto CAD 基本格式设置
-1.4Auto CAD 基本格式设置--作业
-1.5Auto CAD 综合应用
-1.5Auto CAD 综合应用--作业
-1.6 课件下载
--第1章样图文件
--第1章普通课件
--第一次线下作业
-2.1 如何绘制化工图样
-2.1 如何绘制化工图样--作业
-2.2 如何绘制化工厂PID图样
-2.2 如何绘制化工厂PID图样--作业
-2.3 如何绘制化工图样通用部件
-2.3 如何绘制化工图样通用部件--作业
-2.4 课件下载
--第2章样图
--第2章普通课件
--第2次线下作业
-3.1 半球形封头的绘制
--Video
-3.1 半球形封头的绘制--作业
-3.2 椭圆形封头的绘制
--Video
-3.2 椭圆形封头的绘制--作业
-3.3 碟形封头的绘制
--Video
-3.3 碟形封头的绘制--作业
-3.4 锥形封头的绘制
-3.4 锥形封头的绘制--作业
-3.5 法兰的绘制
--Video
-3.5 法兰的绘制--作业
-3.6 支座的绘制.
--3.6支座绘制
-3.6 支座的绘制.--作业
-3.7 人孔和手孔的绘制
--Video
-3.7 人孔和手孔的绘制--作业
-3.8 课件下载
--第3章普通课件
--第3章样图
--第3次线下作业
-4.1如何设计化工容器
--Video
-4.1如何设计化工容器--作业
-4.2如何确定化工容器零件的尺寸
--Video
-4.2如何确定化工容器零件的尺寸--作业
-4.3如何绘制化工容器
--Video
-4.3如何绘制化工容器--作业
-4.4化工容器装配图的集成绘制
--Video
-4.4化工容器装配图的集成绘制--作业
-4.4 课件下载
--第4章普通课件
--第4章样图
--第4次线下作业
-5.1 换热器绘制策略
--Video
-5.1 换热器绘制-作业
-5.2 课件下载
--第5次线下作业
--第5章普通课件
--第5章样图
-6.1 精馏塔绘制策略
--Video
-精馏塔绘制策略--作业
-6.2 课件下载
--第6章普通课件
--第6章样图
--第6次线下作业
-7.1 AutoCAD 二次开发概述
--Video
-7.1 AutoCAD 二次开发概述--作业
-7.2 Visual Lisp 语言特性分析
--Video
-7.2 Visual Lisp 语言特性分析--作业
-7.3 Visual Lisp 语言各种运算与函数
-7.3 Visual Lisp 语言各种运算与函数--作业
-7.4 Visual Lisp 语言逻辑判断与绘制命令
--7.4 作业
--7.4 作业
-7.4 Visual Lisp 语言逻辑判断与绘制命令--作业
-7.5 Visual Lisp 语言窗体开发与数据传递
--7.5 Visual Lisp 语言窗体开发与数据传递视频
-7.5 Visual Lisp 语言窗体开发与数据传递--作业
-7.6 Visual Lisp 语言二次开发实例分析
--7.6 Visual Lisp 语言二次开发实例分析视频
-7.6 Visual Lisp 语言二次开发实例分析--作业
-7.7 课件下载
--第7次线下作业
-8.1Excel 中的宏应用
-8.1Excel 中的宏应用--作业
-8.2Excel 中的规划求解
-8.2Excel 中的规划求解--作业
-8.3 Excel 中的宏与规划求解1
-8.3 Excel 中的宏与规划求解1--作业
-8.4 Excel 中的宏与规划求解2
-8.4 Excel 中的宏与规划求解2--作业
-8.5 课件下载
--第8章普通课件
--第8章程序
--第8次线下作业
-9.1 VB基础概念
-9.2 VB程序开发入门
--Video
-9.3 VB对象三要素
-9.4 VB控件定义及主要控件
--Video
-9.5 变量与常量
--Video
-9.6 变量的作用域
--Video
-9.7 运算符和函数
--Video
-9.8 运行结构
--Video
-9.9 数组与过程
--Video
-9.11 绘图基础
--Video
--Video
-9.12 vb四则运算编程实际操作
--Video
-9.13 计算器开发实际操作
--Video
-9.14 VB 超越方程求解器实际操作
--Video
--Video
-9.15 学生大作业操作展示
--Video
-10.1 参数拟合实际操作-饱和蒸汽压与温度关系拟合
--Video
-10.2 参数拟合3.0实际应用视频
--Video
-11.1 ORIGIN 8.0 绘制入门
--Video
-11.2 ORIGIN2108 离心泵实验曲线绘制
--Video
-11.3 ORIGIN2108 反应过程动态浓度变化曲线绘制
--Video
-11.4 ORIGIN2018 参数拟合
--Video
-12.1 单变量超越方程求解
-12.2 超越方程组求解
-12.3 超越方程宏求解
--超越方程宏求解