diff --git a/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md b/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md index efdb0e1a..68882b89 100644 --- a/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md +++ b/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md @@ -133,13 +133,15 @@ cd "d:/UD/AI/AIC#Project/Tools/ModelTranslator" && rm tests/bl_probe_uvpm.py **Files:** - Modify: `Tools/ModelTranslator/bl_decimate.py`(常量区 + `_uvpm_repack` 之前新增 `_uvpm_set` + `_uvpm_repack` 内部) +**Task 1 探针结论(已确认,用于本任务)**:`default_main_props` 上 `rotation_enable`(bool, 默认 True)、`rotation_step`(int 度, 默认 90)、`heuristic_enable`(bool, 默认 False)、`heuristic_search_time`(int 秒, 默认 0=无限) 均存在且可设;旋转默认已开、pre-rotation 默认开(`pre_rotation_disable=False`);`pack` 返回 `{'FINISHED','PASS_THROUGH'}`,现有 `if 'FINISHED' not in ret` 判定已兼容;无需改 `pack_op_type`。真正需显式开的是 **heuristic**,并把 rotation_step 调细以利薄斜条对齐。 + - [ ] **Step 1: 新增常量** -在 `bl_decimate.py` 常量区 `UVPM_TEX_SIZE = 2048` 那一行之后追加(取值以探针结论校正): +在 `bl_decimate.py` 常量区 `UVPM_TEX_SIZE = 2048` 那一行之后追加: ```python -UVPM_ROTATION_STEP = 90 # UVPM 旋转步进(度);探针确认类型/范围后校正 -UVPM_HEURISTIC_TIME = 5 # UVPM 启发式搜索秒数上限 +UVPM_ROTATION_STEP = 15 # UVPM 旋转步进(度);比默认 90 更细,利于薄斜条对齐 +UVPM_HEURISTIC_TIME = 10 # UVPM 启发式搜索秒数上限(默认 0=无限,必须给正值上限) ``` - [ ] **Step 2: 新增 `_uvpm_set` 辅助** @@ -171,8 +173,8 @@ def _uvpm_set(p, name, value, warnings): ``` 注意: -- 若 Task 1 发现时间上限属性名是 `heuristic_max_wait_time`(而非 `heuristic_search_time`),把最后一行的名字换成实测的;`hasattr` 守卫使写错的名字只被跳过、不报错,但**为让功能真正生效,必须用探针确认的正确名字**。 -- 若 Task 1 发现启发式需要非 `'0'` 的 `pack_op_type`,同时修改 `_uvpm_repack` 里 `bpy.ops.uvpackmaster4.pack(...)` 的 `pack_op_type` 实参,并在 commit 正文说明。 +- 属性名已由 Task 1 探针确认全部存在(`rotation_enable`/`rotation_step`/`heuristic_enable`/`heuristic_search_time`)——用上面这四行即可,无需改名。 +- `pack_op_type` 保持 `'0'`(探针确认启发式开启下 `'0'` 正常返回 FINISHED,无需改)。 - 这些设置在现有 `_uvpm_repack` 的 `try/except Exception` 内;`_uvpm_set` 的 `hasattr` 守卫确保单属性问题不触发整体回退。 - [ ] **Step 4: 语法自检 + 单测不回归**