2024년 9월 3일 화요일

Sheet(도면화), 각각의 뷰를 원하는 시트의 원하는 위치에 배치


뷰 > 시트 배치에 대한 개념 설명


1) 시트와 뷰를 String 문자 정보로 [Category.ByName] 노드의 인풋 입력
[All Elements of Category] 노드를 통한 시트, 뷰 elements 전체 추출

2) 1층 편면도 찾기 및 element list 구분

뷰 elements를 [String from Object] 노드로 TEXT 정보로 변환
[String.Contains] 노드에 1층 평면도 혹은 찾아야 할 도면의 특정 단어 입력
[List.FilterByBoolMask] 노드로 in : 해당 뷰 (true), out : 나머지 뷰 들(false) 추출

3) Sheet, Viewport의 다양한 노드 라이브러리 확인

4) Input / Output을 확인하며, view, views를 인풋으로 받고, out으로 sheet를 출력하는 노드들 확인 가능. [Viewport.BySheetViewLocation] 노드는 sheet, view, location을 받아 해당 시트에 뷰의 위치를 설정 가능함을 확인

5) [Sheet.ByNameNumberTitleBlock] 노드는 sheetName, sheetNumber, Family Types 정보를 받아 Sheet를 생성하지만, sheetNumber의 경우 숫자라고 생각할 수 있지만 text 정보이기 때문에 String 정보를 입력 필요.

6) [viewport.BysheetviewLocation] 노드는 sheet, view, location 정보를 받아 viewport 위치를 지정 가능하며, location Point 위치가 중요
7) location에 origin (x,y,z = 0,0,0) 입력 시 아래 이미지와 같이 좌측 하단에 배치 모습 확인
해당 위치가 0,0,0 임을 확인하며, sheet의 크기 재 확인 필요
8) 배치된 viewport를 [Viewport.BoxOutline] , [BoundingBox.ToCuboid] 노드를 사용하여 BoundingBox > Cuboid로 output 생성 및 확인
 

9) Sheet의 크기 확인은 아래 이미지와 같이 840 x 594 로 확인
viewport cuboid의 크기는 252 x 295 로 확인

10) sheet의 크기를 [Rectangle.ByWidthLength] 노드를 활용하여 Rectangle 형상 추출

11) 배치된 sheet의 위치와 일치하는 배치를 위하여 [Geometry.Translate] 노드에 각 길이의 1/2 만큼의 거리를 이동

** Cuboid와 sheet의 크기 개념
2분할 배치 개념
1:1 배치 후 Scale 변경 개념
12) sheet 형상에서 Line을 추출하여 가로, 세로 Line 별도 추출

13) 각 Line의 중심 점 추출을 위해 [Curve.PointAtParameter]의 0.5 값 사용
14) 추출한 두 점의 X,Y 값을 활용하여 sheet 중심 점 추출
15) viewport의 위치 location 값을 sheet 중심 점으로 변경하여, 
sheet 이동 확인 후 Cuboid 형상 확인

16) 해당 sheet의 특성 중 뷰 축척 1:100 확인 가능
17) viewport의 Cuboid 이전에 BoundingBox를 활용하여 Min, Max Point 추출
[Cuboid.Width], [Cuboid.Length] 노드로 길이 확인
18) BoundingBox의 Min, Max Point를 [Line.ByStartPointEndPoint]를 활용하여 Line 생성 후 [Curve.Length] 노드로 길이 확인

19) 기존 sheet의 가로 세로 Line의 point 추출 각 커브에 [Curve.PointAtParameter] 0, 1 위치로 start, end Point 추출 후 Line 생성
20) 두 Line의 길이를 비교하여 비율을 계산 및 추측
21)[Math.Floor] 노드의 값이 2 임을 확인하여, 약 2배 차이임을 확인

22) 1:100보다 2배 커지는 상황이기 때문에 스케일 1:50으로 변경
Viewport element에 [Element.SetParameterByName]을 통하여 "뷰 축척"에 50 값 입력

**하단 내용은 분할 배치로 재 업로드 예정












댓글 없음:

댓글 쓰기