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