"""FBX 减面 CLI:减到指定三角面数并 Smart UV 重展,输出 <名>_low.fbx。 用法:python model_decimate.py src/well1500.fbx --tris 5000 [-o dir] [--blender exe]""" import argparse import os from mt_run import find_blender, run_blender_script def main(): ap = argparse.ArgumentParser(description=__doc__) ap.add_argument("input", help="FBX 文件") ap.add_argument("--tris", type=int, required=True, help="目标三角面数") ap.add_argument("-o", "--out", default=None, help="输出目录(默认源文件同目录)") ap.add_argument("--blender", default=None) args = ap.parse_args() blender = find_blender(args.blender) name = os.path.splitext(os.path.basename(args.input))[0] outdir = args.out or os.path.dirname(os.path.abspath(args.input)) out_fbx = os.path.join(outdir, name + "_low.fbx") s = run_blender_script(blender, "bl_decimate.py", [args.input, out_fbx, str(args.tris)]) print("== %s: %d -> %d 面(目标 %d)-> %s" % (s["src"], s["tris_before"], s["tris_after"], s["target"], out_fbx)) for w in s["warnings"]: print(" [警告] %s" % w) if __name__ == "__main__": main()