切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
  • AutoCAD开发工具介绍

    作者:佚名 来源:网络 时间:2011-03-14 16:14 阅读:3776 [投稿]
    到目前为止,Autodesk公司提供了4种主要的二次开发工具:AutoLisp(VisuaLisp)、ADS、ObjectARX及VBA(VB)。本文就此向大家分别做一介绍。
    随着CAD技术的发展,CAD领域的支挣软件也越来越多,国内外许多公司相继推出了其主导产品,Autodesk公司是目前世界上比较成功的CAD领域的开发商,其开发的AutoCAD一直是CAD市场中的主流产品,随着AutoCAD的日益普及,在其上进行二次开发的工具也相继由该公司推出。许多企业购进AutoCAD软件,并非只是用作“代替图板”。只有真正地在其上实现了二次开发,才能充分发挥AutoCAD作用。到目前为止,Autodesk公司提供了4种主要的二次开发工具:AutoLisp(VisuaLisp)、ADS、ObjectARX及VBA(VB)。本文就此向大家分别做一介绍。 
    1.AutoLisp语言
    Lisp语言是一种表处理语言,是广泛应用于人工智能的语言。AutoLisp语言完全嵌套在AutoCAD内部,同AutoCAD有机地结合成一体它既具备一般高级语言的基本结构和功能,又具备一般高级语言所没有的图形处理能力AutoLisp可直接调用几乎全部AutoCAD的命令,从而进行AutoCAD的二次开发。利用AutoLisp开发AutoCAD的一个典型例子就是实现参数化绘图的程序设计。 
    AutoLisp具有如下特点: 
    AutoLisp语言是一种以解释方式运行于AutoCAD内部的解释性程序设计语言。 
    AutoLisp没有语句概念或其他语法结构,程序非常简明。它的所有成分都是以函数形式给出的。执行AutoLisp程序就是执行一些函数,然后再调用其他函数。 
    AutoLisp把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。 
    AutoLisp语言中的程序运行过程就是对函数的求值过程,在对函数求值的过程中实现函数的功能。 
    AutoLisp语言的主要控制结构采用递归方式。递归方式的使用,使程序简单易懂。
    VisuaLisp是AutoLisp的发展,它利用可视化的编程环境为学习减小难度。它的特点可以归纳出十几条,但基本上是可视化与Autolisp的结合,不再列出。 
    这里给出用AutoLisp绘制键槽的一个小程序,可以看出其简明性: 
    (defun C:LWX()
    (setq a(getrcal "a="))
    (setq b(getreal "b="))
    (setq pO(getpoint "Enter start point:"))
    (setq r(getreal "r="))
    (setq x(car p0) y(cadr p0))
    (setq xe(- x (/ a 2.0)))
    (setq ye(+ y (sqrt(- (* r r) (*a a 0.25)))))
    (sctq ce(list xe ye))
    (setq p1(list(- x a) y))
    (setq p2(list(- x a)(- y b)))
    (setq p3(list x (- y b)))
    (command "pline" p0 "a" "ce" ce p1 "1" p2 p3 "c")

    执行这段程序,输入a,b,r的值,即可绘出键槽。
     
    2.ADS(AutoCAD Development System)开发系统
    ADS是从AutoCAD R11开始引入的基于C语言开发应用程序的系统。ADS不是C语言的一个子集,也不是基于C而编制的专用语言(如Microstation的MDL),但它包括了C的全部功能。它对开发人员C语言要求较高,C是编译型语言,功能强大,因此ADS很轻易地克服了AutoLisp所固有的许多缺点而具有速度快,安全性高的特点。ADS不包含于AutoCAD内部,而是作为一组AutoLisp外部函数由AutoLisp解释器装入、解释并请求AutoCAD运行。其特点如下: 
    ADS程序是一个可执行文件,需要通过AutoLisp和AutoCAD进行通讯。 
    ADS程序更“绝缘”,ADS程序是一系列独立的过程,程序崩溃并不一定导致AutoCAD系统崩溃(尽管并不总是如此)。 
    ADS程序是不可重复加载的。 
    ADS程序的运行过程类似于宏(macro)。ADS中的函数(如ads_command)以及与AutoLisp的通讯使ADS程序的工作过程类似于自动作用的宏。 
    ADS仍然只能使用传统的C语言进行编程,只能采用传统的结构化编程方式。
    早期国内常见的应用软件多是用ADS进行开发的,但ADS程序必须经过AutoLisp解释加载,因此ADS的各方面性能受到限制。同时,随着网络技术的迅速发展,面向过程的ADS己有些力不从心了,所以,在AutoCADR13中提供了面向对象的开发工具ARX。有关ADS的实例代码,因与ARX类似(比如ADS中的对象名称ads_name就和ARX中的AcDbObjectld是等价的)这里不再给出。 
    分享到:
    扫一扫,关注光行天下的微信订阅号!
    【温馨提示】本频道长期接受投稿,内容可以是:
    1.行业新闻、市场分析。 2.新品新技术(最新研发出来的产品技术介绍,包括产品性能参数、作用、应用领域及图片); 3.解决方案/专业论文(针对问题及需求,提出一个解决问题的执行方案); 4.技术文章、白皮书,光学软件运用技术(光电行业内技术文档);
    如果想要将你的内容出现在这里,欢迎联系我们,投稿邮箱:service@opticsky.cn
    文章点评