솔리드 모델링의 기초
솔리드 모델링의 기초
  • 최광열 기자
  • 승인 2018.12.14 14:53
  • 댓글 0
이 기사를 공유합니다

전기 시스템 설계를 단순화하라
기하학적 솔리드 모델(Geometric Solid Models)은 자제부품 및 어셈블리의 윤곽을 정확히 표현하기 위해 선호하는 방법이다. 이 기술은 최근 몇 년 동안 제어 캐비닛 및 배선장치 등의 특징을 묘사하는 역할을 수행해왔다.
 
오늘날 엔지니어링 설계 안에는 여러 가지 설계기술이 결합되어있다. 그 중 기계 설계(Mechanical Designs)는 우리 생활 속에 빈번히 등장한다. 대표적으로 수학적 솔리드 모델 모형 분야에서 2D 모델을 대체하는 수단이 되고 있다.

솔리드 모델링의 기초
솔리드 모델은 서로 다른 엔지니어링 소프트웨어에서도 배선도나 부품 설계 등의 작업을 수행할 수 있도록 호환성이 우선시되어야 한다. 최근에는 데이터플로우 프로그래밍 기술이 서로 다른 기술 사이를 연결 및 표현하는 수단으로 각광받고 있다.

솔리드 모델은 질량을 가지고 있는 3차원 물체를 표현한다. 이 덕에 여러 분야에서 유용하게 사용할 수 있다. 
솔리드 모델은 입체각 투사도 기법으로 만들어져 모델링에 전문적인 지식이 없는 사람이라 하더라도 보조 투영도와 단면도로 이루어진 2D 도면보다 3D 렌더링을 이해하기 더 쉽다.
 
솔리드 모델링 소프트웨어는 모델 정보를 나타낼 수 있는 도구들을 다양하게 사용할 수 있다. 설계자들은 특징 기반(Feature-Based)·매개 변수·‘Direct’ 혹은 ‘Explicit’이라고 부르는 도구 등을 통해 모델을 찰흙 주무르듯 다룰 수 있다.
솔리드 모델은 설계된 형상뿐 아니라 설계자의 의도나 취지까지 반영할 수 있다. 예를 들어 설계 계획 단계에서 서로 평행하면서도 유사한 두 개체를 만들어 각 부분의 길이나 폭과 같은 수학적 관계를 변경하면서 개체를 유지할 수 있다. 소프트웨어는 설계자가 어떤 차원(2차원 혹은 3차원)의 모델을 구축하든 상관없이 모델의 각 부분을 구성하는 기능과 각 형상들이 동작하는 방법에 대해 설명할 수 있다.
 
초기 솔리드 모델러는 특색을 기반으로 하고 있지 않았다. 예를 들어 모델 일부분에 구멍을 삽입하려 한다면, 과거 설계자들은 자신이 바랐던 구멍만큼의 직경을 갖고 있으면서 모델 일부분을 관통할 수 있을 만큼 기다란 실린더를 만들어야 했다. 그 다음 소프트웨어에게 모델 부분과 실린더 사이에 서로 다른 불 방식(Boolean) 연산을 수행하도록 명령함으로써 모델 안에 실린더 직경만큼의 구멍을 만들 수 있다.
 
하지만 이 방법은 큰 문제를 야기한다. 일부 치수가 바뀌게 될 때 대처가 어려운 것. 가령 설계자가 모델을 더 두껍게 만들어야 한다고 가정하자. 설계자가 실린더를 새 모델의 두꺼운 부분을 감당할 수 있을 만큼 충분히 길게 만들지 않았다면, 구멍은 그대로이지만 모델 크기만 커지기 때문에 결과적으로 구멍이 보이지 않게 될 것이다. 이 경우 모델은 설계자가 명시한 형상을 반영하고는 있지만, 설계자의 의도까지 반영하지는 못한 셈이다.
 
이제 같은 현상을 특징 기반(Feature-Based) 소프트웨어에서 재연해보자. 특징 기반 소프트웨어는 종전과 다른 방법으로 관통 홀(Through-Hole)에 접근한다. 설계자는 모델의 치수와 상관없이 ‘관통’하도록 정의함으로써 모델이 어떻게 변화하든 적용할 수 있다. 즉 설계의 기능 측면에서 위상기하학(Topology)을 불러내면 설계자가 특별히 명령하지 않는 한 해당 기능을 유지하며, 소프트웨어가 사용자에게 기능을 정의하도록 요구한다. 이를 통해 위치와 관련한 통제나 대수학적 정의 등 다양한 요인을 정의할 수 있다.
 
