refactor: 移除CLI模块,项目改为纯GUI桌面应用

This commit is contained in:
2026-07-28 14:56:49 +08:00
parent ca436b577b
commit 935665e7e8
7 changed files with 14 additions and 451 deletions
+4 -154
View File
@@ -19,7 +19,7 @@ A1 Swap Mod Packer 是一个开源的 3MF 打包工具,专为 Bambu Lab A1 Swa
## 主要功能
- 拖放式批量打包 GUI。
- 可重复执行的自动化 CLI。
- 简洁高效的桌面 GUI。
- 支持多个 `.3mf` 输入文件。
- 每个文件独立份数。
- 自动从 `Metadata/slice_info.config` 读取并汇总时间和耗材。
@@ -65,24 +65,6 @@ python -m a1_swap_mod_packer.gui
python run_gui.py
```
启动 CLI
```bash
python -m a1_swap_mod_packer.cli --help
```
```bash
python run_cli.py
```
查看版本:
```bash
python -m a1_swap_mod_packer.cli --version
```
## 构建 Windows 可执行文件
仓库包含 Windows 构建脚本:
@@ -102,7 +84,6 @@ build/onefile/
```text
build/onefile/
a1packer.exe
a1packer-cli.exe
gcode_patches.ini
swap_gcode/
x.png 输出预览图示例
@@ -145,10 +126,9 @@ py -3.13 -m venv .venv
build_win.cmd
```
构建脚本执行次 Nuitka 编译:
构建脚本执行次 Nuitka 编译:
- GUI`run_gui.py``build/onefile/a1packer.exe`
- CLI`run_cli.py``build/onefile/a1packer-cli.exe`
GUI 编译启用 PySide6 插件并包含当前界面所需的 Qt 插件组:
@@ -158,22 +138,7 @@ platforms,imageformats,styles,iconengines
### 构建后验证
发布目录前,先确认 CLI 能识别外部资源
```cmd
build\onefile\a1packer-cli.exe --version
build\onefile\a1packer-cli.exe list-swap-gcode
```
第二条命令应列出:
```text
build/onefile/swap_gcode/
```
中的文件。
同时启动一次 `build/onefile/a1packer.exe`,确认:
启动一次 `build/onefile/a1packer.exe`,确认
- 换盘 G-code 下拉框列出已复制的模板。
- 修改 GUI 选项会创建或更新 `build/onefile/settings.json`
@@ -206,7 +171,7 @@ GUI 中使用方法:
## 可编辑 G-code 补丁
GUI 和 CLI 都读取固定补丁文件:
GUI 读取固定补丁文件:
```text
gcode_patches.ini
@@ -375,12 +340,6 @@ gcode_patches.ini
如果预览图缺失或无法读取,打包器保留可用基础预览,仍尝试施加面板标签。
CLI 可通过以下选项禁用预览重写:
```bash
--no-preview-label
```
### 批处理模式
#### 合并模式
@@ -506,112 +465,3 @@ settings.json
- 构建成功后清空输入列表。
- 输出目录。
- 输出文件名规则。
## CLI 使用示例
列出可用的换盘 G-code 文件:
```bash
python -m a1_swap_mod_packer.cli list-swap-gcode
```
单源文件 × 5 份:
```bash
python -m a1_swap_mod_packer.cli build \
--item "SC05720_01.gcode(1).3mf" 5 \
--swap-gcode "a1_swap.gcode" \
--cool-bed 45 \
--wait 45 \
--show-plate-number \
-o "5 Plates - SC05720_01.gcode(1).3mf"
```
多源文件合并输出:
```bash
python -m a1_swap_mod_packer.cli build \
--item "A.3mf" 2 \
--item "B.3mf" 3 \
--swap-gcode "a1_swap.gcode" \
-o "5 Plates - A_and_B.3mf"
```
使用累加元数据模式:
```bash
python -m a1_swap_mod_packer.cli build \
--item "A.3mf" 5 \
--swap-gcode "a1_swap.gcode" \
--metadata-mode sum \
-o "5 Plates - A.3mf"
```
禁用 G-code 补丁:
```bash
python -m a1_swap_mod_packer.cli build \
--item "A.3mf" 5 \
--swap-gcode "a1_swap.gcode" \
--no-gcode-patches \
-o "5 Plates - A.3mf"
```
位置参数输入 + 统一份数:
```bash
python -m a1_swap_mod_packer.cli build \
"A.3mf" "B.3mf" \
--copies 2 \
--swap-gcode "a1_swap.gcode" \
-o "4 Plates - A_and_B.3mf"
```
指定换盘 G-code 目录和 ZIP 压缩级别:
```bash
python -m a1_swap_mod_packer.cli build \
--item "A.3mf" 5 \
--swap-gcode "a1_swap.gcode" \
--swap-gcode-dir "D:\SwapMod\swap_gcode" \
--zip-level 9 \
-o "5 Plates - A.3mf"
```
禁用最后换盘和预览标签重写:
```bash
python -m a1_swap_mod_packer.cli build \
--item "A.3mf" 5 \
--swap-gcode "a1_swap.gcode" \
--no-swap-after-final \
--no-preview-label \
-o "5 Plates - A.3mf"
```
禁用换盘后等待时间:
```bash
python -m a1_swap_mod_packer.cli build \
--item "A.3mf" 5 \
--swap-gcode "a1_swap.gcode" \
--no-eject-wait \
-o "5 Plates - A.3mf"
```
CLI 常用选项速查:
| 选项 | 含义 |
|---|---|
| `--version` | 打印当前版本 |
| `list-swap-gcode` | 列出换盘 G-code 目录中的文件 |
| `--item PATH COPIES` | 添加一个带独立份数的输入;可多次使用 |
| 位置参数 `inputs` + `--copies N` | 添加多个使用相同份数的输入 |
| `--swap-gcode-dir DIR` | 使用自定义换盘 G-code 目录 |
| `--no-bed-cooldown` | 不在换盘块前插入 `M190` |
| `--no-swap-after-final` | 最后一块盘后不执行换盘块 |
| `--no-eject-wait` | 不插入换盘后等待时间(`G4 P...` 行) |
| `--line-ending lf\|crlf` | 选择生成 G-code 的换行符;默认 `crlf` |
| `--zip-level 1-9` | zlib-ng Deflate 压缩级别;默认 `7` |
| `--no-preview-label` | 不重写预览图标签/合成图 |
| `--no-gcode-patches` | 不应用 `gcode_patches.ini` 中的规则 |