版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习AutoCAD二次开发技术的体会1引言AutoCAD是一套向量式计算机辅助制图软件,具有强大的图形处理功能,目前它 已经广泛应用于机械、电子、电气、建筑、土木服装等行业和领域。最初版本的AutoCAD是在1982年发布的。AutoCAD开放的结构体系,为用户提 供了多种二次开发的工具,使得它的缺陷之处可以得到弥补,因此三十多年来它 持续拥有旺盛的生命力。AutoCAD的二次开发,能够实现参数化绘图,允许用户 开发自己的命令、标准库文件和各种应用程序,能充分发挥AutoCAD的功能。本文将介绍我学习Visual LISP这一种工具进行开发的过程和体会,说明我在学 习过程中体会到的二次开发的特
2、点和一些优点,并举一些具体例子。2实施过程2.1LISP语言的主要学习内容总结2.1.1变量及其赋值:(1)LISP语言中变量的使用比较灵活,变量不用先定义和指定类型,需要的时 候直接引入,而且其内容较为随意,可以是整数、实型数、字符串、点、表等等。(2)变量的赋值主要用setq语句,格式为(setq变量名 要赋的内容)。2.1.2基本的运算函数和数学函数:(1)加、减、乘、除、取余运算函数名分别为“+”、-”、*”、/”、“rem” 函数使用格式为(符号数1数2 数3)。(2)基本初等函数:指数函数(expt底数自变量值)。自然指数函数、自然对数函数、正弦、余弦、反正切、根式、绝对值函数分别
3、 是exp、log、sin、cos、atan、sqrt、abs,调用格式为:(函数名 自变量值)。2.1.3表处理函数:(1)表构造函数:(list n1 n2 n3 n4),返回一个表。配合赋值语句可把表赋 值给变量,如(setq biao (list 1 2 3 4),就把(1 2 3 4)赋给变量biao。(2)表长度运算:(length表),返回表元素的个数。(3)表中元素的提取:(car表)返回表中第一个元素。例如(car (1 2 3 4 )返回1。(cdr表)去掉表中第一个元素,其余元素组成表返回。上例返回(2 3 4)。嵌套使用可提取个元素,嵌套时可以缩写,如caddr表示提取
4、第三个元素。另一种常用表提取函数nth格式为:(nth n表),它表示提取表中序号为n的 元素。注意序号是从零开始的,表中第一个元素序号为0。2.1.4输入输出函数:(1)输入函数格式为:(函数“提示内容”)。常用函数有:getpoint、getint、 getreal、getstring分别表示等待用户输入点、整型数、实型数、字符串。(2)输出函数格式为:(princ表达式)(print表达式)。其中print先换行再输 出。2.1.5常用符号:(1)“!”符用于查看某一变量。如! a,如果a变量为1,则显示1。(2)英文单引号,是quote的缩写,表示不求值而是引用,如(setq a (1
5、23) 就把表(1 2 3)赋值给a,若没有该符号则会对(1 2 3)求值,会出错。关系运算符,用写条件表达式,有“”、二”、/二”、二”。分别表示小于、大于、小于等于、大于等于、不等于、等于。例如(二a b)表示条件a等于b。( a b)表示条件a大于b。2.1.6分支和循环结构(1)if语句:(if表达式(语句1)(语句2)。表示表达式成立时执行语句1, 否则执行语句二。注意语句1、语句2只能是一个语句。如果要使表达式成立时 执行多个语句,则使用progn函数。如(progn (语句)(语句)(语句)。(2)repeat语句(repeat n 循环体),n表示循环的次数。(3)while语
6、句(while表达式 循环体),先判断表达式是否成立,表达式成立时 执行循环体。 Repeat语句只能执行次数已知的循环,而while语句既可以执 行次数已知的,也可以执行次数未知的。2.1.7常用的用于绘图的函数command函数,它是通过直接调用AutoCAD命令来实现的。例如:(command “pline p0 p “”)表示画一条起点为p0,终点为p的多段线。(command “circle p0 100)表示画一个以p0为圆心的半径为100的圆。(command “move L p0 p)表示把一个对象以p0为基点移动到p。(2)polar函数,它是通过点与点之间的相对位置来确定点
7、的坐标的函数。格式(polarp0相对角度t 两点间距离d)注意相对角度是极角,单位为孤度。 该函数返回一个相对P0角度为t,距离为d的点。与赋值语句配合可将得到的点 赋值给一个变量。例如(setq p (polar p0 pi 10)把p0左侧距离10的点赋 值给了 p。2.2利用LISP语言绘图实例2.2.1绘制函数图像 用“以直代曲”的思想用许多很短的线段代替函数图像,从而得到近似图像。用LISP语言中的数学函数、循环结构,并用command函数实现编程。程序如下:绘制幕函数图像(defun幕函数()(setq n (getint 请输入指数 n)(setq a (getreal 请输入
8、自变量开始 范围n)(setq b (getreal 请输入自变量结束 范围n)(setq p0 (polar (getpoint 请选择坐标 原点 n) 0 a)(setq x a)(command pline)(while(= x b)(setq y (expt x n)(setq p (polar p0 (/ pi 2) y )(command p)(setq x (+ x 0.1)(setq p0 (polar p0 0 0.1)(command) )编辑好程序后保存,在CAD中加载程序,使用命令(load “文件路径”),或者直接拖动文件到绘图区。然后,在 命令行输入(幕函数)从而调
9、用该函数,系统就开始执行 该函数的代码。按照提示输入幕函数指数,自变量范围, 基点,就会绘制出如图所示函数图像。注意:一、调用函数时应当适当缩放界面,从而保证用 command函数调用绘图命令时,系统能够 准确的选择指定的点,否则会因为点非常 密集而选错。二、编辑程序的代码时和在 命令行输入命令时必须保证是英文符。(2)绘制指数函数、对数函数、三角函数等函数图像的程序与上图程序差别不大, 把数学函数做修改即可,因为篇幅原因不一一列举,图像如上图所示。2.2.欢现参数化绘图。编写一些用于绘制含有较多重复图案或者复杂图案图形的程序。加载程序后调用 函数,输入几个参数即可完成绘图,大大提高了绘图效率
10、。程序如下:(defun ht()(setq a 50)(setq n (getint ”请输入个数”)(setq p0 (getpoint 请输入基点)(setq p (polar p0 (/ pi 2) a)(command pline p0 p)(command)(setq p1 (polar p 0 a)(repeat n(setq p2 (polar p1 pi a) )(setq p3 (polar p2 (* 1.5 pi) a)(setq p4 (polar p3 0 a)(command pline p1 p3 p4 p2 p1 p4)(command)(setq p1 (p
11、olar p1 0 a) )(defun ht2()(setq p0 (getpoint 请选择圆心)(setq r (getreal ”请输入半径”)(setq n (getint ”请输入个数”)(setq i 1)(setq p (polar p0 (/ pi 2) r)(command pline p0 w” (* r 0.01)(* r 0.02) p p0 )(while ( i n)(setq p (polar p0 (+ (/ pi 2) (/ (* 2 i pi) n) r)(commandplinep0 w (* r 0.02) (* r 0.02) p p0 )(setq
12、 i (+1 i)(command circle p0 r)(command circle p0 (+ r (* 0.2 r)第一个程序用于绘制一排“箱子”,加载程序后在命 令行输入(瓦)开始执行函数命令,输入参数(个数和 基点)可以绘制出一排指定个数的边长为50的“箱 子”。第二个程序用于绘制“轮子”,加载程序后在命令行 输入(ht2)就开始执行函数命令,输入参数(圆心、内径、辐条个数),即可绘制 指定大小、辐条个数的轮胎。3结论AutoCAD的二次开发,能够实现参数化绘图,允许用户开发自己的命令、标准库 文件和各种应用程序,从而能够简化复杂繁琐的图形(尤其是机械图)的绘制, 能更大限度地发挥AutoCAD的功能。LISP语言是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上 执行,它对于交互式的程序开发非常方便。通过学习基于Visual LISP的二次开 发,我掌握了常用的LISP语句和语法结构:基本函数,分支、循环结构,输入输 出处理,表处理,图形处理等等,能够编程绘制一些较简单的图形,弥补传统绘 图方式的不足,丰富了 CAD的绘图功能。传统的绘图方式有两个不足之处:(1)重复绘制的工作量很大。(2)对于尺寸要 求非常严格。对于不同尺寸而基本结构相同的图形无法复制,需要重复绘制。进 行二次开发可以很好的解决这两个问题:使用循环语句可以实现重复绘制。编程 保留绘图命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度航空器材制造与销售合同
- 2024年展览中心展台搭建合同
- 《人工硬脑膜与自体硬脑膜扩大成形术治疗ChiariⅠ畸形并脊髓空洞症手术疗效的对比分析》
- 2024年建行汽车贷款专项合同
- 《基于健康促进模式探讨孕妇身体活动及其影响因素》
- 2024年我国行政合同法律适用研究
- 《大学生民族团结教育有效性研究》
- 《新三板挂牌企业审计风险的识别与应对研究》
- 《智能制造产业动态跟踪及趋势洞察月报(2024年2月)》范文
- 2024年建筑工程瓦工分包商合同范本
- HGT 6333-2024《煤气化灰水阻垢分散剂阻垢性能测定方法》
- 高三一模“人生需要学会绕行”审题立意及范文(彩色高效版)
- 2023-2024学年江苏省南京玄武区中考语文最后一模试卷含解析
- 职场心理学智慧树知到期末考试答案章节答案2024年山东工商学院
- 2024中国通信服务股份限公司招聘公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 中医养生活动策划方案
- 汽车坡道玻璃雨棚施工方案
- 漫画解读非煤地采矿山重大事故隐患判定标准
- 2024年建筑业10项新技术
- 飞控系统组成
- 外贸跟单员培训培训材料
评论
0/150
提交评论