143 lines
4.2 KiB
Markdown
143 lines
4.2 KiB
Markdown
|
# SUWood Python版本
|
|||
|
|
|||
|
Ruby到Python的木工设计系统翻译项目,支持Blender集成和独立运行。
|
|||
|
|
|||
|
## 📁 项目结构
|
|||
|
|
|||
|
```
|
|||
|
blender/
|
|||
|
├── blenderpython/ # 核心Python模块
|
|||
|
│ ├── suw_impl.py # 主要实现模块
|
|||
|
│ ├── suw_client.py # SUWood专用客户端
|
|||
|
│ ├── suw_*.py # 其他核心模块
|
|||
|
│ └── ...
|
|||
|
├── test/ # 测试目录 🆕
|
|||
|
│ ├── README.md # 测试目录说明
|
|||
|
│ ├── quick_suwood_test.py # SUWood快速测试
|
|||
|
│ ├── suwood_server_check.py # 服务器检测
|
|||
|
│ ├── test_suwood_communication.py # 完整通信测试
|
|||
|
│ ├── SUWOOD_COMMUNICATION_GUIDE.md # 通信指南
|
|||
|
│ ├── TRANSLATION_SUMMARY.md # 翻译总结
|
|||
|
│ └── ... # 其他测试文件和数据
|
|||
|
├── ruby/ # 原Ruby代码参考
|
|||
|
├── client.py # 通用JSON客户端
|
|||
|
├── server.py # 通用JSON服务器
|
|||
|
├── requirements.txt # 依赖包列表
|
|||
|
└── README.md # 本文件
|
|||
|
```
|
|||
|
|
|||
|
## 🎯 核心功能
|
|||
|
|
|||
|
### 双客户端系统
|
|||
|
|
|||
|
| 客户端 | 用途 | 端口 | 协议 | 状态 |
|
|||
|
|--------|------|------|------|------|
|
|||
|
| `client.py` | 通用文件传输 | 8888 | JSON | ✅ 已验证 |
|
|||
|
| `suw_client.py` | SUWood专用 | 7999 | 二进制+JSON | ✅ 已验证 |
|
|||
|
|
|||
|
### SUWood系统组件
|
|||
|
|
|||
|
- **SUWImpl** - 木工设计核心实现 (2415行代码)
|
|||
|
- **几何系统** - Point3d, Vector3d, Transformation
|
|||
|
- **命令系统** - c00-c28等多个木工设计命令
|
|||
|
- **材质系统** - RGB材质和纹理,兼容Blender 4.2
|
|||
|
- **工具系统** - 点工具、面工具、连续工具等
|
|||
|
|
|||
|
## 🚀 快速开始
|
|||
|
|
|||
|
### 1. 环境准备
|
|||
|
```bash
|
|||
|
pip install -r requirements.txt
|
|||
|
```
|
|||
|
|
|||
|
### 2. 基本测试
|
|||
|
```bash
|
|||
|
# 进入测试目录
|
|||
|
cd test
|
|||
|
|
|||
|
# 检测SUWood服务器(如果有外部服务器)
|
|||
|
python suwood_server_check.py
|
|||
|
|
|||
|
# 快速SUWood通信测试
|
|||
|
python quick_suwood_test.py
|
|||
|
|
|||
|
# 测试通用客户端-服务器
|
|||
|
python quick_comm_test.py
|
|||
|
```
|
|||
|
|
|||
|
### 3. Blender集成
|
|||
|
```python
|
|||
|
# 在Blender脚本编辑器中
|
|||
|
import sys
|
|||
|
sys.path.append("D:/XL/code/blender/blenderpython")
|
|||
|
|
|||
|
from suw_impl import SUWImpl
|
|||
|
from suw_client import get_client, start_command_processor
|
|||
|
|
|||
|
# 启动SUWImpl系统
|
|||
|
impl = SUWImpl.get_instance()
|
|||
|
impl.startup()
|
|||
|
|
|||
|
# 连接SUWood服务器(如果需要)
|
|||
|
client = get_client()
|
|||
|
start_command_processor()
|
|||
|
|
|||
|
print("SUWood系统已就绪!")
|
|||
|
```
|
|||
|
|
|||
|
## 🔧 测试功能
|
|||
|
|
|||
|
进入 `test/` 目录查看完整的测试工具:
|
|||
|
|
|||
|
### SUWood通信测试
|
|||
|
- **服务器检测** - 扫描和验证SUWood服务器
|
|||
|
- **协议测试** - 验证二进制+JSON协议兼容性
|
|||
|
- **命令测试** - 测试get_cmds和set_cmd功能
|
|||
|
- **集成测试** - SUWImpl系统集成验证
|
|||
|
|
|||
|
### 通用通信测试
|
|||
|
- **JSON通信** - 客户端-服务器JSON消息传输
|
|||
|
- **文件传输** - 上传下载JSON文件
|
|||
|
- **连接稳定性** - 长时间连接测试
|
|||
|
|
|||
|
详细信息请查看 [`test/README.md`](test/README.md)
|
|||
|
|
|||
|
## 🎨 Blender兼容性
|
|||
|
|
|||
|
- ✅ 支持Blender 4.2 LTS
|
|||
|
- ✅ 材质节点兼容性修复
|
|||
|
- ✅ 几何操作和变换
|
|||
|
- ✅ 木工零件创建和编辑
|
|||
|
- ✅ 纹理和材质系统
|
|||
|
|
|||
|
## 📚 文档
|
|||
|
|
|||
|
- [`test/SUWOOD_COMMUNICATION_GUIDE.md`](test/SUWOOD_COMMUNICATION_GUIDE.md) - SUWood服务器通信指南
|
|||
|
- [`test/TRANSLATION_SUMMARY.md`](test/TRANSLATION_SUMMARY.md) - Ruby到Python翻译总结
|
|||
|
- [`test/使用说明.md`](test/使用说明.md) - 详细使用说明
|
|||
|
|
|||
|
## 🔄 开发状态
|
|||
|
|
|||
|
- ✅ 核心系统翻译完成 (16个Python文件)
|
|||
|
- ✅ 语法检查100%通过
|
|||
|
- ✅ Blender 4.2兼容性修复
|
|||
|
- ✅ 双客户端系统验证
|
|||
|
- ✅ 完整测试套件
|
|||
|
- ✅ 文档和指南完整
|
|||
|
|
|||
|
## 💡 使用建议
|
|||
|
|
|||
|
1. **开发测试** - 使用 `test/` 目录下的工具进行功能验证
|
|||
|
2. **生产部署** - 直接使用 `blenderpython/` 模块
|
|||
|
3. **文件传输** - 使用 `client.py` + `server.py`
|
|||
|
4. **SUWood集成** - 使用 `suw_client.py` 连接外部SUWood服务器
|
|||
|
|
|||
|
## 📞 故障排除
|
|||
|
|
|||
|
遇到问题时:
|
|||
|
1. 查看 `test/` 目录下的相关测试和文档
|
|||
|
2. 运行对应的检测工具
|
|||
|
3. 参考通信指南进行配置
|
|||
|
4. 检查Blender控制台输出
|
|||
|
|
|||
|
项目已完全准备用于木工设计和3D建模工作流程。
|