Teamcenter学习平台正式上线(https://www.plmvision.top),安装配置实施开发源码仓库,全套学习教材!关注公众号发送“二维码“咨询加入!
在复杂产品的 BOM 管理中,BOM 树不再是静态的清单,而是一个包含逻辑判断的“方程组”(150% BOM)。
一、 数据模型:配置项的对象化 (Object-Based)
1. 变型字典 (Variability)
Option Family (族) :相当于变量名。例如 Color, Engine_Type。Option Value (值) :相当于变量的具体取值。例如 Red, V8。
优势 :即使你把 “Red” 改名为 “Scarlet”,所有引用该选项的几万行 BOM 和规则都不需要修改,因为 PUID 没变。
2. 也是对象的约束 (Constraint Rules)
Inclusion Rule (包含) :IF A THEN B。Exclusion Rule (互斥) :IF A THEN NOT B。Availability Rule (有效性) :控制选项在特定时间或特定项目中是否可见。

二、 核心算法:Solver (求解器) 与前向推理
1. 求解器的介入时机
2. 前向推理 (Forward Chaining)
用户操作 :手动勾选 V8。Solver 计算 :
检测到 V8 状态变为 True。 扫描所有关联约束,命中包含规则。 自动推导:将 Transmission=Auto 的状态强制设为 True,并将其 UI 状态锁定(System Set)。
3. SAT (Satisfiability) 问题
三、 变型条件在数据库的存储
1. Variant Expression (变型表达式)
为什么不用文本? 解析文本太慢。为什么用 BDD? BDD 将逻辑运算转化为图的遍历。判断一行 BOM 是否显示,只需要在这个图上跑一遍路径,速度极快。
2. 150% BOM 的展开逻辑
Input :用户选择的 Option Value List(实际上是 PUID List)。Process :
遍历每一行 BOM。 提取该行的 Variant Expression BLOB。 将用户的 Input 代入 Expression 进行求值。
Result = True -> 保留该行。 Result = False -> 隐藏该行。