首页系统objectarx(ObjectARX简介)

objectarx(ObjectARX简介)

编程之家2024-01-23176次浏览

一、CAD弹出objectarx什么意思

这个问题很简单!相关定义:自定义\r\n对象是由ObjectARX?(AutoCAD运行时扩展程序,即基于CAD平台开发的外G挂软件,如天正建筑。圆方室内等等)应用程序创建的对象类型,具有的特定功能通常多于标准AutoCAD对象。\r\n自定义对象包括参数化的实体(Autodesk?MechanicalDesktop)、智能交互门符号(Autodesk\r\nArchitecturalDesktop)、多边形对象(AutodeskMap?)和关联标注对象(AutoCAD和AutoCAD\r\nLT)。\r\n除Autodesk之外,许多软件供应商都使用ObjectARX编写能够创建图形自定义对象和非图形自定义对象的程序,这些对象在基于AutoCAD的应用程序中很有用。\r\n代理对象\r\n当AutoCAD或其他宿主应用程序无法使用创建自定义对象的ObjectARX应用程序时,将以代理对象代替自定义对象。以后,当此应用程序可用时,自定义对象将代替代理对象。\r\n与相应的自定义对象相比,代理对象的功能明显减少。代理对象可编辑的范围由父ObjectARX应用程序决定。例如,根据创建对象的应用程序,可以决定能否对代理对象进行删除对象、移动对象或更改对象属性等操作。\r\n在打开图形时,可能会看到\“代理信息\”对话框。对话框将显示图形中代理对象(图形对象和非图形对象)的总数、缺少的应用程序的名称,并提供有关代理对象的类型和显示状态的附加信息。可用此对话框控制代理对象的显示。

objectarx(ObjectARX简介)

二、如何创建一个ObjectArx程序

创建一个ObjectARX应用程序通常包括以下几个步骤:

1、创建实现新命令的自定义类。一般都是从ObjectARX提供的类派生出来的自定义类。

2、决定我们的ObjectARX应用程序将处理哪一个AutoCAD消息。AutoCAD向ObjectARX应用程序发送各种消息,指出在AutoCAD内发生了特定的事件,我们决定应用程序将对哪一个消息作出响应,并触发哪一个操作。

3、为AutoCAD提供入口。在ObjectARX2007以上的版本中有一默认的入口定义文件(AcRxDefault.def)不用用户再创建。

4、实现初始化。在ObjectARX应用程序内,我们需要初始化已创建的任何自定义,并且重建ObjectARX运行时类树;如果要添加命令,必须注册在AutoCAD中的命令。

5、卸载准备。卸载前必须删除所有自定义类和命令。

objectarx(ObjectARX简介)

注册新命令的方法可以用AcEdCommandStack的addCommand的方法和acedDefun还有acedRegFunc的方法。后两咱们以后再说,主要是addCommand注册命令的方法。

AutoCAD命令是由AcEdCommandStack类定义的,按组存储在命令栈中。一般况下用addCommand函数一次添加一个命令,并用removeGroup函数成组的删除命令,也可以用removeCmd函数一次删除一个命令。作为退出前消除工作的一部分,我们应用程序需要删除它注册的所有命令。

三、ObjectARX 类库

ObjectARX环境包含下列几组类和函数:

AcRx库

AcRx库类层次结构图:

 

objectarx(ObjectARX简介)

AcEd库

AcEd库类层次结构图:

 

AcDb库

AcDb库类层次结构图:

 

AcGi库

提供了用于绘制 AutoCAD实体的图形界面

· AcDbEntity成员函数 worldDraw()、viewportDraw()和 saveAs(),及所有标准实体协议部件都使用 AcGi库;

· worldDraw()函数必须由所有自定义实体类定义;

· AcGiWorldDraw对象提供一个 API,通过该 API AcDbEntity::worldDraw()可以在所有视区同时生成其图形表示;

· AcGiViewportDraw对象提供 API AcDbEntity::viewportDraw()函数可以在每个视区生成不同的表达图形。

AcGi库类层次结构图:

 

AcGe库

AcGe库包含两主要的子集:二维和三维类,主要抽象基类分别为 AcGeEntity2d和 AcGeEntity3d。

AcGe库类层次结构图:

年度热门排行榜(2022年度笔记本十大热门品牌销量排行榜)瓢虫论坛(瓢虫社区论坛)