用 Python 驱动 Genesis2000:把 CAM 工程师的重复劳动写成一行代码
摘要:本文分享一套面向 PCB CAM 工程师的免费公开课《用 Python 驱动 Genesis2000》。它从一个真实生产环境中的 Python 封装包出发,讲透为什么选 Python、通信链路怎么建、查询与命令如何封装、业务与通知如何闭环。十集视频、零基础可学、每一行代码都有出处。

一、这个项目解决什么问题
CAM 工程师每天都要面对大量重复劳动:上料号、查料号信息、做拼板、通知出货……这些操作在 Genesis 里点几下就能完成,但每天重复几十遍,就成了负担。
更麻烦的是,很多环节还要对接外部系统的数据——比如去 ERP 里取板边参数——手动查询、手动录入,既慢又容易出错。
Genesis 本身为自动化提供了完备的基础设施:
- 脚本录制:图形界面的每一步操作都对应一条命令,可以录下来
- 脚本面板:录制好的脚本可以直接运行、编辑
- hooks 钩子:在特定事件执行前后,自动调用你写的脚本
但外部系统对接、复杂业务判断这些事,靠录制解决不了——该写脚本的时候,还是要写脚本。这个项目就是教你怎么写。
二、为什么是 Python(而不是 C-Shell / Perl)
先说一个关键的认知:语言不是 Genesis 限定的。Genesis 开放了通信协议——通过标准输入输出发送指令、读取应答,协议不依赖具体语言。任何语言,只要实现与 Genesis 的通信代码,都能驱动它:C-Shell 可以,Perl 可以,Python 当然也可以。
那为什么选 Python?四个理由:
| 理由 | 说明 |
|---|---|
| ① 通信协议开放,语言自选 | 协议是开放的,选择权在开发者手里 |
| ② 生态集成 | 自动化不只是和 Genesis 交互——要连 ERP 数据库(pymssql / pymysql)、要弹界面(PyQt5)、要调公司接口(requests)、要发邮件(SMTP)。Python 生态里这些全是成熟方案,装上就能用 |
| ③ 可读、可维护、可调试 | 脚本是代码,写一次跑很多年,出 bug 要修。Python 语法结构清晰、工具链成熟,复杂的业务逻辑也能写得很清楚 |
| ④ 人和团队 | 脚本不只是给自己看,也是给同事看的。Python 学习成本低,同事接手快——一个工具的价值,取决于有多少人能用它 |
三、四层架构:一个封装包的全貌
这门课的内容载体,是一个真实生产环境中的 Python 封装包 py3_package。它的核心结构是四层:
┌─────────────────────────────────────────┐
│ Main 主类 —— 所有脚本的入口 │ ← 入口层
├─────────────────────────────────────────┤
│ MainLCM —— 命令封装 │ ← 命令层(约 120 个操作命令)
│ MainInfo —— info 查询 │ ← 查询层
├─────────────────────────────────────────┤
│ InCAM 类 —— 与 Genesis 通信 │ ← 通信底层
└─────────────────────────────────────────┘
↓ 周边支撑
料号信息 · 拼板 · 数据库 · 外部接口 · GUI 交互
先看一个最小示例——三行代码,完成一次「查询料号是否打开」:
from Main import Main # 第一行:导入 Main 类
Do = Main() # 第二行:创建 Do 对象
# (此时只是准备通信,还没有任何数据传输)
print(Do.isjobopened("xxx")) # 第三行:调用封装好的方法
# 真正的通信,发生在每次调用方法时
四、一条命令的一生:通信链路怎么走
这三行代码背后发生了什么?把 isjobopened 的调用拆开看:
- 拼帧:把方法参数拼成 Genesis 认识的命令串,比如
COM,is_job_open,job=xxx - 通信:交到底层 COM 通信通道
- 写入:底层给命令加上协议前缀,写进标准输入
- 应答:Genesis 执行后把结果写回标准输出,脚本读取状态
- 解析:应答文本是
yes,就返回成功
这就是全系列的技术底座——第一集看懂一条命令的一生,后面每一集都是在这条链路上盖楼。
五、课程大纲:十集,从协议到实战
| 集数 | 主题 | 时长 | 内容 |
|---|---|---|---|
| 01 | 为什么用 Python 驱动 Genesis | 06:09 | 整体图景:四层架构与最小示例 |
| 02 | InCAM 类——看懂通信链路 | 10:32 | 通信底层:协议与查询通道 |
| 03 | MainInfo——info 查询 | 07:38 | 查询层:实体层级与中文类别 |
| 04 | MainLCM——命令封装 | 07:43 | 命令层:四步套路与四组命令 |
| 05 | Main 主类——所有脚本的入口 | 05:08 | 入口层:映射表与集中配置 |
| 06 | JobClasses——料号信息获取 | 07:55 | 业务层:ERP 聚合与规则外化 |
| 07 | GuiClasses——脚本与操作员对话 | 04:50 | 交互层:弹窗表单与人机协作 |
| 08 | 数据库——业务库与配置库 | 06:22 | 数据层:远程业务库与本地配置库 |
| 09 | 外部接口与辅助模块 | 05:22 | 外围层:通知送达与产出校验 |
| 10 | 实战整合——完整自动化流程 | 05:27 | 收官实战:六步串联全系列 |
十集共约 61 分钟。课程里出现的调用方式,全部摘自封装包文档中的真实使用示例,比如:
sql.exec_query(sql) # 查库
Gui.warningbox(mess='...') # 弹窗
WeChatMessage().send_text_message(...) # 企微通知
Do.dataoutput(...) # 输出数据
每个功能一行调用,看一遍就知道脚本该怎么写。
六、这门课怎么学
- 零基础可学:没写过 Python 也没关系,每集只讲一个模块,先讲「为什么」,再讲「怎么用」
- 代码全貌:关键代码完整展示,不是片段截图
- 逐字字幕:每句话都配卡拉OK式逐字字幕,看得清跟得上
- 配套讲义:每集都有独立讲义页,可随时回查
- 代码有出处:全部教学内容基于真实生产代码,每一行都标得出处


课程入口:https://www.binwindai.com/course/genesis-python/
七、关于我们
本课程由零壹AI工作室(零壹人工智能应用软件工作室)出品。工作室专业从事 PCB 工程 CAM 自动化系统开发与维护、工业级 Linux 部署、私有化 AI 大模型部署、本地知识库搭建、SD 及 ComfyUI 部署服务。
原创声明:本文为作者原创,转载请注明出处。
6686

被折叠的 条评论
为什么被折叠?



