Tool
The Tool object represents a tool within the program. All the methods for creating toolpaths take one or more Tool objects as arguments. Any of the supported tool types can be accessed from the ToolDatabase as shown in the section describing the ToolDatabase:SelectTool() method. In addition, the most common tool types (BallNose, EndMill, VBit and Drill) can be created programmatically from Lua.
Constructor
Tool( string name, ToolType tool_type)
Create a new tool. Only a limited number of tool types are supported for creation from script. To access the full range of tools use the ToolDatabase:SelectTool() method to allow users to select tools from the tool database. Name (string) Name for the too to be created tool_type (integer)Type of tool to create.
- Valid values are:
- Tool.BALL_NOSE
- Tool.END_MILL
- Tool.VBIT
- Tool.THROUGH_DRILL
- Valid values are:
NOTE: If you change ANY parameters or properties on a tool retrieved from an EXISTING toolpath, you MUST call UpdateParameters() after you have finished editing tool properties to flush the changes through to the toolpath.
Properties
.ClearStepover
Interaction: Read and Write
Returns:(double) Clearance pass stepover for tool (VBits only)
.InMM
Interaction: Read and Write
Returns:(bool) flag indicating if tool is in mm or inches
.FeedRate
Interaction: Read and Write
Returns:(double) Feedrate for tool (see RateUnits for the units)
.Name
Interaction: Read Only
Returns: (string) name of tool
.Notes
Interaction: Read and Write
Returns: (string) Notes field for tool . (Aspire 4.015 or VCP 7.015 onwards only)
.PlungeRate
Interaction: Read and Write
Returns: (double) Feed rate for tool
Note: see RateUnits for the units
.RateUnits
Interaction: Read and Write
Returns: (integer) Feed rate units for tool.
- Valid values are:
- Tool.MM_SEC
- Tool.MM_MIN
- Tool.METRES_MIN
- Tool.INCHES_SEC
- Tool.INCHES_MIN
- Tool.FEET_MIN
- Valid values are:
.RateUnitsText
Interaction: Read Only
Returns: (string) Feed rate units for tool as a string for display For Example:
"mm or sec" or "inch or sec"
.SpindleSpeed
Interaction: Read and Write
Returns:(integer) Spindle speed for tool
.Stepdown
Interaction: Read and Write
Returns:(double) Stepdown for tool
.Stepover
Interaction: Read and Write
Returns:(double) Stepover for tool
.ToolDB_Location
Interaction: Read Only
Returns: (string) path to tool in tool database
Note: not including tool name
.ToolType
Interaction: Read Only
Returns: (integer) an integer indicating the type of the tool values are:
- Tool.BALL_NOSE
- Tool.END_MILL
- Tool.RADIUSED_END_MILL
- Tool.VBIT
- Tool.ENGRAVING
- Tool.RADIUSED_ENGRAVING
- Tool.THROUGH_DRILL
- Tool.FORM_TOOL
- Tool.DIAMOND_DRAG
- Tool.RADIUSED_FLAT_ENGRAVING
.ToolTypeText
Interaction: Read Only
Returns: (string) a string indicating the type of the tool
.ToolDia
Interaction: Read and Write
Returns: (double) Diameter of tool
.ToolNumber
Interaction: Read and Write
Returns: (integer) Tool number for tool
.ToolDBId
Interaction: Read and Write
Returns: (integer) ToolDBId – The Id describing the location in the tool database
.VBit_Angle
Interaction: Read and Write
Returns: (double) Included angle for VBit tools
Methods
:ConvertRateUnitsTo( integer new_units)
Convert the feed and plunge rates for the tool into the passed units. new_units (integer)new units for feed and plunge rate.
- Valid values are the same as for .RateUnits
:IsCompatibleFeedRates( Tool tool_to_check)
Returns: (bool) true if this tool has same feed, plunge and spindles speeds as passed tool. Does not check geometry or cut depths (see: IsCompatibleTool and :IsCompatibleCutDepthss)
- tool_to_check (Tool) tool we check for compatibility
:IsCompatibleTool( Tool tool_to_check)
Returns: (bool) true if this tool is compatible (same type and geometry) as passed tool. Does not check cut depths or feed rates (see :IsCompatibleCutDepths and :IsCompatibleFeedRates for this data)
- tool_to_check (Tool) tool we check for compatibility
:IsCompatibleCutDepths( Tool tool_to_check)
Returns: (bool) true if this tool is has same cut depths as passed tool. Does not check geometry or feed rates
(see: IsCompatibleTool and:IsCompatibleFeedRates)
- Tool_to_check (Tool) tool we check for compatibility
:FlatRadius( bool in_mm)
Retrieve the flat radius for tools flat tools otherwise returns zero.
- in_mm (bool) If true, return the tip radius in millimeters
:GetBool( string parameter_name, bool default_value)
Retrieve a Boolean flag (true or false) with the passed name, if no value with passed name returns the passed default value. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name of the parameter
- default_value(bool) the value which will be returned if there is no existing value stored
:GetDouble( string parameter_name, double default_value,)
Retrieve a double with the passed name, if no value with passed name returns passed default value. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name of the parameter
- default_value(double) the value which will be returned if there is no existing value stored
:GetInt( string parameter_name, integer default_value)
Retrieve an integer with the passed name, if no value with passed name returns the passed default value. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name of the parameter
- value (integer) the value which will be returned if there is no existing value stored
:ParameterExists( string parameter_name, utParameterType type)
Returns: (bool) true if there is an existing parameter with passed name and type. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name of the parameter
- type (utParameterType) the type of parameter
:SetBool(string parameter_name, bool value)
Store a Boolean flag (true or false) with the passed name and value. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name which will be used to store and retrieve the value
- value (bool) the value which will be stored in the parameter list
:SetDouble(string parameter_name, double value)
Store a double with the passed name and value. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name which will be used to store and retrieve the value
- value(double) the value which will be stored in the parameter list
:SetInt(string parameter_name, integer value)
Store an integer with the passed name and value. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name which will be used to store and retrieve the value
- value (integer) the value which will be stored in the parameter list
:SetString(string parameter_name, string value)
Store a string with the passed name and value. (Aspire 4.015 or VCP 7.015 onwards only)
- parameter_name (string) the name which will be used to store and retrieve the value
- value (string) the value which will be stored in the parameter list
:TipRadius( bool in_mm)
Retrieve the tip radius for tools of type Tool.RADIUSED_END_MILL or Tool.RADIUSED_ENGRAVING otherwise return zero.
- in_mm (bool) If true, return the tip radius in millimeters
:UpdateParameters()
If editing a tool on an existing toolpath update feed rates and other parameters set on the tool to new values.
NOTE: You MUST call this method if you have edited any parameters on an existing tool, otherwise your changes will be ignored!
For Example:
-- Create tool we will use to machine vectors local tool = Tool( "Lua End Mill", Tool.END_MILL -- BALL_NOSE, END_MILL, VBIT ) tool.InMM = tool_in_mm tool.ToolDia = tool_dia tool.Stepdown = tool_stepdown tool.Stepover = tool_dia * 0.25 tool.RateUnits = Tool.MM_SEC -- MM_SEC, MM_MIN, METRES_MIN, -- INCHES_SEC, INCHES_MIN, FEET_MIN tool.FeedRate = 30 tool.PlungeRate = 10 tool.SpindleSpeed = 20000 tool.ToolNumber = 1 tool.VBitAngle = 90.0 -- used for vbit only tool.ClearStepover = tool_dia * 0.5 -- used for vbit only
References
Please Note: The base material for the contents found in this WiKi was sourced from Vectric Lua Interface for Gadgets, version 10.0, published August 21, 2019. by Vectric Ltd. Most current document from Vertric can be downloaded at Vertric Developer Information