chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합
- 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>
This commit is contained in:
commit
964a841de1
3978 files changed
+58013356
No files matched your search
@@ -0,0 +1,40 @@
|
||||
"""Read-only: compare source corners with the viewer's actual bend geometry."""
|
||||
import argparse
|
||||
import json
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
root=Path(__file__).resolve().parents[1]
|
||||
sys.path.insert(0,str(root/'src/backend'if (root/'src/backend').is_dir()else root))
|
||||
from repair_source_cycle_connections import path_key
|
||||
|
||||
|
||||
def inspect(path,node):
|
||||
import server
|
||||
server.require_modeling_rules()
|
||||
data=json.loads(path.read_text());group=data['group']
|
||||
kernel=root/'model_kernel.js'
|
||||
if not kernel.is_file():kernel=root/'src/frontend/src/model_kernel.js'
|
||||
script="const fs=require('fs');require(process.argv[1]);const g=JSON.parse(fs.readFileSync(0,'utf8'));process.stdout.write(JSON.stringify(g.instance_paths_m.map((p,i)=>ModelKernel.bendPath(p,g,i))));"
|
||||
process=subprocess.run([node,'-e',script,str(kernel)],input=json.dumps(group),
|
||||
capture_output=True,text=True,check=True)
|
||||
bends=json.loads(process.stdout);previous={path_key(p)for p in data['previous_paths']}
|
||||
rows=[]
|
||||
for i,(raw,bend)in enumerate(zip(group['instance_paths_m'],bends)):
|
||||
if path_key(raw)in previous:continue
|
||||
before,first_raw=server.tube_path_outside_component_union(
|
||||
[raw],group['diameter_mm'],data['concrete_components'])
|
||||
after,first_bent=server.tube_path_outside_component_union(
|
||||
[bend['path']],group['diameter_mm'],data['concrete_components'])
|
||||
rows.append({'index':i,'source_length_m':bend['sourceLengthM'],
|
||||
'rounded_length_m':bend['lengthM'],'warnings':bend['warnings'],
|
||||
'source_corner_outside_samples':before,'rounded_outside_samples':after,
|
||||
'first_source_outside':first_raw,'first_rounded_outside':first_bent})
|
||||
return {'id':group['id'],'rows':rows,'published':False}
|
||||
|
||||
|
||||
if __name__=='__main__':
|
||||
parser=argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument('candidate',type=Path);parser.add_argument('--node',default='node')
|
||||
args=parser.parse_args();print(json.dumps(inspect(args.candidate,args.node),ensure_ascii=False,indent=2))
|
||||
Reference in new issue
Block a user