在 Mechanical SDK 中开启“编辑器”模式

您可以通过两种方式使用 Mechanical SDK:“启用器”模式或“编辑器”模式。您使用的方法通常取决于您是想按原样使用现有机械文件和对象,还是将其转换为当前版本。

默认模式是“启用器”,它按原样读取和渲染包含机械实体的数据库,不进行验证检查或创建附加对象。旧版本的文件在启用器模式下可能会渲染不正确,因为 Mechanical SDK 不会将所有对象转换为当前的机械版本(这主要适用于符号标准的不同修订版)。使用此模式不需要特殊操作——只需加载机械模块即可。

另一种模式是“编辑器”,它提供与机械对象交互的完整功能:创建、编辑、删除、保存到不同版本等。如果使用此模式,文件读取期间的所有对象都将转换为最新的机械版本。还会创建基本集中缺失的对象,以便正确操作机械数据库。要在此模式下使用 Mechanical SDK,您必须创建 OdDbDatabaseMech 数据库对象,而不是 OdDbDatabase 对象。

切换模式的功能在 20.8 版本中添加。

示例

在 Mechanical SDK 代码示例中,MyServices 类(通过中间层继承自 OdDbHostAppService 类)用于模块的特定操作。OdDbHostAppService 有一个特殊的 databaseClass() 方法,用于数据库创建。因此,如果您想在“编辑器”模式下使用 Mechanical SDK,只需覆盖 databaseClass() 方法,它将返回新数据库的静态 OdRxClass 描述。

class MyServices : public ExSystemServices, public ExHostAppServices
{
protected:
  ODRX_USING_HEAP_OPERATORS(ExSystemServices);
public:
  virtual OdRxClass* databaseClass() const
  {
    return OdDbDatabaseMech::desc();
  };

接下来,创建一个服务对象,对其进行初始化,然后创建一个数据库。

// create MyServices object
OdStaticRxObject svcs;

//init ODA Platform
odInitialize(&svcs);

// load Mechanical modules
LoadTeighaMechanicalModules(false);

// next code creates an OdDbDatabaseMech object that allows you to use Mechanical SDK // in “editor” mode
OdDbDatabasePtr pDb = svcs.createDatabase(true, OdDb::kMetric);
pDb-> …

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用