示例#1
0
        private void cmdDuplicateAll_Click(object sender, RoutedEventArgs e)
        {
            if (gCodeObject.gCodeList.Count < 1)
            {
                return;
            }

            double distXDir = HelperClass.ShowInputBox("Distance between Macros in X Direction");
            int    numXDir  = Convert.ToInt32(HelperClass.ShowInputBox("Number of Macros in X Direction"));
            double distYDir = HelperClass.ShowInputBox("Distance between Macros in Y Direction");
            int    numYDir  = Convert.ToInt32(HelperClass.ShowInputBox("Number of Macros in Y Direction"));

            List <Gcode> DuplicatedList = new List <Gcode>();

            foreach (Gcode item in gCodeObject.gCodeList)
            {
                Gcode gcodeToCopy = CloneClass.CloneObject <Gcode>(item);
                DuplicatedList.Add(gcodeToCopy);
                double distX = item.xStart;
                double distY = item.yStart;

                double distYDirFixed = distYDir;

                for (int x = 0; x <= numXDir; x++)
                {
                    for (int y = 1; y < numYDir; y++)
                    {
                        distY += distYDirFixed;

                        Gcode copyY = CloneClass.CloneObject <Gcode>(gcodeToCopy);

                        copyY.xStart = distX;
                        copyY.yStart = distY;

                        DuplicatedList.Add(copyY);
                    }

                    distYDirFixed *= -1;

                    distX += distXDir;

                    if (x >= numXDir - 1)
                    {
                        break;
                    }

                    Gcode copyX = CloneClass.CloneObject <Gcode>(gcodeToCopy);

                    copyX.xStart = distX;
                    copyX.yStart = distY;

                    DuplicatedList.Add(copyX);
                }
            }

            gCodeObject.gCodeList = DuplicatedList;

            gCodeObject.DrawObjects(ref MainCanvas, ref MainCanvasScale, ref GCodeView, ref Arrow, xMeasure, yMeasure);
        }
示例#2
0
        public void CloneObjectTest()
        {
            // Arrange
            EditorModel Model = new EditorModel();
            // Act
            EditorModel Cloned = CloneClass.CloneObject <EditorModel>(Model);

            // Assert
            Assert.AreNotEqual(Model, Cloned);
        }
示例#3
0
        private void DuplicateGcode(double distXDir, int numXDir, double distYDir, int numYDir, int index)
        {
            Gcode gcodeToCopy = CloneClass.CloneObject <Gcode>(gCodeObject.gCodeList[index]);

            double distX = gCodeObject.gCodeList[index].xStart;
            double distY = gCodeObject.gCodeList[index].yStart;

            for (int x = 0; x <= numXDir; x++)
            {
                for (int y = 1; y < numYDir; y++)
                {
                    distY += distYDir;

                    Gcode copyY = CloneClass.CloneObject <Gcode>(gcodeToCopy);

                    copyY.xStart = distX;
                    copyY.yStart = distY;

                    gCodeObject.gCodeList.Add(copyY);
                }

                distYDir *= -1;

                distX += distXDir;

                if (x >= numXDir - 1)
                {
                    break;
                }

                Gcode copyX = CloneClass.CloneObject <Gcode>(gcodeToCopy);

                copyX.xStart = distX;
                copyX.yStart = distY;

                gCodeObject.gCodeList.Add(copyX);
            }

            gCodeObject.DrawObjects(ref MainCanvas, ref MainCanvasScale, ref GCodeView, ref Arrow, xMeasure, yMeasure);
        }