已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 ObjectARXTrainer Training 2 自定义实体的思路 什么是自定义实体如何创建自定义实体AcDbEntity虚函数的功能和使用现场创建一个自定义实体TipsandTricks 3 自定义实体 操作自定义实体Smiley什么是自定义实体自定义一个图形对象 控制它图形显示 存储的数据 对拖拽的响应 对捕捉的响应 平移 旋转等操作的响应需要扩充自定义实体的哪些功能 结合操作 说明需要扩展的方面 4 为什么需要自定义实体 存储自定义数据扩展实体的功能连动操作拖拽捕捉拉伸 5 自定义对象 两类自定义对象从AcDbObject派生从AcDbEntity派生AcDbEntity从AcDbObject派生 包括了AcDbObject的所有功能 因此这里以讲解从AcDbEntity派生的实体为主 6 重要的类继承关系 7 如何实现自定义实体 创建一个新类从合适的类派生实现AcRxObject的协议添加到运行时类层次图中 8 运行时类型识别 RTTI RuntimeTypeIdentification RTTI 协议扩充AcRxClassClass来描述每一个自定义类appNamecomparedTodxfNameisDerivedFrommyParentnameproxyFlags 9 建立运行时类层次 rxInit static gpDesc staticvariable newAcRxClassacrxBuildClassHierarchy 10 类别判断函数 最基础的类AcRxObject提供了类型识别函数virtualAcRxClass isA const staticAcRxClass gpDesc staticAcRxClass desc staticCMyClass cast constAcRxObject inPtr 11 Macros揭开研究 ACDB REGISTER OBJECT ENTRY AUTOACRX DECLARE MEMBERSACRX NO CONS DEFINE MEMBERSACRX CONS DEFINE MEMBERSACRX DXF DEFINE MEMBERSACRX DEFINE MEMBERS 12 图形显示函数 worldDrawviewportDraw调用关系如下if entity worldDraw pWd for 每一个相关视口 entity viewportDraw void 13 数据保存函数 dwgInFieldsdwgOutFieldsdxfInFieldsdxfOutFields 14 夹点操作函数 设置对象夹点getGripPoints 拖动夹点 自定义实体的行为moveGripPoints 15 两个重要函数 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 判断是否可读状态 16 其它重要重载函数 设置自定义实体的捕捉函数getOsnapPoints 对平移 复制 镜像等操作的响应函数transformBy 生成代理实体的图形形状函数saveAs 相交函数interSectWith 炸开函数Explode 17 次常用重载函数 深度克隆DeepClonewblockClone 18 设计良好的程序架构 自定义实体代码集中在DBX工程中用户交互操作UI userinterface 代码放在ARX工程中DBX独立存在 ARX依赖于DBXARX加载DBX 19 代理对象 当自定义实体的定义模块没有加载时 用代理实体来管理用户自定义实体 两类代理对象 AcDbProxyObject andCustomEntities AcDbProxyEntity 被 PROXYSHOW 和 PROXYGRAPHICS 两个系统变量控制 20 自动加载和按需加载 Acad rx Acad lsp acad dvbRegistryStartupProxyDetectionApploaddialog Ldswitch 21 用其它开发语言访问自定义实体 在VBA程序中访问自定义对象MakesureCOMwrapperisregisteredCallAddCustomObjectmethod在 Net编程方式中访问自定义实体mixed managed NETWrapperUsethe NETwrapperclasstoinstantiateandmanageADNWhitepaper TutorialtocreatemanagedwrappersforcustomARXfunctionsandobjects 22 Tipsandtricks 不要在worldDraw和viewPortDraw中以写的方式打开实体进行修改自定义实体的数据Fewotherclassesshouldbeavoided eg AcDb2dPolyline AcDbVertex Ref OARXHelp 避免访问AutoCAD特殊功能 如环境和系统变量 23 自定义实体的局限 实现和维护稍复杂些End User不喜欢弹出代理实体对话框 24 实际创建一个自定义实体 仍选其一一个三角形一个矩形宽度不变的圆环 25 自定义实体总结 全方面用户自定义的对象 26 几何类 27 几何类 AcGe库 AcGe库是一个纯数学的库 提供几何运算功能 与AcDbDatabase无关 但也被AcDb和AcGi库中函数使用包括点 直线 曲线 表面等相关的类 常用的二维几何类有AcGePoint2d AcGeVector2d AcGeEntity2d AcGeLinearEnt2d 常用的三维几何类有AcGePoint3d AcGeVector3d AcGeEntity3d 表示公差类AcGeTol 28 29 AcGe库的功能 点和向量求矢量间的夹角 判断是否同向 是否平行 是否垂直 矩阵变换 加减乘除等运算 通过angle 函数可以得到矢量的角度线 线求交点 是否平行 求垂线 点是否在线上面公差浮点型数据的比较的需要转换矩阵坐标转换和空间变换时需要 30 一个应用几何类进行计算的实例 ARXAcGe 31 用户界面 32 内容 ObjectARX应用程序中资源管理以及使用MFC 模态对话框和非模态对话框的创建方法 AcUi和AdUi的介绍和使用方法 33 资源问题 什么是资源 rc文件中的内容 包括菜单 对话框 工具条 为什么需要资源管理 AutoCAD有自己的资源ARX程序中也有资源程序的默认资源从哪里加载 34 资源管理 管理资源的切换类CAcModuleResourceOverride ARX命令 35 非模态对话框 让对话框能让用户输入操作响应AutoCAD定义的一个消息 ifndefWM ACAD MFC BASE defineWM ACAD MFC BASE 1000 endif ifndefWM ACAD KEEPFOCUS defineWM ACAD KEEPFOCUS WM ACAD MFC BASE 1 endifonAcadKeepFocus 36 AdUi和AcUi的介绍和使用 用来建立与AutoCAD界面风格一致的控件库CAdUi类可用于任何应用程序于任何Autodesk产品的交互作用CAcUi类派生于CAdUi类 并专用于AutoCAD 37 如何使用AcUi库 例题说明 classAsdkAcUiDialogSample publicCAcUiDialog AFX DATA AsdkAcUiDialogSample enum IDD IDD DIALOG1 CAcUiSymbolComboBoxm ctrlRegAppComboBox CAcUiListBoxm ctrlBlockListBox CAcUiPickButtonm ctrlPickButton CAcUiPickButtonm ctrlAngleButton CAcUiAngleEditm ctrlAng
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土石方挖掘机司机创新实践考核试卷含答案
- 劳务经纪人冲突管理知识考核试卷含答案
- 肥皂制造工风险评估模拟考核试卷含答案
- 鼓类乐器制作工安全防护强化考核试卷含答案
- 氯氢处理工冲突管理水平考核试卷含答案
- 钢材热处理工安全宣教测试考核试卷含答案
- 大血管术后循环系统并发症护理
- 2026班导生面试题库及答案
- 2026百色疫情面试题库及答案
- 媒体聚合发稿平台TOP5测评:AI时代企业营销破局指南
- 2026江苏无锡市锡山区招聘编外人员56人考试备考试题及答案解析
- 西藏自治区拉萨市2025-2026学年高二上学期期末联考语文试题
- 2026年二建市政真题及答案解析
- 2026江西上饶市德兴市补充招聘回村任职大学生50人考试备考试题及答案解析
- 2026广东惠州市惠城区桥西街道办事处招聘党建联络员和社区“两委”班子储备人选11人考试模拟试题及答案解析
- (正式版)T∕CCASC 0057.1-2025 离子膜法烧碱生产安全操作规程 第1部分:盐水精制
- 中国皮炎湿疹类疾病诊疗指南(2026版)
- 慢性病性贫血课件
- 立春二部合唱简谱
- 中医护理在家庭的应用
- 银行会计业务印章培训
评论
0/150
提交评论