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(); }
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); }