# EZGCodeSIM **Repository Path**: openez/ezgcode-sim ## Basic Information - **Project Name**: EZGCodeSIM - **Description**: 使用GCode控制的一些效果模拟示例, 编译安装后执行./start.sh可打开web服务端浏览器查看 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-28 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ezgcode-sim 纯前端本地仿真演示平台。将 EZGCode 的「仿真 / 激光雕刻机 / 写字机 / 名章 / 切割机 / 亚克力切割 / 点胶机 / 喷涂机」共 8 类演示独立拆分为自包含工程,**不操作任何真实电机、不含登录鉴权、不含 WebSocket**。 > 详细拆分设计见 [docs/split-design.md](docs/split-design.md)。 > > 仓库地址: ## 特性 - **纯前端本地仿真**:G-code 在浏览器内解析并驱动 2D/3D 动画(`sim_gcode.js` + `sim_bridge.js`),不涉及任何后端电机控制。 - **无后端运动接口**:所有应用页移除 `auth.js`、`WebSocket`、真实 `/api/v1/jobs/*` 调用;仿真轨迹由前端本地计算。 - **极简 C 静态服务器**:基于 libuv + llhttp,仅做静态文件托管(无 token、无业务 API),含目录穿越防护。 ## 目录结构 ``` ezgcode-sim/ ├── README.md ├── docs/split-design.md # 拆分设计文档 ├── Makefile ├── src/{main.c, http.c, http.h, static.c, static.h} # C 静态服务器 ├── bin/ezgcode-static # 编译产物 ├── index.html # 导航分发页 (位于 static/index.html, 站点根) └── static/ ├── index.html # 导航分发页 ├── css/ js/ fonts/ imgs/ # 共享资源 (项目内另有自包含副本) └── sim/ ├── cartesian/ corexy/ gantry/ # 纯前端运动学仿真 ├── laser/ write/ seal/ cut/ # 应用仿真演示 ├── acrylic/ dispense/ spray/ # 应用仿真演示 └── welder/ # EZRobot 焊接机械手演示 # 每个项目目录: index.html + css/ + js/ + img/ (+ fonts/) ``` ## 编译与运行 依赖:libuv、llhttp(系统已提供,Makefile 通过 pkg-config 探测,llhttp 缺失时回退 `-lllhttp`)。 ```bash make # 编译 -> bin/ezgcode-static ./bin/ezgcode-static -p 8080 # 浏览器打开 http://:8080/ ``` 可用 `make run` 直接以 8080 启动;`make clean` 清理产物。 ## 导航 打开根地址即进入导航分发页,点击卡片进入对应演示: | 卡片 | 入口 | | --- | --- | | 仿真 | `sim/gantry/index.html`(含 cartesian / corexy) | | 龙门码垛机械手 | `sim/gantry/index.html` | | 激光雕刻机 | `sim/laser/index.html` | | 写字机 | `sim/write/index.html` | | 名章篆刻 | `sim/seal/index.html` | | 切割机 | `sim/cut/index.html` | | 亚克力切割 | `sim/acrylic/index.html` | | 点胶机 | `sim/dispense/index.html` | | 喷涂机 | `sim/spray/index.html` | | 焊接机械手 | `sim/welder/index.html` | ## 本地仿真桥接 `static/js/sim_bridge.js` 在前端统一接管原电机相关接口: - `send(o)` → `localExec(o)`:解析 G-code 更新坐标并驱动渲染,模拟真实 `resp` 回传推进本地播放链; - `connect()`:空实现(无 WebSocket); - `authCheck(page, afterOk)`:无登录,直接执行 `afterOk`; - `httpFetch(path)`:jobs 接口本地桩(list 返回内置示例,其余返回 ok,不联网)。 ## 截图预览 ### 导航首页 ![导航首页](screenshots/index.png) ### 运动学仿真 | 龙门双驱 | 笛卡尔 | CoreXY | |:---:|:---:|:---:| | ![龙门双驱](screenshots/sim_gantry.png) | ![笛卡尔](screenshots/sim_cartesian.png) | ![CoreXY](screenshots/sim_corexy.png) | ### 应用仿真演示 | 激光雕刻机 | 写字机 | 名章篆刻 | 切割机 | |:---:|:---:|:---:|:---:| | ![激光](screenshots/laser.png) | ![写字](screenshots/write.png) | ![名章](screenshots/seal.png) | ![切割](screenshots/cut.png) | | 亚克力切割 | 点胶机 | 喷涂机 | |:---:|:---:|:---:| | ![亚克力](screenshots/acrylic.png) | ![点胶](screenshots/dispense.png) | ![喷涂](screenshots/spray.png) |