솔리드 모델링 설계와 관련이 깊은 유형은 매개변수 모델링(Paramatric Modeling)이다. 매개변수 모델링은 그 이름에서 알 수 있듯 모델의 각 부분을 매개변수 면에서 규정하는 것이 특징이다. 이 중 간단한 매개변수는 수학식으로 표현할 수 있다. 예를 들어 (직경)= 3×(높이) 혹은 (넓이)=2×SQRT(길이) 등이 그것이다. 매개변수는 어셈블리 모델과 각 부분 사이의 연결을 확립한다. 기준면에 따른 부품과 다른 부품 사이의 위치를 예로 들 수 있다.
 
따라서 매개변수 CAD 시스템은 각각의 기하학적 형태 및 치수를 나타낸다. 각 두 독립체 사이를 관계 면에서 통제한다. 설계자가 매개변수를 변경하고자 하는 경우, CAD 시스템은 솔리드 모델 안에 적용하는 전반적 통제를 유지함과 동시에 모델 전체에 변경사항을 적용한다.
 
솔리드 모델러에는 이밖에도 직접 모델러(Direct Modeler) 유형이 있다. CAD 시스템이 상황을 보아가며 모델을 제한 및 통제하며, 사용자는 어떠한 제약도 생성하지 않는다. 이 접근법은 솔리드 모델의 수준 높은 변경사항을 더 쉽게 다루는 것이 장점이다. 또한 제약 조건을 설정함으로써 향후 모델에 변경사항이 있더라도 변함없이 관계를 유지하며, 따라서 각 부분이 원래의 설계 계획 및 목적을 유지하리라 추정할 수 있다.
 
직접 모델링 접근법의 또 다른 장점은 일련의 제약을 극적으로 변화시킬 수 있다는 점이다. 제약 극복은 모델을 구축하는 동안 일어나는 이벤트에 따라 달라진다. 
 
사용자가 반드시 제약 조건을 변경해야 한다면 매개변수 모델링 방식보다 직접 모델링 방식이 모델 생성 시간을 단축시킬 수 있다. 매개변수 모델링 방식의 경우 제약 조건을 변경하는 과정이 복잡한 반면 직접 모델링 접근법은 보다 편리하다.
반대로 매개변수 모델링 방식을 사용하면 CAD 시스템이 제약사항을 추측할 필요가 없다. 사용자가 시스템을 대신해 제약에 대해 자세하게 서술하기 때문이다. 직접 모델링 방식이 갖지 못하는 장점이다.
 
하지만 CAD 모델이 제약사항을 추측하는 과정은 CAD 사용자가 제약을 너무 많게 혹은 너무 적게 설정하는 등의 다양한 난제를 얼마나 잘 해결하느냐에 달려있다. 사용자의 숙련도가 CAD 모델의 성능을 좌우하는 것. 다른 설계자가 만든 매개변수 모델을 수정해야 할 때, 제약이 너무 복잡하면 설계 의도를 파악하기 어렵다는 점 또한 문제다.
 
고급 모델의 질 문제는 모든 특징 기반 모델러에서 일어날 수 있다. 그만큼 주의를 기울여야 한다. 일반적으로 이런 문제는 각 기능 사이에 생기는 의도하지 않은 상호작용을 포함한다. 이런 상호작용은 작은 균열·쐐기 모양 상처·빈 공간·각기 다른 기능의 특징이 서로 유사함 등의 모습으로 나타난다. 그 결과 FEA 등의 분석 소프트웨어가 문제를 일으킬 뿐 아니라 다른 브랜드의 CAD 시스템으로 작업을 전달할 때 기능 내역이 손실될 위험도 있다.
 
