Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
시각적 프로그래밍 환경인 Dynamo를 사용하면 데이터가 처리되는 방식을 조작할 수 있습니다. 데이터는 숫자나 문자이지만 형상도 마찬가지입니다. 컴퓨터의 입장에서 이해한다면, 형상(경우에 따라 계산 형상이라고도 함)은 세련되거나 정교한 성능 중심의 모델을 작성하는 데 사용할 수 있는 데이터라고 할 수 있습니다. 이렇게 조작하려면 사용할 수 있는 다양한 형상 유형을 속속들이 이해해야 합니다.
곡선은 우리가 처음 다룬 기하학적 데이터 유형으로, 선이 얼마나 구부러지거나 펴져 있는가? 또는 얼마나 길거나 짧은가? 등의 보다 익숙한 모양 설명 특성 세트를 포함하는 첫 번째 기하학적 데이터 유형입니다. 또한 점이 선에서 스플라인 사이의 모든 항목과 그 사이의 모든 곡선 유형을 정의하기 위한 빌딩 블록이라는 점은 그대로입니다.
선
폴리선
호
원
타원
NURBS 곡선
폴리 곡선
NURBS는 곡선과 표면을 정확하게 표현하는 데 사용되는 모델입니다. 결과를 비교하기 위해 NURBS 곡선을 작성하는 두 개의 서로 다른 방법을 사용하여 Dynamo에서 사인 곡선을 작성합니다.
NurbsCurve.ByControlPoints 는 점 리스트를 제어점으로 사용합니다.
NurbsCurve.ByPoints 는 점 리스트를 통해 곡선을 그립니다.
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
곡선이라는 용어는 일반적으로 다양한 종류의 곡선형(직선인 경우에도) 모양에 사용하는 다목적 용어입니다. 곡선(Curve의 "C"가 대문자인 경우)은 선, 원, 스플라인 등 해당 모양 유형 모두에 대한 상위 분류입니다. 보다 기술적으로 접근하면 곡선은 단순 함수(x = -1.26*t, y = t
)에서 미적분학과 관련된 함수까지 다양한 함수 모음에 "t"를 입력하여 찾을 수 있는 가능한 모든 점을 그립니다. 어떤 종류의 곡선으로 작업하든 "t"라고 하는 이 매개변수는 평가할 수 있는 특성입니다. 또한 모양과 관계없이 모든 곡선에는 곡선을 작성하는 데 사용되는 최소 및 최대 t 값과 일치하는 시작점 및 끝점도 있습니다. 이는 해당 방향성을 이해하는 데도 도움이 됩니다.
Dynamo에서는 곡선에 대한 "t" 값의 도메인이 0.0부터 1.0까지의 범위라고 가정합니다.
또한 모든 곡선에는 곡선을 그리거나 해석하는 데 사용할 수 있는 다양한 특성이나 특징이 있습니다. 시작점과 끝점 사이의 거리가 0이면 곡선이 "닫힌" 상태입니다. 또한 모든 곡선에는 많은 제어점이 있습니다. 이러한 모든 점이 동일한 평면에 있는 경우 곡선은 "평면"입니다. 전체적으로 곡선에 적용되는 특성도 있고, 곡선을 따라 특정 점에만 적용되는 특성도 있습니다. 예를 들어, 지정된 T 값의 접선 벡터는 로컬 특성이지만 평면성은 전역 특성입니다.
선은 가장 간단한 곡선 형식입니다. 별로 곡선처럼 보이지 않을 수 있지만 실제로는 곡률이 없는 곡선입니다. 선을 작성하는 방법에는 몇 가지가 있습니다. 가장 직관적인 방법은 점 A에서 점 B까지 연결하는 것입니다. 선 AB의 모양은 점 사이에 그려지지만 수학적으로는 양방향으로 무한하게 확장됩니다.
두 선을 연결하면 폴리선이 생성됩니다. 여기에 제어점이란 무엇인지가 직관적으로 나타나 있습니다. 이러한 점 위치를 편집하면 폴리선의 모양이 변경됩니다. 폴리선이 닫혀 있으면 다각형이 생성됩니다. 다각형의 모서리 길이가 모두 같으면 정다각형으로 그려집니다.
모양을 정의하는 파라메트릭 함수가 더 복잡해지면서 하나 또는 두 개의 반지름을 그려 선에서 한 단계 더 나아가 호, 원, 타원 호, 또는 타원을 작성할 수 있습니다. 호 버전과 원 또는 타원의 차이는 모양이 닫혀 있는지 여부뿐입니다.
NURBS(비균일 유리 기준 스플라인)는 단순한 2D 선, 원, 호 또는 직사각형에서 가장 복잡한 3D 자유형 유기적 곡선까지 모든 모양을 정확하게 모델링할 수 있는 수학적 표현입니다. NURBS 모델은 유연하고(제어점이 비교적 적지만 차수 설정에 따라 매끄럽게 보간됨) 정밀하므로(탄탄한 수학으로 묶여 있음) 그림이나 애니메이션에서 제조에 이르는 모든 프로세스에서 사용될 수 있습니다.
차수: 곡선의 차수는 제어점이 곡선에 미치는 영향의 범위를 결정합니다. 즉, 차수가 클수록 영향 범위가 커집니다. 차수는 양의 정수입니다. 이 숫자는 일반적으로 1, 2, 3 또는 5이지만 어떤 양의 정수도 될 수 있습니다. NURBS 선과 폴리선은 일반적으로 차수가 1이고 대부분의 자유형 곡선은 차수가 3 또는 5입니다.
제어점: 제어점은 차수가 +1 이상인 점으로 이루어진 리스트입니다. NURBS 곡선의 모양을 변경하는 가장 쉬운 방법 중 하나는 해당 제어점을 이동하는 것입니다.
가중치: 제어점에는 가중치라고 하는 연관된 숫자가 있습니다. 가중치는 일반적으로 양수입니다. 곡선 제어점의 모든 가중치가 같은 경우(일반적으로 1) 해당 곡선을 비유리라고 하고, 그렇지 않은 경우 유리라고 합니다. 대부분의 NURBS 곡선은 비유리입니다.
노트: 노트는 (차수+N-1) 숫자의 리스트입니다. 여기서 N은 제어점의 수입니다. 노트는 가중치와 함께 사용되어 결과 곡선에 제어점이 미치는 영향을 제어합니다. 노트의 한 가지 용도는 곡선의 특정 점에 꼬임을 작성하는 것입니다.
차수 = 1
차수 = 2
차수 = 3
차수 값이 높을수록 결과 곡선을 보간하는 데 더 많은 제어점이 사용됩니다.
선은 점의 집합으로 구성되며, 각 선에는 최소 2개의 점이 있습니다. Dynamo에서 선을 작성하는 가장 일반적인 방법 중 하나는 Line.ByStartPointEndPoint
를 사용하여 Dynamo에서 선을 작성하는 것입니다.
점은 좌표라는 하나 이상의 값으로 정의됩니다. 점을 정의하는 데 필요한 좌표 값 수는 점이 존재하는 컨텍스트 또는 좌표계에 따라 달라집니다.
Dynamo에서 가장 일반적인 종류의 점은 3D 표준 좌표계에 있으며 3개의 좌표 [X,Y,Z]를 갖습니다(Dynamo의 3D 점).
Dynamo의 2D 점에는 두 개의 좌표 [X,Y]가 있습니다.
곡선과 표면 모두에 대한 매개변수는 연속적이며 지정된 형상의 모서리를 넘어 연장됩니다. 매개변수 공간을 정의하는 모양은 3D 표준 좌표계에 있기 때문에 파라메트릭 좌표를 항상 "표준" 좌표로 변환할 수 있습니다. 예를 들어 표면의 점 [0.2, 0.5]는 표준 좌표의 점 [1.8, 2.0, 4.1]과 같습니다.
가정된 표준 XYZ 좌표의 점
지정된 좌표계(원통형)를 기준으로 하는 점
표면의 UV 좌표로서의 점
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
형상이 모델의 언어라면 점은 알파벳이라고 할 수 있습니다. 점은 다른 모든 형상이 작성되는 토대가 됩니다. 곡선을 작성하려면 점이 두 개 이상 필요하며, 다각형이나 메쉬 면 등을 만들려면 점이 세 개 이상 필요합니다. 점 간의 관계, 순서 및 위치를 정의(사인 함수 사용)하면 원이나 곡선으로 인식되는 고차원적인 형상을 정의할 수 있습니다.
함수
x=r*cos(t)
및y=r*sin(t)
를 사용하는 원함수
x=(t)
및y=r*sin(t)
을 사용하는 사인 곡선
점은 2D 좌표계에도 존재할 수 있습니다. 규칙은 작업 중인 공간의 종류에 따라 다른 문자 표기법을 가집니다. 평면에서는 [X,Y]를, 표면에 있는 경우에는 [U,V]를 사용할 수 있습니다.
유클리드 좌표계의 점: [X,Y,Z]
곡선 매개변수 좌표계의 점: [t]
표면 매개변수 좌표계의 점: [U,V]
벡터는 크기 및 방향을 나타내는 것으로, 지정된 속도로 특정 방향을 향해 속도를 높이는 화살표라고 생각하면 됩니다. Dynamo에서 모델의 핵심 구성요소입니다. 추상적인 "도우미" 카테고리에 속하기 때문에 벡터를 작성할 때는 때 배경 미리보기에 아무것도 표시되지 않습니다.
벡터 미리보기를 위한 자리 표시자로 선을 사용할 수 있습니다.
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
평면은 2D 표면으로, 무한하게 연장되는 평평한 표면이라고 생각하면 됩니다. 각 평면에는 원점, X 방향, Y 방향 및 Z(위쪽) 방향이 있습니다.
평면은 추상적이지만, 평면에는 원점 위치가 있어 이를 공간에서 찾을 수 있습니다.
Dynamo에서 평면은 배경 미리보기에서 렌더링됩니다.
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
좌표계는 점 또는 기타 형상 요소의 위치를 결정하는 체계입니다. 아래 이미지는 Dynamo에서 어떻게 보이는지와 각 색상이 무엇을 나타내는지 설명합니다.
평면은 추상적이지만, 좌표계에도 원점 위치가 있어 이를 공간에서 찾을 수 있습니다.
Dynamo에서 좌표계는 배경 미리보기에서 축을 정의하는 점(원점)과 선으로 렌더링됩니다(규칙에 따라 X는 빨간색, Y는 초록색, Z는 파란색임).
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
벡터, 평면 및 좌표계는 추상 형상 유형의 기본 그룹을 구성합니다. 이러한 항목은 모양을 나타내는 다른 형상의 위치, 방향 및 공간 컨텍스트를 정의하는 데 유용합니다. 예를 들어 New York City, 42nd Street 및 Broadway(좌표계)에서 지상층(평면)에 선 채 북쪽(벡터)을 바라보고 있다면 이러한 "도우미"를 사용하여 현재 위치를 정의할 수 있습니다. 휴대폰 케이스 제품이나 고층 건물의 경우도 마찬가지입니다. 모델을 개발하려면 이러한 컨텍스트가 필요합니다.
벡터는 방향 및 크기를 설명하는 기하학적 수량입니다. 벡터는 추상적입니다. 즉, 기하학적 요소가 아니라 수량을 나타냅니다. 벡터와 점은 둘 다 값 리스트로 구성되기 때문에 벡터가 점으로 혼동되기 쉽습니다. 그러나 점은 지정된 좌표계에서의 위치를 나타내지만, 벡터는 "방향"과 같은 의미의 상대적인 위치 차이를 나타낸다는 점이 주요 차이점입니다.
상대적 차이를 이해하는 것이 어렵다면, 벡터 AB를 "점 A에 서서 점 B 쪽을 바라보고 있는" 상태라고 생각해 보십시오. 여기(A)에서 저기(B)까지의 방향이 벡터입니다.
동일한 AB 표기법을 사용하여 벡터를 좀 더 분석해 보겠습니다.
벡터의 시작점을 기준이라고 합니다.
벡터의 끝점을 팁 또는 센스라고 합니다.
벡터 AB는 반대 방향을 향하는 벡터 BA와 같지 않습니다.
벡터(및 그 추상적 정의)에 관해 기분전환이 필요하다면 클래식 코미디인 Airplane을 보고 자주 인용되는 다음 농담을 들어보세요.
알았다, 오버. 우리 벡터는 뭐지? Victor?(Roger, Roger. What's our vector, Victor?)
평면은 추상적인 2D "도우미"입니다. 보다 구체적으로 말하면 평면은 개념적으로 "평평하여" 두 방향으로 무한하게 확장되며, 일반적으로 원점 근처에서 좀 더 작은 사각형으로 렌더링됩니다.
"잠깐! 원점이요? CAD 소프트웨어에서 모델링할 때 제가 사용하는 것과 같은 좌표계처럼 들리는데요."라는 생각이 드실 수 있습니다.
맞습니다. 대부분의 모델링 소프트웨어에서는 구성 평면이나 "레벨"을 활용하여 초안을 작성할 로컬 2D 컨텍스트를 정의합니다. XY, XZ, YZ 또는 북쪽, 남동쪽, 평면이 더 친숙하게 들릴 수 있습니다. 이러한 항목은 모두 무한 "평면" 컨텍스트를 정의하는 평면입니다. 평면에는 깊이가 없지만 방향을 설명하는 데 도움이 됩니다.
평면에 익숙하다면 좌표계를 이해하는 것이 다소 어려울 수 있습니다. 평면은 좌표계(표준 "유클리드" 또는 "XYZ" 좌표계인 경우)와 모든 부분이 동일합니다.
하지만 원통형 또는 구형과 같은 대체 좌표계가 있습니다. 이후 섹션에서 살펴볼 텐데, 좌표계는 다른 형상 유형에 적용하여 해당 형상에서 위치를 정의할 수도 있습니다.
대체 좌표계(원통형, 구형) 추가
형상은 설계를 위한 언어입니다. 프로그래밍 언어나 환경의 핵심에 형상 커널이 포함되어 있으면 알고리즘을 통해 정확하고 강력한 모델을 설계하고, 설계 루틴을 자동화하고, 설계를 반복해서 생성할 수 있게 됩니다.
형상 유형과 형상 유형이 어떻게 관련되어 있는지를 잘 이해하면 라이브러리에서 사용할 수 있는 Geometry 노드 모음을 탐색할 수 있습니다. Geometry 노드는 계층이 아닌 알파벳순으로 정리되어 있습니다. 여기서는 Dynamo 인터페이스 내 배치와 유사하게 표시됩니다.
또한 Dynamo에서 모델을 만들고 배경 미리보기에 표시되는 항목의 미리보기를 그래프의 데이터 흐름에 연결하는 작업은 시간이 갈수록 점점 더 간단해집니다.
가정된 좌표계는 그리드 및 색상 축으로 렌더링됩니다.
선택된 노드에서는 해당하는 형상(노드에서 형상을 작성하는 경우)을 강조 표시 색상으로 배경에 렌더링합니다.
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
일반적으로 정의된 형상은 그림의 모양, 크기, 상대 위치 및 공간 특성을 연구한 것입니다. 이 분야에는 수천 년의 유구한 역사가 있습니다. 컴퓨터의 출현과 대중화를 통해 우리는 형상을 정의하고 탐색하고 생성하는 강력한 도구를 얻었습니다. 이제 복잡한 기하학적 상호 작용의 결과를 계산하는 작업이 매우 쉬워졌기에 우리가 실제로 그렇게 하고 있다는 사실은 거의 분명합니다.
컴퓨터의 성능을 통해 얼마나 다양하고 복잡한 형상을 얻을 수 있는지 궁금하다면 알고리즘을 테스트하는 데 사용되는 표준 모델인 Stanford Bunny를 웹에서 빠르게 검색해 보십시오.
알고리즘, 컴퓨팅 및 복잡성의 맥락에서 형상을 파악하는 일은 다소 어려울 수 있지만, 고급 응용프로그램 작성을 시작하기 위한 기본 사항으로 설정할 수 있는 핵심적이고 비교적 간단한 원칙이 몇 가지 있습니다.
형상은 데이터입니다. 컴퓨터 및 Dynamo의 입장에서 볼 때 Bunny는 숫자와 그렇게 다르지 않습니다.
형상은 추상화를 활용합니다. 기본적으로 기하학적 요소는 지정된 공간 좌표계 내에서 숫자, 관계 및 공식으로 설명됩니다.
형상에는 계층이 있습니다. 점이 함께 모여 선을 만들고 선이 함께 모여 표면을 만드는 식입니다.
형상은 부분과 전체를 동시에 설명합니다. 곡선이 있는 경우 곡선의 모양뿐만 아니라 해당 곡선을 구성하는 모든 점도 볼 수 있습니다.
실제로 이러한 원칙은 우리가 작업 중인 항목(형상의 유형, 형상이 작성된 방식 등)을 잘 알고 있어야 함을 의미합니다. 그래야 더욱 복잡한 모델을 개발할 때 여러 형상을 유동적으로 구성, 분해 및 재구성할 수 있습니다.
잠시 형상에 대한 추상적 설명 및 계층적 설명 간의 관계를 살펴보겠습니다. 이러한 두 가지 개념은 서로 관련되어 있지만 처음에는 명확하게 드러나지 않을 수 있으므로 좀 더 심층적인 워크플로우 또는 모델 개발을 시작하면 개념적 장애물에 빠르게 도달할 수 있습니다. 초보자인 경우 차원을 통해 우리가 모델링하는 "대상"을 쉽게 파악해 보십시오. 모양을 나타내는 데 필요한 차원을 통해 형상이 계층적으로 구성된 방식을 이해할 수 있습니다.
점(좌표로 정의됨)에는 차원이 없습니다. 이는 각 좌표를 나타내는 숫자일 뿐입니다.
선(두 점으로 정의됨)은 1 차원입니다. 선을 따라 앞으로(양의 방향) 또는 뒤로(음의 방향) "걸어갈 수 있습니다".
평면(두 선으로 정의됨)은 2 차원입니다. 이제 좀 더 왼쪽으로 또는 좀 더 오른쪽으로 걸어갈 수 있습니다.
상자(두 평면으로 정의됨)는 3 차원입니다. 위쪽 또는 아래쪽에 상대적인 위치를 정의할 수 있습니다.
차원은 형상 분류를 시작하는 편리한 방법이지만 가장 좋은 방법은 아닙니다. 결국 점, 선, 평면 및 상자만으로 모델링하지는 않게 됩니다. 곡선이 필요할 수도 있으니까요. 또한 완전히 추상화된 형상 유형의 완전히 다른 카테고리가 있습니다. 이에 따라 방향, 체적 또는 부분 간의 관계와 같은 특성이 정의됩니다. 실제로는 벡터를 적용할 수 없으므로 공간에 표시되는 대상과 비교해서 정의하려면 어떻게 해야 할까요? 기하학적 계층을 더 상세하게 분류하면 추상 유형과 "도우미" 간의 차이점이 적용됩니다. 이는 각각 지원하는 항목 및 모델 요소의 모양을 그리는 데 도움이 되는 유형별로 그룹화할 수 있습니다.
Dynamo에서 모델을 작성하는 작업은 노드를 사용하여 생성할 수 있는 작업으로만 국한되지 않습니다. 다음은 형상을 사용하여 프로세스를 다음 단계로 발전시키는 몇 가지 주요 방법입니다.
Dynamo를 사용하면 파일을 가져올 수 있습니다. 점 구름에는 CSV를 사용하고, 표면을 가져올 때는 SAT를 사용해 보십시오.
Revit으로 작업하는 경우 Revit 요소를 참조하여 Dynamo에서 사용할 수 있습니다.
Dynamo Package Manager에서는 확장된 형상 유형 및 작업에 대한 추가 기능을 제공합니다. Mesh Toolkit 패키지를 확인하십시오.
모델에서 표면을 사용하여 3D 환경에서 보이는 객체를 나타냅니다. 곡선이 항상 평면형인 것은 아닙니다. 즉, 곡선은 3차원에 있지만 정의되는 공간이 항상 하나의 차원에 묶이게 되는 것입니다. 표면은 다른 모델링 작업에서 사용할 수 있는 추가 특성 모음과 다른 차원을 제공해 줍니다.
Dynamo의 매개변수에서 표면을 가져와 평가하여 추출할 수 있는 정보의 종류를 알아보겠습니다.
Surface.PointAtParameter 는 지정된 UV 좌표의 점을 반환합니다.
Surface.NormalAtParameter 는 지정된 UV 좌표의 법선 벡터를 반환합니다.
Surface.GetIsoline 은 U 또는 V 좌표에서 Isoparametric 곡선을 반환합니다. IsoDirection 입력을 확인해 주십시오.
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
표면은 함수와 두 개의 매개변수로 정의되는 수학적 모양으로, 곡선을 위한 t
대신, U
및 V
를 사용하여 해당 매개변수 공간을 설명합니다. 즉, 이 유형의 형상으로 작업하는 경우 더 많은 기하학적 데이터를 그려야 합니다. 예를 들어 곡선에는 접선 벡터와 법선 평면(곡선의 길이를 따라 회전 또는 비틀릴 수 있음)이 있지만, 표면에는 방향이 일치하는 법선 벡터와 접선 평면이 있습니다.
표면
U Iso 곡선
V Iso 곡선
UV 좌표
수직 평면
법선 벡터
표면 도메인: 표면 도메인은 해당 곡면의 3D 점으로 평가되는 (U,V) 매개변수의 범위로 정의됩니다. 각 차원(U 또는 V)의 도메인은 일반적으로 두 개의 숫자, U 최소값 U 최대값 및 V 최소값 V 최대값으로 기술됩니다.
표면의 모양이 "직사각형"처럼 보이지 않고 위치상 더욱 조밀하거나 느슨한 Iso 곡선 세트를 포함할 수 있지만, 해당 도메인으로 정의된 "공간"은 항상 2D입니다. Dynamo에서 표면은 항상 U와 V 방향 모두에서 최소값 0.0 및 최대값 1.0으로 정의된 도메인을 가지는 것으로 인식됩니다. 평면 또는 잘린 표면은 다른 도메인을 가질 수 있습니다.
Iso 곡선(또는 아이소파라메트릭 곡선): 곡면의 상수 U 또는 V 값과 해당하는 다른 U 또는 V 방향에 대한 값 도메인으로 정의되는 곡선입니다.
UV 좌표: U, V 및 경우에 따라 W로 정의되는 UV 매개변수 공간의 점입니다.
수직 평면: 지정된 UV 좌표에서 U 및 V Iso 곡선 모두에 수직인 평면입니다.
법선 벡터: 수직 평면을 기준으로 "위쪽" 방향을 정의하는 벡터입니다.
NURBS 표면은 NURBS 곡선과 매우 유사합니다. NURBS 표면을 양방향으로 이동하는 NURBS 곡선의 그리드로 생각할 수 있습니다. NURBS 표면의 모양은 U 및 V 방향의 여러 제어점 및 해당 표면의 각도에 따라 정의됩니다. 동일한 알고리즘을 사용하여 제어점, 가중치 및 각도를 통해 모양, 법선, 접선, 곡률 및 기타 특성을 계산할 수 있습니다.
NURBS 표면의 경우 사용자에게 표시되는 모양에 관계없이 제어점의 직사각형 그리드이므로 형상이 내포하는 두 개의 방향이 있습니다. 이러한 방향은 종종 표준 좌표계에 상대적으로 임의 방향이지만, 모델을 분석하거나 표면을 따라 다른 형상을 생성하는 데 자주 사용됩니다.
차수 (U,V) = (3,3)
차수 (U,V) = (3,1)
차수 (U,V) = (1,2)
차수 (U,V) = (1,1)
Polysurface는 모서리를 따라 결합된 표면으로 구성됩니다. Polysurface에서는 이제 토폴로지 방식에 따라 연결된 모양을 이동할 수 있다는 점에서 2D UV 정의 이상의 기능을 제공합니다.
“토폴로지”는 일반적으로 부분이 연결되는 방식 및/또는 Dynamo의 관련 토폴로지가 형상 유형이 되는지에 대한 개념을 설명합니다. 구체적으로 토폴로지는 표면, Polysurface 및 솔리드의 상위 카테고리입니다.
이러한 방식으로 표면을 결합하면(패치라고도 함) 이음새를 가로질러 상세정보를 정의할 뿐만 아니라 좀 더 복잡한 모양을 만들 수 있습니다. Polysurface의 모서리에는 모깎기 또는 모따기 작업을 편리하게 적용할 수 있습니다.
단일 표면에서 작성할 수 없는 보다 복잡한 모델을 구성하거나 명시적인 볼륨을 정의하려면 이제 (및 Polysurface) 영역을 도입해야 합니다. 단순한 정육면체라도 면당 1개씩 6개의 표면이 필요할 정도로 충분히 복잡하다고 할 수 있습니다. 솔리드의 경우 표면에서는 제공하지 않는 두 가지 핵심 개념인 세부적인 토폴로지 설명(면, 모서리, 정점)과 부울 연산을 활용할 수 있습니다.
을 사용하여 솔리드를 수정할 수 있습니다. 몇 가지 부울 연산을 사용하여 작은 뿔이 여러 개 있는 구를 만들어 보겠습니다.
Sphere.ByCenterPointRadius: 기준 솔리드를 작성합니다.
Topology.Faces, Face.SurfaceGeometry: 솔리드의 면을 조회하고 표면 형상으로 변환합니다. 이 경우 구에는 하나의 면만 있습니다.
Cone.ByPointsRadii: 표면의 점을 사용하여 원추를 구성합니다.
Solid.UnionAll: 원추와 구를 결합합니다.
Topology.Edges: 새 솔리드의 모서리를 조회합니다.
Solid.Fillet: 작은 뿔이 여러 개 있는 구의 모서리를 모깎기합니다.
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
부울 연산은 복잡하므로 계산 속도가 느려질 수 있습니다. “동결” 기능을 사용하여 선택한 노드 및 영향을 받은 다운스트림 노드의 실행을 일시 중단할 수 있습니다.
1. 마우스 오른쪽 버튼을 클릭할 때 표시되는 상황별 메뉴를 사용하여 솔리드 결합 작업을 동결합니다.
2. 선택한 노드와 모든 다운스트림 노드를 연회색 가상 모드로 미리 볼 수 있으며, 영향을 받는 와이어는 파선으로 표시됩니다. 영향을 받는 형상 미리보기도 가상으로 표시됩니다. 그러면 부울 결합을 계산하지 않고 값 업스트림을 변경할 수 있습니다.
3. 노드를 동결 해제하려면 마우스 오른쪽 버튼을 클릭하고 동결을 선택 취소합니다.
4. 영향을 받는 모든 노드와 연관된 형상 미리보기가 업데이트되고 표준 미리보기 모드로 되돌아갑니다.
솔리드는 "내부" 또는 "외부"를 정의하는 닫힌 경계 방식에 따라 체적을 포함하는 하나 이상의 표면으로 구성됩니다. 이러한 표면의 수에 관계없이 솔리드로 간주되는 "수밀" 체적을 형성해야 합니다. 솔리드는 표면 또는 Polysurface를 함께 결합하거나 로프트, 스윕 및 회전과 같은 작업을 사용하여 작성할 수 있습니다. 구, 정육면체, 원추 및 원통 원형도 솔리드입니다. 하나 이상의 면이 제거된 정육면체는 몇 가지 유사한 특성이 있지만 솔리드가 아닌 Polysurface로 계산됩니다.
평면은 솔리드가 아닌 단일 표면으로 구성됩니다.
구는 하나의 표면으로 구성되지만 솔리드 입니다.
원추는 솔리드를 만들기 위해 서로 결합된 두 개의 표면으로 구성됩니다.
원통은 솔리드를 만들기 위해 서로 결합된 세 개의 표면으로 구성됩니다.
큐브는 솔리드를 만들기 위해 서로 결합된 6개의 표면으로 구성됩니다.
솔리드는 정점, 모서리 및 면의 세 가지 요소 유형으로 구성됩니다. 면은 솔리드를 구성하는 표면입니다. 모서리는 인접한 면 사이의 연결을 정의하는 곡선이며, 정점은 이러한 곡선의 시작점과 끝점입니다. 이러한 요소는 위상 노드를 사용하여 조회할 수 있습니다.
면
모서리
정점
솔리드는 해당 모서리를 모깎기 또는 모따기하여 날카로운 모서리와 각을 제거하는 방식으로 수정할 수 있습니다. 모따기 작업을 수행하면 두 면 사이에 직선보간 표면이 작성되지만, 모깎기를 수행하면 면 사이에서 혼합되어 접선이 유지됩니다.
솔리드 정육면체
모따기된 정육면체
모깎기된 정육면체
솔리드 부울 연산은 두 개 이상의 솔리드를 결합하는 방법입니다. 하나의 부울 연산은 실제로는 다음 4가지 연산을 수행하는 것을 의미합니다.
두 개 이상의 객체를 교차합니다.
교차점에서 분할합니다.
형상의 원치 않는 부분을 삭제합니다.
모든 항목을 다시 결합합니다.
Union: 솔리드의 겹치는 부분을 제거하고 단일 솔리드로 결합합니다.
Difference: 한 솔리드에서 다른 솔리드를 뺍니다. 빼려는 솔리드를 도구라고 하는데, 도구로 사용할 솔리드를 전환하여 역체적을 유지할 수도 있습니다.
Intersection: 두 솔리드의 교차 체적만 유지합니다.
이러한 세 가지 연산 외에도 Dynamo에는 여러 솔리드로 차이 및 결합 연산을 수행하기 위한 Solid.DifferenceAll 노드와 Solid.UnionAll 노드가 있습니다.
UnionAll: 구와 바깥쪽 방향의 원추를 사용한 결합 연산입니다.
DifferenceAll: 구와 안쪽을 향하는 원추를 사용한 차이 연산입니다.
계산 모델링 분야에서 는 3D 형상을 나타내는 가장 널리 사용되는 양식 중 하나입니다. 메쉬 형상은 일반적으로 사변형 또는 삼각형 모음으로 구성되며, 간단하고 유연하며 NURBS 대신 사용할 수 있습니다. 또한 메쉬는 렌더링 및 시각화에서 디지털 제작 및 3D 인쇄에 이르는 모든 분야에서 사용됩니다.
Dynamo에서는 면-정점 데이터 구조를 사용하여 메쉬를 정의합니다. 가장 기본적인 수준에서 이 구조는 단순히 다각형으로 그룹화된 점의 모음입니다. 메쉬의 점은 정점이라고 하고, 표면 같은 다각형은 면이라고 합니다.
메쉬를 작성하려면 정점 리스트와 이러한 정점을 색인 그룹이라는 면으로 그룹화하는 시스템이 필요합니다.
정점 리스트
면을 정의할 색인 그룹 리스트
라이브러리에서는 메쉬를 수정 또는 복구하거나 제작에 사용할 수평 슬라이스를 추출하는 도구도 제공합니다.
메쉬는 표면 또는 솔리드 형상을 나타내는 사변형 및 삼각형의 모음입니다. 솔리드와 마찬가지로 메쉬 객체의 구조에는 정점, 모서리 및 면이 포함됩니다. 법선과 같이 메쉬를 고유하게 만드는 추가 특성이 있습니다.
메쉬 정점
메쉬 모서리(*인접 면이 하나만 있는 모서리를 "Naked"라고 하며, 다른 모든 모서리는 "Clothed"임)
메쉬 면
메쉬의 정점은 점 리스트일 뿐입니다. 정점의 색인은 메쉬를 구성하거나 메쉬 구조에 대한 정보를 가져올 때 매우 중요합니다. 각 정점에는 부착된 면의 평균 방향을 그리고 메쉬의 "안쪽" 및 "바깥쪽" 방향을 파악하는 데 도움이 되는 해당 정점 법선(벡터)도 있습니다.
정점
정점 법선
면은 3개 또는 4개의 정점이 정렬된 리스트입니다. 따라서 메쉬 면의 "표면" 표현은 색인화되는 정점의 위치에 따라 포함됩니다. 메쉬를 구성하는 정점 리스트가 이미 있으므로 개별 점을 제공하여 면을 정의하는 대신, 간단히 정점의 색인을 사용합니다. 이렇게 하면 둘 이상의 면에서 동일한 정점을 사용할 수도 있습니다.
색인 0, 1, 2, 3으로 만들어진 쿼드 면
색인 1, 4, 2로 만든 삼각형 면. 색인 그룹은 순서대로 이동될 수 있습니다. 시퀀스가 시계 반대 방향으로 정렬되기만 하면 면이 올바르게 정의됩니다.
메쉬 형상은 NURBS 형상과 어떻게 다르고, 이러한 형상은 각기 언제 사용해야 할까요?
이전 장에서는 두 방향으로 진행되는 일련의 NURBS 곡선에 의해 NURBS 표면이 정의되는 것을 확인했습니다. U
및 V
라는 레이블이 지정되는 이러한 방향을 통해 2D 표면 도메인에 따라 NURBS 표면을 매개변수화할 수 있게 됩니다. 곡선 자체는 컴퓨터에 방정식으로 저장되므로 결과 표면을 임의의 작은 정밀도로 계산할 수 있습니다. 그러나 여러 NURBS 표면을 함께 결합하는 것은 어려울 수 있습니다. 두 NURBS 표면을 결합하면 형상의 서로 다른 단면이 서로 다른 UV 매개변수 및 곡선 정의를 갖는 폴리 표면이 만들어집니다.
표면
아이소파라메트릭(아이소팜) 곡선
표면 제어점
표면 제어 다각형
아이소파라메트릭 점
표면 프레임
메쉬
Naked 모서리
메쉬 네트워크
메쉬 모서리
정점 법선
메쉬 면/메쉬 면 법선
반면, 메쉬는 정확하게 정의된 불연속 개수의 정점 및 면으로 구성됩니다. 일반적으로 정점 네트워크는 간단한 UV
좌표로 정의할 수 없으며, 면이 불연속적이므로 정밀도는 메쉬로 구축되고 메쉬를 미세 조정하고 면을 더 추가하는 방법으로만 변경할 수 있습니다. 수학적 설명이 부족하면 메쉬가 단일 메쉬 내에서 복잡한 형상을 보다 유연하게 처리할 수 있습니다.
또 다른 중요한 차이점은 메쉬나 NURBS 형상의 로컬 변경이 전체 형태에 영향을 미치는 정도입니다. 메쉬의 한 정점을 이동하면 해당 정점에 인접한 면에만 영향을 줍니다. NURBS 표면에서는 영향의 범위가 보다 복잡하며 제어점의 가중치 및 노트뿐만 아니라 표면의 각도에 따라 달라집니다. 그러나 일반적으로 NURBS 표면에서 단일 제어점을 이동하면 형상에서 보다 매끄럽고 광범위한 변화가 일어납니다.
NURBS 표면 - 제어점을 이동하면 모양 전체가 영향을 받습니다.
메쉬 형상 - 정점을 이동하면 인접 요소에만 영향을 미칩니다.
유용한 하나의 유추 방식은 벡터 이미지(선과 곡선으로 구성)와 래스터 이미지(개별 픽셀로 구성)를 비교하는 것입니다. 벡터 이미지를 줌 확대하면 곡선이 선명하고 명확하게 유지되지만, 래스터 이미지를 줌 확대하면 개별 픽셀이 더 커집니다. 이러한 유추에서 NURBS 표면은 원활한 수학적 관계가 있으므로 벡터 이미지와 비교될 수 있지만, 메쉬는 해상도가 설정된 래스터 이미지와 유사하게 동작합니다.
섹션에서 노드 동결에 대한 자세한 내용을 확인할 수 있습니다.
이렇게 솔리드 부울은 시간을 절약해 주는 강력한 프로세스의 역할을 합니다. 유지할 형상 부분을 구분하는 솔리드 부울 연산에는 다음 세 가지가 있습니다.
패키지를 설치하여 Dynamo의 메쉬 기능을 확장할 수 있습니다. Dynamo Mesh Toolkit에서는 외부 파일 형식에서 메쉬를 가져오고, Dynamo 형상 객체에서 메쉬를 작성하고, 정점 및 색인으로 메쉬를 수동으로 작성하는 도구를 제공합니다.
이 패키지 사용에 대한 예를 확인하려면 를 참조하십시오.