Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
        }