private List <string> saveComposition(string filename) { List <string> files = new List <string>(); for (int i = 0; i < ProjectManager.Instance.CurrentProject.projectSettings.PrinterSettings.Extruders.Count; i++) { List <PrintModel> models = ProjectManager.Instance.CurrentProject.ListObjects().Where(x => x.ExtruderNumber == i).ToList(); if (models.Count > 0) { TopoModel model = new TopoModel(); foreach (PrintModel stl in models) { stl.UpdateMatrix(); model.Merge(stl.ActiveModel, stl.trans); } model.exportSTL(filename + "composition" + i + ".stl", writeSTLBinary); files.Add(filename + "composition" + i + ".stl"); } else { files.Add("-"); } } return(files); }
public void Analyse(PrintModel model) { TopoModel m = null; if (model != null) { m = new TopoModel(); m.Merge(model.Model, model.trans); } ProjectManager.Instance.CurrentProject.projectSettings.PrintStatistic.UpadateModelInfo(m, model); }
private void saveComposition(string filename) { TopoModel model = new TopoModel(); foreach (PrintModel stl in ListObjects(false)) { stl.UpdateMatrix(); model.Merge(stl.ActiveModel, stl.trans); } if (filename.EndsWith(".obj") || filename.EndsWith(".OBJ")) { model.exportObj(filename, true); } else { model.exportSTL(filename, writeSTLBinary); } Slicer.lastBox.Clear(); Slicer.lastBox.Add(model.boundingBox); }
public void Analyse(PrintModel pm) { TopoModel m = new TopoModel(); m.Merge(pm.Model, pm.trans); infoVolume.Text = (0.001 * m.Volume()).ToString("0.0000") + " cm³"; infoSurface.Text = (0.01 * m.Surface()).ToString("0.0000") + " cm²"; infoShells.Text = pm.Model.shells.ToString(); infoPoints.Text = pm.Model.vertices.Count.ToString(); infoEdges.Text = pm.Model.edges.Count.ToString(); infoFaces.Text = pm.Model.triangles.Count.ToString(); infoMinX.Text = m.boundingBox.minPoint.x.ToString("0.00") + " mm"; infoMaxX.Text = m.boundingBox.maxPoint.x.ToString("0.00") + " mm"; infoSizeX.Text = m.boundingBox.Size.x.ToString("0.00") + " mm"; infoMinY.Text = m.boundingBox.minPoint.y.ToString("0.00") + " mm"; infoMaxY.Text = m.boundingBox.maxPoint.y.ToString("0.00") + " mm"; infoSizeY.Text = m.boundingBox.Size.y.ToString("0.00") + " mm"; infoMinZ.Text = m.boundingBox.minPoint.z.ToString("0.00") + " mm"; infoMaxZ.Text = m.boundingBox.maxPoint.z.ToString("0.00") + " mm"; infoSizeZ.Text = m.boundingBox.Size.z.ToString("0.00") + " mm"; groupBox1.Text = pm.name; }