From 1c9a7e1ed005b72e76c38e6920b6692dae20ba88 Mon Sep 17 00:00:00 2001 From: ud18010 Date: Tue, 21 Jul 2026 11:54:25 +0800 Subject: [PATCH] =?UTF-8?q?ModelTranslator:=20=E7=BB=88=E5=AE=A1=20Minor?= =?UTF-8?q?=E2=80=94=E2=80=94sidecar=20=E7=94=A8=20finally=20=E6=B8=85?= =?UTF-8?q?=E7=90=86=20+=20average=5Fislands=5Fscale=20=E8=A1=A5=E6=8D=95?= =?UTF-8?q?=20TypeError?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- Tools/ModelTranslator/bl_decimate.py | 2 +- Tools/ModelTranslator/model_decimate.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Tools/ModelTranslator/bl_decimate.py b/Tools/ModelTranslator/bl_decimate.py index 25b2f3c0..ce28d707 100644 --- a/Tools/ModelTranslator/bl_decimate.py +++ b/Tools/ModelTranslator/bl_decimate.py @@ -166,7 +166,7 @@ def _unwrap_seam(obj, warnings, seam_angle_deg=SEAM_ANGLE_DEG): warnings.append("minimize_stretch 不可用(%s),跳过松弛" % e) try: # 统一纹素密度,避免大岛霸占分辨率 bpy.ops.uv.average_islands_scale() - except RuntimeError as e: + except (RuntimeError, TypeError) as e: warnings.append("average_islands_scale 不可用(%s),跳过纹素均衡" % e) try: bpy.ops.uv.pack_islands(rotate=True, margin=PACK_MARGIN) diff --git a/Tools/ModelTranslator/model_decimate.py b/Tools/ModelTranslator/model_decimate.py index 60aa2b94..d851ae4c 100644 --- a/Tools/ModelTranslator/model_decimate.py +++ b/Tools/ModelTranslator/model_decimate.py @@ -40,10 +40,12 @@ def main(): with open(s["uv_polys"], encoding="utf-8") as fp: polys = _json.load(fp) render_uv_png(polys, s["uv_preview"]) - os.remove(s["uv_polys"]) print(" UV 观察图: %s" % s["uv_preview"]) except Exception as e: print(" [警告] UV 观察图渲染失败:%s" % e) + finally: # sidecar 是内部临时文件,无论渲染成败都清掉 + if os.path.exists(s["uv_polys"]): + os.remove(s["uv_polys"]) for w in s["warnings"]: print(" [警告] %s" % w)