Beispiel #1
0
        private bool ToVIZ(string source, string target, ToVIZMode mode)
        {
            // 저장 위치 설정
            string path = System.IO.Path.GetDirectoryName(source);
            string name = System.IO.Path.GetFileNameWithoutExtension(source).ToUpper();

            string output = System.IO.Path.Combine(path, target);

            // 저장소 디렉토리 유무 체크
            if (System.IO.Directory.Exists(output) == false)
            {
                System.IO.Directory.CreateDirectory(output);
            }

            // 저장 파일명 설정
            string file = string.Format("{0}\\{1}.viz", output, name);

            if (mode == ToVIZMode.EXPORT)
            {
                // 모델 파일 열기
                vizcore3d.Model.Open(source);

                // 모델 개체 조회
                List <Data.Node> items = vizcore3d.Object3D.FromFilter(Data.Object3dFilter.ALL);

                // 개체 확인
                if (items.Count == 0)
                {
                    return(false);
                }

                // 저장 옵션
                vizcore3d.Model.SaveMergeStructureMode = Data.MergeStructureModes.NONE;

                // VIZ 파일 형식으로 내보내기
                return(vizcore3d.Model.ExportVIZ(file));
            }
            else if (mode == ToVIZMode.CONVERT)
            {
                // 저장 옵션
                vizcore3d.Model.SaveMergeStructureMode = Data.MergeStructureModes.NONE;

                return(vizcore3d.Model.ConvertToVIZ(source, file, false));
            }
            else
            {
                return(false);
            }
        }
Beispiel #2
0
        private bool ToVIZ(string source, string target, ToVIZMode mode, VIZCore3D.NET.Data.MergeStructureModes saveOption, bool includeEdge, VIZCore3D.NET.Manager.ModelManager.FileVersion ver)
        {
            // 저장 위치 설정
            string path = System.IO.Path.GetDirectoryName(source);
            string name = System.IO.Path.GetFileNameWithoutExtension(source).ToUpper();

            string output = System.IO.Path.Combine(path, target);

            // 저장소 디렉토리 유무 체크
            if (System.IO.Directory.Exists(output) == false)
            {
                System.IO.Directory.CreateDirectory(output);
            }

            // 저장 파일명 설정
            string file = string.Format("{0}\\{1}.viz", output, name);

            if (System.IO.Path.GetFileNameWithoutExtension(source).ToUpper() == ".DGN")
            {
                vizcore3d.Model.SetDgnDeviationDialog();
            }

            // 모델 열고, 저장
            if (mode == ToVIZMode.EXPORT)
            {
                // Edge 읽기
                vizcore3d.Model.LoadEdgeData = includeEdge;

                // 모델 파일 열기
                vizcore3d.Model.Open(source);

                // 모델 개체 조회
                List <VIZCore3D.NET.Data.Node> items = vizcore3d.Object3D.FromFilter(Data.Object3dFilter.ALL);

                // 개체 확인
                if (items.Count == 0)
                {
                    return(false);
                }

                // 저장 옵션
                vizcore3d.Model.SaveMergeStructureMode = saveOption;

                // VIZ 파일 형식으로 내보내기
                return(vizcore3d.Model.ExportVIZ(file));
            }
            // 메모리에서 처리
            else if (mode == ToVIZMode.CONVERT)
            {
                // 저장 옵션
                vizcore3d.Model.SaveMergeStructureMode = saveOption;

                return(vizcore3d.Model.ConvertToVIZ(source, file, includeEdge, ver, false));
            }
            // 외형 검색 후, 저장
            else if (mode == ToVIZMode.OUTSIDE)
            {
                // 모델 파일 열기
                vizcore3d.Model.Open(source);

                // 모델 개체 조회
                List <VIZCore3D.NET.Data.Node> items = vizcore3d.Object3D.FromFilter(VIZCore3D.NET.Data.Object3dFilter.ALL);

                // 개체 확인
                if (items.Count == 0)
                {
                    return(false);
                }

                // 저장 옵션
                vizcore3d.Model.SaveMergeStructureMode = saveOption;

                List <VIZCore3D.NET.Data.Node> outside = vizcore3d.Object3D.Find.GetOutsidePart(false);

                // VIZ 파일 형식으로 내보내기
                return(vizcore3d.Model.ExportVIZ(file, outside));
            }
            else if (mode == ToVIZMode.SIMPLIFIED)
            {
                // 저장 옵션
                vizcore3d.Model.SaveMergeStructureMode = Data.MergeStructureModes.NONE;

                return(vizcore3d.Model.ExportSimplifiedModel(source, file, false, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, false, 0, false));
            }
            else
            {
                return(false);
            }
        }