/// <summary> /// Listen to any property changes coming from either GRBL or the PropertyGrid /// </summary> /// <param name="name"></param> /// <param name="newvalue"></param> private void GRBLMachinePlugin_PropertyChanged(string name, object newvalue) { switch (name) { case "DefaultToolDiameter": _toolDiameter = GRBLMachinePlugin.Props.DefaultToolDiameter; CreateTool(_toolDef); break; case "DefaultToolFluteLength": _toolFluteLength = GRBLMachinePlugin.Props.DefaultToolFluteLength; CreateTool(_toolDef); break; case "DefaultToolTotalLength": _toolTotalLength = GRBLMachinePlugin.Props.DefaultToolTotalLength; CreateTool(_toolDef); break; case "DefaultToolShankDiameter": _toolShankDiameter = GRBLMachinePlugin.Props.DefaultToolShankDiameter; CreateTool(_toolDef); break; case "DefaultToolVAngle": _toolVAngle = GRBLMachinePlugin.Props.DefaultToolVAngle; CreateTool(_toolDef); break; case "DefaultToolProfile": _toolProfile = GRBLMachinePlugin.Props.DefaultToolProfile; CreateTool(_toolDef); break; case "LaserModeEnable": CreateTool(_toolDef); break; case "AxisMaximumTravel": CreateLimits(); break; } }
/// <summary> /// Build a new tool-visual /// </summary> private void CreateTool(ToolDefinition tool) { _toolDiameter = GRBLMachinePlugin.Props.LaserModeEnable == EnabledDisabled.Enabled ? GRBLMachinePlugin.Props.DefaultLaserDiameter : GRBLMachinePlugin.Props.DefaultToolDiameter; _toolFluteLength = GRBLMachinePlugin.Props.DefaultToolFluteLength; _toolTotalLength = GRBLMachinePlugin.Props.DefaultToolTotalLength; _toolShankDiameter = GRBLMachinePlugin.Props.DefaultToolShankDiameter; _toolVAngle = GRBLMachinePlugin.Props.DefaultToolVAngle; _toolProfile = GRBLMachinePlugin.Props.DefaultToolProfile; if (tool != null) { if (tool.Diameter != 0) { _toolDiameter = tool.Diameter; } if (tool.FluteLength != 0) { _toolFluteLength = tool.FluteLength; } if (tool.Length != 0) { _toolTotalLength = tool.Length; } if (tool.ShankDiameter != 0) { _toolShankDiameter = tool.ShankDiameter; } if (tool.VeeAngle != 0) { _toolVAngle = tool.VeeAngle; } if (tool.ToolProfile != ToolProfiles.Unspecified) { _toolProfile = tool.ToolProfile; } } _toolDef = tool; if (GRBLMachinePlugin.Props.LaserModeEnable == EnabledDisabled.Enabled) { _tool = new Laser(_toolDiameter); } else { switch (_toolProfile) { case ToolProfiles.BallNose: _tool = new BallNose(_toolDiameter, _toolFluteLength, _toolShankDiameter, _toolTotalLength); break; case ToolProfiles.BullNose: _tool = new EndMill(_toolDiameter, _toolFluteLength, _toolShankDiameter, _toolTotalLength); break; case ToolProfiles.Drill: _tool = new Drill(_toolDiameter, _toolFluteLength, _toolShankDiameter, _toolTotalLength); break; case ToolProfiles.EndMill: _tool = new EndMill(_toolDiameter, _toolFluteLength, _toolShankDiameter, _toolTotalLength); break; case ToolProfiles.VCutter: _tool = new V_Cutter(_toolDiameter, _toolVAngle, _toolShankDiameter, _toolTotalLength); break; default: _tool = new EndMill(_toolDiameter, _toolFluteLength, _toolShankDiameter, _toolTotalLength); break; } } _lastX = 0; _lastY = 0; _lastZ = 0; }