CAD文字与表格的使用.ppt

上传人:tia****nde 文档编号:8953790 上传时间:2020-04-02 格式:PPT 页数:50 大小:202KB
返回 下载 相关 举报
CAD文字与表格的使用.ppt_第1页
第1页 / 共50页
CAD文字与表格的使用.ppt_第2页
第2页 / 共50页
CAD文字与表格的使用.ppt_第3页
第3页 / 共50页
点击查看更多>>
资源描述
第9章二次开发及AutoLISP AutoCAD二次开发在化工制图中的应用 AutoLISP语言基础 VisualLISP基础 DCL基础 AutoCAD二次开发在化工制图中的应用 本章目录 二次开发的目的及必要性几种主要的二次开发语言简介化工AutoCAD二次软件开发的思路及步骤 二次开发的目的及必要性AutoCAD软件作为CAD工业的旗帜产品 以其强大的功能得到广大用户的青睐 它具有精确的坐标系 能够完成各种图形的精确绘制 任意缩放和修改 支持数字化仪的精确输入 尽管如此 由于AutoCAD是作为一个通用的绘图软件而设计开发的 但各行各业都有自己的行业和专业标准 许多单位也有自己的技术规格和企业标准 化工行业也不例外 有着大量的各种图纸设计标准 因而 AutoCAD不可能完全满足每一用户的具体应用要求 但是 AutoCAD具有开放的体系结构 它允许用户和开发者在几乎所有方面对其进行扩充和修改 同时可以利用多种开发语言 开发可以自动完成某一绘制任务的软件 可大大提高绘制速度 改善工作效率 以上工作可称之为AutoCAD的二次开发技术 也就说AutoCAD二次开发技术主要包括两个方面 一方面是对它的功能进行扩充和修改 如修改或增加菜单 进行各种定制工作 另一方面是利用开发工具编写能够完成特殊任务的自动绘制软件 如下面将介绍的通过人机交互界面输入必要的数据后 系统自动完成法兰的绘制 就属于这一类型 在化工绘图中 我们需要的也是有关这一方面的开发软件 它能最大限度地满足用户的特殊需要 通过调用各种已经开发好的专用零件图绘制软件 加快绘制速度 提高工作效率 尤其重要的是 可以将大量的计算工作交给计算机去完成 这样 不仅提高了绘图速度 同时也提高了绘制精度 避免了人为的计算错误 AutoCAD二次开发在化工制图中的应用 目前很多化工技术人员对AutoCAD的使用一般还仅限于它自身的各种绘图功能 使用鼠标手工绘制各种图件 对其强大的二次开发功能还没有进行深入使用 如果能使用AutoCAD的二次开发技术开发出一套软件 让AutoCAD自动绘制我们目前使用的各种图件 就可以大大提高作图效率 发挥出AutoCAD的强大图形编辑 修改功能 对图件中的各种元素进行任意修改 满足各种不同的图件格式和绘图标准 由此可见 对于一个化工技术人员来说 学会自己开发AutoCAD二次应用软件显得十分必要 因为这将大大减少具体的绘制工作 而可以将主要精力集中到设备的设计中去 从而加快化工设备的开发速度 近几年来 随着计算机软 硬件技术的飞速发展及其应用的普及 也带来了化工领域使用计算机的浪潮 首先是各课程教学使用了CAI课件 学生们可以清楚地看到各种物质的具体颜色 并可以看到动画反应 让学生们能够形象生动地上课 然后是各种实验仿真软件的出现 让学生们不用亲自下到工厂 也不用浪费任何原料 在没有危险的情况下就可以完成对实验过程或者是生产流程的学习和实习 同时计算机可以对反应进行模拟 对实验数据的拟合都大大方便了化工工作者 随之诞生的各种化工专用软件 给化学工业的发展注入了新鲜血液 使化学工业的发展如虎添翼 AutoCAD二次开发在化工制图中的应用 目前 随着化学工业的进一步向前发展 各种新的机械设备被人们设计和制造 这些设备的工程图都是一件很大的工程 比如一个完整热交换器图纸 就需要一个专人1 2天的工夫才能完成 利用AutoCAD的二次开发技术 可以编出对热交换器的图进行批处理的程序 只需通过简单的人机会话 计算机能自动绘制出图纸 这也是化工技术人员学习掌握AutoCAD二次开发技术的目的之所在 随着化学工业的不断日新月异 对设备图纸绘制的速度要求也将越来越快 利用AutoCAD二次开发技术开发而成的软件直接绘制各种设备的技术将在化学工业中得到更加广泛的应用 其开发技术必将伴着化学工业一起发展 AutoCAD二次开发在化工制图中的应用 几种主要的二次开发语言简介 AutoLISPAutoLISP语言是AutoCAD所支持的一种内嵌式语言 它由美国Autodesk公司开发 其目的是使用户十分方便地利用AutoLISP编程语言对AutoCAD进行二次开发 它采用了与LISP语言中的CommonLISP最近的语法和习惯约定 同时又针对AutoCAD增加了许多新的功能 使用户可以直接调用几乎全部的AutoCAD命令 因此它既具有一般高级语言的基本结构和功能 又具有AutoCAD强大的图形处理能力 是目前计算机辅助设计和绘图中较广泛采用的语言之一 VisualLISPVisualLISP 简称VLISP 是为加速AutoLISP程序开发而设计的强有力的工具 它提供了一个完整的集成开发环境 包括编译器 调试器及其他工具 它可以显著地提高自定义AutoCAD的效率 VisualLISP提供的主要工具有 文本编辑器 格式编排器 语法检查器 源代码调试器 检验和监视工具 文件编译器 工程管理系统 快捷相关帮助与自动匹配功能和智能化控制台等 VisualLISP克服了AutoLISP一直以来开发中所存在的诸多不便和某些局限性 从语言方面看 VisualLISP对AutoLISP语言进行了扩展 可以通过MicrosoftActiveXAutomation接口与对象交互 同时 通过实现事件反应器函数 还扩展了AutoLISP响应事件的能力 VisualLISP已经被完整地集成到AutoCAD中 AutoCAD二次开发在化工制图中的应用 VBAVBA VisualBasicforApplication 最早是建立在Office97中的标准宏语言 由于它在开发方面的易用性且功能强大 许多软件开发商都将其嵌入自己的应用程序中 作为一种开发工具提供给用户使用 而AutoCADVBA就是集成在AutoCAD中的VisualBasic开发环境 与VB的主要区别是VBA在与AutoCAD相同的进程空间中运行 提供了与AutoCAD关联的快捷的编程环境 程序设计直观快捷 它还提供了与其它可使用VBA应用程序集成的能力 可以作为其它应用程序如Word或Excel的自动化控制器 可以看出 VBA是其中编程很为快捷方便的一种 对于非计算机专业而更多熟悉VB编程语言的人来说 可以很快就掌握它 ADSADS的全名是AutoCADDevelopmentSystem 它是AutoCAD的C语言开发系统 ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库 它直接利用用户熟悉的各种流行的C语言编译器 将应用程序编译成可执行的文件在AutoCAD环境下运行 这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序 ADS由于其速度快 又采用结构化的编程体系 因而很适合于高强度的数据处理 如二次开发的机械设计CAD 工程分析CAD 建筑结构CAD 土木工程CAD 化学工程CAD 电气工程CAD等 AutoCAD二次开发在化工制图中的应用 ObjectARXObjectARX是一种崭新的开发AutoCAD应用程序的工具 她以C 为编程语言 采用先进的面向对象的编程原理 提供可与AutoCAD直接交互的开发环境 能使用户方便快捷地开发出高效简洁的AutoCAD应用程序 ObjectARX并没有包含在AutoCAD中 可在AutoDESK公司网站中去下载 其最新版本是ObjectARXforAutoCAD2005 它能够对AutoCAD的所有事务进行完整的 先进的 面向对象的设计与开发 并且开发的应用程序速度更快 集成度更高 稳定性更强 ActiveXAutomationActiveX技术来源于OLE ObjectLinkingandEmbedding 技术 OLE最初是对象链接与嵌入 后来发展成为复合文档技术 包括文字 图片 声音 动画片和视频等媒体可以共同存在于一个文档中 它们可以由不同的应用程序产生 同时也可以在该文档中编辑 如果应用程序支持OLE文档 则在不同应用程序之间的切换由OLE自动完成 OLE技术和其它技术共同作用 从而实现不同应用程序之间的无缝链接 自动化技术 Automation 允许一个应用程序驱动另外一个程序 驱动程序被称为自动化客户 另一个为自动化服务器 自动化技术后来发展成为ActiveXAutomation AutoCAD二次开发在化工制图中的应用 VisualJavaJava是最早由Sun公司创建的一种颇具魅力的程序设计语言 她是针对嵌入系统而设计的 像许多开发语言一样 Java是一组实时库的集合 可为软件开发者提供多种工具来创建软件 管理用户接口 进行网络通讯 发布应用程序等 对AutoCAD用户和开发者而言 Java代表着新一代的编程语言 它主要用于开发出全新的优秀产品 AutoCAD二次开发在化工制图中的应用 化工AutoCAD二次软件开发的思路及步骤化工AutoCAD二次软件的开发和其它软件的开发一样 均需遵循一定的规律 一般来说 一个完善的AutoCAD二次软件开发过程可以分成4个阶段的内容 它们分别是系统规划 系统开发 系统运行与维护 系统更新 而系统规划又可以分成3个方面的内容 它们分别是战略规划 需求分析 资源分配 在这个阶段 我们主要任务是确定所需要开发软件的目的 使用对象 使用者的要求 开发者目前的能力及拥有的资源 软件开发的第二阶段是系统开发 它包括系统分析 系统设计 系统实施 这时的主要任务根据第一阶段已经做的工作基础上 提出所开发软件的逻辑方案 确定系统开发中每一步的内容和任务 在此基础上 再进行系统总体结构设计 提出系统总体布局的方案 至此 软件开发工作还停留在逻辑开发状态 尚未进入具体的编码工作 软件开发完成第二阶段的系统设计后 就进入了实质性的编码工作 也就是说进入了系统的实施阶段 这时要完成各种编码工作 完善系统各个接口之间的联络 改善界面的友好程度 对整个软件进行组装及调试 最后完成交付使用前的各项工作 如该保密的部分需要进行封装 可以公开的部分需要做好友善的人机界面 AutoCAD二次开发在化工制图中的应用 软件开发的第三阶段是运行和维护阶段 一般对于规模较小的软件 对这方面的考虑就比较少 比如我们自己经常开发一些小软件来解决一些实际问题 就较少考虑以后的维护 一般只要满足目前的应用就可以了 但对于一个完善的软件来说 就需要考虑实际运行过程中出现的各种情况 并有解决方案及维护方法 这样 就会使得一个看上去较小的软件 也会变得复杂起来 但这种复杂为使用和维护带来了方便 提高了软件对付外来情况的能力 提高了软件的使用寿命 实际上等于节约了软件使用成本 任何一个软件 总有它更新的时候 此时 进入了软件开发的第4阶段 即系统更新阶段 在新的情况下 对原有的系统进行更新开发 AutoCAD二次开发在化工制图中的应用 AutoLISP语言基础 本章目录 基本运算基本函数编程中常用的分支及条件判断函数常用的绘图命令AutoLISP命令调用过程 加法格式 功能 求出所列数的总和实例 2030 结果为50 15 10 结果为5 减法格式 功能 求出第一个数逐次减去后面数的差实例 1203050 结果为40 15 10 结果为25 乘法格式 功能 求出所列数的乘积实例 2030 结果为600 1 5 102 结果为 30 除法格式 功能 求出第一个数逐次除以后面数的商实例 20 结果为20 1302 结果为65 330 由于表中的两个元素均为整型数 结果也为整型数 故结果为0 3 030 结果为0 1 30 69 系统显示被0除 原因在于表 69 的值为0 AutoLISP语言基础 基本运算 自然数求幂格式 exp 功能 求e的次幂值 e 2 71828实例 exp2 0 结果为7 3890561 exp0 结果为1 普通数求幂格式 expt 功能 求的次方值实例 expt23 结果为8 求自然对数格式 log 功能 求的自然对数 要求必须大于零实例 log10 0 结果为2 3025851 求平方根格式 sqrt 功能 求的平方根 要求必须大于零实例 sqrt4 0 结果为2 0 AutoLISP语言基础 基本运算 求绝对值格式 abs 功能 求的绝对值实例 abs 3 结果为3 求最大值格式 max 功能 求 的最大值实例 max23410 结果为10 求余数格式 rem 功能 求整除的余数 若参数多于两个 则将整除后的余数再整除 求出余数 以此类推 实例 rem5094 结果为1 AutoLISP语言基础 基本运算 AutoLISP语言基础 正弦函数SIN格式 sin 其中用弧度表示功能 求的正弦值实例 sin pi2 结果为1 余弦函数COS格式 cos 其中用弧度表示功能 求余弦值实例 cos pi2 结果为0 正切TAN格式 tan 其中用弧度表示功能 求正切值实例 tan pi4 结果为1 反正切函数ATAN格式 atan 功能 求反正切值 单位为弧度 为 2 2 实例 atan 1 结果为0 785398 即 4 实例 cos pi2 结果为0 基本函数 取整函数FIX格式 fix 功能 求的整数部分 相当于高级语言中的 INT 数 语句 实例 fix7 8 结果为7 fix 7 8 结果为 7 fix9 结果为9 实型化函数FLOAT格式 float 功能 求转化为实型数 不考虑该数原来的类型实例 float3 结果为3 0 float3 3 结果为3 3 赋值函数SETQ格式 setq 功能 将表达式的值赋给变量 变量和表达式需成对出现实例 setqa10 结果a 10 setqs it 结果s it setqb123c10d45 结果b 123c 10d 45 setqt 3445 结果t 79 setqP1 3445 setqp1 3040 确定点P1的坐标 setqp2 300400 确定点P2的坐标 command line p1p2 绘制从P1点到P2点的直线 AutoLISP语言基础 基本函数 取表中第一元素CAR函数格式 car 表必须为引用表而非标准表 但可以是简单表 也可以是嵌套表 功能 提取的顶层第一个元素实例 car 135 结果为1 car 13 65 结果为 13 取表中除第一元素外其它元素的CDR函数格式 cdr 表必须为引用表而非标准表 但可以是简单表 也可以是嵌套表 功能 提取的除顶层第一个元素外的其它元素实例 cdr 135 结果为 35 cdr 13 65 结果为 65 CAR和CDR的组合函数CAR和CDR可以任意组合 其组合深度可达4层 执行时从右到左依次执行 若搞错次序 其结果必然出错 4个层次的组合形式为CAR CXXR CXXXR CXXXXR 其中X既可以是A也可以是D 例如 cadr 2 123 34 结果为 123 caadr 2 116 23 34 结果为 116 caaadr 2 116 23 34 结果为11 caaddr 2 116 23 34 结果3 AutoLISP语言基础 基本函数 LAST函数格式 last 表必须为引用表而非标准表 但可以是简单表 也可以是嵌套表 功能 提取的顶层中最后一个元素实例 last 123 结果为3 last 123 45 结果为 45 NTH函数格式 nth 表必须为引用表而非标准表 但可以是简单表 也可以是嵌套表 功能 提取中第个元素 注意第一个元素的序号为0号 以此类推 实例 nth2 23 45 5 结果为 45 nth3 23 45 5 结果为5 LIST函数格式 list 功能 将所有的按原位置构成新表 可用于确定点的坐标位置 实例 list23 56 结果为 23 56 list23 结果为 23 下面是一个利用list确定点的位置 绘制圆的小程序 setqp1 list22233 setqp2 list200300 command circle p2160 command circle p1160 AutoLISP语言基础 基本函数 ATOF函数格式 atof 功能 将转换成实型数 返回实型数实例 atof 23 返回结果为23 0 ASCII函数格式 ascii 功能 将中第一个字符转换成ASCII码 并返回该值实例 ascii bc 返回结果为98 CHR函数格式 chr 功能 将ASCII码为的转换成相应字符 并返回该字符实例 chr69 返回结果为 E chr80 返回结果为 P ITOA函数格式 itoa 功能 将转换成整数字符串实例 itoa5 返回结果为 5 AutoLISP语言基础 基本函数 ATOI函数格式 atoi 功能 将转换成整数 返回值截去小数部分实例 atoi 45 4 返回结果为45 atoi 5 6 返回结果为 5 atoi 7 返回结果为7 atoi 34 6ac 返回结果为34 atoi df43 45返回结果为0说明 当数字串中有非数字字符时 则转换到第一个非数字原子时终止 STRCAT函数格式 strcat 功能 将按先后顺序头尾相连起来 组成一个新的字符串 实例 strcat bc etr ty 返回结果为 bcetrty AutoLISP语言基础 基本函数 20 SUBSTR函数格式 substr 功能 从中提取一个子串 该子串从起点的字符位置开始 由连续个字符组成 若缺省 则到字符串结束 实例 substr b212c 23 返回结果为 212 substr b2er12c 2 返回结果为 2er12c 21 READ函数格式 read 功能 将转化成表或原子 文件处理时经常使用实例 read ad 返回结果为AD read b 返回结果为B read ab 返回结果为 AB read 34 返回结果为 34 AutoLISP语言基础 基本函数 编程中常用的分支及条件判断函数在程序编写中经常会用到一些条件判断函数及循环函数 没有这些函数 就难以完成一个理想的程序 下面将一些在编程中使用程度较高的函数介绍一下 关系运算函数关系运算函数是编程中分支及条件判断函数的基础 它对数值型表达式的大小进行比较 表达式可以是两个或两个以上 其返回值是逻辑变量 比较运算成立 则返回T 不成立则返回nil 常作为条件用于条件判断语句和循环判断语句中 这一点将在下面讲解中提到 AutoLISP共有6种关系运算函数 它们分别是 等于 不等于 大于 大于等于 其中等于的关系函数 其表达式只能两个 下面是6种关系函数的实际例子 AutoLISP语言基础 8739 返回结果nil 全程比较 8731 返回结果T 22 返回结果T s b 返回结果nil 123 返回结果T 113 返回结果nil 只比较前面两个表达式 551 返回结果T 逻辑运算函数AutoLISP共有3种逻辑运算函数 分别是逻辑和AND 逻辑或OR 逻辑非NOT 下面通过实例说明其应用 andadc3 返回结果nil 只要有一个表达式为假 则返回nil anddc 返回结果nil setqa3b4 返回结果4 返回最后一个赋值 andab 返回结果T 由于前面给a b赋了值 and 35 返回结果nil or12ab 返回结果T 只要有一个表达式为真 则返回T or 42 69 返回结果T 二分支条件函数IF格式 if 功能 对进行运算 若成立 则执行 否则 执行 两者必居其一 所以称之为二分支条件函数 是在编程中经常用到的条件判断函数 下面是几个实际例子 if 13 35 测试式不成立 执行第二个表达式 第二个表达式为原子 返回5 if 13 setqa2 setqa9 测试式成立 执行第一个表达式 返回2 if 13 yes 测试式不成立 但无第二个表达式 返回nil if1 yes no 测试表达式为1 虽然不为T 但也不为nil 仍执行第一表达式 返回 yes AutoLISP语言基础 多分支条件函数COND前面二分支条件函数只能解决两种结果中选一种的条件判断 若有多个条件中选一 则需用COND函数 格式 cond 该函数的参数为任意数目的表 每个表有两个元素 第一个元素为测试式 第二个元素为结果 功能 对每一个支表中的依次进行运算 若成立 则执行该支表对应的 停止后面的测试工作 否则 继续执行 直到最后一个分支条件 AutoLISP语言基础 顺序控制函数PROGN常和IF函数一起使用 使其在某一条件下 顺序执行多个表达式 格式 progn 功能 按顺序执行多个表达式 并返回最后表达式求值结果 表达式需为标准表 常见测试函数ZEROP函数用于判断测试项是否为零 若为零 则返回T 否则返回nil MINUSP函数用于判断测试项是否为负 若为负 则返回T 否则返回nil NUMBERP函数用于判断测试项是否为数 若为数 则返回T 否则返回nil ATOM函数用于判断测试项是否为原子 若为原子数 则返回T 否则返回nil LISTP函数用于判断测试项是否为表 若为表 则返回T 否则返回nil AutoLISP语言基础 循环函数在各种程序编写中 循环语句是不可缺少的 AutoLISP的两种主要循环函数是WHILE函数和REPEAT函数 下面分别介绍之 WHILE函数格式 while 标准表1 标准表2 功能 先对测试表达式进行测试 若其值不为nil 则依次执行下面的各个 标准表 执行完各 标准表 后 再返回来对测试表达式进行测试 直至测试表达式为nil 停止循环执行 REPEAT函数格式 repeat 标准表1 标准表2 功能 按该定的次数进行循环计算式为nil 停止循环执行 AutoLISP语言基础 常用的绘图命令 常用的交互命令在程序编写中经常要用到一些交互式命令 通过交互命令 可提高程序的人机对话能力 AutoLISP也提供了一些常见的交互命令 下面分别介绍 输入整型数GETINT格式 getint 提示 功能 该函数提示用户输入一个整型数 并返回该数 常和赋值函数SETQ合用实例 setqn getint n 等待用户输入一个整型数 并将该数赋值给n 输入实型数GETREAL格式 getreal 提示 功能 该函数提示用户输入一个整型数 并返回该数 常和赋值函数SETQ合用实例 setqa getreal a 等待用户输入一个实型数 并将该数赋值给a 输入字符串GETSTRING格式 getstring 提示 功能 该函数提示用户输入一个字符串 并返回该数 常和赋值函数SETQ合用实例 setqm getstring yourname 等待用户输入一个字符串 并将该字符串赋值给m 若输入xiaodong 返回 xiaodong 需要注意的是输入字符串时 千万别用空格键 否则只把空格键以前的内容作为输入的字符串 AutoLISP语言基础 输入点GETPOINT格式 getpoint 基点 提示 功能 该函数提示用户输入一个点 若有基点 这将从基点到输入的点之间画一条直线拖动直线 但命令执行过后消失 实例 setqP1 getpoint 4050 第二点 等待用户从键盘输入点或用光标选点 输入距离值GETDIST格式 getdist 提示 功能 该函数提示用户输入一个距离值 实例 setqtspac getdist 输入距离 等待用户从键盘输入某一数值 点的确定确定点的位置 是进行各种绘制工作的基础 除了前面介绍的用getpoint函数外 还可以用下面几种方法确定点 通过绘制直线的小程序加以说明验证 实例 setqp1 3040 用禁止求值表 确定P1点的位置 setqp2 300400 command line p1p2 直线的绘制LINE格式 command line P1P2P3 条件 功能 将P1 P2 P3 等点用直线连接起来 其中 条件 可缺省 若条件中输入 c 则绘制的将是封闭曲线 AutoLISP语言基础 多义线绘制格式 command pline w 条件 功能 将P1 P2 P3 等点用各种曲线连接起来 其中 条件 可缺省 若条件中输入 c 则绘制的将是封闭曲线 矩形绘制格式 command rectang 倒角 C 标高 E 圆角 F 厚度 T 宽度 W 尺寸 D 功能 绘制符合格式中定义的矩形 圆的绘制格式 command circle 三点 3P 两点 2P 相切 相切 半径 T 功能 绘制符合格式中定义的圆 默认的输入方式是圆心 半径 其它输入方式需根据具体选定的形式而定 交点的确定格式 inters 功能 求和所确定的直线和和所确定的直线的交点 若存在则返回交点 若不存在 则返回nil 如果有任选项 且该项为nil 则可求延长线的交点 AutoLISP语言基础 图层的设置格式 command layer m c l lw 功能 设置和格式中描述相符合的图层 除图层名为不可缺省外 其它均可采用默认值 当调用图层时 可只采用格式中的前4项 剖面线绘制格式 command batcht 功能 将按格式中定义的要求进行填充 其中 和 可默认 有多种获取方法 如果是填充刚绘制好的实体 则可用entlast命令 尺寸标注格式 command dim 功能 和之间按标注模式标注尺寸 若标注内容缺省 则按默认方式标注 文本书写格式 command text 功能 将文字内容按格式中的定义书写出来 如缺省 则以左下角为起点 AutoLISP语言基础 AutoLISP命令调用过程首先将AUTOLISP的程序用任何一种ASCII码文本编辑器来编辑 在DOS环境下可采用EDIT编辑 在WINDOWS环境下可用附件中的记事本编辑 并注意在保存时以 LSP为后缀 一般的调用过程如下 用编辑器编写好 以 LSP存盘 在AutoCAD中的命令中输入 Load 盘符 子目录 文件名 回车 输入 文件名 参数1 参数2 注意参数和参数之间不要加逗号 回车 在AutoCAD的界面上自动生成图 AutoLISP语言基础 VisualLISP基础 本章目录 安装启动编辑调试 安装VisualLISP无需单独安装 我们在安装AutoCAD2004时已经将其捆绑按安装在一起 只要在使用时调用它即可 这为我们省了不少安装软件过程中的麻烦 同时也使得该软件和AutoCAD之间的关系更加紧密 尤其是VisualLISP中的部分AutoLISP程序几乎可以移植到任何版本的AutoCAD中 而不受版本先后的影响 VisualLISP基础 启动启动VisualLISP有两种方法 但都需首先启动AutoCAD软件 第一种方法是从AutoCAD菜单中选择 工具 AutoLisp VisualLisp编辑器 第二中方法是在AutoCAD命令行中输入 vlisp 启动VisualLisp编辑器 VisualLISP基础 编辑VisualLISP的程序在编辑窗口进行编辑 编辑时 系统会自动进行一些识别 并将其显示成不同的颜色 如括号是红色 函数是蓝色 如果想输的是各种函数 一般为表中第一项 但输完后系统没有自动变成蓝色 则说明你输错了 双引号内的绘图命令为粉红色 包括双引号本身 各种变量是黑色 数字是绿色 掌握这些规律对减少编程中的错误很有帮助 在编程过程中 如果遇到一些较为生疏的函数 可以通过系统的帮助功能加以解决 VisualLISP基础 调试调试是编程工作中一项十分重要又非常繁重的工作 在没有VisualLISP之前 AutoLISP程序的调试是十分困难的 常常找不到问题之所在 幸好有了VisualLISP 使调试工作有了质的飞跃 利用其提供的调试工具和专用工具 一般可以较快地找到问题 系统调试中最常见的错误是缺少括号或有多余括号 其次是错误函数或命令 常常是绘图命令输错 因为若函数错误 在编写中可以根据颜色判断 还有列表缺陷 被零除及函数被取消 对函数被取消这种现象有点特殊 因为它并不是当前所编的程序有问题 而是在上一次调试过程中 所编程序存在缺陷 使的AutoCAD处于命令等待状态 这时 需要通过视图转换 激活AutoCAD 取消命令等待状态 就可以了 根据我们自己开发程序的经验 认为调试工作需和整个软件的开发工作结合起来 在程序开发的步骤上考虑到调试工作问题 以采用从下到上的程序编程工作为佳 结合该方法 作者推荐如下的编程调试步骤 将整个软件分解成功能相对独立的功能块 再将功能块分解成若干个小程序 VisualLISP基础 将小程序中的每一个语句 按照先后次序进行编辑 在编辑过程中首先利用颜色的改变 纠正一些明显的错误 如果对某一语句把握不大 可直接加载该语句 判断系统能否通过 关于加载运行可通过选中需要加载的语句 点击专用工具中栏中的第二个工具 一般情况下 以编完相对较完整的一段语句后 再将这段进行加载运行较好 如所有的赋值语句 一段语句编写完成 加载运行结果正确 则进入下一段语句的编写 如正确 但根据错误提示可明显找到问题的 则修改后再加载运行 如无法根据错误提示找到问题的 则可以采用调试工具栏中的各种方法进行错误查找 如仍无法查到 则需逐句加载 但在逐句加载中 需要补充对加载语句中所需变量值的设定工作 通过以上工作 将小程序全局调通 并进行封装 将同一功能的小程序进行组装 并进行调试 调试完成 将功能程序进行封装 将不同功能的功能程序进行组装 并进行全局调试 调试通过 完成软件基本开发工作 根据客户应用的各种情况 对软件进行各种测试 对发现问题进行修改 最后得到完善软件 并将其封装 VisualLISP基础 DCL基础 本章目录 定义控件程序编辑软件调试及加载 定义对话框是人机交互的主要界面之一 它具有良好的视觉效果 操作方便 直观 输入数据与顺序无关 当我们编写好程序 需要通过外界输入数据时 对话框是一种首选的交互工具 对话框可以用DCL DialogControlLanguage 即对话框控制语言 来编写 DCL本身可直接在VisualLISP的编辑框中按规律编写 并进行调试和预览工作 编辑完成后 将其后缀取为 dcl 保存 然后在主程序中用VisualLISP语句调用即可 可向用户提供图形的交互环境 使操作更为方便和直观 DCL文件由ASCII码组成 后缀为 dcl DCL基础 控件控件是DCL中的主要组成部分 编写对话框主要就是编写各种控件 对各种控件的属性进行定义 常见的控件主要有Button 按钮 Edit box 编辑框 Image button 图像按钮 List box 列表框 Popup list 可下拉列表框 Radio button 单选按钮 Slider 滑动条 Toggle 复选框 Text part 文本控件的一部分 每一个控件有具有不同的属性 其中控件的典型属性有以下几种 Label指定显示在控件中的文字 该属性为一带引号的字符串 Edit limit指定在编辑框中允许输入的最大字符数个数 缺省值为132 Edit width以平均字符宽度为单位指定Edit box控件中编辑或输入框的文本宽度 该属性值可以是一个整型或实型数值 Fixed height布尔型数值 制定控件的高度是否可以占据整个可用空间 缺省值为False 如果属性值为True 则控件的高度保持固定 不会占据由于布局或对齐操作而留出的可用空间 Fixed width布尔型数值 制定控件的宽度是否可以占据整个可用空间 缺省值为False 如果属性值为True 则控件的宽度保持固定 不会占据由于布局或对齐操作而留出的可用空间 DCL基础 Key指定一个ASCII码名称 应用程序可以通过该属性引用指定的控件 该属性为一带引号的字符串 没有缺省值 对话框中各控件的Key值必须是惟一的 注意 Key值区分大小写 Value指定控件的初始值 该属性值为一个带引号的字符串 无缺省值 其中编辑框的Value值为缺省时的数值 可以不用加引号 Aspect ratio指定图像的宽高比 如果属性值为0 0则图像大小占据整个控件 column控件按钮纵向排列 注意需从整体上观察 row控件水平排列 同样需丛整体上观察 DCL基础 程序编辑下面通过一个较典型的对话框来说明对话框程序的编写过程 首先来观察一下这个对话框的结构 从大范围来看 是一个大列 列中共有5大行组成 其中第二行又是一个框型列 而第三行是一个框型行 需要进行重新定义 另外在第一大行和第二大行之间留一个空白 图9 9对话框逻辑位置示意图图9 10具体对话框示意图 DCL基础 软件调试及加载软件编写好后 先将文件以后缀 dcl 保存 将会发现除了程序中最前面的对话框名称dialogboxstructure是黑色以外 其它都是有颜色的 如果还发现有黑色的字符在控件名称或属性说明中出现 请先检查修改之 等程序满足颜色要求后 点击菜单栏中的 工具 选择其中的 界面工具 再点击 预览编辑器中的DCL 如果所编程序正确的话 系统就会弹出正确的对话框 反之 系统会弹出出错信息 并说明错误在第几行 用户需根据系统提示的问题进行修改 直至在预览中获取正确的对话框 对话框程序编写好后 在具体应用时 尚需编写调用程序 DCL基础 实例开发详见教材 本章目录 第6章塔设备绘制 第1章AutoCAD软件概述 第2章化工制图基本知识 第3章化工设备零件图绘制 第4章化工容器绘制 第5章热交换设备系列绘制 第7章管道布置图绘制 第8章工艺流程图绘制 第9章二次开发及AutoLISP
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!