private void resetWorkspace(bool withReload)
        {
            _workspaceFile = _autosaveFile;
            if (Workspace != null)
            {
                _autosaveTime.IsEnabled = false;
            }

            var limitPoint = PlanBuilder3D.GetPositionFromSteps(Configuration.MaxStepsU, Configuration.MaxStepsV, Configuration.MaxStepsX, Configuration.MaxStepsY);

            Workspace           = new MillingWorkspacePanel(this, limitPoint.X, limitPoint.Y, limitPoint.Z);
            WorkspaceSlot.Child = Workspace;
            if (withReload)
            {
                reloadWorkspace();
            }

            Workspace.OnWorkItemListChanged += refreshItemList;
            Workspace.OnSettingsChanged     += onSettingsChanged;
            Workspace.OnWorkItemClicked     += onItemClicked;
            Speed.Value      = 1000 * Workspace.CuttingSpeedMm;
            CuttingKerf.Text = Workspace.CuttingKerf.ToString();
            MaxLayerCut.Text = Workspace.MaxLayerCut.ToString();

            refreshItemList();
            onSettingsChanged();
        }
        private Point3Dmm getCurrentPosition()
        {
            var currentU = Cnc.EstimationU;
            var currentV = Cnc.EstimationV;
            var currentX = Cnc.EstimationX;
            var currentY = Cnc.EstimationY;

            var prePosition = PlanBuilder3D.GetPositionFromSteps(currentU, currentV, currentX, currentY);

            var position = new Point3Dmm(prePosition.X, prePosition.Y, prePosition.Z);

            return(position);
        }