使用 ODA Drawings SDK 导出为 JSON 格式

需要 JSON 格式的数据?ODA Drawing SDK 可以将数据库视图中的数据导出为 JSON 格式。该格式是使用名为 Three.js 的 JavaScript 库应用的。

使用命名空间 TD_THREEJSJSON_EXPORT 中的 Drawings SDK 的 ThreejsJSONModule 类:

OdResult exportThreejsJSON(OdDbBaseDatabase *pDb, OdStreamBuf *pOutStream, const ODCOLORREF &background, bool bFacesEnabled = false);

输入参数:

  • background – 场景背景颜色。
  • bFacesEnabled – 如果为 true,pDb 将以面导出到 JSON,否则仅以线和点导出。

输出参数:

  • pOutStream – 输出流(文件流、内存流)。

返回值:

  • eOk 表示成功,或 OdResult 错误代码。

如果方法结果为 eOk,pOutStream 将包含 JSON 格式的文本,其中包含四个对象:

  • 元数据的 JSON 对象。
  • 点、线和网格材质的 JSON 数组。
  • 包含数据数组的几何体 JSON 数组。点和线的几何体包含顶点和空面数组;网格的几何体包含顶点、法线、颜色和面数组(数组的数量取决于面元素的第一个索引,其中包含位掩码)。
  • 对象(例如场景图)的 JSON 数组,根节点处有一个场景对象。此树的第二层包含具有默认类型 Object3D 的相机和图层。相机对象可能包含一个灯光对象。图层可能包含具有默认类型 Object3D 的点、线、网格或图元文件对象,Object3D 是原始类型对象的根节点。

转换为 Threejs JSON 格式的缺点是,如果原始对象有多个相机对象,则无法使用相机的矩阵更改对象的坐标。

请记住,在 JSON 格式中,数据集与场景图以及几何体和材质数组一起存储。在 JavaScript 中必须配置在图层上显示和禁用对象类型(例如,将面显示为网格或等值线)。

以下示例显示了在 ODA Viewer 中打开并转换为 Threejs JSON 格式的 2D 和 3D 对象。

ODA Viewer 中的 2D 对象:

image1

Threejs JSON 中的 2D 对象:

image2

ODA Viewer 中的 3D 对象:

image3

Threejs JSON 中的 3D 对象:

image4

 

今天就开始行动

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

免费试用