




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ObjectARXTrainer’Training
叶雄进2007-8-29北京自定义实体的思路什么是自定义实体如何创立自定义实体AcDbEntity虚函数的功能和使用现场创立一个自定义实体TipsandTricks自定义实体操作自定义实体Smiley什么是自定义实体自定义一个图形对象、控制它图形显示,存储的数据,对拖拽的响应,对捕捉的响应,平移、旋转等操作的响应需要扩充自定义实体的哪些功能?结合操作,说明需要扩展的方面为什么需要自定义实体?存储自定义数据扩展实体的功能连动操作拖拽捕捉拉伸……自定义对象两类自定义对象从AcDbObject派生从AcDbEntity派生AcDbEntity从AcDbObject派生,包括了AcDbObject的所有功能。因此这里以讲解从AcDbEntity派生的实体为主,重要的类继承关系AcRxObjectAcDbObjectAcDbEntityAcDbDictionaryAcDbSymbolTableAcDbSymbolTableRecordAcGiDrawableDatabase
resident
objectsDrawable
objectsAcDbCurveAcDbLineAcDbBlockTable如何实现自定义实体创立一个新类从适宜的类派生实现AcRxObject的协议添加到运行时类层次图中运行时类型识别〔RTTI〕RuntimeTypeIdentification(RTTI)协议扩充AcRxClassClass来描述每一个自定义类
appName
comparedTo
dxfName
isDerivedFrom
myParent
name
proxyFlags
建立运行时类层次rxInit(static)gpDesc(staticvariable)newAcRxClassacrxBuildClassHierarchy类别判断函数最根底的类AcRxObject提供了类型识别函数virtualAcRxClass*isA()const;staticAcRxClass*gpDesc;staticAcRxClass*desc();staticCMyClass*cast(constAcRxObject*inPtr)Macros揭开研究ACDB_REGISTER_OBJECT_ENTRY_AUTOACRX_DECLARE_MEMBERSACRX_NO_CONS_DEFINE_MEMBERSACRX_CONS_DEFINE_MEMBERSACRX_DXF_DEFINE_MEMBERSACRX_DEFINE_MEMBERS图形显示函数worldDrawviewportDraw调用关系如下if(!entity->worldDraw(pWd))for(每一个相关视口)entity->viewportDraw(void);数据保存函数dwgInFieldsdwgOutFieldsdxfInFieldsdxfOutFields夹点操作函数设置对象夹点getGripPoints〔〕拖动夹点,自定义实体的行为moveGripPoints〔〕两个重要函数assertWriteEnabled(
Adesk::BooleanautoUndo=Adesk::kTrue,Adesk::BooleanrecordModified=Adesk::kTrue);)
自定义类中任何修改函数都必须调用函数assertWriteEnabled〔〕,用于检查对象是否是用写的模式翻开,当该函数被调用时,首先检查参数recordModified,如果recordModified的值为Adesk::kFalse,那么不执行任何撤销操作,如果recordModified的值为Adesk::kTrue,那么检查autoUndo参数,如果参数autoUndo为Adesk::kTrue,那么AutoCAD将记录对象的状态以便执行撤销操作,当对象的修改操作完成并关闭对象,操作对象的全部状态将被保存到一个撤销操作文件中,如果这时的用UNDO命令,AutoCAD调用对象的dwgInFields〔〕函数把这个撤销操作文件的内容读入到数据库中。assertReadEnabled()判断是否可读状态其它重要重载函数设置自定义实体的捕捉函数getOsnapPoints〔〕对平移,复制,镜像等操作的响应函数transformBy〔〕生成代理实体的图形形状函数saveAs()相交函数interSectWith〔〕炸开函数Explode〔〕次常用重载函数深度克隆DeepClonewblockClone设计良好的程序架构自定义实体代码集中在DBX工程中用户交互操作UI〔userinterface〕代码放在ARX工程中DBX独立存在.ARX依赖于DBXARX加载DBX代理对象当自定义实体的定义模块没有加载时,用代理实体来管理用户自定义实体。两类代理对象(AcDbProxyObject)andCustomEntities(AcDbProxyEntity)被“PROXYSHOW”和“PROXYGRAPHICS”两个系统变量控制。自动加载和按需加载Acad.rx,Acad.lsp,acad.dvbRegistryStartupProxyDetectionApploaddialog/Ldswitch用其它开发语言访问自定义实体在VBA程序中访问自定义对象MakesureCOMwrapperisregisteredCallAddCustomObjectmethod在.Net编程方式中访问自定义实体mixed-managed.NETWrapperUsethe.NETwrapperclasstoinstantiateandmanageADNWhitepaper:TutorialtocreatemanagedwrappersforcustomARXfunctionsandobjectsTipsandtricks不要在worldDraw和viewPortDraw中以写的方式翻开实体进行修改自定义实体的数据Fewotherclassesshouldbeavoided(eg.,AcDb2dPolyline,AcDbVertex,Ref:OARXHelp)防止访问AutoCAD特殊功能,如环境和系统变量自定义实体的局限实现和维护稍复杂些End-User不喜欢弹出代理实体对话框实际创立一个自定义实体仍选其一一个三角形一个矩形宽度不变的圆环自定义实体总结全方面用户自定义的对象几何类几何类〔AcGe库〕AcGe库是一个纯数学的库,提供几何运算功能,与AcDbDatabase无关,但也被AcDb和AcGi库中函数使用包括点、直线、曲线、外表等相关的类。常用的二维几何类有AcGePoint2d、AcGeVector2d、AcGeEntity2d、AcGeLinearEnt2d;常用的三维几何类有AcGePoint3d、AcGeVector3d、AcGeEntity3d;表示公差类AcGeTolAcGe库的功能点和向量求矢量间的夹角,判断是否同向、是否平行、是否垂直,矩阵变换,加减乘除等运算,通过angle()函数可以得到矢量的角度线:线求交点、是否平行、求垂线、点是否在线上面公差浮点型数据的比较的需要转换矩阵坐标转换和空间变换时需要一个应用几何类进行计算的实例ARXAcGe用户界面内容ObjectARX应用程序中资源管理以及使用MFC。模态对话框和非模态对话框的创立方法。AcUi和AdUi的介绍和使用方法。资源问题什么是资源?.rc文件中的内容,包括菜单,对话框,工具条,…为什么需要资源管理?AutoCAD有自己的资源ARX程序中也有资源程序的默认资源从哪里加载?资源管理管理资源的切换类CAcModuleResourceOverrideARX命令非模态对话框让对话框能让用户输入操作响应AutoCAD定义的一个消息#ifndefWM_ACAD_MFC_BASE#defineWM_ACAD_MFC_BASE(1000)#endif#ifndefWM_ACAD_KEEPFOCUS#defineWM_ACAD_KEEPFOCUS(WM_ACAD_MFC_BASE+1)#endifonAcadKeepFocusAdUi和AcUi的介绍和使用用来建立与AutoCAD界面风格一致的控件库CAdUi类可用于任何应用程序于任何Autodesk产品的交互作用CAcUi类派生于CAdUi类,并专用于AutoCAD如何使用AcUi库-例题说明classAsdkAcUiDialogSample:publicCAcUiDialog//{{AFX_DATA(AsdkAcUiDialogSample)enum{IDD=IDD_DIALOG1};CAcUiSymbolComboBoxm_ctrlRegAppComboBox;CAcUiListBoxm_ctrlBlockListBox;CAcUiPickButtonm_ctrlPickButton;CAcUiPickButtonm_ctrlAngleButton;CAcUiAngleEditm_ctrlAngleEdit;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国榉木门市场现状分析及前景预测报告
- 2025至2030年中国民用丝行业投资前景及策略咨询报告
- 2025至2030年中国正方圆角盘行业发展研究报告
- 2025至2030年中国橡胶促进剂市场分析及竞争策略研究报告
- 2025至2030年中国棱形网布市场分析及竞争策略研究报告
- 2025至2030年中国枫木枋数据监测研究报告
- 2025至2030年中国松木数据监测研究报告
- 2025至2030年中国机械管材市场现状分析及前景预测报告
- 2025至2030年中国木质素纤维行业投资前景及策略咨询报告
- 2025至2030年中国期货交易系统行业投资前景及策略咨询报告
- 20以内三个数加减混合运算竞赛练习训练题大全附答案
- 2025年郑州电力职业技术学院单招职业技能测试题库汇编
- 2025年公务员遴选考试公共基础知识必考题库170题及答案(三)
- 吊篮安全技术交底课件
- 吉兰-巴雷综合征指南解读课件
- 2025年国家发展和改革委员会城市和小城镇改革发展中心招聘工作人员6人历年高频重点模拟试卷提升(共500题附带答案详解)
- 物流运输安全培训内容
- 2025年上海嘉定区申通地铁集团招聘笔试参考题库含答案解析
- 2025年中铁十二局集团有限公司招聘笔试参考题库含答案解析
- 幼儿园市级课一等奖-大班语言健康绘本《我的情绪小怪兽》有声绘本课件
- 2024年股权转让验资确认书3篇
评论
0/150
提交评论