다른 CAD 시스템으로 매개변수 모델을 불러들일 때에는 매개변수나 기능 혹은 의도한 설계가 적용되지 않을 수 있다. 매개변수 모델링 기능을 지원하는 새 CAD 시스템이라도 사정이 다르지 않다. CAD 시스템 사용자는 원래 작성하던 매개변수 기능 기반 접근 대신 변경하고자 하는 시스템의 매개변수와 기능에 맞추어 다른 종류의 기하학적 접근법을 재생성해야 한다. 
일부 직접 모델러는 사전에 만들어두었던 매개변수 모델을 활용해 작업할 수 있다. 변화한 모델 및 변화 과정이 매개변수 기반 및 기능 기반 모델에 남아있는 것. 
 
또 다른 발전 사항은 모델러 개발이다. 어떤 모델을 다른 CAD 응용프로그램에서 작업하고자 할 때, 불러들여온 솔리드 모델은 물론 이와 연관된 모델까지 업데이트하는 것.
 
일부 모델러에는 기하학적 형상에 직접 적용할 수 있는 유연한 모델링 확장 기능이 있다. 불러들여온 모델이 아무런 기능을 발휘하지 못하거나, 다른 이가 만든 모델의 구축 방법에 대해 계산하거나 이해할 시간이 없는 경우 유용하게 쓰인다. 
 
유연한 모델러는 패턴을 인식하는 기능과 모델 안에 정보를 추가해 균형을 이루는 기능을 포함하고 있다. 이 기능을 활용해 형상을 선택해 수정하거나 새 위치로 옮길 수 있다. 필요하다면 모델에 다시 연결하거나 자동으로 추가할 수도 있다. 유연한 모델러는 설계자가 불러들인 파일에 정보를 자동으로 추가하며, 이러한 조치를 통해 설계자가 기능을 변경할 수 있게 만듦과 동시에 변경한 기능을 모든 영역으로 전파한다.

 
표면 모델링
솔리드 모델링의 도래에 앞서 쓰이면컴퓨터를 이용한 기하학적 모델은 흔히 와이어 프레임 형태를 취했다. 와이어 프레임 모델은 상호 연결된 선소(線素, Line Elements)의 3D 모델에 해당한다. 와이어 프레임은 단순한 3D 기하학 표현방법이기는 했지만, 가장 만들기 쉬운 형태는 아니었다. 
 
오늘날 여전히 일부 모델링 프로그램에서 와이어 프레임 데이터 구조를 사용한다. 이 구조는 컴퓨터 작업 시간 및 메모리가 적게 필요하며 표면 불연속(表面不連續, 시험체의 표면에 존재하는 결함, 편집자 주)이 일어나는 위치에 대해 정확한 정보를 알 수 있다는 장점이 있다. 하지만 표면 자체에 대한 정보를 나타내지 않으며 객체의 내부와 외부를 구분하지 않는 것이 단점이다. 와이어 프레임은 복잡한 물리 구조에 대해 분명히 규정하지 않아 애매한 감이 있으며, 이 때문에 사용자에게 해석을 유보하는 경우가 많다.
 
와이어 프레임 모델은 공간에 점과 선을 지정함으로써 만들어진다. 와이어 프레임을 만들기 위해 일반적으로 사용하는 접근 방법은 다양한 모델을 볼 수 있도록 컴퓨터 화면을 분할하는 것이다. 설계자가 위·아래·양 옆·등측도(Isometric)·여타 시각 등에서 보이는 그림을 선으로 그린다. CAD 패키지가 사용자에 특화된 포인트를 바탕으로 선을 생성하며, 메뉴 중에서 적합한 명령어를 선택해 수행한다. 따라서 와이어 프레임의 각 선을 수동으로 그리지 않아도 된다. 
 
하지만 3D 와이어 프레임처럼 보이는 모든 모델이 와이어 프레임 모델인 것은 아니라는 점을 기억해야 한다. 몇몇 소프트웨어는 사용자에게 Z축 깊이를 포함하는 등측도 모델을 제공하는 것처럼 보이지만, 실제로 그렇지는 않다. 이런 소프트웨어는 2½D 소프트웨어라고 칭한다.
 
