라이노 AI : CTB Layer
INTRO: 도면 CTB 적용하기

Rhino는 레이어 별 출력 설정을 달리하는 시스템을 가지고 있습니다. 그래서 레이어 관리가 필수인데요. 레이어가 너무 많아지면 하나하나 선 굵기, 색상을 조절하는 암담한 상황이 생기고는 합니다. 이 불편함을 해소하기 위해 AutoCAD의 출력 설정인 CTB를 활용해보도록 하겠습니다.
오늘의 교훈: 불편하면 일단 고쳐보자.
AutoCAD CTB

AutoCAD에는 CTB 기능이 있습니다. CTB는 색상 별로 출력 설정을 세팅할 수 있는 기능입니다. 레이어가 많아지더라도, 출력 색상만 맞춰놓으면 알아서 출력을 시켜주는 마법의 기능입니다. 특히나, 같은 도면이더라도 CTB만 갈아끼우면, 여러 스케일의 도면을 출력할 수 있습니다.
구조 잡기

지난 시간에 설명드렸듯, 하고자 하는 일은 먼저 나누어서 구조를 잡고 시작해야 합니다. Rhino에서 CTB 기능을 어떻게 활용할 수 있을지 깊게 탐구해 봅니다. 사실 CTB 파일을 인식하지 않는다면 경로가 매우 쉬울 수 있지만, AutoCAD와 호환성을 생각하여 고안했습니다. 협업 시, 출력값이 다른 경우, CTB 파일만 받으면 되는 간단한 상황을 상상해 보았습니다.
라이노 CBT 적용하기
0. CTB 해석기를 만들어보자.
AI에게 “CTB 파일 인식해서 라이노에 레이어 만드는 프로그램 만들어줘.“ 라고 입력하면 AI는 쉽게 수행하지 못합니다. AI는 어린아이에게 설명하듯 단계별로 세세히 설명해야, 추후 수정 작업 시에도 편하게 수정할 수 있는 탄탄한 구조를 만들어줍니다. 그 첫 단계로, CTB를 해석해보자. 라는 미리 그렸던 구조도를 밟으면서 진행해보겠습니다. 시행착오를 고스란히 보여드려, 과정들을 상세히 보여드리고자 합니다.

AI는 제미나이와 Claude AI를 활용하였습니다.
명령 프롬포트: 현재 autocad ctb를 해석해서 표로 만드는 작업을 하고있어.
autocad가 ctb 파일을 해석하는 방식을 따라해서 표로 정리만 하면 돼
rhino에 ctb 기능을 만들거야.
Ctb_Manager script를 만들어서 autocad의 ctb 파일을 넣어.
인덱스 컬러가 displaycolor로 치환된 레이어들을 삽입할 수 있는 기능이 있어.
그 레이어들에는 인덱스 컬러별로 지정된 라인타입, 라인웨잇, 출력컬러가 ctb에 있던 대로 매칭이 돼.
그리고 나열된 레이어들 중 내가 선택해서 Create를 누르면 실제 레이어 창에 레이어들이 생성이 돼.
목표는 autocad의 ctb 파일을 바꿔가며 새로운 레이어들을 만들 수 있다는거야.
추가적으로 레이어가 생성된 이후에 ctb를 바꿔야하는 경우, ctb를 바꾸고 invert를 누르면 생성된 레이어들의 속성이 자동으로 변환되게끔 하고싶어.
일단 코딩하지말고 의도 파악해서 구조부터 잡자.
입력한 프롬포트를 뜯어보면, 서두로 최상위 목표를 지정합니다. 그리고 이용자가 실제로 사용하는 단계를 상상하며, 스크립트의 대응 방식을 상세히 기술합니다. 기술의 정밀도가 스크립트의 완성도를 좌우하기 때문에, 구조를 잡을 시에는 시간을 들여 상세히 기술합니다. 마치 내가 아이폰 인터페이스를 만드는 스티브 잡스가 된 듯한 기분으로 진행합니다. 반드시 요구해야할 것은, 섣불리 코딩을 시작하기보다, AI가 내 의도를 파악하여 구조화하는 것을 확인하고, 그 구조를 확인하는 것입니다.
-
스트립트 확인

