明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1342|回复: 2

一步步学习开发ObjectARX应用程序<2>ObjectARX开发环境概述

  [复制链接]
发表于 2019-9-17 16:21:00 | 显示全部楼层 |阅读模式
本帖最后由 286168051 于 2019-9-17 16:23 编辑

   一步步学习开发ObjectARX应用程序<2>ObjectARX开发环境概述

  ObjectARX应用程序是一个动态链接库(DLL),它共享AutoCAD的地址空间并直接调用AutoCAD的函数。我们可以利用ObjectARX直接访问AutoCAD的数据库结构、图形系统以及AutoCAD几何构造核心。我们可以向ObjectARX编程环境添加新类,并将其输出以供其他程序调用。我们创建的自定义实体与AutoCAD内部实体没有任何区别。我们也可以在运行时通过向既有的AutoCAD类添加函数来扩充ObjectARX协议。由ObjectARX定义的外部命令与AutoCAD内部命令的执行机制是一样的。
1.2.1 ObjectARX应用程序的运行机制
   ObjectARX应用程序的本质是Windows的DLL程序,而AutoCAD本身则是一个典型的Windows程序,ObjectARX应用程序与AutoCAD、Windows之间均采用Windows消息传递机制直接进行通信。
ObjectARX应用程序与AutoCAD在同一地址空间内运行并能直接利用AutoCAD核心数据库结构和代码。由ObjectARX应用程序定义的外部命令通过acedRegCmds()宏注册。这些外部命令与AutoCAD本身固有命令一样由AutoCAD本身执行。
   ObjectARX应用程序以Visual C++语言为开发基础,具有面向对象编程方式的数据可封装性、可继承性及多态性等特点。由它开发的工程CAD软件具有模块性好、独立性强、连接简单、使用方便、内部功能高效实用以及代码可重用性强等优点,而且支持微软的MFC类库,能简洁高效的实现很多复杂的功能。
1.2.2 ObjectARX类库简介   
   ObjectARX开发环境主要包含以下几个类库:AcRx、AcEd、AcDb、AcGi、AcGe库。下面就分别来探讨这些类库。
   AcRx类库:AcRx库提供了一些系统级的类,用于DLL的初始化和链接以及运行时类的注册和标识,它提供了以下的功能:
   对象运行时类标识和继承分析
   运行时向既有类添加新协议
   对象的比较测试
   对象复制。
   AcEd类库:AcEd库提供定义和注册新的AutoCAD命令的类。我们定义的新命令之所以被当做本地命令来用是因为它们与AutoCAD内部命令具有相同的内部结构。AcEd库还提供编辑器反应器和一套与AutoCAD通讯的全局函数。
   AcDb类库:AcDb库提供了组成AutoCAD数据库的类。AutoCAD数据库用于存储所有的图形对象和非图形对象;图形对象被称为实体,组成AutoCAD图形;非图形对象如:层、线型和字体也是图形的一部分,我们可以使用AcDb库查询和管理既有的AutoCAD数据库对象,亦可以创建新的数据库对象。
   AcGi类库:AcGi库提供了用于绘制AuotCAD实体的图形接口。该库由AcDbEntity成员函数worldDraw(),viewportDraw()和saveAs()所使用,这些函数式标准实体协议的一部分。
   AcGe类库:AcGe库由AcDb库所用,它提供了应用类,如向量和矩阵,用来完成二维和三维几何操作,它还提供基本的几何对象,如点、曲线和表面。
   AcGe库包含了二个主要的子集:二维和三维几何类,主要抽象基类分别为AcGeEntity2d和AcGeEntity3d。
1.2.3 ObjectARX应用程序的功能
   使用ObjectARX开发AutoCAD程序我们可以完成以下功能。
1.2.3.1访问AutoCAD数据库     
        AutoCAD图形文件是一个存储在数据库中对象的集合,这些对象不仅表示图形实体,而且表示内部结构,如符号表和词典。ObjectARX为我们的应用程序提供了访问这些数据库结构的能力,我们也可以为指定的应用程序创建数据库。
1.2.3.2 与AutoCAD编辑器进行交互
   ObjectARX提供了与AutoCAD编辑器通信的类和成员函数。我们可以用AutoCAD注册命令。应用程序可以接收和回应发生在AutoCAD内部的各种事件
1.2.3.3 使用MFC创建用户界面
  ObjectARX应用程序可以使用AutoCAD共享的动态链接MFC来创建应用程序,用户还可以使用这些库来创建标准Windows风格的图形界面。
1.2.3.4 支持多文档界面(MDI)
  使用ObjectARX,我们可以创建支持AutoCAD多文档界面的应用程序,并且用户可确保自己的应用程序将会正确的与Windows环境的其他应用程序正常通信。
1.2.3.5 创建自定义类
  我们可以用ObjectARX层次结构中的类创建自己的自定义类,同时还可以利用ObjectARX的扩展图形库创建自定义类。
1.2.3.6 编制复杂的应用程序
  ObjectARX支持复杂的应用程序的开发,它提供了如下特性:通知、事务管理、深层克隆、引用编辑、协议扩展和代理对象支持。
1.2.3.7 与其他环境通信
  ObjectARX应用程序可以与其他程序(如 Visual LISP、ActiveX和COM)进行通信,也可以与Internet加载和存储图形文件,ObjectARX应用程序也可以与国际互联网通信。


发表于 2019-9-22 01:24:43 | 显示全部楼层

娓娓道来,期待下一编文章。
发表于 2019-10-15 22:52:44 来自手机 | 显示全部楼层
点赞,收藏~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:26 , Processed in 0.156842 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表