비록 와이어 프레임 모델이 간단한 기하학적 모델 형태를 지칭한다고 하지만, 이 용어는 표면 모델링 및 솔리드 모델링 모두와 관련되어있다. 표면 모델은 모델의 바깥 부분을 정확하게 정의함으로써 구조 경계를 명확히 해 수치제어 공작기계가 명령을 내릴 수 있도록 돕는다. 하지만 표면 모델은 기하학적 구조 중 ‘봉투(envelope)’ 부분(뒤덮고 있는 겉 부분을 의미함. 편집자 주)만을 나타내므로 자동화된 은선(隱線)과 같은 도구들을 제거하더라도 솔리드 모델이 된다.
 
표면 모델은 사용자가 구체적으로 명시한 선 위에 다양한 종류의 면적 요소들을 연결함으로써 만들어진다. 일반적인 CAD 면적 요소는 평면도면, 도표화된 실린더(Tabulated Cylinder), 룰드 표면, 회전면, 필릿 표면, 스윕 곡면, 자유곡면 등을 포함한다. 
 
평면은 가장 기본적인 표면형(表面形)이다. 소프트웨어는 사용자가 지정한 두 개의 직선 사이에 평평한 표면을 생성한다. 둘째로 도표화된 실린더는 자유곡선을 3차원 수준으로 투사한 것이다. 셋째로 룰드 표면은 서로 다른 가장자리 곡선(edge curve) 사이에서 만들어진다. 가장자리 곡선의 끝점에서 끝점 사이의 공간을 직선으로 이동하며 표면을 만든다.
 
회전면은 원의 축을 중심으로 한 임의의 곡선을 회전시켜 만든다. 이 기능은 서로 축대칭으로 이루어진 부품들을 모델링하는 데에 유용하게 사용한다. 스윕 곡면은 회전면의 확장판이라고 보는 것이 편하다. 임의의 한 곡면에 원을 그리는 대신 다른 임의의 곡면을 통해 스윕한다는 것이 차이점이다. 필릿 표면은 실린더 표면을 다른 표면에 연결해 이행시킨다. 이전까지 이 과정은 순전히 수동으로 이루어졌으며 지루하고 따분한 작업이었다. 하지만 CAD는 정밀한 수학적 연속성을 통해 이 문제를 해결했다.
 
자유곡면은 매우 복잡한 표면에 해당한다. 자유곡면에는 커브 메시(curve-mesh)·자유 형태·B 스플라인·큐빅 패치 표면 등 여러 종류가 있다. 이때 두 직선이 반드시 평행일 필요는 없다. 두 곡선은 서로 십자 모양으로 교차하며 서로 연결한 부분끼리 망(網)을 형성한다.

 
블록재
솔리드 모델은 기초 요소 혹은 경계로부터 간단한 기하학적 작업들을 연이어 조합해 만들어진다. 초기 단계에는 블록이나 실린더 등 기본적인 형상을 장난감 블록을 쌓듯 조합한다. 사용자는 이러한 기초 요소들을 배치한 뒤 적절한 불 방식(Boolean) 명령을 통해 새로운 모양으로 조합할 수 있다. 경계를 정의하고 나면 2차원 표면이 공간을 휩쓸며 용적을 따라 윤곽을 그린다. 
 
선형 스윕이 표면을 직선으로 변환해 압출된 용적을 생성한다. 회전에 의한 공간이 축대칭 부분을 만든다. 동시에 더 복잡한 솔리드를 만들기 위해 복합체를 스윕하면서 특정한 곡선을 그리며 표면을 따라 이동한다. 각각의 공법은 특수한 형태를 다루기에 좋다. 예를 들어 평면이나 원통 등의 간단한 모양으로 만들어진 공업 부품 중 대부분은 기초 요소만으로도 손쉽게 모형을 만들 수 있다. 
 
하지만 복잡한 윤곽을 가진 구성요소, 예를 들어 자동차 배기 매니폴드나 터빈 날개는 경계선 정의(Boundary Definitions)를 통해 한층 쉽게 모형으로 만들 수 있다.
 
전기를 이용한 모형 설계
CAD는 전력패널이나 제어 캐비닛 등의 독립체를 특성화하는 데에 사용할 수 있다. CAD 프로그램은 제어 캐비닛을 독립체로 간주하며, 블록의 신체 기능에 해당하는 릴레이나 단자판(Terminal Blocks) 그리고 회로 차단기 등을 연결함으로써 제작한다. 전기 캐비닛을 만들기 위한 CAD 중 일부는 일반적으로 2D 설계도를 도식화하는 독립형 프로그램 형태를 띤다. 이러한 프로그램은 일반적으로 자동화를 위한 PLC(프로그래머블 로직 컨트롤러) 배선과 단자판 등을 다룬다.
 