CTB 파일 정보가 가진 Display Color와 Print Color, Line Width, Line Type을 가져올 수 있는 스크립트를 먼저 작성하였습니다. 이 스크립트가 확장되어 Rhino의 레이어까지 건드릴 수 있는 원석이 됩니다. 만약 CTB 값과, 스크립트에 뜬 값이 다르다면, 그 부분을 지적하며
오류를 찾아갑니다. 오류를 찾아가는 것을 디버깅이라고 하며, AI에게 이렇게 입력하는 것이 도움이 됩니다.
전체적 오류가 날 경우 : 과정을 부분적으로 청킹한 뒤, 단계적으로 작동하지 않는 부분이 있는지 의심하며 디버깅을 해줘. 오류 메세지를 띄울 수 있도록 적극 활용할 것.
2. UI 만들기

이제 스크립트를 실행하면 어떤 버튼이 뜨고, 버튼을 누르면 어떤 기능이 실행하는지 직접 명령어를 입력합니다. PPT나 제미나이를 활용해 AI에게 참조 이미지를 주면, 작업에 도움이 됩니다. 실제로 Figma 등 타 AI는 이미지를 먼저 만들고 기능을 첨가하는 방식을 적극적으로 반영하고 있습니다.
3. Aliases 명령어 설정하기
매번 RunpythonScript를 기입하는 것도 번거롭기 때문에, 해당 스크립트 자체를 명령어로 만들 수 있습니다. 여러분이 만든 스크립트가 실제로 명령어가 되는 것을 체험할 수 있습니다.

워크플로우
파일 Shift+Ctrl+C(파일 경로 복사) > Rhino Aliases 등록에 아래 텍스트 붙여넣기
_-RunPythonScript “파일 경로“
실전 예제
1. make 2D

먼저 라인드로잉을 하기 위해 Make 2D 명령어를 실행합니다. 모델링이 복잡할수록 레이어도 많아지기 때문에, 라인드로잉에서 다룰 레이어의 수가 과해지는 경우가 있습니다. 그래서 통상적으로 레이어를 다시 한 번 정리하는 번거로움이 필요했습니다. 혹시나 싶어 레이어는 남기고 싶은 경우, 또 하나의 부담으로 다가옵니다.
2. 레이어 생성/정리

스크립트를 실행한 뒤, Make 버튼을 눌러 AutoCAD와 호환할 레이어를 생성합니다. 원하는 선 위계 만큼 좌측 체크박스를 눌러 레이어를 생성합니다. CTB를 가지고 있을 경우, CTB파일의 속성을 그대로 가져와 레이어를 생성할 수 있습니다. 이후 Color_N의 레이어 속성만 조절하면 작업이 완료됩니다. 이를 통해, 기존의 레이어는 보존한 채, 선 위계를 확보할 수 있습니다.
3. Set Boundary/ON

레이어를 정리하면 스크립트가 레이어 속성을 읽어 동기화됩니다. 이후 Set Boundary 버튼을 클릭하여 활성화할 영역을 설정합니다. 이후 우측의 버튼을 눌러 CTB를 활성화합니다.
4. Save CTB

CTB가 활성화되면 플롯을 통해 깔끔한 도면을 구할 수 있습니다. 또한, 설정한 CTB를 SAVE CTB 버튼을 통해 CTB 파일로 만들어 저장할 수 있습니다. 해당 파일은 팀원끼리 공유하거나, 패널의 라인 통일에 용이하게 사용할 수 있습니다. 매번 선 속성 때문에 고민하고 통일되지 않던 불편함을 덜어낼 수 있습니다.
OUTRO: 만들어가는 편리함

이번에도 작은 툴을 하나 만들어 보았습니다. 철옹성 같던 툴끼리의 호환성도 무너져 갑니다. 나중에는 각기 다른 툴들을 쓰지만 모두 호환되는 세상이 오지 않을까 싶습니다. 물론 아직은 먼 꿈이지만, 오늘도 한 발 가까이 다가온 것 같습니다.
CTB Reader는 아래에 공유해놓았으며, Tutorial을 꼭 실행해보시기 바랍니다!
https://drive.google.com/file/d/1yjW0A4PQwouYeu3vcI1vVBuy2B4pr9wl/view?usp=sharing

