我要训练神经网络可以识别solidworks哪个面和哪个面之间会出现标注

点击链接加入群聊【solidworks神经网络自动标注小白群】:https://qm.qq.com/q/ymo3ydyZkQ

训练一个神经网络来识别 SolidWorks 中哪些面之间会出现标注(即预测"智能尺寸"或 DimXpert 的标注逻辑),是一个非常有挑战性但也极具应用价值的任务。这本质上是一个基于3D几何特征和工程语义的图神经网络(GNN)或点云深度学习问题

目前并没有公开的、直接针对"SolidWorks 标注逻辑"的现成数据集,因为这是 SolidWorks 内部基于规则(Rule-based)和启发式算法(Heuristics)的核心功能(如 DimXpert 和 Smart Dimension)。

要完成这个任务,你需要遵循以下技术路线:

1. 核心难点分析

  • 非公开算法:SolidWorks 的自动标注逻辑(DimXpert)是基于 ASME Y14.41 和 ISO 16792 标准的复杂规则系统,并非简单的统计规律。它依赖于特征识别(孔、槽、凸台)、基准参考框架(DRF)和设计意图。
  • 数据获取困难:没有公开的"模型-标注对"数据集。你需要自己构建。
  • 输入表示 :神经网络无法直接读取 .SLDPRT 文件。你需要将 B-Rep(边界表示)数据转换为网络可接受的格式(如点云、体素、或面邻接图)。

2. 数据集构建策略(最关键的一步)

既然没有现成数据,你必须通过自动化脚本从现有模型中生成数据。

  • 数据源
    • GrabCADTraceParts 等网站上有数百万个免费的 SolidWorks 模型。
    • 企业内部的历史模型库(包含已标注的工程图或 MBD 模型)。
  • 数据采集方法(使用 SolidWorks API)
    • 编写 C# 或 Python (pywin32) 脚本,批量打开模型。
    • 提取几何信息:遍历所有面(Face),记录其类型(平面、圆柱面、圆锥面等)、法向量、面积、相邻边、拓扑连接关系。
    • 提取标注信息(Ground Truth)
      • 利用 IDimXpertFeature 接口读取现有的 DimXpert 尺寸。
      • 或者读取工程图中的尺寸(IDimension),反向追踪其引用的面(GetEntities)。
    • 构建样本对 :对于每一个存在的尺寸,记录 (Face_A, Face_B, Dimension_Type) 作为正样本。
    • 负采样:随机选择未标注的面组合作为负样本(需注意类别平衡)。

3. 模型输入表示 (Representation Learning)

你需要将 CAD 模型转换为张量。推荐以下几种方式:

  • 方案 A:面邻接图 (Face Adjacency Graph, FAG) + 图神经网络 (GNN) ------ 最推荐
    • 节点 (Node):每个面是一个节点。特征包括:面类型 (One-hot)、面积、曲率、法向量 (x,y,z)、是否被选为基准等。
    • 边 (Edge):如果两个面共享一条边或存在几何关系(平行、垂直、同轴),则连边。边特征包括:夹角、距离、边的凸/凹性。
    • 任务:链接预测 (Link Prediction)。预测哪两个节点之间应该有一条"尺寸边"。
  • 方案 B:点云 (PointNet++ / DGCNN)
    • 将模型表面采样为点云,每个点附带法向量和曲率。
    • 缺点:丢失了精确的拓扑连接信息,对于判断"同轴度"或"对称面"较难。
  • 方案 C:体素网格 (Voxel Grid) + 3D CNN
    • 将模型体素化。
    • 缺点:分辨率受限,计算量大,难以捕捉微小的倒角或孔特征。

4. 网络架构建议

  • 骨干网络 :使用 Graph Neural Networks (GNN) ,如 GraphSAGE, GAT (Graph Attention Network), 或专门针对 CAD 设计的 UV-Net (基于 B-Rep 的神经网络)。
    • 参考论文: "UV-Net: Learning from Boundary Representations" (CVPR 2021),它可以直接处理 B-Rep 数据,非常适合此类任务。
  • 输出层
    • 二分类头:判断 Face iii 和 Face jjj 之间是否有尺寸。
    • 多分类头:如果有尺寸,是什么类型(线性距离、角度、直径、半径等)。

