乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 23|回复: 0

一步一步学习ObjectARRX<第二课>ObjectARX概述

[复制链接]

28

主题

56

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
168
发表于 2020-11-22 09:10:00 | 显示全部楼层 |阅读模式
ObjectARX应用程序是一个动态链接库(DLL),它共享的地址空间并直接调用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程序我们可以完成以下功能。 q  访问AutoCAD数据库AutoCAD图形文件是一个存储在数据库中对象的集合,这些对象不仅表示图形实体,而且表示内部结构,如符号表和词典。ObjectARX为我们的应用程序提供了访问这些数据库结构的能力,我们也可以为指定的应用程序创建数据库。 q  与AutoCAD编辑器进行交互ObjectARX提供了与AutoCAD编辑器通信的类和成员函数。我们可以用AutoCAD注册命令。应用程序可以接收和回应发生在AutoCAD内部的各种事件。 q  使用MFC创建用户界面ObjectARX应用程序可以使用AutoCAD共享的动态链接MFC来创建应用程序,用户还可以使用这些库来创建标准Windows风格的图形界面。 q  支持多文档界面(MDI)使用ObjectARX,我们可以创建支持AutoCAD多文档界面的应用程序,并且用户可确保自己的应用程序将会正确的与Windows环境的其他应用程序正常通信。 q  创建自定义类我们可以用ObjectARX层次结构中的类创建自己的自定义类,同时还可以利用ObjectARX的扩展图形库创建自定义类。 q  编制复杂应用程序ObjectARX支持复杂的应用程序的开发,它提供了如下特性:通知、事务管理、深层克隆、引用编辑、协议扩展和代理对象支持。 q  与其他环境通信ObjectARX应用程序可以与其他程序(如 Visual LISP、ActiveX和COM)进行通信,也可以与Internet加载和存储图形文件,ObjectARX应用程序也可以与国际互联网通信。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 00:00 , Processed in 0.183943 second(s), 63 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表