# AIO 3D Print Web Platform

简介
----

这是一个基于 Python 的 Web 打印管理平台，通过调用 OctoPrint 的 API 来控制支持 Klipper 的打印机，集成切片、文件管理和打印机操作等功能。前端资源位于 `app/assets`，包含若干界面截图与帮助文档（见下方示例图片）。

示例图片
---------

![Logo](app/assets/img/logo.jpg)

切片助手示例：

![Slice Helper](app/assets/img/slice_helper/slice-helper_zh-cn.png)

快速开始
--------

1. 克隆仓库：

```bash
git clone https://gitea.lhye.work/lhye200/AIO_3D_Print_Web_Platform.git
cd AIO_3D_Print_Exp
```

2. 运行安装脚本（会创建虚拟环境并安装 Python 依赖，下载运行需要的文件，安装 systemd 服务）：

```bash
./install.sh
```

安装脚本说明
-------------

- 安装脚本会创建 `venv`、安装 `requirements.txt` 中列出的依赖，并尝试设置 systemd 服务。
- 安装脚本可**可选**下载 PrusaSlicer 的 AppImage 二进制（用于本地进行切片）：
  - 二进制来源: https://github.com/davidk/PrusaSlicer-ARM.AppImage
  - 源码: https://github.com/prusa3d/PrusaSlicer
  - 控制方式（环境变量）：
    - `PRUSA_SKIP_DOWNLOAD=1` : 跳过下载二进制（默认会询问）
    - `PRUSA_AGPL_ACCEPT=1` : 自动同意 AGPLv3 条款并下载（默认需要交互确认）

支持的切片引擎
---------------
- `Cura` 有一定支持，但由于其配置方式复杂容易出错，现使用体验不佳。
- `PrusaSlicer` 较为全面的支持。

许可与第三方
---------------

- 本仓库根目录的 `LICENSE` 为本项目主体采用的许可证（GPLv3）。
- 本项目可选使用的第三方软件 PrusaSlicer 受 AGPLv3 约束；相关说明与合规提示见 [third_party/PRUSASLICER.md](third_party/PRUSASLICER.md)。
- 如果你在服务器上运行并通过网络提供基于 AGPL 组件的服务，AGPL 可能要求你向使用该服务的用户公开对应源码。

AI 协助声明
----------------

本仓库的部分内容由 AI 生成。

更多信息
------------

- 代码结构与前端资源位于 `app/`，包括 `app/assets`（图片、脚本、样式）与 `app/templates`。
- 请阅读 `install.sh` 以了解安装过程的详细步骤与可配置选项。
