# cutting-plan **Repository Path**: jhyan-ux/cutting-plan ## Basic Information - **Project Name**: cutting-plan - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-17 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 瓷砖切割优化工具 这是一个用于计算和优化瓷砖切割方案的 Python 工具。它能够帮助你计算在给定规格的板材(默认为 900x1800mm)上切割不同尺寸瓷砖所需的最少板材数量,并生成可视化的切割方案。 ## 功能特点 - **高效排版算法**:采用 MaxRects 算法进行二维装箱优化,最大化利用板材面积。 - **支持旋转**:自动尝试旋转瓷砖以寻找最佳放置位置。 - **切割缝隙 (Kerf)**:支持设置切割缝隙宽度(默认为 2mm),确保实际切割尺寸准确。 - **JSON 配置**:使用 `config.json` 文件灵活配置板材尺寸和切割清单,无需修改代码。 - **可视化报告**:生成 HTML/SVG 格式的切割图,直观展示每张板材的切割布局。 - **Excel 导出**:生成详细的 Excel 报表,包含每块瓷砖的切割位置和板材利用率统计。 - **分组标签**:支持为瓷砖添加标签(如“客卫-A”、“主卫-B”),并在可视化图中通过颜色区分。 ## 环境要求 - Python 3.x - 依赖库: - `pandas` (用于 Excel 导出) - `openpyxl` (用于 Excel 写入) - `matplotlib` (可选,用于额外的绘图功能) 安装依赖: ```bash pip install pandas openpyxl matplotlib ``` ## 使用方法 1. **配置参数 (`config.json`)**: 在项目根目录下创建或修改 `config.json` 文件。 文件格式示例: ```json { "stock_width": 900, // 原板材宽度 (mm) "stock_height": 1800, // 原板材高度 (mm) "kerf": 2, // 切割缝隙 (mm) "required_cuts": [ // 切割清单 { "width": 1500, // 宽度 "height": 90, // 高度 "quantity": 1, // 数量 "label": "客卫-A" // 标签(用于分组和显示) }, { "width": 820, "height": 1285, "quantity": 1, "label": "客卫-A" } // ... 添加更多 ] } ``` 2. **运行程序**: 在终端中运行以下命令: ```bash python tile_cutter.py ``` 3. **查看结果**: 程序运行完成后,会在当前目录下生成以下文件: - `cut_plan.html`: 包含所有板材切割图的网页文件,可用浏览器直接打开。 - `cut_plan.xlsx`: 包含详细切割数据和统计信息的 Excel 表格。 - 终端输出:会显示总共需要的板材数量、总利用率和每张板材的简要清单。 ## 算法说明 本工具使用 **MaxRects** 算法(Best Short Side Fit 策略)来寻找最优解。程序会自动尝试多种排序策略(如按面积、按长边、按短边排序等),并选择最终板材使用量最少且利用率最高的方案。