2D의 도식적 전기 설계 자료를 3D 모델로 불러올 수 있는 장비가 있다. 3D 모델을 통해 전기기동장치(Motor Starters)나 DIN 레일, 배선 덕트, 기타 인클로저에 있는 유사한 장치 등 여러 구성요소를 적절히 배치할 수 있다. 3D에 집중할 수 있는 다른 방법을 제안하고, 각 구성요소 사이의 간격을 설정하며, 저 전압 전선으로 고 전압을 운반하지 못하게 차단하는 라우팅 루틴도 제공한다. 이외에도 여유 간격을 확인하고 불필요한 공간을 제거하며, 전선 경로를 계획하고, 하네스를 생성하는 일 등을 한다.
요소들을 모델링하는 일부 프로그램은 설계를 표시하는 데에 데이터플로우 프로그래밍 방식을 사용한다. 데이터플로우의 핵심은 ‘블랙박스’ 공정 연결망을 유용하고도 편리하게 정의할 수 있다는 점이다. 블랙박스 방식은 사전에 정의한 연결을 통해 자료를 교환한다. 데이터 흐름 프로그래밍은 응용프로그램 개발자가 기존 순차적 코딩 방식으로 명령 시퀀스를 정의할 필요 없이 연결을 통해 흘러들어오는 데이터로만 작업할 수 있어 이러한 이름을 얻었다.
 
최초로 널리 쓰이던 데이터플로우 프로그램은 스프레드시트였다. 스프레드시트에 있는 각 셀은 블랙박스 공정처럼 사용할 수 있었다. 프로그램은 여러 셀들 중 어느 하나를 갱신하면 첫 번째 셀의 값을 자동으로 계산한다. 각 셀은 인접한 다른 셀과 연동되어있으며, 이런 관계가 차례로 이어져있다. 따라서 단 한 셀의 변화가 커다란 변화의 사슬을 움직인다.
 
하지만 데이터플로우는 수치를 다시 계산하는 것 외의 역할도 수행한다. 한  번 그려진 독립체가 블랙박스 공정 과정을 표현할 수 있도록 하는 것. 따라서 마우스 움직임에 따라 그림을 바꿀 수 있다. 그래픽 데이터플로우 응용프로그램은 그래픽 도구를 사용하는 필수 연결 목록으로 적합하다. 상업적으로 만들어진 초기 그래픽 데이터플로우 프로그램 중 하나가 LabVIEW이다.
 
그래픽 데이터플로우는 사용자에게 블랙박스 공정을 손쉽게 이용할 수 있게 한다. 블랙박스 공정은 재사용할 수 있는 요소라고 볼 수 있다. 서로 통신하는 다른 블랙박스의 이름을 알지 못하기 때문이다. 사용자는 내부적으로 블랙박스를 변경하지 않더라도 언제든 다른 블랙박스와 연결함으로써 다른 응용프로그램으로 작업할 수 있다.
 
예를 들어 제어 캐비닛을 설계하고자 하는 경우, CAD 프로그램을 통해 블랙박스 공정을 통해 DIN 레일에 부착된 각각의 요소 및 부품들을 확인할 수 있다. 제어 캐비닛 컴포넌트 사이의 연결은 내부 기능에 아무런 영향을 주지 않으며 현재의 독자적 상태에만 영향을 미친다. 서로 다른 블랙박스 사이로 데이터가 지나가는 흐름을 IT 용어로 정보 패킷이라고 일컬으며, 데이터가 통과하는 연결을 유한 버퍼 연결(Bounded Buffer Connection)이라고 한다. 각 작업 중 관련 연결을 식별할 때에는 직접적으로 확인하지 않고 포트 이름을 사용해 확인한다. 일반적으로 엔진 연결 혹은 일정 루틴은 실제 네트워크를 포트 이름으로 기록한 뒤 개별 작업을 구동한다.

주요기사
이슈포토