- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 3D建模软件:3D Studio Max二次开发_(6).3DStudioMax与外部程序的集成开发.docx
- 3D建模软件:3D Studio Max二次开发_(7).3DStudioMax开发环境搭建与配置.docx
- 3D建模软件:3D Studio Max二次开发_(8).3DStudioMax性能优化技巧.docx
- 3D建模软件:3D Studio Max二次开发_(9).3DStudioMax二次开发案例分析与实践.docx
- 3D建模软件:3D Studio Max二次开发_(10).3DStudioMax二次开发项目管理与团队协作.docx
- 3D建模软件:3D Studio Max二次开发all.docx
- 3D建模软件:Blender二次开发_(1).Blender基本操作与界面介绍.docx
- 3D建模软件:Blender二次开发_(2).Python脚本基础.docx
- 3D建模软件:Blender二次开发_(3).Blender的PythonAPI详解.docx
- 3D建模软件:Blender二次开发_(4).自定义工具与插件开发.docx
最近下载
- 血液透析患者高血压的治疗(2020年版血液净化标准操作规程).pdf
- 年春节安全生产开工第一课培训课件内容.pptx VIP
- (6篇)带头严守政治纪律和政治规矩,维护党的团结统一等四个方面存在的问题与整改材料.docx VIP
- 2025年江西水利职业学院单招职业技能测试题库附答案.docx VIP
- 2025年江西水利职业学院单招职业技能测试题库及答案(名师系列).docx VIP
- 人参商品课件.ppt
- 浙江理工大学2020-2021年度大学物理期末考试试卷及答案.pdf
- 品质异常处理流程培训.pptx VIP
- (2025春新版本)部编版七年级语文下册全册PPT课件.pptx
- 2024年江西水利职业学院单招职业技能测试题库及答案解析.docx VIP
文档评论(0)