5. 替代方案:模仿学习 (Imitation Learning) vs 规则逆向

如果你的目标仅仅是"复现"SolidWorks 的功能,而不是发现新的标注逻辑,纯深度学习可能不是最高效的

  • 路径 1:逆向工程规则(专家系统)
    • SolidWorks 的逻辑很大程度上是确定性的。例如:"两个平行的圆柱面 -> 标注距离","一个圆柱面 -> 标注直径"。
    • 你可以尝试通过大量数据分析,提取出这些高频规则树,用决策树或随机森林即可达到很高的准确率,且可解释性强。
  • 路径 2:利用 SolidWorks MBD API 直接调用
    • 如果你只是想在软件里实现自动标注,直接使用 DimXpertManagerAutoDimensionScheme 功能即可,无需训练神经网络。
    • 代码思路 : swDimXpertMgr.AutoDimensionScheme(swDimXpertSelectionEnum.swDimXpertSelAllFeatures, ...)

6. 实施步骤总结

  1. 环境准备:安装 SolidWorks,配置 C# 或 Python API 开发环境。
  2. 数据爬取与清洗:下载 1000+ 带有完整标注的零件模型(最好是使用了 DimXpert 的 MBD 模型)。
  3. 特征提取器开发 :编写脚本导出每个模型的 JSON 数据:{faces: [...], edges: [...], dimensions: [{face_id_1, face_id_2, type}]}
  4. 图构建 :将 JSON 转换为 PyTorch Geometric 的 Data 对象。
  5. 模型训练:搭建 GNN 模型进行链接预测训练。
  6. 验证:在未见过的模型上测试,对比网络预测的尺寸与 SolidWorks 自动生成的尺寸是否一致。

关键参考文献与资源搜索建议

建议在学术数据库(Google Scholar, IEEE Xplore)搜索以下关键词获取具体网络结构代码:

  • "B-Rep deep learning"
  • "CAD feature recognition neural network"
  • "UV-Net CAD"
  • "Engineering drawing dimensioning automation machine learning"

注意 :目前工业界更多是将 AI 用于特征识别 (这是标注的前提),而具体的标注位置选择往往仍结合了硬编码的工程标准规则。建议采用 "AI 识别特征 + 规则引擎生成标注" 的混合架构,成功率会远高于端到端的黑盒神经网络。

相关推荐
七灵微3 分钟前
【AI】代码实战- 基于时间序列的轴承检测1
人工智能·机器学习·ai·pandas·matplotlib
OFIRM碳基硅基10 分钟前
西游金蝉劫 IP · 之 《金蝉子前传渡缘劫》电影 20 亿票房触发 · 项目专项扶持协议 总览 拉格朗日光影动画-西游金蝉劫项目组
大数据·人工智能·西游金蝉劫·蝎子精·蝎子精女妖王·金蝉子前传渡缘劫
银空飞羽19 分钟前
职型求职工具实测:把简历分析、岗位匹配和定向优化串成一条求职链路
人工智能·经验分享·面试·职场和发展·跳槽·求职招聘·创业创新
ChaITSimpleLove21 分钟前
AI时代 “本体” 的 “标准化” 定义
人工智能·dsl·rdf·ontology·ai本体·json-ld
FL162386312926 分钟前
基于YOLOv8的智慧校园人脸识别和公路汽车检测项目源码+训练好的模型
人工智能
进化矩阵29 分钟前
别把指标当目的:当数字开始反噬你
大数据·人工智能·职场和发展·创业创新
万物智能信息科技30 分钟前
电容触摸 FT5406,另一颗芯片、同一条总线—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
人工智能·华为·开源·harmonyos·鸿蒙
doudoudalao32 分钟前
TikTok 带货视频怎么做?AI 一键生成带货视频提示词分享,怎么写出爆款的 AI 带货视频提示词
人工智能
十正33 分钟前
把表变成模型够得着的句柄
人工智能·ai·agent
林浩杨_40 分钟前
港科大(广州)× 南航 × OPPO:DPPMG——个性化多模态生成框架
人工智能