Teigha Mechanical:创建 BOM 表

物料清单 (BOM) 是一个包含所有零件和组件及其相应数据和属性的表格。其逻辑表示是一个带有行的表格,每行代表一个零件或组件。

创建 BOM 表格有三种方式:

  • 主 BOM 表 — 针对所有模型空间的 BOM 表。
  • 装配 BOM 表 — 针对包含子组件的组件的 BOM 表。
  • 边框 BOM 表 — 针对标题边框、块参照的 BOM 表。

为装配和主 BOM 创建 BOM 表签名:

OdResult createBomTable(OdDbObjectId& aNewBomTableId, const OdDbObjectId targetId, const OdString& name, bool addToBrowse, OdDbDatabase * pHostDb);

创建主 BOM

在大多数情况下,主 BOM 最适合一般用途。您可以使用 BOM 管理器创建它,BOM 管理器是一项允许您处理零件和组件并创建 BOM 表的服务。

首先,创建一个 BOM 管理器服务类:

AcmBOMManagerPtr pBomMng = getAcmBomMgr();

然后使用以下参数调用 AcmBOMManager::createBomTable 方法:

  • aNewBomTableId — 新 BOM 的 OdDbObjectId。
  • targetId — 目标对象的 OdDbObjectId。对于主 BOM,传递空 ID — OdDbObjectId::kNull。
  • Name — 带有 BOM 表名称的 OdString 对象(“MAIN”即可)。
  • pDb — 数据库指针。
OdDbObjectId newBomTbl;
pBomMng->createBomTable(newBomTbl, OdDbObjectId::kNull, L"MAIN", true, pDb);

创建装配 BOM

装配是一种特殊的组件,它包含其他(折叠的)组件。在这种情况下,装配的 BOM 也可以使用 AcmBOMManager::createBomTable 方法创建,但参数不同。应将组件定义对象作为 targetId 参数传递,而不是 OdDbObjectId::kNull(用于主 BOM)。

获取组件定义:

OdDbObjectId compDefObjectId = pDb->getOdDbObjectId(compDefHandle);

然后使用参数和组件定义 objectId 作为 targetId 调用 AcmBOMManager:

pBomMng->createBomTable(newBomTbl, compDefObjectId, L"MAIN", true, pDb);

创建边框 BOM

标题边框是定义图纸边界的边框。标题在数据库中以 BlockReference 的形式表示,它引用 BlockTableRecord。标题边框可以有自己的物料清单表。边框 BOM 表有一个特殊功能:它只为位于标题边框内的组件创建 BOM 条目(BOM 行)。在这种情况下,边框的 BOM 可以使用 AcmBOMManager::createBorderBomTable 和以下参数创建:

OdResult createBorderBomTable(OdDbObjectId& aNewBomTableId, const OdDbObjectId borderId, OdString name = "", bool populate = false);
  • aNewBomTableId — 新 BOM 的 OdDbObjectId。
  • targetId — 目标 blockReference 的 OdDbObjectId。
  • Name — 带有 BOM 表名称的 OdString 对象(如果为空,将使用默认名称)。
  • populate — 允许为 BOM 创建 BOM 行的布尔标志。

获取 blockReference:

OdDbObjectId borderId = pDb->getOdDbObjectId(borderHandle);

然后使用参数和 blockReference objectId 作为 targetId 调用 AcmBOMManager:

OdDbObjectId newBomTbl;
pBomMng->createBorderBomTable(newBomTbl, borderId, "", true);

创建 BOM 时的数据库更改

创建BOM后,一些新对象会添加到数据库中。在AcmDictionary中,折叠的AcmBomRow对象会添加到字典“AcmBOM”AcmBom对象中。

image1

AcmDictionary状态

今天就开始行动

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

免费试用