Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
클리어런스 검증을 위한 운동학적 엔벨로프를 개발하는 것은 레일 설계에서 중요한 부분입니다. 복잡한 코리더 횡단구성요소를 작성하고 관리하는 대신 Dynamo를 사용하여 엔벨로프에 사용할 솔리드를 생성할 수 있습니다.
코리더 형상선 작업
좌표계 간 형상 변환
로프트를 통한 솔리드 작성
레이싱 설정으로 노드 동작 제어
이 그래프는 Civil 3D 2020 이상 버전에서 실행됩니다.
먼저 아래의 샘플 파일을 다운로드한 다음 DWG 파일과 Dynamo 그래프를 엽니다.
이 그래프의 논리에 대한 개요는 다음과 같습니다.
지정된 코리더 기준선에서 형상선 가져오기
코리더 형상선을 따라 원하는 간격으로 좌표계 생성
프로파일 블록 형상을 좌표계로 변환
프로파일 사이에 솔리드 로프트
Civil 3D에서 솔리드 작성
그럼 시작하겠습니다!
첫 번째 단계는 코리더 데이터를 가져오는 것입니다. 이름으로 코리더 모형을 선택하고 코리더 내에서 특정 기준선을 가져온 다음, 기준선 내에서 점 코드로 형상선을 가져옵니다.
이제 지정된 시작 측점과 끝 측점 사이의 코리더 형상선을 따라 좌표계를 생성하겠습니다. 이러한 좌표계는 차량 프로파일 블록 형상을 코리더에 정렬하는 데 사용됩니다.
좌표계를 처음 사용하는 경우 벡터, 평면 및 좌표계 섹션을 참조하십시오.
노드의 오른쪽 아래 모서리에 있는 작은 XXX이(가) 있습니다. 이는 노드의 레이싱 설정이 두 형상선에 대해 동일한 측점 값으로 좌표계를 생성하는 데 필요한 _외적_으로 설정되어 있음을 의미합니다.
노드 레이싱을 처음 사용하는 경우 리스트란 무엇입니까? 섹션을 참조하십시오.
이제 형상선을 따라 차량 프로파일의 어레이를 만들어야 합니다. 이제 Geometry.Transform 노드를 사용하여 차량 프로파일 블록 정의에서 형상을 변환하겠습니다. 이는 시각화하기 까다로운 개념이므로, 노드를 살펴보기 전에 어떤 일이 일어날지 보여주는 다음 그래픽을 확인하십시오.
따라서 기본적으로 단일 블록 정의에서 Dynamo 형상을 가져와서 이동/회전하는 동시에 형상선을 따라 어레이를 작성합니다. 아주 멋집니다! 다음은 노드 순서의 모습입니다.
이 노든 문서에서 블록 정의를 가져옵니다.
이러한 노드는 블록 내 객체의 Dynamo 형상을 가져옵니다.
이러한 노드는 기본적으로 형상을 변환하는 좌표계를 정의합니다.
마지막으로 이 노드는 형상을 변환하는 실제 작업을 수행합니다.
이 노드에서 가장 긴 레이싱을 주목합니다.
우리가 Dynamo에서 얻는 결과는 다음과 같습니다.
기쁜 소식을 전해 드립니다! 힘든 작업은 끝났습니다. 이제 프로파일 간에 솔리드를 생성하기만 하면 됩니다. Solid.ByLoft 노드를 사용하면 이 작업을 쉽게 수행할 수 있습니다.
결과는 다음과 같습니다. 이 솔리드는 Dynamo 솔리드이므로 여전히 Civil 3D에서 작성해야 합니다.
마지막 단계는 생성된 솔리드를 모형 공간으로 출력하는 것입니다. 또한 눈에 잘 띄도록 색상도 지정할 것입니다.
다음은 Dynamo 플레이어를 사용하여 그래프를 실행하는 예입니다.
Dynamo 플레이어를 처음 사용하는 경우 Dynamo 플레이어 섹션을 참조하십시오.
다음은 이 그래프의 기능을 확장하는 방법에 대한 몇 가지 아이디어입니다.
각 트랙에 대해 다른 측점 범위를 별도로 사용할 수 있는 기능을 추가합니다.
충돌을 개별적으로 분석할 수 있도록 솔리드를 더 작은 세그먼트로 분할합니다.
엔벨로프 솔리드가 피쳐와 교차하는 확인하고 충돌하는 부분에 색상을 지정합니다.
차량 프로파일 블록을 사용하여 코리더를 따라 클리어런스 엔벨로프 3D 솔리드를 생성합니다.
작업을 완료했습니다!
Dynamo의 많은 뛰어난 사용 사례 중 하나는 코리더 모형을 따라 개별 객체를 동적으로 배치하는 것입니다. 코리더를 따라 삽입된 조립품과 독립적인 위치에 객체를 배치해야 하는 경우가 자주 있는데, 이는 수동으로 수행하기에는 매우 지루한 작업입니다. 또한 코리더의 수평 또는 수직 형상이 변경되면 상당한 양의 재작업이 필요합니다.
외부 파일에서 데이터 읽기(이 경우 Excel)
사전에서 데이터 구성
좌표계를 사용하여 위치/축척/회전 제어
블록 참조 배치
Dynamo에서 형상 시각화
이 그래프는 Civil 3D 2020 이상 버전에서 실행됩니다.
먼저 아래의 샘플 파일을 다운로드한 다음 DWG 파일과 Dynamo 그래프를 엽니다.
Excel 파일은 Dynamo 그래프와 동일한 디렉토리에 저장하는 것이 가장 좋습니다.
이 그래프의 논리에 대한 개요는 다음과 같습니다.
Excel 파일을 읽고 Dynamo로 데이터 가져오기
지정된 코리더 기준선에서 형상선 가져오기
원하는 측점에서 코리더 형상선을 따라 좌표계 생성
좌표계를 사용하여 모형 공간에 블록 참조 배치
그럼 시작하겠습니다!
이 예제 그래프에서는 Excel 파일을 사용하여 Dynamo가 등주 블록 참조를 배치하는 데 사용할 데이터를 저장하겠습니다. 테이블의 모습은 다음과 같습니다.
외부 파일(예: Excel 파일)에서 데이터를 읽을 때 Dynamo를 사용하는 것은 훌륭한 전략이며, 특히 데이터를 다른 팀 구성원과 공유해야 하는 경우 더 그렇습니다.
Dynamo로 가져온 Excel 데이터는 다음과 같습니다.
이제 데이터가 있으므로 그래프의 나머지 부분에서 사용할 수 있도록 열(코리더, 기준선, PointCode 등)별로 데이터를 분할해야 합니다. 이 작업을 수행하는 일반적인 방법은 List.GetItemAtIndex 노드를 사용하고 원하는 각 열의 색인 번호를 지정하는 것입니다. 예를 들어, 코리더 열은 색인 0에 있고, 기준선 열은 색인 1에 있습니다.
괜찮아 보이시죠? 하지만 이 접근 방식에는 잠재적인 문제가 있습니다. 나중에 Excel 파일의 열 순서가 변경되면 어떻게 됩니까? 아니면 두 열 사이에 새 열이 추가됩니까? 그러면 그래프가 제대로 작동하지 않기 때문에 업데이트해야 합니다. Excel 열 헤더를 키 로, 나머지 데이터를 값 으로 사용하여 데이터를 사전 에 넣으면 추후에도 그래프를 사용할 수 있습니다.
사전을 처음 사용하는 경우 Dynamo의 사전 섹션을 참조하십시오.
이렇게 하면 Excel에서 열의 순서를 유연하게 변경할 수 있으므로 그래프의 탄력성이 향상됩니다. 열 헤더가 동일하게 유지되는 한, 해당 키(즉, 열 헤더)를 사용하여 사전에서 데이터를 간단히 검색할 수 있으며, 이것이 우리가 다음에 수행할 작업입니다.
이제 Excel 데이터를 가져와서 사용할 준비가 되었으므로 해당 데이터를 사용하여 Civil 3D에서 코리더 모형에 대한 몇 가지 정보를 가져와 보겠습니다.
이름으로 코리더 모형을 선택합니다.
코리더 내에서 특정 기준선을 가져옵니다.
기준선 내의 형상선을 점 코드로 가져옵니다.
이제 Excel 파일에서 지정한 측점 값으로 코리더 형상선을 따라 좌표계를 생성하겠습니다. 이러한 좌표계는 등주 블록 참조의 위치, 회전 및 축척을 정의하는 데 사용됩니다.
좌표계를 처음 사용하는 경우 벡터, 평면 및 좌표계 섹션을 참조하십시오.
여기에서는 Code Block을 사용하여 좌표계가 기준선의 어느 쪽에 있는지에 따라 좌표계를 회전합니다. 여러 노드의 시퀀스를 사용하여 이를 달성할 수도 있지만, 이것은 그냥 작성하는 것이 더 쉬운 상황임을 보여주는 좋은 예입니다.
Code Block을 처음 사용하는 경우 코드 블록과 DesignScript 섹션을 참조하십시오.
거의 다 왔습니다! 블록 참조를 실제로 배치하는 데 필요한 모든 정보를 확보했습니다. 가장 먼저 해야 할 일은 Excel 파일의 BlockName 열을 사용하여 원하는 블록 정의를 가져오는 것입니다.
여기에서 마지막 단계는 블록 참조를 작성하는 것입니다.
그래프를 실행하면 코리더를 따라 모형 공간에 새 블록 참조가 표시되는 것을 볼 수 있습니다. 그래프의 실행 모드를 자동으로 설정하고 Excel 파일을 편집하면 블록 참조가 자동으로 업데이트됩니다. 아주 멋진 기능입니다.
사용자 인터페이스 섹션에서 그래프 실행 모드에 대한 자세한 내용을 확인할 수 있습니다.
다음은 Dynamo 플레이어를 사용하여 그래프를 실행하는 예입니다.
Dynamo 플레이어를 처음 사용하는 경우 Dynamo 플레이어 섹션을 참조하십시오.
Dynamo에서 코리더 형상을 시각화하여 컨텍스트를 제공하면 도움이 될 수 있습니다. 이 특정 모형에는 모형 공간에서 이미 코리더 솔리드가 추출되어 있으므로 해당 솔리드를 Dynamo로 가져오겠습니다.
하지만 한 가지 더 고려해야 할 사항이 있습니다. 솔리드는 상대적으로 "무거운" 형상 유형이므로, 이 작업을 수행하면 그래프의 속도가 느려집니다. 솔리드를 볼지 여부를 간단하게 선택 할 수 이는 방법이 있다면 좋을 것입니다. 분명한 해답은 Corridor.GetSolids 노드의 연결을 해제하는 것이지만, 이렇게 하면 모든 다운스트림 노드에 경고가 발생하여 약간 지저분해집니다. 이 상황에서는 ScopeIf 노드가 정말 유용합니다.
Object.Geometry 노드의 맨 아래에는 회색 막대가 있습니다. 즉, 노드 미리보기가 꺼져 있으므로(노드를 마우스 오른쪽 버튼으로 클릭하여 액세스 가능) GeometryColor.ByGeometryColor가 배경 미리보기에서 다른 형상과 화면표시 우선순위를 두고 "경쟁"하는 것을 피할 수 있습니다.
ScopeIf 노드를 사용하면 기본적으로 노드의 전체 분기를 선택적으로 실행할 수 있습니다. test 입력이 false이면 ScopeIf 노드에 연결된 모든 노드가 실행되지 않습니다.
Dynamo 배경 미리보기의 결과는 다음과 같습니다.
다음은 이 그래프의 기능을 확장하는 방법에 대한 몇 가지 아이디어입니다.
Excel 파일에 회전 열을 추가하고 이를 사용하여 좌표계의 회전을 구동합니다.
필요한 경우 등주가 코리더 형상선에서 벗어날 수 있도록 Excel 파일에 수평 또는 수직 간격띄우기를 추가합니다.
측점 값이 있는 Excel 파일을 사용하는 대신, 시작 측점 및 일반적인 간격을 사용하여 Dynamo에서 직접 측점 값을 생성합니다.
파이프 및 구조물을 관망에 추가할 때 Civil 3D는 템플릿을 사용하여 자동으로 이름을 지정합니다. 일반적으로 초기 배치 시에는 이 정도면 충분하지만 향후 설계가 진행됨에 따라 불가피하게 이름을 변경해야 할 수도 있습니다. 또한 가장 먼 다운스트림 구조물에서 시작하여 관로 내에서 순차적으로 구조물의 이름을 지정하거나 로컬 에이전시의 데이터 스키마에 맞는 이름 지정 패턴을 따르는 등 다양한 이름 지정 패턴이 필요할 수 있습니다. 이 예에서는 Dynamo를 사용하여 모든 유형의 이름 지정 전략을 정의하고 일관되게 적용하는 방법을 보여 줍니다.
경계 상자 작업
List.FilterByBoolMask 노드를 사용하여 데이터 필터링
List.SortByKey 노드를 사용하여 데이터 정렬
문자열 생성 및 수정
이 그래프는 Civil 3D 2020 이상 버전에서 실행됩니다.
먼저 아래의 샘플 파일을 다운로드한 다음 DWG 파일과 Dynamo 그래프를 엽니다.
이 그래프의 논리에 대한 개요는 다음과 같습니다.
도면층별 구조물 선택
구조물 위치 가져오기
간격띄우기를 기준으로 구조물을 필터링한 다음 측점을 기준으로 정렬
새 이름 생성
구조물 이름 바꾸기
그럼 시작하겠습니다!
가장 먼저 해야 할 일은 작업할 모든 구조물을 선택하는 것입니다. 특정 도면층에서 모든 객체를 선택하기만 하면 되므로, 다른 관망에서 구조물을 선택할 수 있습니다(동일한 도면층을 공유한다고 가정할 때).
이 노드를 사용하면 구조물과 동일한 도면층을 공유할 수 있는, 원하지 않는 객체 유형을 실수로 검색하지 않을 수 있습니다.
이제 구조물이 준비되었으므로 공간에서 구조물의 위치를 파악하여 위치에 따라 구조물을 정렬해야 합니다. 이를 위해 각 객체의 경계 상자를 활용하겠습니다. 객체의 경계 상자는 객체의 기하학적 범위를 완전히 포함하는 최소 크기의 상자입니다. 경계 상자의 중심을 계산하면 구조물 삽입점에 대한 근사치를 꽤 정확하게 구할 수 있습니다.
이러한 점을 사용하여 선택한 선형을 기준으로 구조물의 측점 및 간격띄우기를 구할 것입니다.
여기서부터 작업이 조금 까다로워지기 시작합니다. 이 단계에서는 도면층에 지정한 모든 구조물의 큰 리스트가 있고 이를 정렬할 선형을 선택했습니다. 문제는 리스트에 이름을 바꾸고 싶지 않은 구조물이 있을 수 있다는 것입니다. 예를 들어, 그러한 구조물은 관심 있는 특정 실행의 일부가 아닐 수 있습니다.
선택한 선형
이름을 바꾸려는 구조물
무시해야 하는 구조물
따라서 선형에서 특정 간격띄우기보다 큰 구조물은 고려하지 않도록 구조물 리스트를 필터링해야 합니다. 이 작업은 List.FilterByBoolMask 노드를 사용하여 수행하는 것이 가장 좋습니다. 구조물 리스트를 필터링한 후 List.SortByKey 노드를 사용하여 측점 값을 기준으로 구조물을 정렬합니다.
리스트 작업을 처음 해보는 경우 리스트 작업 섹션을 참조하십시오.
구조물의 간격띄우기가 임계값보다 작은지 확인
Null 값을 false 로 대치
구조물 및 측점 리스트 필터링
측점별로 구조물 정렬
마지막으로 해야 할 작업은 구조물의 이름을 새로 생성하는 것입니다. 사용할 형식은 <alignment name>-STRC-<number>
입니다. 원하는 경우 숫자를 0으로 채울 수 있는 몇 가지 추가 노드가 있습니다(예: "1" 대신 "01").
마지막으로, 구조물 이름을 바꾸겠습니다.
다음은 Dynamo 플레이어를 사용하여 그래프를 실행하는 예입니다.
Dynamo 플레이어를 처음 사용하는 경우 Dynamo 플레이어 섹션을 참조하십시오.
최종 결과 대신 그래프의 중간 출력을 시각화하기 위해 Dynamo의 3D 배경 미리보기를 활용하는 것이 도움이 될 수 있습니다. 한 가지 쉬운 방법은 구조물의 경계 상자를 보여주는 것입니다. 또한 이 특정 데이터세트에는 문서에 코리더가 있으므로 코리더 형상선 형상을 Dynamo로 가져와서 구조물이 공간에서 어디에 위치하는지에 대한 컨텍스트를 제공할 수 있습니다. 코리더가 없는 데이터세트에서 그래프를 사용하는 경우 이러한 노드는 아무 작업도 수행하지 않습니다.
이제 간격띄우기를 기준으로 구조를 필터링하는 프로세스가 작동하는 방식을 더 잘 이해할 수 있습니다.
다음은 이 그래프의 기능을 확장하는 방법에 대한 몇 가지 아이디어입니다.
특정 선형을 선택하는 대신 가장 가까운 선형을 기준으로 구조물의 이름을 바꿉니다.
구조물 외에 파이프의 이름을 바꿉니다.
해당 실행을 기준으로 구조물의 도면층을 설정합니다.
Civil 3D에서 COGO 점 및 점 그룹으로 작업하는 것은 많은 필드-마감 프로세스의 핵심 요소입니다. 이 예제에서는 데이터 관리와 관련하여 Dynamo가 매우 유용할 수 있는 잠재적인 사용 사례 하나를 보여드리겠습니다.
리스트 작업
List.GroupByKey 노드로 유사 객체 그룹화
Dynamo 플레이어에 사용자 출력 표시
이 그래프는 Civil 3D 2020 이상 버전에서 실행됩니다.
먼저 아래의 샘플 파일을 다운로드한 다음 DWG 파일과 Dynamo 그래프를 엽니다.
이 그래프의 논리에 대한 개요는 다음과 같습니다.
문서의 모든 COGO 점 가져오기
설명별로 COGO 점 그룹화
점 그룹 작성
Dynamo 플레이어에 요약 출력
그럼 시작하겠습니다!
첫 번째 단계는 문서의 모든 점 그룹을 가져온 다음 각 그룹 내의 모든 COGO 점을 가져오는 것입니다. 그러면 내포된 리스트 또는 "리스트의 리스트"가 생성되며, List.Flatten 노드를 사용하여 모든 것을 단일 리스트로 단순화하면 나중에 작업하기가 더 쉬워집니다.
이제 모든 COGO 점이 있으므로 해당 설명을 기준으로 점을 그룹으로 분리해야 합니다. 이것이 바로 List.GroupByKey 노드의 역할입니다. 이 노드는 기본적으로 동일한 키를 공유하는 모든 항목을 그룹화합니다.
힘든 작업은 끝났습니다! 마지막 단계는 그룹화된 COGO 점에서 새 Civil 3D 점 그룹을 작성하는 것입니다.
그래프를 실행할 때, 우리는 형상에 대한 작업을 하지 않을 것이기 때문에 Dynamo 배경 미리보기에 아무것도 표시되지 않습니다. 따라서 그래프가 제대로 실행되는지 확인할 수 있는 유일한 방법은 도구공간을 확인하거나 노드 출력 미리보기를 보는 것입니다. 그러나 Dynamo 플레이어를 사용하여 그래프를 실행하면 작성된 점 그룹에 대한 요약을 출력하여 그래프 결과에 대해 더 많은 피드백을 제공할 수 있습니다. 노드를 마우스 오른쪽 버튼으로 클릭하고 Is Output 으로 설정하기만 하면 됩니다. 이 경우 이름이 변경된 Watch 노드를 사용하여 결과를 확인합니다.
다음은 Dynamo 플레이어를 사용하여 그래프를 실행하는 예입니다.
다음은 이 그래프의 기능을 확장하는 방법에 대한 몇 가지 아이디어입니다.
초기 정보 대신 ** 전체 설명**을 기반으로 점 그룹을 수정합니다.
선택한 몇 가지 다른 사전 정의된 카테고리(예: "Ground shots", "Monuments" 등)로 점을 그룹화합니다.
특정 그룹의 점에 대한 TIN 지표면을 자동으로 작성합니다.
코리더를 따라 Excel 파일에 지정된 측점 값에 등주 블록 참조를 배치합니다.
작업을 완료했습니다!
선형의 측점 표시를 기반으로 관망 구조물의 이름을 순서대로 바꿉니다.
작업을 완료했습니다!
고유한 각 COGO 점 설명에 대한 점 그룹을 작성합니다.
리스트 작업을 처음 해보는 경우 섹션을 참조하십시오.
Dynamo 플레이어를 처음 사용하는 경우 섹션을 참조하십시오.
작업을 완료했습니다!
도로, 철도, 토지, 공공 설비, 측량, GIS...
토목 인프라는 이 모든 것, 그리고 더 많은 것을 포함합니다! 이 섹션에는 Dynamo를 숙달하고 Dynamo for Civil 3D를 최대한 활용하는 데 도움이 되는 실용적이고 관련 있는 몇 가지 예제 그래프가 포함되어 있습니다. 각 그래프에는 그래프를 작성하는 데 사용된 논리에 대한 자세한 설명이 함께 제공되므로 그래프를 사용할 수 있을 뿐만 아니라 이해 도 할 수 있습니다.
또한 이러한 예제에는 강력한 그래프를 작성하기 위해 오랜 시간 동안 검증된 모범 사례가 구현되어 있습니다. 예제를 살펴보면서 강력하고 유연하며 유지 관리가 용이한 그래프를 작성하는 방법에 대한 더 많은 아이디어를 얻으려면 모범 사례 섹션을 숙지하는 것이 좋습니다.
일반적인 주택 개발의 엔지니어링 설계에는 위생 하수, 강우 배수, 식수 등 여러 지하 공공 설비와 관련된 작업이 포함됩니다. 이 예에서는 Dynamo를 사용하여 분배 본관에서 지정된 로트(예: 구획)로 서비스 연결을 그릴 수 있는 방법을 보여 줍니다. 일반적으로 모든 로트에서 서비스 연결이 필요하므로 모든 서비스를 배치하는 데 상당히 지루한 작업을 하게 됩니다. Dynamo는 필요한 형상을 정밀하게 자동으로 그리는 것은 물론 현지 에이전시 표준에 맞게 조정할 수 있는 유연한 입력을 제공하여 프로세스 속도를 높일 수 있습니다.
사용자 입력을 위한 객체 선택 노드 사용
좌표계 관련 작업
Geometry.DistanceTo 및 Geometry.ClosestPointTo와 같은 기하학적 연산 사용
블록 참조 작성
객체 바인딩 설정 제어
이 그래프는 Civil 3D 2020 이상 버전에서 실행됩니다.
먼저 아래의 샘플 파일을 다운로드한 다음 DWG 파일과 Dynamo 그래프를 엽니다.
이 그래프의 논리에 대한 개요는 다음과 같습니다.
분배 본관에 대한 곡선 형상 가져오기
사용자가 선택한 로트 선에 대한 곡선 형상 가져오기(필요한 경우 반전)
서비스 계량기에 대한 삽입점 생성
서비스 계량기 위치에서 가장 가까운 분배 본관의 점 가져오기
모형 공간에서 블록 참조 및 선 작성
그럼 시작하겠습니다!
첫 번째 단계는 분배 본관에 대한 형상을 Dynamo로 가져오는 것입니다. 개별 선 또는 폴리선을 선택하는 대신, 특정 도면층에 있는 모든 객체를 가져와서 Dynamo PolyCurve로 결합합니다.
Dynamo 곡선 형상을 처음 사용하는 경우 곡선 섹션을 참조하십시오.
다음으로, 선택한 로트 선의 형상을 Dynamo로 가져와서 작업할 수 있도록 해야 합니다. 이 작업에 적합한 도구는 그래프 사용자가 Civil 3D에서 특정 객체를 선택할 수 있는 객체 선택 노드입니다.
또한 발생할 수 있는 잠재적인 문제도 처리해야 합니다. 로트 선에는 시작점과 끝점이 있으며, 이는 로트 선에 방향이 있음을 의미합니다. 그래프가 일관된 결과를 생성하려면 모든 로트 선의 방향이 일관되어야 합니다. 그래프 논리에서 이 조건을 직접 고려할 수 있으므로, 그래프의 탄력성이 향상됩니다.
로트 선의 시작점과 끝점을 가져옵니다.
각 점에서 분배 본관까지의 거리를 측정한 다음 어느 거리가 더 긴지 파악합니다.
원하는 결과는 선의 시작점이 분배 본관에 가장 가까운 것입니다. 그렇지 않으면 로트 선의 방향을 반전합니다. 그 외에는 원래 로트 선을 반환합니다.
이제 서비스 계량기를 어디에 배치할지 결정할 차례입니다. 일반적으로 현지 에이전시 요구 사항에 따라 배치가 결정되므로 다양한 조건에 맞게 변경할 수 있는 입력 값만 제공합니다. 점을 만들기 위한 참조로 로트 선을 따라 좌표계를 사용하겠습니다. 이렇게 하면 로트 선의 방향에 관계없이 로트 선을 기준으로 간격띄우기를 쉽게 정의할 수 있습니다.
좌표계를 처음 사용하는 경우 벡터, 평면 및 좌표계 섹션을 참조하십시오.
이제 서비스 계량기 위치에서 가장 가까운 분배 본관에 점을 확보해야 합니다. 이렇게 하면 모형 공간에 서비스 연결을 그려서 항상 분배 본관에 수직이 되도록 할 수 있습니다. Geometry.ClosestPointTo 노드는 완벽한 솔루션입니다.
이것은 분배 본관 PolyCurve입니다.
이것은 서비스 계량기 삽입점입니다.
마지막 단계는 모형 공간에서 실제로 객체를 작성하는 것입니다. 이전에 생성한 삽입점을 사용하여 블록 참조를 생성한 다음 분배 본관에 있는 점을 사용하여 서비스 연결에 대한 선을 그립니다.
그래프를 실행하면 모형 공간에 새 블록 참조 및 서비스 연결선이 표시됩니다. 일부 입력을 변경하고 모든 항목이 자동으로 업데이트되는지 확인해 보십시오!
하나의 로트 선에 객체를 배치한 후 다른 로트 선을 선택하면 객체가 "이동"되는 것을 볼 수 있습니다.
이는 Dynamo의 기본 동작이고, 대부분의 경우 매우 유용합니다. 그러나 여러 서비스 연결을 순차적으로 배치하고 원래 객체를 수정하는 대신 실행할 때마다 Dynamo가 새 객체를 작성하도록 하고자 할 수 있습니다. 이 동작은 객체 바인딩 설정을 변경하여 제어할 수 있습니다.
자세한 내용은 객체 바인딩 섹션을 참조하십시오.
이 설정을 변경하면 Dynamo가 실행할 때마다 작성하는 객체를 "잊어버립니다". 다음은 Dynamo 플레이어를 사용하여 객체 바인딩을 끈 상태에서 그래프를 실행하는 예입니다.
Dynamo 플레이어를 처음 사용하는 경우 Dynamo 플레이어 섹션을 참조하십시오.
다음은 이 그래프의 기능을 확장하는 방법에 대한 몇 가지 아이디어입니다.
각 로트 선을 선택하는 대신 여러 개의 서비스 연결을 동시에 배치합니다.
입력을 조정하여 수도 서비스 계량기 대신 하수 청소구를 배치합니다.
로트 선의 양쪽이 아닌 특정 쪽에 단일 서비스 연결을 배치할 수 있는 토글을 추가합니다.
수도 서비스 계량기 블록 참조를 로트 선에서 지정된 간격띄우기에 배치하고 각 서비스 연결에 대해 분배 본관에 수직으로 선을 그립니다.
작업을 완료했습니다!