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

    作者:佚名 来源:网络 时间:2011-03-14 16:14 阅读:3954 [投稿]
    到目前为止,Autodesk公司提供了4种主要的二次开发工具:AutoLisp(VisuaLisp)、ADS、ObjectARX及VBA(VB)。本文就此向大家分别做一介绍。
    3 ObjectARX( AutoCAD Runtime Extension)开发系统
    近几年广为应用的ObjectARX是从AutoCADR13开始推出的一个全新的面向对象的开发环境,是AutoCAD提供的第一个面向对象的开发工具。它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速访问AutoCAD图形、数据库。ObjectARX支持面向对象编程方法,同时向下兼容ADS。它的特点是很明显的: 
    ARX程序在很多方面与ADS程序和AutoLisp程序都不相同。最重要的一点是,ARX程序实质上是一个动态链接库(DLL),它和AutoCAD共享地址空间并且直接和AutoCAD进行通讯。在ARX中,每个命令都有独立的入口。ARX程序还可以创建新的类(class),这些类可以为其他程序所共享,从而充分利用面向对象的编程的优点.ARX程序创建的实体和AutoCAD的内在实体几乎是完全等同的。 
    对于需要经常和AutoCAD通讯的应用程序来说,ARX程序比ADS程序运行速度更快,这里的运行速度主要指是访问AutoCAD数据库的速度。但ARX更“脆弱”,’ARX程序和AutoCAD共享进程空间,ARX程序崩溃通常会导致AutoCAD系统的崩溃。 
    相比之下,ARX程序是比宏更基本的程序。主程序(AutoCAD)可调用每个由ARX程序注册的命令。 
    ARX程序具有ADS程序和AutoLisp程序所不具备的访问和控制AutoCAD的能力。ARX程序可以监控和处理AutoCAD各种事件,可以定义AutoCAD命令,包括可以透明执行的命令。这些命令可以像AutoCAD自身的命令一样被AutoLisp和ADS所调用。
    ARX提供了面向对象的编程技术,面向对象的编程技术己经成为软件开发的主流技术。ARX可充分支持C++,充分支持面向对象编程技术。
    对于ARX编程,Autodesk公司建议使用VisualC++4.2及以上版本的开发环境,这一点对于语言的学习要求较高。这里给出直线绘制函数的部分代码: 
    void myLine(AcGcPoint3d.AcGePoint3d Pt2)
    {AcDbLine * pline=new AcDbLine(Pt1,Pt2):
    AcDbBlockTable * pBlockTable:
    AcdbCurDwg()->getBlockTable(pBlockTable.AcDb::kForRead);
    AcDbBlockTableRecord * pBlockTableRecord;
    pBlockTable->getAt(ACDB MODEL_SPACE pBlockTableRecord,AcDb::kForWrite);
    pBlockTable->close();
    AcDbObjectld lineld;
    pBlockTableRecord->appendAcDbEntity(lineld,pline):
    pBlockTableRecord->closc();
    pLine->close();} 
    4.VBA (Visual Basic for Application)和VB
    作为从AutoCADR14之后提供的二次开发工具VBA(VB),使渴望CAD编程的人有一个更好的选择,用户不必学习ADS,ARX和AutoLisp就可以用VBA(VB)来开发AutoCAD,Autodesk公司从R14开始内置了VBA开发工具,同时提供了适于VBA(VB)开发的ActiveXAutomation对象模型。VBA(VB)的主要特点如下: 
    VBA最早是内嵌在Ofice97中的一种编程语言,它易学易用,功能强大。所以Autodesk公司从Rl4之后把它也嵌入了AutoCAD中。
    分享到:
    扫一扫,关注光行天下的微信订阅号!
    【温馨提示】本频道长期接受投稿,内容可以是:
    1.行业新闻、市场分析。 2.新品新技术(最新研发出来的产品技术介绍,包括产品性能参数、作用、应用领域及图片); 3.解决方案/专业论文(针对问题及需求,提出一个解决问题的执行方案); 4.技术文章、白皮书,光学软件运用技术(光电行业内技术文档);
    如果想要将你的内容出现在这里,欢迎联系我们,投稿邮箱:service@opticsky.cn
    文章点评