Dynamo
Primer for v2.0
한국어
한국어
  • 정보
  • 소개
    • Dynamo의 정의 및 작동 방식
    • Primer 사용자 안내서, Dynamo Community 및 플랫폼
  • Dynamo 설정
  • 사용자 인터페이스
    • 작업공간
    • 라이브러리
  • 노드 및 와이어
  • 필수 노드 및 개념
    • 노드의 색인
    • 계산 방식 설계를 위한 형상
      • 형상 개요
      • 벡터, 평면 및 좌표계
      • 점
      • 곡선
      • 표면
      • 솔리드
      • 메쉬
    • 프로그램의 빌딩 블록
      • 데이터
      • 수학
      • 논리
      • 문자열
      • 색상
    • 리스트로 설계
      • 리스트란 무엇입니까?
      • 리스트 작업
      • 리스트의 리스트
      • n차원 리스트
    • Dynamo의 사전
      • 사전이란
      • 사전 노드
      • 코드 블록의 사전
      • Revit 사용 사례
  • 사용자 노드 및 패키지
    • 사용자 노드
      • 사용자 노드 소개
      • 사용자 노드 작성
      • 라이브러리에 게시
    • 패키지
      • 패키지 소개
      • 패키지 성공 사례 - Mesh Toolkit
      • 패키지 개발
      • 패키지 게시하기
      • Zero-Touch 가져오기
  • Revit용 Dynamo
    • Revit 연결
    • 선택
    • 편집
    • 작성
    • 사용자화
    • 문서화
  • Dynamo for Civil 3D
    • Civil 3D 연결
    • 시작하기
    • 노드 라이브러리
    • 샘플 워크플로우
      • 도로
        • 등주 배치
      • 토지
        • 서비스 배치
      • 유틸리티
        • 구조물 이름 바꾸기
      • 레일
        • 클리어런스 엔벨로프
      • 측량
        • 점 그룹 관리
    • 고급 항목
      • 객체 바인딩
      • Python 및 Civil 3D
    • Dynamo 플레이어
    • 유용한 패키지
    • 리소스
  • Forma 베타의 Dynamo
    • Forma에서 Dynamo Player 설정
    • Dynamo Player에서 그래프 추가 및 공유
    • Dynamo Player에서 그래프 실행
    • Dynamo 컴퓨팅 서비스와 Desktop Dynamo의 차이점
  • Dynamo의 코딩
    • 코드 블록과 DesignScript
      • Code Block이란
      • DesignScript 구문
      • 축약형
      • 함수
    • DesignScript를 사용한 형상
      • DesignScript 형상 기본 사항
      • 기하학적 원형
      • 벡터 수학
      • 곡선: 보간 및 제어점
      • 전환, 회전 및 기타 변환
      • 표면: 보간, 제어점, 로프트, 회전
      • 기하학적 매개변수화
      • 교차 및 자르기
      • 기하학적 부울
      • Python 점 생성기
    • Python
      • Python 노드
      • Python 및 Revit
      • 자체 Python 템플릿 설정
    • 언어 변경 사항
  • 모범 사례
    • 그래프 전략
    • 스크립팅 전략
    • 스크립팅 참조
    • 프로그램 관리
    • Dynamo에서 대규모 데이터 세트로 효율적으로 작업
  • 샘플 워크플로우
    • 시작하기 워크플로우
      • 파라메트릭 꽃병
      • 어트랙터 점
    • 개념 색인
  • 개발자 입문서
    • 소스에서 Dynamo 빌드하기
      • 소스에서 DynamoRevit 빌드하기
      • Dynamo의 종속성 관리 및 업데이트
    • Dynamo를 위한 개발
      • 시작하기
      • Zero-Touch 사례 연구 - 그리드 노드
      • Zero-Touch 노드에서 Python 스크립트 실행하기(C#)
      • Zero-Touch로 한 단계 더 나아가기
      • 고급 Dynamo 노드 사용자 정의
      • Dynamo 패키지에서 COM(interop) 유형 사용
      • NodeModel 사례 연구 - 사용자 지정 UI
      • Dynamo 2.x용 패키지 및 Dynamo 라이브러리 업데이트하기
      • Dynamo 3.x용 패키지 및 Dynamo 라이브러리 업데이트하기
      • 확장
      • Dynamo 2.0+에 대한 사용자 패키지 구성 정의
      • Dynamo 명령행 인터페이스
      • Dynamo 통합
      • Dynamo For Revit을 위한 개발
      • 패키지 게시하기
      • Visual Studio에서 패키지 빌드하기
      • 패키지로 제공되는 확장
    • 끌어오기 요청
    • 테스트 기대치
    • 예제
  • 부록
    • 질문과 대답(FAQ)
    • 시각적 프로그래밍 및 Dynamo
    • 리소스
    • 릴리즈 정보
    • 유용한 패키지
    • 예제 파일
    • 호스트 통합 맵
    • PDF 다운로드
    • Dynamo 키보드 바로 가기
Powered by GitBook
On this page
  • 연습: UV 매핑을 위한 사용자 노드
  • I부: 그래프로 시작
  • 2부: 그래프에서 사용자 노드로
Edit on GitHub
Export as PDF
  1. 사용자 노드 및 패키지
  2. 사용자 노드

사용자 노드 작성

Previous사용자 노드 소개Next라이브러리에 게시

Last updated 2 years ago

Dynamo에서는 사용자 노드를 작성하는 여러 가지 다른 방법을 제공합니다. 사용자 노드를 처음부터 새로 만들거나, 기존 그래프에서 만들거나, C#에서 명시적으로 만들 수 있습니다. 이 섹션에서는 기존 그래프에서 Dynamo UI의 사용자 노드를 만드는 방법을 다룹니다. 이 방법은 작업공간을 정리하고, 노드 시퀀스를 패키징하여 다른 위치에서 재사용할 수 있도록 하는 데 적합합니다.

연습: UV 매핑을 위한 사용자 노드

I부: 그래프로 시작

아래 이미지에서는 UV 좌표를 사용하여 한 표면에서 다른 표면으로 점을 매핑합니다. 이 개념을 사용하여 XY 평면의 곡선을 참조하는 패널형 표면을 작성해 보겠습니다. 여기서는 패널화를 위한 쿼드 패널을 작성할 것입니다. 그러나 동일한 논리를 사용하여 UV 매핑을 통해 다양한 패널을 작성할 수 있습니다. 이렇게 하면 그래프 또는 다른 Dynamo 워크플로우에서 비슷한 프로세스를 보다 쉽게 반복할 수 있으므로 이는 사용자 노드 개발에 매우 유용한 방법입니다.

아래 링크를 클릭하여 예제 파일을 다운로드하십시오.

전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.

  1. Code Block: 이 줄을 사용하여 -45와 45 사이의 숫자 10개 범위를 작성합니다. 45..45..#10;

  2. Point.ByCoordinates: Code Block의 출력을 'x' 및 'y' 입력에 연결하고 레이싱을 상호 참조로 설정합니다. 이제 점 그리드가 표시됩니다.

  3. Plane.ByOriginNormal: ‘Point’ 출력을 ‘origin’ 입력에 연결하여 각 점에서 평면을 작성합니다. 기본 법선 벡터인 (0,0,1)이 사용됩니다.

  4. Rectangle.ByWidthLength: 이전 단계의 평면을 ‘plane’ 입력에 연결하고 값이 10 인 Code Block을 사용하여 폭과 길이를 지정합니다.

이제 직사각형 그리드가 표시됩니다. UV 좌표를 사용하여 이러한 직사각형을 대상 표면에 매핑해 보겠습니다.

  1. Polygon.Points: 이전 단계의 Rectangle.ByWidthLength 출력을 ‘polygon’ 입력에 연결하여 각 직사각형의 코너 점을 추출합니다. 이러한 점은 대상 표면에 매핑할 점입니다.

  2. Rectangle.ByWidthLength: 값이 100 인 Code Block 을 사용하여 직사각형의 폭과 길이를 지정합니다. 이는 기준 표면의 경계가 됩니다.

  3. Surface.ByPatch: 이전 단계의 Rectangle.ByWidthLength를 ‘closedCurve’ 입력에 연결하여 기준 표면을 작성합니다.

  4. Surface.UVParameterAtPoint: Polygon.Points 노드의 ‘Point’ 출력과 Surface.ByPatch 노드의 ‘Surface’ 출력을 연결하여 각 점에서 UV 매개변수를 반환합니다.

기준 표면과 UV 좌표 세트가 있으므로 대상 표면을 가져와 표면 사이의 점을 매핑할 수 있습니다.

  1. File Path: 가져올 표면의 파일 경로를 선택합니다. 파일 유형은 .SAT여야 합니다. "찾아보기..." 버튼을 클릭하고 위에서 다운로드한 .zip 파일의 UVmapping_srf.sat 파일로 이동합니다.

  2. Geometry.ImportFromSAT: 파일 경로를 연결하여 표면을 가져옵니다. 가져온 표면이 형상 미리보기에 표시됩니다.

  3. UV: UV 매개변수 출력을 UV.U 및 UV.V 노드에 연결합니다.

  4. Surface.PointAtParameter: 가져온 표면과 u 및 v 좌표를 연결합니다. 이제 대상 표면에 3D 점 그리드가 표시됩니다.

마지막 단계는 3D 점을 사용하여 직사각형 표면 패치를 구성하는 것입니다.

  1. PolyCurve.ByPoints: 표면의 점을 연결하여 점을 통해 polycurve를 구성합니다.

  2. Boolean: Boolean을 작업공간에 추가하고 ‘connectLastToFirst’ 입력에 연결한 다음, True로 전환하여 polycurve를 닫습니다. 이제 표면에 매핑된 직사각형이 표시됩니다.

  3. Surface.ByPatch: polycurve를 ‘closedCurve’ 입력에 연결하여 표면 패치를 구성합니다.

2부: 그래프에서 사용자 노드로

이제 노드의 입력 및 출력으로 사용할 항목을 생각하며 사용자 노드에 중첩할 노드를 선택해 보겠습니다. 직사각형뿐만 아니라 다각형을 매핑할 수 있도록 사용자 노드를 가능한 한 유연하게 매핑해고자 합니다.

다음 노드(Polygon.Points로 시작)를 선택하고 작업공간을 마우스 오른쪽 버튼으로 클릭한 다음, '사용자 노드 작성'을 선택합니다.

사용자 노드 특성 대화상자에서 사용자 노드에 이름, 설명 및 카테고리를 지정합니다.

  1. 이름: MapPolygonsToSurface

  2. 설명: 베이스에서 대상 표면으로 다각형 매핑

  3. 애드온 범주: Geometry.Curve

사용자 노드에 따라 작업공간이 상당히 정리되었습니다. 입력과 출력의 이름이 원래 노드에 따라 지정되었습니다. 보다 알아보기 쉬운 이름을 갖도록 사용자 노드를 편집해 보겠습니다.

사용자 노드를 두 번 클릭하여 편집합니다. 그러면 노드의 내부를 나타내는 노란색 배경의 작업공간이 열립니다.

  1. Inputs: 입력 이름을 baseSurface 및 targetSurface 로 변경합니다.

  2. Outputs: 매핑된 다각형에 출력을 추가합니다.

사용자 노드를 저장하고 홈 작업공간으로 돌아갑니다. MapPolygonsToSurface 노드에 방금 변경한 사항이 반영됩니다.

사용자 해설에서 추가하여 사용자 노드의 견고성을 늘릴 수도 있습니다. 해설은 입력 및 출력 유형에서 힌트를 제공하거나 노드의 기능을 설명하는 데 도움이 될 수 있습니다. 사용자 노드의 입력 또는 출력 위에 마우스를 놓으면 해설이 나타납니다.

사용자 노드를 두 번 클릭하여 편집합니다. 그러면 노란색 배경 작업공간이 다시 열립니다.

  1. 입력 Code Block 편집을 시작합니다. 해설을 시작하려면 "//" 다음에 해설 문자를 입력합니다. 노드를 명확히 하는 데 도움이 될 수 있는 모든 항목을 입력합니다. 여기서는 targetSurface 에 대해 설명합니다.

  2. 또한 입력 유형을 값과 같게 설정하여 inputSurface 의 기본값을 설정해 보겠습니다. 여기서는 기본값을 원래 Surface.ByPatch 세트로 설정합니다.

해설을 출력에 적용할 수도 있습니다.

출력 Code Block에서 문자를 편집합니다. "//" 다음에 주석 문자를 입력합니다. 여기서는 보다 자세한 세부 설명을 추가하여 Polygons 및 surfacePatches 출력을 명확히 해 보겠습니다.

  1. 사용자 노드 입력 위에 커서를 놓으면 해설이 표시됩니다.

  2. inputSurface 에 기본값을 설정한 상태로, 표면 입력 없이 정의를 실행할 수도 있습니다.

먼저 사용자 노드에 중첩할 그래프를 작성해 보겠습니다. 이 예에서는 UV 좌표를 사용하여 기준 표면에서 대상 표면으로 다각형을 매핑하는 그래프를 작성합니다. 이 UV 매핑 프로세스는 자주 사용하는 방법이므로 사용자 노드에 적합합니다. 표면 및 UV 공간에 대한 자세한 내용은 페이지를 참조하십시오. 전체 그래프는 위의 다운로드한 .zip 파일에 포함된 UVmapping_Custom-Node.dyn 입니다.

표면
5KB
UV-CustomNode.zip
archive