类版本控制示例
新参数确定在对象将自身归档时要使用的版本。保存图形时,可以通过调用文件管理器的方法确定要保存到哪个 DWG 版本。目标文件本身不必与文件管理器的版本相同。AutoCAD的早期版本正是这样做的,这导致了以下示例最好描述的问题。ACRX_DXF_DEFINE_MEMBERSdwgVersion() 在发行版 14 中,向 .在 AutoCAD 2000 中,一个名为 的新类派生自 。在 AutoCAD 2000 中使用时,由于版本 13 不知道该成员,因此未写出该成员。如果保存的图形由 Release 14 打开,则 的实例将作为代理加载,因为 Release 14 不包含此类。当 an 成为代理时,AutoCAD 将保留该级别以下的所有数据作为“代理数据”保持不变,并且不会更改。当图形在版本 14 中保存时,数据将在读入时转储回 DWG 文件。结果是 Release 14 DWG 文件,该文件的实例缺少数据。使用 AutoCAD 2000 或更高版本读取此图形时,AutoCAD(具体为 )会查找该数据成员,因为文件管理器指示图形是版本 14,并且数据成员应存在于 R14 图形字典对象中。但是,数据不存在,序列丢失,图形已损坏。mTreatElementsAsHardAcDbDictionaryAcDbDictionaryWithDefaultAcDbDictionaryacdbSaveAsR13()mTreatElementsAsHardacdbSavedAsR13()AcDbDictionaryWithDefaultAcDbObjectAcDbObjectAcDbDictionaryWithDefaultmTreatElementsAsHardAcDbDictionary::dwgInFields()mTreatElementsAsHard 这并不特定于 。ObjectARX 或第三方引入的新类可能会遇到此问题,尤其是当它们的某个超类更改了数据时。AcDbDictionaryWithDefault 父主题: |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-3-5 18:06
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.