예제 #1
0
        private static void ImportWorkspaceFile(object sender, DoWorkEventArgs args)
        {
            var           fileName      = ((List <object>)args.Argument)[0] as string;
            var           serializer    = new System.Xml.Serialization.XmlSerializer(typeof(WorkspaceFile));
            WorkspaceFile workspaceFile = null;

            frmStudioMain.SceneControl.DisableRendering();

            using (var streamReader = new StreamReader(fileName))
            {
                workspaceFile = (WorkspaceFile)serializer.Deserialize(streamReader);

                foreach (var object3d in workspaceFile.Objects)
                {
                    var stlModel = new STLModel3D(STLModel3D.TypeObject.Model, ObjectView.BindingSupported, object3d, ObjectView.NextObjectIndex, false);

                    stlModel.Triangles.UpdateSelectedOrientationTriangles(stlModel);
                    stlModel.UpdateBoundries();
                }

                if (!string.IsNullOrEmpty(PrintJobManager.PrintjobName))
                {
                    PrintJobManager.PrintjobName = workspaceFile.PrintJobName;
                }
            }
        }
예제 #2
0
        internal static void ExportSelectedModelProperties(string filePath, int modelIndex)
        {
            //save
            try
            {
                var parentDirectory = new FileInfo(filePath).Directory.FullName;
                if (!Directory.Exists(parentDirectory))
                {
                    Directory.CreateDirectory(parentDirectory);
                }

                var serializer = new System.Xml.Serialization.XmlSerializer(typeof(WorkspaceFile));
                using (var streamWriter = new StreamWriter(filePath, false))
                {
                    var stlModel   = ((STLModel3D)ObjectView.Objects3D.First(s => s != null && (s is STLModel3D) && (s as STLModel3D).Index == modelIndex));
                    var exportFile = new WorkspaceFile();
                    exportFile.Version = WorkspaceFile.VersionType.Version2;
                    exportFile.Objects.Add(stlModel.ExportToXMLFile());
                    serializer.Serialize(streamWriter, exportFile);
                }
            }
            catch (IOException exc)
            {
                //MessageBox.Show(exc.Message);
            }
            catch (Exception exc)
            {
                //MessageBox.Show(exc.StackTrace);
            }
        }
예제 #3
0
        internal static void ExportCurrentWorkspace(bool autosaveMode = false, string autoSavePath = null, List <MAGSAIDebugComment> magsAIComments = null)
        {
            var filePath = autoSavePath;

            if (filePath == null)
            {
                filePath = PrintJobManager.ProjectSaveFilePath;
            }
            var parentDirectory = new FileInfo(filePath).Directory.FullName;

            if (!Directory.Exists(parentDirectory))
            {
                Directory.CreateDirectory(parentDirectory);
            }


            //save
            var modelCount = 0;

            foreach (var model in ObjectView.Objects3D)
            {
                if (model != null && !(model is GroundPane))
                {
                    var stlModel = ((STLModel3D)model);
                    modelCount++;
                    modelCount += stlModel.TotalObjectSupportCones.Count;
                    if (!autosaveMode)
                    {
                        stlModel.ExportingToAPFProgress += StlModel_ExportingToAPFProgress;
                    }
                }
            }

            MaxValue        = modelCount;
            CurrentProgress = 0;

            if (!autosaveMode)
            {
                ExportToAPF_Progress?.Invoke(0, modelCount);
            }

            try
            {
                var serializer = new System.Xml.Serialization.XmlSerializer(typeof(WorkspaceFile));
                using (var streamWriter = new StreamWriter(filePath, false))
                {
                    var exportFile = new WorkspaceFile();
                    exportFile.ApplicationVersion = BrandingManager.ApplicationVersion;
                    exportFile.Version            = WorkspaceFile.VersionType.Version2;
                    foreach (var object3d in ObjectView.Objects3D)
                    {
                        if (object3d is STLModel3D && !(object3d is GroundPane))
                        {
                            var stlModel = object3d as STLModel3D;
                            exportFile.Objects.Add(stlModel.ExportToXMLFile());
                            if (!autosaveMode)
                            {
                                stlModel.ExportingToAPFProgress -= StlModel_ExportingToAPFProgress;
                            }
                        }
                    }


                    //export material settings
                    //   exportFile.CurrentMaterialCatalog = SceneControlPrintJobPropertiesToolbar.SelectedMaterialCatalog;
                    exportFile.PrintJobName = PrintJobManager.PrintjobName;

                    if (magsAIComments != null)
                    {
                        var imageConverter = new ImageConverter();
                        foreach (var magsAIComment in magsAIComments)
                        {
                            exportFile.MAGSAIDebugComments.Add(magsAIComment);
                        }
                    }


                    serializer.Serialize(streamWriter, exportFile);


                    if (!autosaveMode)
                    {
                        ExportToAPF_Completed?.Invoke();
                        UserProfileManager.UserProfile.AddRecentOpenedFile(new Controls.NewGui.SplashControl.UnlicensedControl.RecentFiles.RecentOpenedFile()
                        {
                            FileName = new FileInfo(filePath).Name, FullPath = filePath, AccessedDateTime = DateTime.Now
                        });
                        UserProfileManager.Save();
                    }
                }
            }
            catch (IOException exc)
            {
                //MessageBox.Show(exc.Message);
            }
            catch (Exception exc)
            {
                //MessageBox.Show(exc.StackTrace);
            }
        }