196 lines
5.7 KiB
Markdown
196 lines
5.7 KiB
Markdown
# aTools 最终结构说明
|
|
|
|
## ✅ 扁平化结构完成
|
|
|
|
### 文件结构(最终版本)
|
|
|
|
```
|
|
animation_tools/
|
|
└── atools/ # aTools 模块
|
|
├── __init__.py # 主入口模块
|
|
├── setup.py # 设置模块
|
|
├── README.md # 使用文档
|
|
├── TEST_ATOOLS.py # 测试脚本
|
|
├── CHECKLIST.md # 功能检查清单
|
|
├── MIGRATION_COMPLETE.md # 迁移文档
|
|
├── FINAL_STRUCTURE.md # 本文件
|
|
├── animTools/ # 动画工具 (22 文件)
|
|
│ ├── animBar/
|
|
│ │ ├── animBarUI.py
|
|
│ │ └── subUIs/
|
|
│ ├── animationCrashRecovery.py
|
|
│ ├── framePlaybackRange.py
|
|
│ └── jumpToSelectedKey.py
|
|
├── commonMods/ # 通用模块 (6 文件)
|
|
│ ├── animMod.py
|
|
│ ├── aToolsMod.py
|
|
│ ├── commandsMod.py
|
|
│ ├── uiMod.py
|
|
│ └── utilMod.py
|
|
├── generalTools/ # 通用工具 (7 文件)
|
|
│ ├── aToolsClasses.py
|
|
│ ├── aToolsGlobals.py
|
|
│ ├── generalToolsUI.py
|
|
│ ├── hotkeys.py
|
|
│ └── ...
|
|
└── img/ # UI 图标 (159 文件)
|
|
```
|
|
|
|
## 🔄 改动说明
|
|
|
|
### 1. 移除了 `aTools/` 子文件夹 ✅
|
|
**之前(两层嵌套):**
|
|
```
|
|
atools/
|
|
└── aTools/ # ❌ 额外的一层
|
|
├── animTools/
|
|
├── commonMods/
|
|
└── generalTools/
|
|
```
|
|
|
|
**现在(扁平化):**
|
|
```
|
|
atools/ # ✅ 扁平化
|
|
├── animTools/
|
|
├── commonMods/
|
|
├── generalTools/
|
|
├── img/
|
|
└── setup.py
|
|
```
|
|
|
|
### 2. 修改了所有导入语句 ✅
|
|
|
|
**修改前(使用绝对路径):**
|
|
```python
|
|
from aTools.generalTools.aToolsGlobals import aToolsGlobals as G
|
|
from aTools.commonMods import animMod
|
|
from aTools.animTools.animBar import animBarUI
|
|
from aTools import setup
|
|
```
|
|
|
|
**修改后(使用相对导入):**
|
|
```python
|
|
from generalTools.aToolsGlobals import aToolsGlobals as G
|
|
from commonMods import animMod
|
|
from animTools.animBar import animBarUI
|
|
import setup
|
|
```
|
|
|
|
**修改的关键文件:**
|
|
- `animBarUI.py` - 主 UI 入口
|
|
- `generalToolsUI.py` - 通用工具 UI
|
|
- `offlineInstall.py` - 离线安装
|
|
- `setup.py` - 设置模块
|
|
- 以及其他 24+ 个模块文件
|
|
|
|
### 3. 更新的文件
|
|
|
|
✅ **Python 文件** - 28 个文件的导入已修改
|
|
- animTools/ - 18 个文件
|
|
- commonMods/ - 4 个文件
|
|
- generalTools/ - 5 个文件
|
|
- setup.py - 1 个文件
|
|
|
|
✅ **模块文件**
|
|
- `__init__.py` - 更新导入路径
|
|
- `TEST_ATOOLS.py` - 更新测试路径
|
|
- `README.md` - 更新文档
|
|
|
|
## 📋 修改统计
|
|
|
|
- **总文件数**: 195+ 个
|
|
- **修改的 Python 文件**: 28 个
|
|
- **导入语句修改**: 100+ 处
|
|
- **文档更新**: 3 个文件
|
|
|
|
## 🎯 使用方法(不变)
|
|
|
|
```python
|
|
# 从 Python
|
|
import animation_tools.atools
|
|
animation_tools.atools.show()
|
|
|
|
# 从 Maya Shelf
|
|
# 点击 aTools 按钮
|
|
|
|
# 从 MEL
|
|
python("import animation_tools.atools; animation_tools.atools.show()");
|
|
```
|
|
|
|
## ✅ 优势
|
|
|
|
1. **结构更清晰** - 少了一层嵌套
|
|
2. **导入更简洁** - `from commonMods import` 而不是 `from aTools.commonMods import`
|
|
3. **易于理解** - 文件组织更直观
|
|
4. **维护更方便** - 减少路径复杂度
|
|
|
|
## 🔍 工作原理
|
|
|
|
### 1. 用户调用
|
|
```python
|
|
import animation_tools.atools
|
|
animation_tools.atools.show()
|
|
```
|
|
|
|
### 2. `atools/__init__.py` 执行
|
|
```python
|
|
def _ensure_atools_loaded():
|
|
# 添加 atools 文件夹到 sys.path
|
|
if _current_dir not in sys.path:
|
|
sys.path.insert(0, _current_dir)
|
|
```
|
|
|
|
### 3. 导入链(扁平化后)
|
|
```
|
|
sys.path 包含: .../animation_tools/atools/
|
|
├── animTools/ ← 直接在这里
|
|
│ ├── animBar/
|
|
│ │ ├── animBarUI.py
|
|
│ │ └── subUIs/
|
|
│ └── ...
|
|
├── commonMods/ ← 直接在这里
|
|
│ ├── animMod.py
|
|
│ ├── utilMod.py
|
|
│ └── ...
|
|
├── generalTools/ ← 直接在这里
|
|
│ ├── aToolsGlobals.py
|
|
│ └── ...
|
|
├── img/ ← 159 个图标
|
|
└── setup.py
|
|
```
|
|
|
|
### 4. 所有导入正常工作 ✅
|
|
```python
|
|
# 在 atools 模块内部
|
|
from animTools.animBar import animBarUI # ✅ 成功
|
|
from commonMods import animMod # ✅ 成功
|
|
from generalTools.aToolsGlobals import aToolsGlobals as G # ✅ 成功
|
|
import setup # ✅ 成功
|
|
|
|
# 外部调用(用户使用)
|
|
import animation_tools.atools # ✅ 成功
|
|
animation_tools.atools.show() # ✅ 成功
|
|
```
|
|
|
|
## 📝 测试清单
|
|
|
|
- [ ] 在 Maya 中导入模块
|
|
- [ ] 启动 Animation Bar
|
|
- [ ] 测试 Tween Machine
|
|
- [ ] 测试关键帧工具
|
|
- [ ] 测试特殊工具
|
|
- [ ] 验证 UI 图标显示
|
|
- [ ] 测试所有子工具
|
|
|
|
## 🎉 完成状态
|
|
|
|
✅ **文件结构** - 扁平化完成
|
|
✅ **导入修改** - 28 个文件已更新
|
|
✅ **文档更新** - README 和测试脚本已更新
|
|
✅ **准备测试** - 可以在 Maya 中测试
|
|
|
|
---
|
|
|
|
**最后更新**: 2025-11-25
|
|
**状态**: ✅ 扁平化完成,准备测试
|