网站大量收购闲置独家精品文档,联系QQ:2885784924

CAD软件:AutoCAD Architecture二次开发_(15).AutoCADArchitecture二次开发中的自定义对象.docx

CAD软件:AutoCAD Architecture二次开发_(15).AutoCADArchitecture二次开发中的自定义对象.docx

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

自定义对象

在AutoCADArchitecture二次开发中,自定义对象是一个非常重要的概念。自定义对象允许开发者创建具有特定属性和行为的对象,这些对象可以更好地适应特定的建筑设计需求。通过自定义对象,可以实现更高级的功能,如自定义的房间对象、自定义的门窗对象等,从而提高设计的效率和准确性。

自定义对象的基本概念

自定义对象是指在AutoCADArchitecture中,通过编程方式创建的具有特定属性和行为的对象。这些对象可以被保存在图形文件中,并且可以在AutoCADArchitecture中被识别和操作。自定义对象通常包括以下几部分:

对象类:定义对象的属性和方法。

对象工厂:用于创建和管理自定义对象的实例。

对象反应器:用于响应对象的事件,如对象的创建、修改和删除。

对象持久性:确保对象在图形文件中可以被正确保存和读取。

对象类

对象类是自定义对象的核心部分,定义了对象的属性和方法。在AutoCADArchitecture中,自定义对象类通常继承自AutoCAD的AcDbEntity或AcDbObject类。通过继承这些基类,可以充分利用AutoCAD现有的功能,并在此基础上添加自定义的属性和方法。

示例:创建自定义的房间对象

下面是一个创建自定义房间对象的示例。假设我们需要创建一个名为MyRoom的自定义房间对象,该对象包含房间的名称、面积和位置等属性。

//MyRoom.h

#pragmaonce

#includeacdb.h

classMyRoom:publicAcDbEntity

{

public:

ACRX_DECLARE_MEMBERS(MyRoom);

//构造函数

MyRoom();

//析构函数

~MyRoom();

//获取房间名称

Acad::ErrorStatusgetRoomName(AcDbDatabase*pDb,ACHAR*roomName);

//设置房间名称

Acad::ErrorStatussetRoomName(AcDbDatabase*pDb,constACHAR*roomName);

//获取房间面积

Acad::ErrorStatusgetRoomArea(doublearea);

//设置房间面积

Acad::ErrorStatussetRoomArea(doublearea);

//获取房间位置

Acad::ErrorStatusgetRoomPosition(AcDbDatabase*pDb,AcGePoint3dposition);

//设置房间位置

Acad::ErrorStatussetRoomPosition(AcDbDatabase*pDb,constAcGePoint3dposition);

//重写基类方法

virtualAcad::ErrorStatusdwgInFields(AcDbDwgFiler*pFiler);

virtualAcad::ErrorStatusdwgOutFields(AcDbDwgFiler*pFiler)const;

virtualAcad::ErrorStatusdxfInFields(AcDbDxfFiler*pFiler);

virtualAcad::ErrorStatusdxfOutFields(AcDbDxfFiler*pFiler)const;

virtualAcad::ErrorStatussubGetClassID(CLSID*pClsid)const;

private:

AcStringm_roomName;//房间名称

doublem_roomArea;//房间面积

AcGePoint3dm_roomPosition;//房间位置

};

//MyRoom.cpp

#includeMyRoom.h

#includeacdb.h

#includerxboiler.h

ACRX_REG_APP_ENTRY(MyApp,MyRoom)

MyRoom::MyRoom()

{

m_roomName=L;

m_roomArea=0.0;

m_ro

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档