在非标自动化设备设计领域,完成一套复杂机械结构的设计只是万里长征的第一步。紧随其后的,往往是BOM(物料清单)的整理与核对——一项看似基础,实则耗时、枯燥且极易出错的“苦差事”。尤其当BOM条目成百上千,需要人工区分标准件(如螺栓、轴承、气缸、传感器等)和加工件(如定制支架、板材、轴套等),并进一步生成采购清单和加工清单时,资深工程师们往往会感到效率瓶颈。每一次设计修订,都意味着这一繁琐流程的重复,严重挤占了我们本该投入到核心设计优化上的宝贵时间。

告别“BOM地狱”:N8N自动化处理非标BOM实战

针对上述痛点,我们可以引入N8N——一个强大的开源自动化工作流工具,将其与我们的工程流程结合,实现BOM处理的自动化。这不仅能极大提升效率,更能解放工程师的双手和大脑,让他们专注于更高价值的创新工作。

核心思路:结构化数据摄入与智能分类

我们的目标是:将CAD/PLM系统导出的原始BOM Excel表格,通过N8N进行自动化读取、分类、整理,最终生成分类清晰的采购清单和加工清单,并通过企业IM工具(如飞书、钉钉)即时推送给相关部门。

详细操作步骤

  1. 数据源准备:标准BOM Excel表格
    确保你的BOM表格结构统一,至少包含以下关键列:零件代号零件名称数量备注
    例如:

    零件代号 零件名称 数量 备注
    GB/T70.1 M6*16 内六角螺钉 M6*16 20 标准件,SUS304
    ZJ-001-01 主机架板 1 加工件,Q235,激光切割
    THK HSR20 导轨滑块 HSR20 4 标准件,日本THK
    GYZ-002-03 连杆臂 2 加工件,AL6061,CNC
  2. N8N工作流搭建

    • Read Excel File 节点:数据入口

      • 配置此节点读取你的BOM Excel文件。指定工作表名称(通常是第一个),确保正确解析列头。N8N会将Excel的每一行转换为一个JSON对象,方便后续处理。
      • 技巧: 如果Excel文件命名不规范,可以使用List Files in Folder节点获取最新文件路径,再传递给Read Excel File
    • Split In Batches 节点(可选但推荐):批量处理,优化性能

      • 对于大型BOM,可以设置批量处理,例如每次处理50-100条BOM数据,避免内存溢出,并提高处理效率。
    • If 节点:核心判断逻辑

      • 这是区分标准件和加工件的关键。我们需要基于零件代号零件名称列的内容进行判断。
      • 判断条件构建:
        • 识别标准件:
          • 使用 String ContainsRegular Expression
          • 关键词库: 维护一个常用标准件代号或品牌关键词列表。例如:
            • GB/T (国标)
            • ISO (国际标准)
            • DIN (德国标准)
            • JIS (日本标准)
            • 品牌名称:SMCFestoMisumiTHKHIWINPanasonicOmronSick 等。
            • 通用部件词:轴承螺钉螺母气缸传感器电机减速机 等。
          • 逻辑表达式示例:
            1
            {{$json.零件代号 && ($json.零件代号.includes('GB/T') || $json.零件代号.includes('ISO') || $json.零件代号.includes('DIN') || $json.零件代号.includes('JIS')) || $json.零件名称 && ($json.零件名称.includes('轴承') || $json.零件名称.includes('螺钉') || $json.零件名称.includes('SMC') || $json.零件名称.includes('THK'))}}
        • 识别加工件:
          • 如果上述标准件条件不满足,则默认为加工件。这是If节点的“Else”分支。
          • 更严谨的做法是,加工件通常有内部编码规则(如项目代号-序号),可以将其作为补充判断条件:
            1
            {{$json.零件代号 && ($json.零件代号.startsWith('ZJ-') || $json.零件代号.startsWith('GYZ-'))}}
          • 最终的If节点分支将是:True (标准件) 和 False (加工件)。
    • 数据清洗与整理(SetCode 节点):

      • 标准件分支: 提取采购所需信息,如零件名称零件代号数量备注,并可能增加采购类型(如“标准件采购”)。
      • 加工件分支: 提取加工所需信息,如零件代号零件名称数量。对于材料加工工艺,可以尝试从备注字段中通过正则匹配提取,或要求设计工程师在BOM中规范填写。同样可增加采购类型(如“加工件询价”)。
      • 可以对数据进行重命名、格式化等操作,确保输出的JSON结构符合后续节点的预期。
    • 数据聚合与输出(MergeAggregate 节点):

      • 将所有处理后的标准件数据聚合到一个列表中,形成“标准件采购清单”。
      • 将所有处理后的加工件数据聚合到一个列表中,形成“加工件询价/加工清单”。
    • Webhook 推送(WebhookLark/DingTalk 节点):即时通知

      • 配置飞书/钉钉的Webhook URL。
      • 构建JSON格式的推送内容。例如,将聚合后的清单转换为Markdown或富文本格式,发送到指定的群聊或机器人。
      • 飞书/钉钉机器人消息体示例 (JSON):
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        {
        "msg_type": "interactive",
        "card": {
        "config": {
        "wide_screen_mode": true
        },
        "elements": [
        {
        "tag": "div",
        "text": {
        "content": "**新BOM处理完成通知**\n项目名称:[手动填写或从Excel中提取]\n设计日期:{{new Date().toLocaleDateString('zh-CN')}}",
        "tag": "lark_md"
        }
        },
        {
        "tag": "hr"
        },
        {
        "tag": "div",
        "text": {
        "content": "**标准件采购清单:**\n```json\n{{JSON.stringify($node["标准件列表"].json, null, 2)}}\n```",
        "tag": "lark_md"
        }
        },
        {
        "tag": "hr"
        },
        {
        "tag": "div",
        "text": {
        "content": "**加工件询价清单:**\n```json\n{{JSON.stringify($node["加工件列表"].json, null, 2)}}\n```",
        "tag": "lark_md"
        }
        }
        ]
        }
        }
        注: 实际操作中,你会将$node["标准件列表"].json等替换为更美观的Markdown表格或循环渲染的列表,以便在IM工具中清晰展示。

价值升华:从“苦力”到“工具思维”的飞跃

这种自动化工作流的建立,不仅仅是节省了几小时的BOM整理时间。它代表的是一种工具思维对传统苦力型工作的降维打击。当我们的同行还在为Excel表格的数据筛选和复制粘贴焦头烂额时,我们已经通过N8N这样的工具,将这些重复劳动自动化,从而将精力聚焦于以下高价值任务:

  1. 更专注于设计优化: 从繁琐的事务中解放,有更多时间思考结构、材料(如SUS304, Q235, AL6061)、公差配合与工艺(激光切割, CNC加工)的改进。
  2. 缩短项目周期: BOM处理效率的提升直接加速了采购和制造环节,整体项目交付周期得以缩短。
  3. 减少人为错误: 自动化流程减少了手动操作,极大降低了漏项、错项的风险。
  4. 数据标准化: 强制BOM数据以统一格式处理,为后续ERP/MES系统集成打下基础。
  5. 跨界能力展示: 掌握N8N这类自动化工具,是机械工程师软实力的体现。这不仅能提升个人在团队中的价值,更能吸引那些寻求高效率、高智能解决方案的潜在客户和行业头部企业。

别再做数据的搬运工了。作为新时代的机械工程师,我们不仅要懂三维设计、有限元分析,更要善用自动化工具。将数字时代的利器融入传统工程实践,这才是我们赢得未来竞争的关键。自动化BOM处理,只是一个开始。