- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환 - Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용 - pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관) - worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md) - D:\Rhino-MCP 경로 참조를 새 위치로 치환 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""Build a T-pier .3dm from app params in a headless Rhino run.
|
|
|
|
usage: python build_model.py <params.json> <out.3dm> [--upto G1..G5]
|
|
"""
|
|
import argparse
|
|
import json
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
APP = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(APP))
|
|
from engine.pipeline import TOLERANCE_MM, build_steps # noqa: E402
|
|
from runner import run_job # noqa: E402
|
|
|
|
|
|
def build(params, out, upto="G5"):
|
|
return run_job(build_steps(params, upto), save=out, units_mm_tolerance=TOLERANCE_MM)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
ap = argparse.ArgumentParser()
|
|
ap.add_argument("params")
|
|
ap.add_argument("out")
|
|
ap.add_argument("--upto", default="G5")
|
|
a = ap.parse_args()
|
|
r = build(a.params, a.out, a.upto)
|
|
print("wall", r["wall_secs"], "s; objects", r["objects"], "; saved", r.get("saved_to"))
|
|
for st in r["steps"]:
|
|
print(f" {st['name']:<28} {st['secs']:>7}s {st['stdout'].strip()[:160]}")
|
|
(Path(a.out).with_suffix(".build.json")).write_text(json.dumps(r, ensure_ascii=False, indent=1), encoding="utf-8")
|