static void Main(string[] args) { var toolOffset = new Offset(0, 0, 2); var surfaceOffset = new Offset(0, 0, .25); var invertedZOffset = new Offset() { InvertZ = true }; var combinedOffset = invertedZOffset + toolOffset + surfaceOffset; var workingCoordinate = new Coordinate(0, 0, -.5); Coordinate testCoordinate = new Coordinate(workingCoordinate.X, workingCoordinate.Y, workingCoordinate.Z); testCoordinate = invertedZOffset.ConvertToMachineCoordinate(testCoordinate); testCoordinate = toolOffset.ConvertToMachineCoordinate(testCoordinate); testCoordinate = surfaceOffset.ConvertToMachineCoordinate(testCoordinate); var worldCoordinate = combinedOffset.ConvertToMachineCoordinate(workingCoordinate); Console.WriteLine(worldCoordinate.Z); Console.WriteLine(testCoordinate.Z); Console.WriteLine(combinedOffset.ConvertCoordinateToWorking(worldCoordinate).Z); Console.ReadLine(); }
public Offset CombinedWorkspaceOffset(OffsetType.GCodeIdentifiers gCodeIdentifier) { var offset = new Offset(); var workspaceOffsets = from o in WorkspaceOffsets where o.Type.GCodeIdentifier == gCodeIdentifier && o.Active == true select o; foreach (var workspaceOffset in workspaceOffsets) offset += workspaceOffset; return offset; }
private void SetMachineWorkingOffset() { var offset = new Offset(); if (cboWCS.SelectedItem != null) offset += _settings.CombinedWorkspaceOffset(((OffsetType)cboWCS.SelectedItem).GCodeIdentifier); if (cboToolOffsets.SelectedItem != null) offset += _settings.CombinedWorkspaceOffset(((OffsetType)cboToolOffsets.SelectedItem).GCodeIdentifier); if (chkToolLengthOffset.Checked) offset += _settings.CombinedWorkspaceOffset(OffsetType.GCodeIdentifiers.G43); _machine.WorkingOffset = offset; UpdateCurrentPositionDisplay(); }
private void SetMachineWorkingOffset() { var offset = new Offset(); offset += _machine.Settings.CombinedWorkspaceOffset(WorkspaceOffset); offset += _machine.Settings.CombinedWorkspaceOffset(ToolOffset); if (ToolLengthCompensation) offset += _machine.Settings.CombinedWorkspaceOffset(OffsetType.GCodeIdentifiers.G43); _machine.WorkingOffset = offset; }
/// <summary> /// Temporarily disables any working offsets if we are in G53 mode /// </summary> private void BeforeMoveSetMCS() { if (!_oneTimeMachineCoordinateSystem) return; _machineOffsetHold = _machine.WorkingOffset; _machine.WorkingOffset = null; }
/// <summary> /// Restores working offsets if we just moved in G53 mode /// </summary> private void AfterMoveRevertMCS() { if (!_oneTimeMachineCoordinateSystem) return; _machine.WorkingOffset = _machineOffsetHold; _machineOffsetHold = null; _oneTimeMachineCoordinateSystem = false; }