Пример #1
0
        internal static void UpdateGroundPane(AtumPrinter selectedPrinter)
        {
            if (selectedPrinter != null)
            {
                var groundPaneObject = new GroundPane((selectedPrinter.ProjectorResolutionX / 10) * selectedPrinter.TrapeziumCorrectionFactorX, (selectedPrinter.ProjectorResolutionY / 10) * selectedPrinter.TrapeziumCorrectionFactorY, 0.02f);

                if (ObjectView.Objects3D.Count > 0 && ObjectView.Objects3D[0] is GroundPane)
                {
                    ((GroundPane)ObjectView.Objects3D[0]).Triangles = groundPaneObject.Triangles;
                    groundPaneObject = ((GroundPane)ObjectView.Objects3D[0]);
                }
                else
                {
                    ObjectView.Objects3D.Insert(0, groundPaneObject);
                }

                if (groundPaneObject.VBOIndexes == null)
                {
                    groundPaneObject.BindModel();
                }
                groundPaneObject.UpdateBinding();
            }
        }
Пример #2
0
        internal BasicCorrectionModel()
            : base(STLModel3D.TypeObject.Model, true)
        {
            this.FileName  = "Calibration";
            this.Triangles = new TriangleInfoList();
            GroundPane groundPane = ObjectView.GroundPane;
            float      x          = 75;
            float      y          = 45;

            if (PrintJobManager.SelectedPrinter is AtumDLPStation5 || PrintJobManager.SelectedPrinter is LoctiteV10)
            {
                switch (PrintJobManager.SelectedPrinter.PrinterXYResolution)
                {
                case AtumPrinter.PrinterXYResolutionType.Micron100:
                    x = 75f;
                    y = 35f;
                    break;

                case AtumPrinter.PrinterXYResolutionType.Micron75:
                    x = 55f;
                    y = 25f;
                    break;

                case AtumPrinter.PrinterXYResolutionType.Micron50:
                    x = 35;
                    y = 15f;
                    break;
                }
            }
            else
            {
                switch (PrintJobManager.SelectedPrinter.PrinterXYResolution)
                {
                case AtumPrinter.PrinterXYResolutionType.Micron75:
                    x = 55f;     //55 //43
                    y = 32.5f;   //32.5 //25
                    break;

                case AtumPrinter.PrinterXYResolutionType.Micron50:
                    x = 35;
                    y = 20;
                    break;
                }
            }

            AtumBox atumBox1 = new AtumBox(CUBESIZE, CUBESIZE, CUBESIZE, true, false);

            atumBox1.Triangles.UpdateWithMoveTranslation(new Vector3Class(-x + CUBESIZE, y + CUBESIZE, SUPPORTBASEMENTHEIGHT));
            atumBox1.SupportBasement = true;

            this.Triangles[0].AddRange(atumBox1.Triangles[0]);
            this.Triangles[0].AddRange(atumBox1.SupportBasementStructure.Triangles[0]);

            AtumBox atumBox2 = new AtumBox(CUBESIZE, CUBESIZE, CUBESIZE, true, false);

            atumBox2.Rotate(0.0f, 0.0f, -270f, RotationEventArgs.TypeAxis.Z, updateFaceColor: false);
            atumBox2.Triangles.UpdateWithMoveTranslation(new Vector3Class(-x + CUBESIZE, -y + CUBESIZE, SUPPORTBASEMENTHEIGHT));
            atumBox2.SupportBasement = true;
            this.Triangles[0].AddRange(atumBox2.Triangles[0]);
            this.Triangles[0].AddRange(atumBox2.SupportBasementStructure.Triangles[0]);

            AtumBox atumBox3 = new AtumBox(CUBESIZE, CUBESIZE, CUBESIZE, true, false);

            atumBox3.Rotate(0.0f, 0.0f, 180f, RotationEventArgs.TypeAxis.Z, updateFaceColor: false);
            atumBox3.Triangles.UpdateWithMoveTranslation(new Vector3Class(x + CUBESIZE, -y + CUBESIZE, SUPPORTBASEMENTHEIGHT));
            atumBox3.SupportBasement = true;
            this.Triangles[0].AddRange(atumBox3.Triangles[0]);
            this.Triangles[0].AddRange(atumBox3.SupportBasementStructure.Triangles[0]);

            Triangle3D triangle3D = new Triangle3D(CUBESIZE, CUBESIZE, CUBESIZE, true, false);

            triangle3D.Rotate(0, 0, 180, RotationEventArgs.TypeAxis.Z, updateFaceColor: false);
            triangle3D.Triangles.UpdateWithMoveTranslation(new Vector3Class(x + CUBESIZE, y + CUBESIZE, SUPPORTBASEMENTHEIGHT));
            triangle3D.SupportBasement = true;
            this.Triangles[0].AddRange(triangle3D.Triangles[0]);
            this.Triangles[0].AddRange(triangle3D.SupportBasementStructure.Triangles[0]);
        }