VIZCore3D.NET Document Help

V.2.2.21.319

Major Features

  • Review File(*.rev, *.rvm) 열기/추가 시, 노드 이름 앞에 있는 '/' 자동 제거 기능 옵션화

    • - 기존 동작 : 자동으로 제거

    • - 기본값 : False (이전과 동일 형식으로 조회하고자 하는 경우, True로 설정 필요)

  • Vertex3D 형식에서 Vector3D 형식으로 Parameter 변경

    • - 일부 API 빌드 시, 오류 발생 할 수 있으며, Vector3D 형식으로 변경 필요

  • MeshEdit 기능 중 AddPrimitive... API의 RebuildData 파라미터 순서 변경 - 함수의 파라미터 모호성 제거 및 기본값 필수 설정 형식으로 변경

  • 현재 로딩된 모델 저장 시, 발생할 수 있는 메모리 에러 수정

  • 기본 제공 툴바의 초기 보이기 상태를 True에서 False로 변경

    • - 초기화 시, 조회 필요 툴바는 상태(Visible) 변경 필요

    • - 기본 메인 툴바 보이기/숨기기 단축키 추가 : Ctrl + Alt + T

  • Review(Note)의 텍스트를 빠르게 가시화하기 위한 Cache 기능(EnableFontTextureCache) 추가

  • 마우스 기반 개체 이동/회전 모드 활성화 상태에서 영역선택(Shift + Drag Mouse) 시, 이동/회전 대상으로 등록된 개체만 선택

  • 마우스 기반 개체 이동/회전 모드에서 복수 선택(Ctrl + Click Mouse) 및 이동 기능(Ctrl + Move Mouse) 추가

  • 단면 생성 이전/이후 이벤트 추가

  • 리뷰 이동 시, 이벤트 발생 : 기존 OnReviewChangedEvent 이벤트에 유형(Kind) 추가

  • 리뷰 삭제 시, 이벤트 발생 : OnReviewDeletingEvent

  • 뷰 툴바(View Toolbar) 처리 이벤트 추가 : OnViewToolbarViewChangingEvent, OnViewToolbarViewChangedEvent

  • 측정 호출 이벤트 추가 : OnAddMeasureEvent

  • 내부 이동/회전 다이얼로그에 수치 입력 컨트롤을 NumericUpDown 컨트롤로 교체

  • 영역내 모델 검색 시, 보이는 모델만 검색하는 옵션 추가

  • 모델 구조 내보내기 속도 개선 : 기본툴바 -> 저장 -> Export Structure

  • 컨트롤 초기화 시, 배경 이미지 선택 혹은 커스텀 이미지 지정 기능 추가

  • 어셈블리 구조 조회 다이얼로그 및 컨트롤 추가

  • 모델 트리 Context Menu에 선택된 부재 위치(구조) 이동 기능 추가

  • 모델 트리 Context Menu에 선택된 하위에 신규 노드 단일 및 복수 생성 기능 추가

  • 표면 노트 생성 시, 심벌에 텍스트 숨기기 옵션을 활성화 할 경우 심벌만 화면에 표시 기능 추가

  • 공간검색 다이얼로그 추가 : [검색] -> [공간검색]

  • 모델 저장 후, 배경화면 깨짐 현상 수정

  • 윤곽 효과 사용 시, 화면 가장자리에 테두리 생성되는 문제 수정

  • Depth Test가 활성화된 노트에서 지시선과 화살표의 그리기 순서 문제 수정

  • VIZ 파일에 별도의 외부 데이터를 등록 하고, 배포된 VIZ 파일에서 등록된 데이터를 조회 할 수 있는 Metadata 관리 기능 추가

Full List

Full List of Issues Covering all Changes in this Release

Module

Summary

Category

ModelManager

Review File(*.rev, *.rvm) 열기/추가 시, 노드 이름 앞에 있는 '/' 자동 제거 기능 옵션화

New Feature

ReviewManager

Review(Note)의 텍스트를 빠르게 가시화하기 위한 Cache 기능(EnableFontTextureCache) 추가. 기본값 False

New Feature

TextDrawingManager

TextDrawing에 텍스트 추가 시, Size 설정 API 추가

New Feature

WalkthroughManager

