예제 #1
0
        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();
        }
예제 #2
0
        internal void BuildPlan(PlanBuilder3D builder, MillingWorkspacePanel workspace)
        {
            var initialPoint = builder.CurrentPoint;

            var entryPoint = Item2.EntryPoint;

            builder.GotoTransitionLevel();
            builder.AddRampedLine(entryPoint);

            Item2.BuildPlan(builder, workspace);
            builder.GotoTransitionLevel();

            foreach (var outgoingJoin in workspace.FindOutgoingJoins(Item2))
            {
                outgoingJoin.BuildPlan(builder, workspace);
            }

            builder.GotoTransitionLevel();
            builder.AddRampedLine(initialPoint);
        }