VIZCoreXD.NET Document Help

Development Environment

VIZCoreXD.NET LIBRARY를 활용하여 Microsoft Visual Studio 개발 프로젝트에 적용하는 방법을 설명합니다.

개발환경 구성

  • 1. Microsoft Visual Studio를 실행합니다.

  • 2. [새 프로젝트 만들기] 혹은 [Visual C# / Window Forms 앱(.NET Framework)] 생성을 선택합니다.

Figure 1: 새 프로젝트 만들기

VIZCoreXD_NET_DEV_001.png
VIZCoreXD_NET_DEV_002.png
    • 3. 다운로드 한 VIZCoreXD.NET.dll 파일을 프로젝트에 참조 합니다.

    Figure 2 : 참조 추가

    VIZCoreXD_NET_DEV_003.png

      Figure 3 : 참조 관리자 - 찾아보기

      VIZCoreXD_NET_DEV_004.png

        Figure 4 : VIZCoreXD.NET.dll 파일 선택

        VIZCoreXD_NET_DEV_005.png

          Figure 5 : 참조 추가 결과 화면

          VIZCoreXD_NET_DEV_006.png
            • 4. [속성:Properties] → [빌드:Build] → [플랫폼 대상(G)] 에 "Any CPU" 및 "32비트 기본 사용(P)"이 Uncheck 되어 있어야 합니다.

            Figure 6 : Visual Studio 환경설정

            VIZCoreXD_NET_DEV_007.png

              Figure 7 : Visual Studio Tool Box(도구상자)

              VIZCoreXD_NET_DEV_008.png

                Figure 8 : Panel 컨트롤 추가

                VIZCoreXD_NET_DEV_009.png

                  Figure 9 : Button 및 ComboBox 컨트롤 추가

                  VIZCoreXD_NET_DEV_010.png

                    Figure 10 : Button 및 ComboBox 속성 변경

                    VIZCoreXD_NET_DEV_011.png
                      • 7. [코드 보기] 혹은 단축키 [F7]를 입력하여 코드 개발 화면으로 전환합니다.

                      Figure 11 : [코드 보기] 화면

                      VIZCoreXD_NET_DEV_012.png
                        • 8. 참조된 VIZCoreXD.NET.dll 의 변수를 선언 합니다.

                        public partial class Form1 : Form { private VIZCore3D.NET.VIZCore3DControl vizcorexd; public Form1() { InitializeComponent(); } }
                        • 9. VIZCore3D.NET 컨트롤의 초기화 수행 코드를 추가합니다.

                        • 모듈 초기화, 객체 생성 및 필수 이벤트를 정의합니다.

                        public Form1() { InitializeComponent(); // Initialize VIZCore3D.NET VIZCore3D.NET.ModuleInitializer.Run(); // Construction vizcorexd = new VIZCore3DControl(); vizcorexd.Dock = DockStyle.Fill; panelView.Controls.Add(vizcorexd); // 필수 Event vizcorexd.OnInitializedVIZCore3D += VIZCoreXD_OnInitializedVIZCoreXD; } private void VIZCoreXD_OnInitializedVIZCoreXD(object sender, EventArgs e) { }
                        • 10. 라이선스 인증 코드 추가

                        private void VIZCoreXD_OnInitializedVIZCoreXD(object sender, EventArgs e) { // ================================================================ // Example // ================================================================ // 라이선스 파일을 통한 인증 //vizcorexd.License.LicenseFile("C:\\Temp\\VIZCoreXD.NET.lic"); // 라이선스 서버를 통한 인증 //vizcorexd.License.LicenseServer("127.0.0.1", 8901); // ================================================================ // CODE // ================================================================ VIZCore3D.NET.Data.LicenseResults result = vizcore3d.License.LicenseFile("C:\\Temp\\VIZCoreXD.NET.lic"); if (result != Data.LicenseResults.SUCCESS) { MessageBox.Show(string.Format("LICENSE CODE : {0}", result.ToString()), "VIZCoreXD.NET", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }
                        • 11. 필요 시, VIZCoreXD.NET 컨트롤의 기본 설정을 변경 할 수 있으며, 아래의 예제와 같이 개별 옵션을 변경할 수 있습니다.

                        private void VIZCoreXD_OnInitializedVIZCoreXD(object sender, EventArgs e) { InitializeVIZCoreXD(); } private void InitializeVIZCoreXD() { // ================================================================ // 모델 열기 시, 3D 화면 Rendering 차단 // ================================================================ vizcorexd.BeginUpdate(); // ================================================================ // 설정 - 기본 // ================================================================ #region 설정 - 기본 // 모델 자동 언로드 (파일 노드 언체크 시, 언로드) vizcorexd.Model.UncheckToUnload = true; // 모델 열기 시, Edge 정보 로드 활성화 vizcorexd.Model.LoadEdgeData = true; // 모델 조회 시, 하드웨어 가속 vizcorexd.View.EnableHardwareAcceleration = true; // 모델 열기 시, 스트럭처 병합 설정 vizcorexd.Model.OpenMergeStructureMode = Data.MergeStructureModes.NONE; // 모델 저장 시, 스트럭처 병합 설정 vizcorexd.Model.SaveMergeStructureMode = Data.MergeStructureModes.NONE; // 실린더 원형 품질 개수 : Nomal(12~36), Small(6~36) vizcorexd.Model.ReadNormalCylinderSide = 12; vizcorexd.Model.ReadSmallCylinderSide = 6; // 보이는 모델만 저장 // VIZXML to VIZ 옵션 vizcorexd.Model.VIZXMLtoVIZOption = Data.ExportVIZXMLToVIZOptions.LOAD_UNLOADED_NODE; // 선택 가능 개체 : 전체, 불투명한 개체 vizcorexd.View.SelectionObject3DType = Data.SelectionObject3DTypes.ALL; // 개체 선택 유형 : 색상, 경계로 선택 (개체), 경계로 선택 (전체) vizcorexd.View.SelectionMode = Data.Object3DSelectionOptions.HIGHLIGHT_COLOR; // 개체 선택 색상 vizcorexd.View.SelectionColor = Color.Red; // PreSelect 기능 활성화 vizcorexd.View.PreSelect.Enable = true; // PreSelect 하이라이트 색상 설정 vizcorexd.View.PreSelect.HighlightColor = System.Drawing.Color.Lime; // PreSelect Label 유형 지정 vizcorexd.View.PreSelect.Label = VIZCore3D.NET.Data.PreSelectStyle.LabelKind.HIERACHY_TOP_DOWN; // PreSelect Label Font 설정 vizcorexd.View.PreSelect.LabelFont = new System.Drawing.Font("Arial", 10.0f); #endregion // ================================================================ // 설정 - 보기 // ================================================================ #region 설정 - 보기 // 자동 애니메이션 : 박스줌, 개체로 비행 등 기능에서 애니메이션 활성화/비활성화 vizcorexd.View.EnableAnimation = true; // 자동화면맞춤 vizcorexd.View.EnableAutoFit = false; // 연속회전모드 vizcorexd.View.EnableInertiaRotate = false; // 확대/축소 비율 : 5.0f ~ 50.0f vizcorexd.View.ZoomRatio = 30.0f; // 회전각도 vizcorexd.View.RotationAngle = 90.0f; // 회전 축 vizcorexd.View.RotationAxis = Data.Axis.X; #endregion // ================================================================ // 설정 - 탐색 // ================================================================ #region 설정 - 탐색 // Z축 고정 vizcorexd.Walkthrough.LockZAxis = true; // 선속도 : m/s vizcorexd.Walkthrough.Speed = 2.0f; // 각속도 vizcorexd.Walkthrough.AngularSpeed = 30.0f; // 높이 vizcorexd.Walkthrough.AvatarHeight = 1800.0f; // 반지름 vizcorexd.Walkthrough.AvatarCollisionRadius = 400.0f; // 숙임높이 vizcorexd.Walkthrough.AvatarBowWalkHeight = 1300.0f; // 충돌 vizcorexd.Walkthrough.UseAvatarCollision = false; // 중력 vizcorexd.Walkthrough.UseAvatarGravity = false; // 숙임 vizcorexd.Walkthrough.UseAvatarBowWalk = false; // 모델 vizcorexd.Walkthrough.AvatarModel = (int)Data.AvatarModels.MAN1; // 자동줌 vizcorexd.Walkthrough.EnableAvatarAutoZoom = false; // 충돌상자보기 vizcorexd.Walkthrough.ShowAvatarCollisionCylinder = false; #endregion // ================================================================ // 설정 - 조작 // ================================================================ // 시야각 vizcorexd.View.FOV = 60.0f; // 광원 세기 vizcorexd.View.SpecularGamma = 30.0f; // 모서리 굵기 vizcorexd.View.EdgeWidthRatio = 0.0f; // X-Ray 모델 조회 시, 개체 색상 - 선택색상, 모델색상 vizcorexd.View.XRay.ColorType = Data.XRayColorTypes.SELECTION_COLOR; // 배경유형 //vizcorexd.View.BackgroundMode = Data.BackgroundModes.COLOR_ONE; // 배경색1 //vizcorexd.View.BackgroundColor1 = Color.Gray; // 배경색2 //vizcorexd.View.BackgroundColor2 = Color.Gray; // ================================================================ // 설정 - 노트 // ================================================================ // ================================================================ // 설정 - 측정 // ================================================================ // ================================================================ // 설정 - 단면 // ================================================================ // 단면 좌표간격으로 이동 vizcorexd.Section.MoveSectionByFrameGrid = true; // ================================================================ // 설정 - 간섭검사 // ================================================================ // 다중간섭검사 vizcorexd.Clash.EnableMultiThread = true; // ================================================================ // 설정 - 프레임(SHIP GRID) // ================================================================ #region 설정 - 프레임 // 프레임 평면 설정 vizcorexd.Frame.XYPlane = true; vizcorexd.Frame.YZPlane = true; vizcorexd.Frame.ZXPlane = true; vizcorexd.Frame.PlanLine = true; vizcorexd.Frame.SectionLine = true; vizcorexd.Frame.ElevationLine = true; // 좌표값 표기 vizcorexd.Frame.ShowNumber = true; // 모델 앞에 표기 vizcorexd.Frame.BringToFront = false; // Frame(좌표계, SHIP GRID) 색상 vizcorexd.Frame.ForeColor = Color.Black; // 홀수번째 표시 vizcorexd.Frame.ShowOddNumber = true; // 짝수번째 표시 vizcorexd.Frame.ShowEvenNumber = true; // 단면상자에 자동 맞춤 vizcorexd.Frame.AutoFitSectionBox = true; #endregion // ================================================================ // 설정 - 툴바 // ================================================================ vizcorexd.ToolbarNote.Visible = false; vizcorexd.ToolbarMeasure.Visible = false; vizcorexd.ToolbarSection.Visible = false; vizcorexd.ToolbarClash.Visible = false; vizcorexd.ToolbarAnimation.Visible = false; vizcorexd.ToolbarSimulation.Visible = false; // ================================================================ // 설정 - 상태바 // ================================================================ vizcorexd.Statusbar.Visible = true; // ================================================================ // 모델 열기 시, 3D 화면 Rendering 재시작 // ================================================================ vizcorexd.EndUpdate(); }
                        • 12. 개체 선택에 대한 이벤트를 처리하고자 하는 경우, 아래와 같이 이벤트 처리기를 추가할 수 있습니다.

                        private void VIZCoreXD_OnInitializedVIZCoreXD(object sender, EventArgs e) { InitializeVIZCoreXDEvent(); } private void InitializeVIZCoreXDEvent() { vizcorexd.Object3D.OnObject3DSelected += Object3D_OnObject3DSelected; } private void Object3D_OnObject3DSelected(object sender, VIZCore3D.NET.Event.EventManager.Object3DSelectedEventArgs e) { if (e.Node.Count > 0) { //선택된 개체가 있음 //MessageBox.Show(e.Node.Count.ToString()); } else { //모든 개체 선택 해제 } }
                        • 13. 버튼(btnOpen) 클릭 이벤트 처리를 추가하여, 아래와 같이 모델 열기를 수행할 수 있습니다.

                        private void btnOpen_Click(object sender, EventArgs e) { vizcorexd.Model.OpenFileDialog(); }

                        Figure 12 : 모델 열기

                        VIZCoreXD_NET_DEV_015.png
                          • 14. 콤보박스(cbViewMode) 이벤트 처리를 추가하여, 아래와 같이 View Mode를 전환할 수 있습니다.

                          public Form1() { cbViewMode.Items.Add("2D View"); cbViewMode.Items.Add("3D View"); cbViewMode.Items.Add("2D / 3D View"); } private void cbViewMode_SelectedIndexChanged(object sender, EventArgs e) { if (cbViewMode.SelectedIndex == 0) { vizcorexd.ViewMode = ViewKind.Drawing2D; } else if (cbViewMode.SelectedIndex == 1) { vizcorexd.ViewMode = ViewKind.Model3D; } else if (cbViewMode.SelectedIndex == 2) { vizcorexd.ViewMode = ViewKind.Both; } }

                          Figure 13 : View Mode 전환

                          VIZCoreXD_NET_DEV_016.png
                            • 15. 버튼(btnCameraView) 클릭 이벤트 처리를 추가하여, 아래와 같이 2D View를 생성할 수 있습니다.

                            private void btnCameraView_Click(object sender, EventArgs e) { vizcorexd.Drawing2D.Object2D.Set2DViewCreateObjectWithModel(false); }

                            Figure 14 : 2D View 생성

                            VIZCoreXD_NET_DEV_017.png

                              Figure 15 : 최종 화면

                              VIZCoreXD_NET_DEV_014.png
                                Last modified: 20 8월 2024