Walkthrough 모드에서 Avatar의 위치를 설정할 수 있는 API 추가

New Feature

ViewManager

지정된 개체의 윤곽선 강조 기능 추가

New Feature

SectionManager

단면 생성 이전/이후 이벤트 추가

New Feature

ReviewManager

리뷰 이동 시, 이벤트 호출 : 기존 OnReviewChangedEvent 이벤트에 유형(Kind) 추가

New Feature

ReviewManager

리뷰 삭제 시, 이벤트 발생 : OnReviewDeletingEvent

New Feature

ViewManager

뷰 툴바(View Toolbar) 처리 이벤트 추가 : ViewManager.OnViewToolbarViewChangingEvent, ViewManager.OnViewToolbarViewChangedEvent

New Feature

MeasureManager

측정 호출 이벤트 추가 : OnAddMeasureEvent

New Feature

VIZCore3D.NET

컨트롤 초기화 시, 배경 이미지 선택 혹은 커스텀 이미지 지정 기능 추가

New Feature

Object3DManager

어셈블리 구조 조회 및 선택 다이얼로그 및 컨트롤 추가

New Feature

MeshEditManager

선택된 개체(부재)의 모델 트리 위치 이동 기능 메뉴 추가

New Feature

MetadataManager

VIZ 파일에 별도의 외부 데이터를 등록 하고, 배포된 VIZ 파일에서 등록된 데이터를 조회 할 수 있는 Metadata 관리 기능 추가

New Feature

Object3DManager

영역내 모델 검색 시, 보이는 모델만 검색하는 옵션 추가

Enhancement

Object3DManager

특정 Depth에 해당되는 노드 목록 반환

Enhancement

Object3DManager

지정된 파트 목록에서 특정 Depth의 노드 목록 반환

Enhancement

NoteManager

표면노트 생성 시, 원형 심벌만 표시 하는 옵션 추가

Enhancement

Resource

Figure 1 : 커스텀 이미지 배경 화면 설정

