Ejemplo n.º 1
0
 public void DeepAnalysis(InfoProgressPanel ipp)
 {
     originalModel.ipp = ipp;
     originalModel.Analyse();
     if (ipp.IsKilled)
     {
         return;
     }
     originalModel.updateBad();
     if (originalModel.intersectingTriangles.Count > 0 || originalModel.badTriangles > 0 || originalModel.manifold == false || originalModel.manyShardEdges != 0 || originalModel.loopEdges != 0 || originalModel.normalsOriented == false)
     {
         if (repairedModel == null)
         {
             repairedModel = originalModel.Copy();
         }
         repairedModel.ipp = ipp;
         repairedModel.RepairUnobtrusive();
         repairedModel.Analyse();
         originalModel.Analyse();
         if (ipp.IsKilled)
         {
             originalModel.clear();
             repairedModel.clear();
             return;
         }
         repairedModel.updateBad();
         ShowRepaired(true);
         repairedModel.ipp = null;
     }
     originalModel.ipp = null;
 }
Ejemplo n.º 2
0
        public void openAndAddObject(string file)
        {
            PrintModel model = new PrintModel();
            FileInfo   f     = new FileInfo(file);

            InfoProgressPanel ipp = InfoProgressPanel.Create(Trans.T1("IMPORTING_1", f.Name), true);

            ipp.Action = Trans.T("L_LOADING...");
            ipp.Dock   = DockStyle.Top;
            panelControls.Controls.Add(ipp);
            panelControls.Update();
            model.Load(file, ipp);
            model.Center(Main.printerSettings.PrintAreaWidth / 2, Main.printerSettings.PrintAreaDepth / 2);
            model.Land();
            if (model.ActiveModel.triangles.Count > 0)
            {
                AddObject(model);
                cont.models.AddLast(model);

                Autoposition();
                model.addAnimation(new DropAnimation("drop"));
                updateSTLState(model);
            }
            else
            {
                if (!ipp.IsKilled)
                {
                    MessageBox.Show(Trans.T1("L_LOADING_3D_FAILED", file), Trans.T("L_ERROR"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            ipp.Finished();
        }
Ejemplo n.º 3
0
        public void Load(string file, InfoProgressPanel ipp)
        {
            filename = file;
            DateTime lastModified2 = File.GetLastWriteTime(filename);

            lastModified      = lastModified2.Ticks;
            originalModel.ipp = ipp;
            string lname = filename.ToLower();

            if (lname.EndsWith(".stl"))
            {
                originalModel.importSTL(filename, Main.main.importScaleFactor);
            }
            else if (lname.EndsWith(".obj"))
            {
                originalModel.importObj(filename, Main.main.importScaleFactor);
            }
            else if (lname.EndsWith(".3ds"))
            {
                originalModel.import3Ds(filename, Main.main.importScaleFactor);
            }
            FileInfo info = new FileInfo(file);

            name = info.Name;
            originalModel.AnalyseFast();
            if (ipp.IsKilled)
            {
                originalModel.clear();
                return;
            }

            /*
             * if (ipp.IsKilled)
             * {
             *  originalModel.clear();
             *  return;
             * }
             * originalModel.updateBad();
             * if (originalModel.intersectingTriangles.Count>0 || originalModel.badTriangles>0 || originalModel.manifold == false || originalModel.manyShardEdges != 0 || originalModel.loopEdges != 0 || originalModel.normalsOriented==false)
             * {
             *  if (repairedModel == null)
             *      repairedModel = originalModel.Copy();
             *  repairedModel.ipp = ipp;
             *  repairedModel.RepairUnobtrusive();
             *  repairedModel.Analyse();
             *  originalModel.Analyse();
             *  if (ipp.IsKilled)
             *  {
             *      originalModel.clear();
             *      repairedModel.clear();
             *      return;
             *  }
             *  repairedModel.updateBad();
             *  ShowRepaired(true);
             *  repairedModel.ipp = null;
             * }*/
            originalModel.ipp = null;
        }
Ejemplo n.º 4
0
 public void reload()
 {
     if (File.Exists(filename))
     {
         InfoProgressPanel ipp = InfoProgressPanel.Create(Trans.T1("IMPORTING_1", name), true);
         ipp.Action = Trans.T("L_LOADING...");
         ipp.Dock   = DockStyle.Top;
         Main.main.objectPlacement.panelControls.Controls.Add(ipp);
         Main.main.objectPlacement.panelControls.Update();
         Load(filename, ipp);
         Land();
         ForceViewRegeneration();
         ipp.Finished();
     }
 }
Ejemplo n.º 5
0
        private void buttonAnalyse_Click(object sender, EventArgs e)
        {
            if (listObjects.SelectedItems.Count != 1)
            {
                return;
            }
            PrintModel model = (PrintModel)ListObjects(true).First.Value;

            if (model != null)
            {
                InfoProgressPanel ipp = InfoProgressPanel.Create(Trans.T("L_ANAYLSING"), true);
                ipp.Action = ""; // Trans.T("L_LOADING...");
                ipp.Dock   = DockStyle.Top;
                panelControls.Controls.Add(ipp);
                panelControls.Update();
                model.DeepAnalysis(ipp);
                ipp.Finished();
                UpdateAnalyserData();
            }
        }