深层克隆函数复制对象及其所有权引用。将忽略任何指针引用。wblock 克隆函数复制硬所有者和硬指针,并忽略软引用。除了复制拥有对象的层次结构之外,深层克隆函数和 wblock 克隆函数还处理克隆对象的引用,并在必要时将引用转换为指向新对象。 要启动克隆操作,请使用以下函数之一: AcDbDatabase::deepCloneObjects() AcDbDatabase::wblock() AcDbDatabase::insert() AcDbDatabase::deepCloneObjects()仅支持在单个数据库中克隆。如果需要在数据库之间克隆对象,请使用其中之一或两者的组合(例如,克隆到临时数据库,然后将该数据库克隆到现有目标数据库中)。wblock()insert()wblock()insert() 使用时,仅插入到已构建的目标数据库。通过使用构造函数参数 ofor 生成新数据库,可以使用构造函数参数 ofor 生成一个空的新数据库,然后调用它来填充它,从而获得完全构建(并且可能完全填充)的目标数据库。AcDbDatabase::insert()Adesk::kTrueAdesk::kFalseAcDbDatabase::readDwgFile() 一般来说,要使用,AcDbDatabase::deepCloneObjects() AcDbDatabase::wblock(),或函数 在代码中,您不需要知道对象 ID 映射是如何填充的,或者深度克隆的每个阶段到底发生了什么。如果要创建一个新类,并且想要覆盖AcDbDatabase::insert()AcDbObject::deepClone() AcDbObject::wblockClone()函数中,您需要熟悉这些函数的详细信息,这些详细信息在为自定义类实现 deepClone() 中进行了描述。 不应直接在应用程序代码中的自定义对象上调用 TheandFunctions。它们仅作为来自更高级别的克隆操作的链的一部分进行调用。AcDbObject::deepClone()AcDbObject::wblockClone() |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:24
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.