RELEASE_2.2.001.png

    Figure 2 : 개체 회전 다이얼로그에 NumericUpDown 컨트롤 적용

    RELEASE_2.2.002.png

      Figure 3 : 개체 이동 다이얼로그에 NumericUpDown 컨트롤 적용

      RELEASE_2.2.003.png

        Figure 4 : 모델 구조 내보내기 다이얼로그

        RELEASE_2.2.004.png

          Figure 5 : 어셈블리 구조 조회 및 선택 다이얼로그

          RELEASE_2.2.005.png

            Figure 6 : 선택된 노드 하위에 신규 노드 생성 기능

            RELEASE_2.2.011.png

              Figure 7 : 선택된 부재 위치(구조) 이동 기능

              RELEASE_2.2.006.png

                Figure 8 : 형상 생성 기능 툴바

                RELEASE_2.2.007.png

                  Figure 9 : 형상 생성 기능 다이얼로그 (1/3)

                  RELEASE_2.2.008.png

                    Figure 10 : 형상 생성 기능 다이얼로그 (2/3)

                    RELEASE_2.2.009.png

                      Figure 11 : 형상 생성 기능 다이얼로그 (3/3)

                      RELEASE_2.2.010.png

                        Figure 12 : 표면노트의 심벌만 표시

                        RELEASE_2.2.012.png

                          Figure 13 : 공간검색 다이얼로그

                          RELEASE_2.2.013.png

                            Sample

                            Review File(*.rev, *.rvm) 열기/추가 시, 노드 이름 앞에 있는 '/' 자동 제거 기능 옵션화

                            // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { vizcore3d.Model.RemoveNodeNameSlashOption = !vizcore3d.Model.RemoveNodeNameSlashOption; }

                              Review(Note)의 텍스트를 빠르게 가시화하기 위한 Cache 기능(EnableFontTextureCache) 추가. 기본값 False

                              // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { vizcore3d.Review.EnableFontTextureCache = !vizcore3d.Review.EnableFontTextureCache; }

                                TextDrawing에 텍스트 추가 시, Size 설정 API 추가

                                private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void DrawText() { VIZCore3D.NET.Data.TextDrawingItem item = vizcore3d.TextDrawing.Add( new VIZCore3D.NET.Data.Vertex3D(0, 0, 0) , new VIZCore3D.NET.Data.Vector3D(1, 0, 0) /* X+ 방향으로 텍스트가 표시 */ , new VIZCore3D.NET.Data.Vector3D(0, 1, 0) /* 텍스트의 위쪽 방향 : Z+에서 볼때, Y+가 위쪽 임. */ , 3500 , 100 , Color.Black , "ZONE_001" ); vizcore3d.TextDrawing.Show(item.ID, true); }

                                  Walkthrough 모드에서 Avatar의 위치를 설정

                                  // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { vizcore3d.BeginUpdate(); vizcore3d.Walkthrough.Avatar = true; vizcore3d.Walkthrough.AvatarPosition = new Data.Vertex3D(19427.13f, 1204.982f, 2335.0f); vizcore3d.EndUpdate(); }

                                    툴바 보이기/숨기기

                                    // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { vizcore3d.ToolbarMain.Visible = true; /* 기본툴바 */ vizcore3d.ToolbarNote.Visible = true; /* 노트 */ vizcore3d.ToolbarMeasure.Visible = true; /* 측정 */ vizcore3d.ToolbarSection.Visible = true; /* 단면 */ vizcore3d.ToolbarClash.Visible = false; /* 간섭검사 */ vizcore3d.ToolbarAnimation.Visible = false; /* 애니메이션 */ vizcore3d.ToolbarSimulation.Visible = false; /* 시뮬레이션 */ }

                                      단면 생성 이전/이후 이벤트

                                      // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { vizcore3d.Section.OnSectionBeforeAddEvent += Section_OnSectionBeforeAddEvent; /* 생성 이전 */ vizcore3d.Section.OnSectionAfterAddEvent += Section_OnSectionAfterAddEvent; /* 생성 이후 */ } private void Section_OnSectionBeforeAddEvent(object sender, Event.EventManager.SectionBeforeAddEventArgs e) { switch (e.Kind) { case Manager.SectionManager.SectionTypes.SECTION: { bool partSelection = e.PartSelection; VIZCore3D.NET.Data.Axis axis = e.SectionAxis; } break; case Manager.SectionManager.SectionTypes.SECTION_BOX: { bool partSelection = e.PartSelection; float margine = e.Margine; } break; case Manager.SectionManager.SectionTypes.SECTION_INBOX: break; case Manager.SectionManager.SectionTypes.SECTION_INBOX6: break; default: break; } } private void Section_OnSectionAfterAddEvent(object sender, Event.EventManager.SectionAfterAddEventArgs e) { VIZCore3D.NET.Data.Section section = e.Item; }

                                        리뷰 이동 시, 이벤트 호출 : 기존 OnReviewChangedEvent 이벤트에 유형(Kind) 추가

                                        // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore; private void InitializeVIZCore3DEvent() { vizcore.Review.OnReviewChangedEvent += Review_OnReviewChangedEvent; } private void Review_OnReviewChangedEvent(object sender, Event.EventManager.ReviewEventArgs e) { string log = String.Empty; switch (e.EventKind) { case Manager.ReviewManager.ReviewEventKind.DESELECTED_REVIEW: log = string.Format("[{0}] 모두 선택해제", (int)e.EventKind); break; case Manager.ReviewManager.ReviewEventKind.SELECT_REVIEW: log = string.Format("[{0}] 리뷰 선택 : {1} / {2}", (int)e.EventKind, e.ReviewID, vizcore.Review.GetItem(e.ReviewID).Kind); break; case Manager.ReviewManager.ReviewEventKind.SELECT_REVIEW_ADD: log = string.Format("[{0}] 리뷰 선택 (추가) : {1} / {2}", (int)e.EventKind, e.ReviewID, vizcore.Review.GetItem(e.ReviewID).Kind); break; case Manager.ReviewManager.ReviewEventKind.CHANGED_REVIEW_DATA: log = string.Format("[{0}] 리뷰 정보 변경 : {1} / {2}", (int)e.EventKind, e.ReviewID, vizcore.Review.GetItem(e.ReviewID).Kind); break; case Manager.ReviewManager.ReviewEventKind.ADDED_SURFACE_NOTE: log = string.Format("[{0}] 표면노트 추가 : {1} / {2}", (int)e.EventKind, e.ReviewID, vizcore.Review.GetItem(e.ReviewID).Kind); break; case Manager.ReviewManager.ReviewEventKind.CANCELED_ADD: log = string.Format("[{0}] 추가 동작 취소", (int)e.EventKind); break; case Manager.ReviewManager.ReviewEventKind.CHANGED_ARROW_POSITION: log = string.Format("[{0}] 지시선 위치 변경 : {1} / {2}", (int)e.EventKind, e.ReviewID, vizcore.Review.GetItem(e.ReviewID).Kind); break; case Manager.ReviewManager.ReviewEventKind.REVIEW_MOVED: log = string.Format("[{0}] 이동된 리뷰 : {1} / {2}", (int) e.EventKind, e.ReviewID, vizcore3d.Review.GetItem(e.ReviewID).Kind); break; default: break; } }

                                          리뷰 삭제 시, 이벤트 발생 : OnReviewDeletingEvent

                                          // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore; private void InitializeVIZCore3DEvent() { vizcore3d.Review.OnReviewDeletingEvent += Review_OnReviewDeletingEvent; } private void Review_OnReviewDeletingEvent(object sender, Event.EventManager.ReviewDeletingEventArgs e) { Data.ReviewItem item = vizcore3d.Review.GetItem(e.ReviewID); System.Windows.Forms.DialogResult result = System.Windows.Forms.MessageBox.Show( "Are you sure you want to delete?\n : " + item.Title, "Review Delete - " + item.Kind.ToString() , System.Windows.Forms.MessageBoxButtons.OKCancel); if (result == System.Windows.Forms.DialogResult.Cancel) e.Cancel = true; }

                                            뷰 툴바(View Toolbar) 처리 이벤트 추가 : OnViewToolbarViewChangingEvent, OnViewToolbarViewChangedEvent

                                            // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { // 뷰툴바 처리 이전 이벤트 vizcore3d.View.OnViewToolbarViewChangingEvent += View_OnViewToolbarViewChangingEvent; // 뷰툴바 처리 이후 이벤트 vizcore3d.View.OnViewToolbarViewChangedEvent += View_OnViewToolbarViewChangedEvent; } private void View_OnViewToolbarViewChangingEvent( object sender , Event.EventManager.ViewToolbarViewChangingEventArgs e) { switch (e.CameraDirection) { case Data.CameraDirection.ISO_PLUS: break; case Data.CameraDirection.ISO_MINUS: break; case Data.CameraDirection.X_PLUS: break; case Data.CameraDirection.X_MINUS: break; case Data.CameraDirection.Y_PLUS: break; case Data.CameraDirection.Y_MINUS: break; case Data.CameraDirection.Z_PLUS: break; case Data.CameraDirection.Z_MINUS: break; default: break; } // if you need... //e.Cancel = true; } private void View_OnViewToolbarViewChangedEvent( object sender , Event.EventManager.ViewToolbarViewChangedEventArgs e) { switch (e.CameraDirection) { case Data.CameraDirection.ISO_PLUS: break; case Data.CameraDirection.ISO_MINUS: break; case Data.CameraDirection.X_PLUS: break; case Data.CameraDirection.X_MINUS: break; case Data.CameraDirection.Y_PLUS: break; case Data.CameraDirection.Y_MINUS: break; case Data.CameraDirection.Z_PLUS: break; case Data.CameraDirection.Z_MINUS: break; default: break; } }

                                              측정 호출 이벤트 : OnAddMeasureEvent

                                              // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { // Add Event vizcore3d.Review.Measure.OnAddMeasureEvent += Measure_OnAddMeasureEvent; vizcore3d.Review.Measure.AddBasicPosition(); // Call Measure_OnAddMeasureEvent //vizcore3d.Review.Measure.AddBasicDistance(); } private void Measure_OnAddMeasureEvent(object sender, Event.EventManager.MeasureEventArgs e) { System.Diagnostics.Trace.WriteLine(e.Kind.ToString()); switch (e.Kind) { case Data.MeasureKind.BASIC_POSITION: // code... break; case Data.MeasureKind.BASIC_DISTANCE: // code... break; case Data.MeasureKind.BASIC_ANGLE: // code... break; default: // code... break; } }

                                                영역내 모델 검색 시, 보이는 모델만 검색하는 옵션 추가

                                                // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { float x1, y1, z1, x2, y2, z2; x1 = 0.0f; y1 = 0.0f; z1 = 0.0f; x2 = 100.0f; y2 = 100.0f; z2 = 100.0f; List<VIZCore3D.NET.Data.Node> items = vizcore3d.Object3D.FromZone( x1, y1, z1 , x2, y2, z2 , VIZCore3D.NET.Data.BoundBoxSearchOption.FullyContained ); } private void Example2() { VIZCore3D.NET.Data.Vertex3D min = new Data.Vertex3D(0, 0, 0); VIZCore3D.NET.Data.Vertex3D max = new Data.Vertex3D(100, 100, 100); List<VIZCore3D.NET.Data.Node> items = vizcore3d.Object3D.FromZone( min , max , VIZCore3D.NET.Data.BoundBoxSearchOption.FullyContained ); } private void Example3() { VIZCore3D.NET.Data.BoundBox3D boundBox = new Data.BoundBox3D( new float[] { 0, 0, 0 } , new float[] { 100, 100, 100 } ); List<VIZCore3D.NET.Data.Node> items = vizcore3d.Object3D.FromZone(boundBox , VIZCore3D.NET.Data.BoundBoxSearchOption.FullyContained ); }

                                                  표면노트 생성 시, 원형 심벌만 표시 하는 옵션

                                                  // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { VIZCore3D.NET.Data.NoteStyle style = vizcore3d.Review.Note.GetStyle(); style.UseSymbol = true; style.SymbolText = "A"; style.TextVisible = false; VIZCore3D.NET.Data.Vertex3D center = vizcore3d.Object3D.FromIndex(0).GetCenter(); vizcore3d.Review.Note.AddNoteSurface("", center, center, style); }

                                                    컨트롤 생성 시, 모듈 초기화 유형

                                                    // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example1() { string assemblyPath = VIZCore3D.NET.ModuleInitializer.GetAssemblyLocation(); string entryAssemblyPath = VIZCore3D.NET.ModuleInitializer.GetEntryAssemblyLocation(); string assemblyVersion = VIZCore3D.NET.ModuleInitializer.GetLibraryVersion(); string interopVersion = VIZCore3D.NET.ModuleInitializer.GetInteropLibraryVersion(); bool compareVersion = VIZCore3D.NET.ModuleInitializer.CompareVersion(); bool existLibrary = VIZCore3D.NET.ModuleInitializer.ExistLibrary(); // Initialize VIZCore3D.NET // Extract Library by Condition if (existLibrary == false || compareVersion == false) VIZCore3D.NET.ModuleInitializer.Run(); } private void Example2() { // Initialize VIZCore3D.NET // Extract Library Always VIZCore3D.NET.ModuleInitializer.Run(); }

                                                      컨트롤 초기화 시, Predefined Background Image 선택 방법

                                                      // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { //=================================== // Environment //=================================== string assemblyPath = VIZCore3D.NET.ModuleInitializer.GetAssemblyLocation(); string entryAssemblyPath = VIZCore3D.NET.ModuleInitializer.GetEntryAssemblyLocation(); string assemblyVersion = VIZCore3D.NET.ModuleInitializer.GetLibraryVersion(); string interopVersion = VIZCore3D.NET.ModuleInitializer.GetInteropLibraryVersion(); bool compareVersion = VIZCore3D.NET.ModuleInitializer.CompareVersion(); bool existLibrary = VIZCore3D.NET.ModuleInitializer.ExistLibrary(); // Initialize VIZCore3D.NET // Case 1. : Extract Library by Condition //if(existLibrary == false || compareVersion == false) // VIZCore3D.NET.ModuleInitializer.Run(); // Case 2. : Extract Library Always VIZCore3D.NET.ModuleInitializer.Run(); // Change Background Image vizcore3d = new VIZCore3D.NET.VIZCore3DControl(BackgroundImage.VIZZARD); //vizcore3d = new VIZCore3D.NET.VIZCore3DControl(BackgroundImage.HHI); //vizcore3d = new VIZCore3D.NET.VIZCore3DControl(BackgroundImage.HSHI); vizcore3d.Dock = DockStyle.Fill; panelView.Controls.Add(vizcore3d); // Event vizcore3d.OnInitializedVIZCore3D += VIZCore3D_OnInitializedVIZCore3D; } private void VIZCore3D_OnInitializedVIZCore3D(object sender, EventArgs e) { VIZCore3D.NET.Data.LicenseResults result = vizcore3d.License.LicenseServer("0.0.0.0", 8901); if (result != Data.LicenseResults.SUCCESS) { MessageBox.Show(result.ToString() , "VIZCore3D.NET" , MessageBoxButtons.OK , MessageBoxIcon.Error); return; } // Init. Some Options... }

                                                        컨트롤 초기화 시, Custom Background Image 설정 방법

                                                        // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { //=================================== // Environment //=================================== string assemblyPath = VIZCore3D.NET.ModuleInitializer.GetAssemblyLocation(); string entryAssemblyPath = VIZCore3D.NET.ModuleInitializer.GetEntryAssemblyLocation(); string assemblyVersion = VIZCore3D.NET.ModuleInitializer.GetLibraryVersion(); string interopVersion = VIZCore3D.NET.ModuleInitializer.GetInteropLibraryVersion(); bool compareVersion = VIZCore3D.NET.ModuleInitializer.CompareVersion(); bool existLibrary = VIZCore3D.NET.ModuleInitializer.ExistLibrary(); // Initialize VIZCore3D.NET // Case 1. : Extract Library by Condition //if(existLibrary == false || compareVersion == false) // VIZCore3D.NET.ModuleInitializer.Run(); // Case 2. : Extract Library Always VIZCore3D.NET.ModuleInitializer.Run(); // Set Custom Background Image Image background = Image.FromFile( System.IO.Path.Combine(Application.StartupPath, "BACKGROUND_SOFTHILLS.jpg") ); vizcore3d = new VIZCore3D.NET.VIZCore3DControl( background , Data.ImageMode.CENTER , Color.Gray ); vizcore3d.Dock = DockStyle.Fill; panelView.Controls.Add(vizcore3d); // Event vizcore3d.OnInitializedVIZCore3D += VIZCore3D_OnInitializedVIZCore3D; } private void VIZCore3D_OnInitializedVIZCore3D(object sender, EventArgs e) { VIZCore3D.NET.Data.LicenseResults result = vizcore3d.License.LicenseServer("0.0.0.0", 8901); if (result != Data.LicenseResults.SUCCESS) { MessageBox.Show( result.ToString() , "VIZCore3D.NET" , MessageBoxButtons.OK , MessageBoxIcon.Error ); return; } // Init. Some Options... }

                                                          어셈블리 구조 조회 및 선택 다이얼로그 활용

                                                          // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { VIZCore3D.NET.Data.Node selectedNode = vizcore3d.Object3D.ShowAssemblyBrowserDialog(); if (selectedNode == null) return; MessageBox.Show(selectedNode.NodeName); }

                                                            어셈블리 구조 조회 및 선택 다이얼로그 활용 (특정 노드 하이라이트)

                                                            // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { List<VIZCore3D.NET.Data.Node> currentSelectedNode = vizcore3d.Object3D.FromFilter(Data.Object3dFilter.SELECTED_TOP, false); VIZCore3D.NET.Data.Node selectedNode = vizcore3d.Object3D.ShowAssemblyBrowserDialog( currentSelectedNode.Count != 0 ? currentSelectedNode[0] : null); if (selectedNode == null) return; MessageBox.Show(selectedNode.NodeName); }

                                                              어셈블리 구조 조회 및 선택 사용자정의 컨트롤

                                                              // VIZCore3D.NET Control private VIZCore3D.NET.VIZCore3DControl vizcore3d; private void Example() { VIZCore3D.NET.Controls.AssemblyBrowserControl ctrl = vizcore3d.Object3D.GetAssemblyBrowserControl(); Form form = new Form(); form.Controls.Add(ctrl); if (form.ShowDialog() != DialogResult.OK) return; VIZCore3D.NET.Data.Node selectedNode = ctrl.SelectedNode; if (selectedNode == null) return; MessageBox.Show(selectedNode.NodeName); }
                                                                Last modified: 03 12월 2024