コード例 #1
0
      private void simuStart(Color col)
      {
          label_wx.ForeColor = col;
          label_wy.ForeColor = col;
          label_wz.ForeColor = col;
          label_wa.ForeColor = col;
          label_wb.ForeColor = col;
          label_wc.ForeColor = col;

          Color invers = ContrastColor(col);

          label_wx.BackColor = invers;
          label_wy.BackColor = invers;
          label_wz.BackColor = invers;
          label_wa.BackColor = invers;
          label_wb.BackColor = invers;
          label_wc.BackColor = invers;

          simulateA = VisuGCode.containsTangential();
          if (simulateA)
          {
              updateLayout();
          }

          pbFile.Maximum = fCTBCode.LinesCount;
          fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast);
          btnSimulate.Text        = Localization.getString("mainSimuStop");
          simuLine                = 0;
          fCTBCodeClickedLineNow  = simuLine;
          fCTBCodeClickedLineLast = simuLine;
          simuEnabled             = true;
          simulationTimer.Enabled = true;
          //         VisuGCode.markSelectedFigure(-1);
          //         VisuGCode.setPosMarkerLine(simuLine, false);
          btnStreamStart.Enabled    = false;
          btnStreamStop.Enabled     = false;
          btnStreamCheck.Enabled    = false;
          btnSimulateFaster.Enabled = true;
          btnSimulateSlower.Enabled = true;
          VisuGCode.Simulation.Reset();

          double factor = 100 * VisuGCode.Simulation.dt / 50;

          lblElapsed.Text          = string.Format("{0} {1:0}%", Localization.getString("mainSimuSpeed"), factor);
          btnSimulatePause.Visible = true;
          lbInfo.BackColor         = System.Drawing.Color.LightGreen;
      }
コード例 #2
0
ファイル: xmlMarker.cs プロジェクト: chinaray/GRBL-Plotter
        public static void sortByDistance()
        {
            List <BlockData> result = new List <BlockData>();
            xyPoint          first  = new xyPoint();
            double           distanceReverse;
            BlockData        tmp;
            bool             allowReverse = !VisuGCode.containsG2G3Command() && !VisuGCode.containsG91Command() && !VisuGCode.containsTangential();

            while (listFigures.Count > 0)
            {
                for (int i = 0; i < listFigures.Count; i++)
                {
                    tmp             = listFigures[i];
                    tmp.distance    = first.DistanceTo(tmp.posStart);
                    distanceReverse = first.DistanceTo(tmp.posEnd);
                    if (allowReverse && (distanceReverse < tmp.distance))
                    {
                        tmp.distance = distanceReverse;
                        tmp.reverse  = true;
                    }
                    listFigures[i] = tmp;
                }
                listFigures.Sort((x, y) => x.distance.CompareTo(y.distance));

                result.Add(listFigures[0]);
                first = listFigures[0].posEnd;
                listFigures.RemoveAt(0);
            }

            listFigures.Clear();
            foreach (BlockData item in result)
            {
                listFigures.Add(item);
            }
        }