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; }
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(); }
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; }
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(); } }
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(); } }