Esempio n. 1
0
        /// <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;
            }
        }
Esempio n. 2
0
        /// <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;
        }