# -*- coding: utf-8 -*- """한 번에 시작: (1) Rhino MCP 서버 켜기 (2) 표식 클릭 자동 보기 켜기. Rhino 명령줄: RunPythonScript → 이 파일 선택 (또는 Rhino 옵션 > 일반 > 시작 시 실행할 명령에 등록) - MCP 서버(포트 9876)가 이미 떠 있으면 다시 켜지 않는다. - 표식 자동 보기는 이 스크립트가 켬 상태로 만든다 (실행할 때마다 켜짐, 껐다 켜기 안 함). """ import socket import Rhino import scriptcontext as sc CLIENT = u"D:\\★Pier 자료\\pier_v1\\Pier_T_rebar\\Code\\rhino_mcp\\rhino_mcp_client.py" VIEWER = u"D:\\\u2605Pier \uc790\ub8cc\\\uc2ec\uc218\uc11d\ub2d8 \uac80\ud1a0 \ud30c\uc77c\\\uac80\ud1a0_\uc6b4\uace1\uad50P1\\\uc2a4\ud06c\ub9bd\ud2b8\\\ud45c\uc2dd_\ub0b4\uc6a9\ubcf4\uae30.py" def port_open(port=9876): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(0.5) try: s.connect(("localhost", port)) return True except Exception: return False finally: s.close() if port_open(): Rhino.RhinoApp.WriteLine(u"Rhino MCP 서버: 이미 켜져 있음 (9876)") else: Rhino.RhinoApp.RunScript(u'-_RunPythonScript "' + CLIENT + u'"', False) Rhino.RhinoApp.WriteLine(u"Rhino MCP 서버: 켰음 (9876)") sc.sticky["ungok_marker_launch"] = True try: Rhino.RhinoApp.RunScript(u'-_RunPythonScript "' + VIEWER + u'"', False) finally: sc.sticky["ungok_marker_launch"] = False