public static ToolDefinition CurrentTool(this MachineOp mop)
        {
            ToolDefinition def = mop.CurrentTool;

            if (def == null)
            {
                def = new ToolDefinition(mop.Name + " current (from MOP)", mop.ToolNumber.Value, mop.ToolDiameter.Value, 0, 2);
            }

            if (mop.ToolDiameter.Value != def.Diameter)
            {
                def.Diameter = mop.ToolDiameter.Value;
            }

            if (mop.ToolProfile.Value != def.ToolProfile)
            {
                def.ToolProfile = mop.ToolProfile.Value;
            }

            if (mop.ToolNumber.Value != def.Index)
            {
                def.Index = mop.ToolNumber.Value;
            }

            return(def);
        }
        public static ToolDefinition ActiveTool(this CAMPart part)
        {
            MachineOp mop = part.ActiveMOP();

            return(mop != null?mop.CurrentTool() : null);
        }