已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第9 9章章 二次开发及二次开发及AutoLISPAutoLISP AutoCAD AutoCAD 二次开发在化工制图中的应用二次开发在化工制图中的应用二次开发在化工制图中的应用二次开发在化工制图中的应用 AutoLISPAutoLISP语言基础语言基础语言基础语言基础 Visual LISP Visual LISP 基础基础基础基础 DCLDCL基础基础基础基础 AutoCAD AutoCAD 二次开发在化工制图中的应用二次开发在化工制图中的应用二次开发在化工制图中的应用二次开发在化工制图中的应用 二次开发的目的及必要性二次开发的目的及必要性二次开发的目的及必要性二次开发的目的及必要性 几种主要的二次开发语言简介几种主要的二次开发语言简介几种主要的二次开发语言简介几种主要的二次开发语言简介 化工化工化工化工AutoCADAutoCAD二次软件开发的思路及步骤二次软件开发的思路及步骤二次软件开发的思路及步骤二次软件开发的思路及步骤 二次开发的目的及必要性二次开发的目的及必要性二次开发的目的及必要性二次开发的目的及必要性 AutoCAD软件作为CAD工业的旗帜产品 以其强大的功能得到广大用户的 青睐 它具有精确的坐标系 能够完成各种图形的精确绘制 任意缩放和修 改 支持数字化仪的精确输入 尽管如此 由于AutoCAD是作为一个通用的绘 图软件而设计开发的 但各行各业都有自己的行业和专业标准 许多单位也有 自己的技术规格和企业标准 化工行业也不例外 有着大量的各种图纸设计标 准 因而 AutoCAD不可能完全满足每一用户的具体应用要求 但是 AutoCAD具有开放的体系结构 它允许用户和开发者在几乎所有方面对其进行 扩充和修改 同时可以利用多种开发语言 开发可以自动完成某一绘制任务的 软件 可大大提高绘制速度 改善工作效率 以上工作可称之为AutoCAD的二 次开发技术 也就说AutoCAD二次开发技术主要包括两个方面 一方面是对它 的功能进行扩充和修改 如修改或增加菜单 进行各种定制工作 另一方面是 利用开发工具编写能够完成特殊任务的自动绘制软件 如下面将介绍的通过人 机交互界面输入必要的数据后 系统自动完成法兰的绘制 就属于这一类型 在化工绘图中 我们需要的也是有关这一方面的开发软件 它能最大限度地满 足用户的特殊需要 通过调用各种已经开发好的专用零件图绘制软件 加快绘 制速度 提高工作效率 尤其重要的是 可以将大量的计算工作交给计算机去 完成 这样 不仅提高了绘图速度 同时也提高了绘制精度 避免了人为的计 算错误 目前很多化工技术人员对AutoCAD的使用一般还仅限于它自身的各种绘图 功能 使用鼠标手工绘制各种图件 对其强大的二次开发功能还没有进行深入 使用 如果能使用AutoCAD的二次开发技术开发出一套软件 让AutoCAD自动 绘制我们目前使用的各种图件 就可以大大提高作图效率 发挥出AutoCAD的 强大图形编辑 修改功能 对图件中的各种元素进行任意修改 满足各种不同 的图件格式和绘图标准 由此可见 对于一个化工技术人员来说 学会自己开 发AutoCAD二次应用软件显得十分必要 因为这将大大减少具体的绘制工作 而可以将主要精力集中到设备的设计中去 从而加快化工设备的开发速度 近几年来 随着计算机软 硬件技术的飞速发展及其应用的普及 也带来 了化工领域使用计算机的浪潮 首先是各课程教学使用了CAI课件 学生们可 以清楚地看到各种物质的具体颜色 并可以看到动画反应 让学生们能够形象 生动地上课 然后是各种实验仿真软件的出现 让学生们不用亲自下到工厂 也不用浪费任何原料 在没有危险的情况下就可以完成对实验过程或者是生产 流程的学习和实习 同时计算机可以对反应进行模拟 对实验数据的拟合都大 大方便了化工工作者 随之诞生的各种化工专用软件 给化学工业的发展注入 了新鲜血液 使化学工业的发展如虎添翼 目前 随着化学工业的进一步向前发展 各种新的机械设备被人们设计和 制造 这些设备的工程图都是一件很大的工程 比如一个完整热交换器图纸 就需要一个专人1 2天的工夫才能完成 利用AutoCAD的二次开发技术 可以 编出对热交换器的图进行批处理的程序 只需通过简单的人机会话 计算机能自 动绘制出图纸 这也是化工技术人员学习掌握AutoCAD二次开发技术的目的之 所在 随着化学工业的不断日新月异 对设备图纸绘制的速度要求也将越来越 快 利用AutoCAD二次开发技术开发而成的软件直接绘制各种设备的技术将在 化学工业中得到更加广泛的应用 其开发技术必将伴着化学工业一起发展 几种主要的二次开发语言简介几种主要的二次开发语言简介几种主要的二次开发语言简介几种主要的二次开发语言简介 AutoLISP AutoLISP语言是AutoCAD所支持的一种内嵌式语言 它由美国Autodesk公 司开发 其目的是使用户十分方便地利用AutoLISP编程语言对AutoCAD进行 二次开发 它采用了与LISP语言中的Common LISP最近的语法和习惯约定 同 时又针对AutoCAD增加了许多新的功能 使用户可以直接调用几乎全部的 AutoCAD命令 因此它既具有一般高级语言的基本结构和功能 又具有 AutoCAD强大的图形处理能力 是目前计算机辅助设计和绘图中较广泛采用的 语言之一 Visual LISP Visual LISP 简称VLISP 是为加速AutoLISP程序开发而设计的强有力的 工具 它提供了一个完整的集成开发环境 包括编译器 调试器及其他工具 它可以显著地提高自定义AutoCAD的效率 Visual LISP提供的主要工具有 文本编辑器 格式编排器 语法检查器 源代码调试器 检验和监视工具 文 件编译器 工程管理系统 快捷相关帮助与自动匹配功能和智能化控制台等 Visual LISP克服了AutoLISP一直以来开发中所存在的诸多不便和某些局限 性 从语言方面看 Visual LISP对AutoLISP语言进行了扩展 可以通过 Microsoft ActiveX Automation接口与对象交互 同时 通过实现事件反应器函 数 还扩展了AutoLISP响应事件的能力 VisualLISP已经被完整地集成到 AutoCAD中 VBA VBA Visual Basic for Application 最早是建立在Office 97中的标准宏语 言 由于它在开发方面的易用性且功能强大 许多软件开发商都将其嵌入自己 的应用程序中 作为一种开发工具提供给用户使用 而AutoCAD VBA就是集成 在AutoCAD中的Visual Basic开发环境 与VB的主要区别是VBA在与AutoCAD 相同的进程空间中运行 提供了与AutoCAD关联的快捷的编程环境 程序设计 直观快捷 它还提供了与其它可使用VBA应用程序集成的能力 可以作为其它 应用程序如Word或Excel的自动化控制器 可以看出 VBA是其中编程很为快 捷方便的一种 对于非计算机专业而更多熟悉VB编程语言的人来说 可以很快 就掌握它 ADS ADS的全名是AutoCAD Development System 它是AutoCAD的C语言开发 系统 ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标 库 它直接利用用户熟悉的各种流行的C语言编译器 将应用程序编译成可执 行的文件在AutoCAD环境下运行 这种可以在AutoCAD环境中直接运行的可执 行文件叫做ADS应用程序 ADS由于其速度快 又采用结构化的编程体系 因 而很适合于高强度的数据处理 如二次开发的机械设计CAD 工程分析CAD 建筑结构CAD 土木工程CAD 化学工程CAD 电气工程CAD等 ObjectARX ObjectARX是一种崭新的开发AutoCAD应用程序的工具 她以C 为编程 语言 采用先进的面向对象的编程原理 提供可与AutoCAD直接交互的开发环 境 能使用户方便快捷地开发出高效简洁的AutoCAD应用程序 ObjectARX并 没有包含在AutoCAD中 可在AutoDESK公司网站中去下载 其最新版本是 ObjectARX for AutoCAD 2005 它能够对AutoCAD的所有事务进行完整的 先 进的 面向对象的设计与开发 并且开发的应用程序速度更快 集成度更高 稳定性更强 ActiveX Automation ActiveX技术来源于 OLE Object Linking and Embedding 技术 OLE最初 是对象链接与嵌入 后来发展成为复合文档技术 包括文字 图片 声音 动 画片和视频等媒体可以共同存在于一个文档中 它们可以由不同的应用程序产 生 同时也可以在该文档中编辑 如果应用程序支持OLE文档 则在不同应用 程序之间的切换由OLE自动完成 OLE技术和其它技术共同作用 从而实现不 同应用程序之间的无缝链接 自动化技术 Automation 允许一个应用程序驱动另外一个程序 驱动程 序被称为自动化客户 另一个为自动化服务器 自动化技术后来发展成为 ActiveX Automation Visual Java Java是最早由Sun公司创建的一种颇具魅力的程序设计语言 她是针对嵌 入系统而设计的 像许多开发语言一样 Java是一组实时库的集合 可为软件 开发者提供多种工具来创建软件 管理用户接口 进行网络通讯 发布应用程 序等 对AutoCAD用户和开发者而言 Java代表着新一代的编程语言 它主要 用于开发出全新的优秀产品 化工化工化工化工AutoCADAutoCAD二次软件开发的思路及步骤二次软件开发的思路及步骤二次软件开发的思路及步骤二次软件开发的思路及步骤 化工AutoCAD二次软件的开发和其它软件的开发一样 均需遵循一定的 规律 一般来说 一个完善的AutoCAD二次软件开发过程可以分成4个阶段的 内容 它们分别是系统规划 系统开发 系统运行与维护 系统更新 而系统 规划又可以分成3个方面的内容 它们分别是战略规划 需求分析 资源分 配 在这个阶段 我们主要任务是确定所需要开发软件的目的 使用对象 使 用者的要求 开发者目前的能力及拥有的资源 软件开发的第二阶段是系统开 发 它包括系统分析 系统设计 系统实施 这时的主要任务根据第一阶段已 经做的工作基础上 提出所开发软件的逻辑方案 确定系统开发中每一步的内 容和任务 在此基础上 再进行系统总体结构设计 提出系统总体布局的方 案 至此 软件开发工作还停留在逻辑开发状态 尚未进入具体的编码工作 软件开发完成第二阶段的系统设计后 就进入了实质性的编码工作 也 就是说进入了系统的实施阶段 这时要完成各种编码工作 完善系统各个接口 之间的联络 改善界面的友好程度 对整个软件进行组装及调试 最后完成交 付使用前的各项工作 如该保密的部分需要进行封装 可以公开的部分需要做 好友善的人机界面 软件开发的第三阶段是运行和维护阶段 一般对于规模较小的软件 对 这方面的考虑就比较少 比如我们自己经常开发一些小软件来解决一些实际 问题 就较少考虑以后的维护 一般只要满足目前的应用就可以了 但对于 一个完善的软件来说 就需要考虑实际运行过程中出现的各种情况 并有解 决方案及维护方法 这样 就会使得一个看上去较小的软件 也会变得复杂 起来 但这种复杂为使用和维护带来了方便 提高了软件对付外来情况的能 力 提高了软件的使用寿命 实际上等于节约了软件使用成本 任何一个软件 总有它更新的时候 此时 进入了软件开发的第4阶段 即系统更新阶段 在新的情况下 对原有的系统进行更新开发 AutoLISPAutoLISP语言基础语言基础语言基础语言基础 基本运算基本运算 基本函数基本函数 编程中常用的分支及条件判断函数编程中常用的分支及条件判断函数 常用的绘图命令常用的绘图命令 AutoLISP命令调用过程命令调用过程 加法 加法 格式 功能 求出所列数的总和 实例 20 30 结果为50 15 10 结果为5 减法 减法 格式 功能 求出第一个数逐次减去后面数的差 实例 120 30 50 结果为40 15 10 结果为25 乘法 乘法 格式 功能 求出所列数的乘积 实例 20 30 结果为600 1 5 10 2 结果为 30 除法 除法 格式 功能 求出第一个数逐次除以后面数的商 实例 20 结果为20 130 2 结果为65 3 30 由于表中的两个元素均为整型数 结果也为整型 数 故结果为0 3 0 30 结果为0 1 30 6 9 系统显示被0除 原因在于表 6 9 的值为0 基基基 基 本本本 本 运运运 运 算算算算 自然数求幂 自然数求幂 格式 exp 功能 求e的次幂值 e 2 71828 实例 exp 2 0 结果为7 3890561 exp 0 结果为1 普通数求幂 普通数求幂 格式 expt 功能 求的 次方值 实例 expt 2 3 结果为8 求自然对数 求自然对数 格式 log 功能 求的自然对数 要求必须大于零 实例 log 10 0 结果为2 3025851 求平方根 求平方根 格式 sqrt 功能 求的平方根 要求必须大于零 实例 sqrt 4 0 结果为2 0 基基基 基 本本本 本 运运运 运 算算算算 求绝对值 求绝对值 格式 abs 功能 求的绝对值 实例 abs 3 结果为3 求最大值 求最大值 格式 max 功能 求 的最大值 实例 max 2 3 4 10 结果为10 求余数 求余数 格式 rem 功能 求整除的余数 若参数多于两个 则将整除后 的余数再整除 求出余数 以此类推 实例 rem 50 9 4 结果为1 基基基 基 本本本 本 运运运 运 算算算算 正弦函数SIN 正弦函数SIN 格式 sin 其中 用弧度表示 功能 求的正弦值 实例 sin pi 2 结果为1 余弦函数COS 余弦函数COS 格式 cos 其中 用弧度表示 功能 求余弦值 实例 cos pi 2 结果为0 正切TAN 正切TAN 格式 tan 其中 用弧度表示 功能 求正切值 实例 tan pi 4 结果为1 反正切函数ATAN 反正切函数ATAN 格式 atan 功能 求反正切值 单位为弧度 为 2 2 实例 atan 1 结果为0 785398 即 4 实例 cos pi 2 结果为0 基基基 基 本本本 本 函函函 函 数数数数 取整函数FIX 取整函数FIX 格式 fix 功能 求的整数部分 相当于高级语言中的 INT 数 语句 实例 fix 7 8 结果为7 fix 7 8 结果为 7 fix 9 结果为9 实型化函数FLOAT 实型化函数FLOAT 格式 float 功能 求转化为实型数 不考虑该数原来的类型 实例 float 3 结果为3 0 float 3 3 结果为3 3 赋值函数SETQ 赋值函数SETQ 格式 setq 功能 将表达式的值赋给变量 变量和表达式需成对出现 实例 setq a 10 结果 a 10 setq s it 结果 s it setq b 123 c 10 d 45 结果 b 123 c 10 d 45 setq t 34 45 结果 t 79 setq P1 34 45 setq p1 30 40 确定点P1的坐标 setq p2 300 400 确定点P2的坐标 command line p1 p2 绘制从P1点到P2点的直线 基基基 基 本本本 本 函函函 函 数数数数 取表中第一元素CAR函数 取表中第一元素CAR函数 格式 car 表必须为引用表而非标准表 但可以是简单表 也 可以是嵌套表 功能 提取的顶层第一个元素 实例 car 1 3 5 结果为1 car 1 3 6 5 结果为 1 3 取表中除第一元素外其它元素的CDR函数 取表中除第一元素外其它元素的CDR函数 格式 cdr 表必须为引用表而非标准表 但可以是简单表 也可 以是嵌套表 功能 提取的除顶层第一个元素外的其它元素 实例 cdr 1 3 5 结果为 3 5 cdr 1 3 6 5 结果为 6 5 CAR和CDR的组合函数 CAR和CDR的组合函数 CAR和CDR可以任意组合 其组合深度可达4层 执行时从右到左依次执行 若搞错次序 其结果必然出错 4个层次的组合形式为CAR CXXR CXXXR CXXXXR 其中X既可以是A也可以是D 例如 cadr 2 1 2 3 34 结果为 1 2 3 caadr 2 11 6 2 3 34 结果为 11 6 caaadr 2 11 6 2 3 34 结果为11 caaddr 2 11 6 2 3 3 4 结果3 基基基 基 本本本 本 函函函 函 数数数数 LAST函数 LAST函数 格式 last 表必须为引用表而非标准表 但可以是简单表 也可以 是嵌套表 功能 提取的顶层中最后一个元素 实例 last 1 2 3 结果为3 last 12 3 4 5 结果为 4 5 NTH函数 NTH函数 格式 nth 表必须为引用表而非标准表 但可以是简单表 也可以是嵌套表 功能 提取中第个元素 注意第一个元素的序号为0号 以此类推 实例 nth 2 2 3 4 5 5 结果为 4 5 nth 3 2 3 4 5 5 结果为5 LIST函数 LIST函数 格式 list 功能 将所有的按原位置构成新表 可用于确定点的坐标位置 实例 list 2 3 5 6 结果为 2 3 5 6 list 2 3 结果为 2 3 下面是一个利用list确定点的位置 绘制圆的小程序 setq p1 list 222 33 setq p2 list 200 300 command circle p2 160 command circle p1 160 基基基 基 本本本 本 函函函 函 数数数数 ATOF函数 ATOF函数 格式 atof 功能 将转换成实型数 返回实型数 实例 atof 23 返回结果为23 0 ASCII函数 ASCII函数 格式 ascii 功能 将中第一个字符转换成ASCII码 并返回该值 实例 ascii b c 返回结果为98 CHR函数 CHR函数 格式 chr 功能 将ASCII码为的转换成相应字符 并返回该字符 实例 chr 69 返回结果为 E chr 80 返回结果为 P ITOA函数 ITOA函数 格式 itoa 功能 将转换成整数字符串 实例 itoa 5 返回结果为 5 基基基 基 本本本 本 函函函 函 数数数数 ATOI函数 ATOI函数 格式 atoi 功能 将转换成整数 返回值截去小数部分 实例 atoi 45 4 返回结果为45 atoi 5 6 返回结果为 5 atoi 7 返回结果为7 atoi 34 6ac 返回结果为34 atoi df43 45 返回结果为0 说明 当数字串中有非数字字符时 则转换到第一个非数字原子时终止 STRCAT函数 STRCAT函数 格式 strcat 功能 将按先后顺序头尾相连起来 组成一个新的字符串 实例 strcat bc etr ty 返回结果为 bcetrty 基基基 基 本本本 本 函函函 函 数数数数 20 SUBSTR函数 20 SUBSTR函数 格式 substr 功能 从中提取一个子串 该子串从起点的字符位置开始 由连续 个字符组成 若缺省 则到字符串结束 实例 substr b212c 2 3 返回结果为 212 substr b2er12c 2 返回结果为 2er12c 21 READ函数 21 READ函数 格式 read 功能 将转化成表或原子 文件处理时经常使用 实例 read ad 返回结果为AD read b 返回结果为B read a b 返回结果为 A B read 3 4 返回结果为 3 4 基基基 基 本本本 本 函函函 函 数数数数 编程中常用的分支及条件判断函数编程中常用的分支及条件判断函数编程中常用的分支及条件判断函数编程中常用的分支及条件判断函数 在程序编写中经常会用到一些条件判断函数及循环函数 没有这些函数 就 难以完成一个理想的程序 下面将一些在编程中使用程度较高的函数介绍一下 关系运算函数 关系运算函数 关系运算函数是编程中分支及条件判断函数的基础 它对数值型表达式的大 小进行比较 表达式可以是两个或两个以上 其返回值是逻辑变量 比较运算成 立 则返回T 不成立则返回nil 常作为条件用于条件判断语句和循环判断语句 中 这一点将在下面讲解中提到 AutoLISP共有6种关系运算函数 它们分别是 等于 不等于 大于 大于等于 其中 等于的关系函数 其表达式只能两个 下面是6种关系函数的实际例子 2 4 5 6 返回结果T 8 7 3 9 返回结果nil 全程比较 8 7 3 1 返回结果T 2 2 返回结果T s b 返回结果nil 1 2 3 返回结果T 1 1 3 返回结果nil 只比较前面两个表达式 5 5 1 返回结果T 逻辑运算函数 逻辑运算函数 AutoLISP共有3种逻辑运算函数 分别是逻辑和AND 逻辑或OR 逻辑非 NOT 下面通过实例说明其应用 and a d c 3 返回结果nil 只要有一个表达式为假 则返回nil and d c 返回结果nil setq a 3 b 4 返回结果4 返回最后一个赋值 and a b 返回结果T 由于前面给a b赋了值 and 3 5 返回结果nil or 1 2 a b 返回结果T 只要有一个表达式为真 则返回T or 4 2 6 9 返回结果T 二分支条件函数 二分支条件函数IF 格式 if 功能 对进行运算 若成立 则执行 否则 执行 两者必居其一 所以称之为二分支条件函数 是 在编程中经常用到的条件判断函数 下面是几个实际例子 if 1 3 3 5 测试式不成立 执行第二个表达式 第二个表达式为原子 返回5 if 1 3 setq a 2 setq a 9 测试式成立 执行第一个表达式 返回2 if 1 3 yes 测试式不成立 但无第二个表达式 返回nil if 1 yes no 测试表达式为1 虽然不为T 但也不为nil 仍执行第一表达式 返回 yes 多分支条件函数 多分支条件函数COND 前面二分支条件函数只能解决两种结果中选一种的条件判断 若有多个 条件中选一 则需用COND函数 格式 cond 该函数的参数为任意数目的表 每个表有两个元素 第一个元素为测试 式 第二个元素为结果 功能 对每一个支表中的依次进行运算 若 成立 则执行该支表对应的 停止后面的测试工作 否则 继 续执行 直到最后一个分支条件 顺序控制函数 顺序控制函数PROGN 常和IF函数一起使用 使其在某一条件下 顺序执行多个表达式 格式 progn 功能 按顺序执行多个表达式 并返回最后表达式求值结果 表达式需为 标准表 常见测试函数 常见测试函数 ZEROP函数用于判断测试项是否为零 若为零 则返回T 否则返回nil MINUSP函数用于判断测试项是否为负 若为负 则返回T 否则返回nil NUMBERP函数用于判断测试项是否为数 若为数 则返回T 否则返回nil ATOM函数用于判断测试项是否为原子 若为原子数 则返回T 否则返回 nil LISTP函数用于判断测试项是否为表 若为表 则返回T 否则返回nil 循环函数 循环函数 在各种程序编写中 循环语句是不可缺少的 AutoLISP的两种主要循环函 数是WHILE函数和REPEAT函数 下面分别介绍之 WHILE WHILE函数 格式 while 标准表1 标准表2 功能 先对测试表达式进行测试 若其值不为nil 则依次执行下面的各个 标准 表 执行完各 标准表 后 再返回来对测试表达式进行测试 直至测试表达式为nil 停止循环执行 REPEAT REPEAT函数 格式 repeat 标准表1 标准表2 功能 按该定的次数进行循环计算式为nil 停止循环执行 常用的绘图命令常用的绘图命令常用的绘图命令常用的绘图命令 常用的交互命令 常用的交互命令 在程序编写中经常要用到一些交互式命令 通过交互命令 可提高程序的人 机对话能力 AutoLISP也提供了一些常见的交互命令 下面分别介绍 输入整型数 输入整型数GETINT 格式 getint 提示 功能 该函数提示用户输入一个整型数 并返回该数 常和赋值函数SETQ合用 实例 setq n getint n 等待用户输入一个整型数 并将该数赋值给n 输入实型数 输入实型数GETREAL 格式 getreal 提示 功能 该函数提示用户输入一个整型数 并返回该数 常和赋值函数SETQ合用 实例 setq a getreal a 等待用户输入一个实型数 并将该数赋值给a 输入字符串 输入字符串GETSTRING 格式 getstring 提示 功能 该函数提示用户输入一个字符串 并返回该数 常和赋值函数SETQ合用 实例 setq m getstring your name 等待用户输入一个字符串 并将该字符串 赋值给m 若输入xiaodong 返回 xiaodong 需要注意的是输入字符串时 千万别用空格 键 否则只把空格键以前的内容作为输入的字符串 输入点 输入点GETPOINT 格式 getpoint 基点 提示 功能 该函数提示用户输入一个点 若有基点 这将从基点到输入的点之间画一条直 线拖动直线 但命令执行过后消失 实例 setq P1 getpoint 40 50 第二点 等待用户从键盘输入点或用光标选点 输入距离值 输入距离值GETDIST 格式 getdist 提示 功能 该函数提示用户输入一个距离值 实例 setq tspac getdist 输入距离 等待用户从键盘输入某一数值 点的确定 点的确定 确定点的位置 是进行各种绘制工作的基础 除了前面介绍的用getpoint函数外 还可 以用下面几种方法确定点 通过绘制直线的小程序加以说明验证 实例 setq p1 30 40 用禁止求值表 确定P1点的位置 setq p2 300 400 command line p1 p2 直线的绘制 直线的绘制LINE 格式 command line P1 P2 P3 条件 功能 将P1 P2 P3 等点用直线连接起来 其中 条件 可缺省 若条件中输入 c 则绘制的将是封闭曲线 多义线绘制 多义线绘制 格式 command pline w 条件 功能 将P1 P2 P3 等点用各种曲线连接起来 其中 条件 可缺省 若条件中输 入 c 则绘制的将是封闭曲线 矩形绘制 矩形绘制 格式 command rectang 倒角 C 标高 E 圆角 F 厚度 T 宽度 W 尺寸 D 功能 绘制符合格式中定义的矩形 圆的绘制 圆的绘制 格式 command circle 三点 3P 两点 2P 相切 相切 半径 T 圆心 功能 绘制符合格式中定义的圆 默认的输入方式是圆心 半径 其它输入方式需根 据具体选定的形式而定 交点的确定 交点的确定 格式 inters 功能 求和所确定的直线和和所确定的直线的交点 若存在则返回交点 若不存在 则返回nil 如果有任选项 且该项为nil 则可求延长线的 交点 图层的设置 图层的设置 格式 command layer m c l lw 功能 设置和格式中描述相符合的图层 除图层名为不可缺省外 其它均可采用默认 值 当调用图层时 可只采用格式中的前4项 剖面线绘制 剖面线绘制 格式 command batcht 功能 将 按格式中定义的要求进行填充 其中 和 可默 认 有多种获取方法 如果是填充刚绘制好的实体 则可用entlast命令 尺寸标注 尺寸标注 格式 command dim 功能 和 之间按标注模式标注尺寸 若标注内容缺省 则按 默认方式标注 文本书写 文本书写 格式 command text 功能 将文字内容按格式中的定义书写出来 如缺省 则以左下角为起 点 AutoLISP命令调用过程命令调用过程 首先将AUTOLISP的程序用任何一种ASCII码文本编辑器来编辑 在 DOS环境下可采用EDIT编辑 在WINDOWS环境下可用附件中的记事本编 辑 并注意在保存时以 LSP为后缀 一般的调用过程如下 用编辑器编写好 以 LSP存盘 在AutoCAD中的命令中输入 Load 盘符 子目录 文件名 回车 输入 文件名 参数1 参数2 注意参数和参数之间不要加逗 号 回车 在AutoCAD的界面上自动生成图 Visual LISP Visual LISP 基础基础基础基础 安装安装安装安装 启动启动启动启动 编辑编辑编辑编辑 调试调试调试调试 安装安装安装安装 Visual LISP无需单独安装 我们在安装AutoCAD 2004时已经将其 捆绑按安装在一起 只要在使用时调用它即可 这为我们省了不少安 装软件过程中的麻烦 同时也使得该软件和AutoCAD之间的关系更加 紧密 尤其是Visual LISP中的部分Auto LISP程序几乎可以移植到任何 版本的AutoCAD中 而不受版本先后的影响 启动启动启动启动 启动Visual LISP有两种方法 但都需首先启动AutoCAD软件 第一种方法是从AutoCAD菜单中选择 工具 AutoLisp Visual Lisp编辑器 第二中方法是在AutoCAD命令行中输入 vlisp 启动 Visual Lisp编辑器 编辑编辑编辑编辑 Visual LISP的程序在编辑窗口进行编辑 编辑时 系统会自动进行 一些识别 并将其显示成不同的颜色 如括号是红色 函数是蓝色 如 果想输的是各种函数 一般为表中第一项 但输完后系统没有自动变成 蓝色 则说明你输错了 双引号内的绘图命令为粉红色 包括双引号本 身 各种变量是黑色 数字是绿色 掌握这些规律对减少编程中的错误 很有帮助 在编程过程中 如果遇到一些较为生疏的函数 可以通过系 统的帮助功能加以解决 调试调试调试调试 调试是编程工作中一项十分重要又非常繁重的工作 在没有Visual LISP之前 Auto LISP程序的调试是十分困难的 常常找不到问题之所在 幸好有了Visual LISP 使调试工作有了质的飞跃 利用其提供的调试工具 和专用工具 一般可以较快地找到问题 系统调试中最常见的错误是缺少 括号或有多余括号 其次是错误函数或命令 常常是绘图命令输错 因为 若函数错误 在编写中可以根据颜色判断 还有列表缺陷 被零除及函数 被取消 对函数被取消这种现象有点特殊 因为它并不是当前所编的程序 有问题 而是在上一次调试过程中 所编程序存在缺陷 使的AutoCAD处 于命令等待状态 这时 需要通过视图转换 激活AutoCAD 取消命令等 待状态 就可以了 根据我们自己开发程序的经验 认为调试工作需和整 个软件的开发工作结合起来 在程序开发的步骤上考虑到调试工作问题 以采用从下到上的程序编程工作为佳 结合该方法 作者推荐如下的编程 调试步骤 将整个软件分解成功能相对独立的功能块 再将功能块分解成若干 个小程序 将小程序中的每一个语句 按照先后次序进行编辑 在编辑过程中 首先利用颜色的改变 纠正一些明显的错误 如果对某一语句把握不大 可直接加载该语句 判断系统能否通过 关于加载运行可通过选中需要加 载的语句 点击专用工具中栏中的第二个工具 一般情况下 以编完相对 较完整的一段语句后 再将这段进行加载运行较好 如所有的赋值语句 一段语句编写完成 加载运行结果正确 则进入下一段语句的编写 如正 确 但根据错误提示可明显找到问题的 则修改后再加载运行 如无法根 据错误提示找到问题的 则可以采用调试工具栏中的各种方法进行错误查 找 如仍无法查到 则需逐句加载 但在逐句加载中 需要补充对加载语 句中所需变量值的设定工作 通过以上工作 将小程序全局调通 并进行 封装 将同一功能的小程序进行组装 并进行调试 调试完成 将功能程 序进行封装 将不同功能的功能程序进行组装 并进行全局调试 调试通过 完 成软件基本开发工作 根据客户应用的各种情况 对软件进行各种测试 对发现问题进行 修改 最后得到完善软件 并将其封装 DCLDCL基础基础基础基础 定义定义定义定义 控件控件控件控件 程序编辑程序编辑程序编辑程序编辑 软件调试及加载软件调试及加载软件调试及加载软件调试及加载 定义定义定义定义 对话框是人机交互的主要界面之一 它具有良好的视觉效果 操作方便 直观 输入数据与顺序无关 当我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年绥德县医疗事业单位人员招聘考试模拟试题及答案解析
- 2026年宜君县社区工作者招聘考试参考题库及答案解析
- 2026年尉氏县医疗事业单位人员招聘考试备考试题及答案解析
- 2026年双江拉祜族佤族布朗族傣族自治县带编教师招聘笔试备考题库及答案解析
- 2026年龙山县带编教师招聘笔试备考题库及答案解析
- 2026年市场监督管理局公务员招聘面试指南与模拟题及答案
- 2026年杭州市丁桥医院公开招聘高层次人才考试题库(含答案)
- 2026年垣曲县带编教师招聘考试参考题库及答案解析
- 2026年昭苏县医疗事业单位人员招聘考试模拟试题及答案解析
- 2026年吉隆县带编教师招聘笔试备考题库及答案解析
- 2026秋人教PEP六年级上册英语(新改版)全册教案
- 2026 年秋季开学初中军训站姿坐姿行为养成课件
- 《港台文学12节》课件
- (2026年秋)人教版六年级上册数学教案
- 2026小学教科版四年级科学上册全册教案
- 医院检验科生物安全培训试题及答案
- 2026年新《治安管理处罚法》知识考试题库及答案(含各题型)
- 2026年一建市政实务教材改版试卷及答案
- 新版人教版七年级上册历史全册教案(完整版)教学设计含教学反思
- 2026年主要负责人《金属冶炼(黑色金属铸造)》安全生产模拟考试题
- 康复护理中的感染控制技术
评论
0/150
提交评论