Skip to content

Tool Definitions ​

Guide to defining and selecting tools in GScript.

Overview ​

Tools are defined in the tooling block and referenced by operations. Proper tool definition ensures safe machining and optimal results.

Tool Definition Syntax ​

yaml
tooling:
  - id: unique-tool-name
    type: tool_type
    diameter: number
    max_rpm: number
    flutes: number    # Optional
    length: number    # Optional

Tool Types ​

Endmill ​

General-purpose milling tool.

yaml
- id: endmill-6mm
  type: endmill
  diameter: 6.0
  max_rpm: 12000
  flutes: 2

Use for: Face, pocket, contour operations

Common sizes: 3mm, 4mm, 6mm, 8mm, 10mm, 12mm

Drill ​

For making holes.

yaml
- id: drill-5mm
  type: drill
  diameter: 5.0
  max_rpm: 5000

Use for: Drill operations

Common sizes: 3mm, 4mm, 5mm, 6mm, 8mm, 10mm

Face Mill ​

Large diameter cutter for facing operations.

yaml
- id: face-mill-20mm
  type: face_mill
  diameter: 20.0
  max_rpm: 8000
  flutes: 4

Use for: Face operations on large areas

Common sizes: 16mm, 20mm, 25mm, 32mm

Ball Nose ​

Rounded tip for 3D contours.

yaml
- id: ball-nose-6mm
  type: ball_nose
  diameter: 6.0
  max_rpm: 10000
  flutes: 2

Use for: 3D contours, fillets (future feature)

Chamfer ​

Angled cutter for edges.

yaml
- id: chamfer-90deg
  type: chamfer
  diameter: 10.0
  max_rpm: 8000

Use for: Edge chamfering (future feature)


Tool Selection Guide ​

By Operation ​

OperationRecommended ToolSize
Face large areaEndmill or face mill10-20mm
PocketEndmill6-10mm
Fine detailEndmill2-4mm
Drill holesDrill bitMatch hole size
Part outlineEndmill4-8mm

By Material ​

Aluminum:

  • Higher flute count (3-4)
  • Higher speeds (10,000-15,000 RPM)
  • Sharp tools

Steel:

  • Lower flute count (2-3)
  • Moderate speeds (5,000-10,000 RPM)
  • Carbide tools recommended

Wood:

  • Higher flute count (2-4)
  • High speeds (12,000-18,000 RPM)
  • Can use HSS tools

Plastic:

  • Single flute or polished
  • High speeds (8,000-12,000 RPM)
  • Sharp tools to prevent melting

Tool Parameters ​

Diameter ​

Most important parameter - affects:

  • Stepover calculations
  • Corner radii
  • Material removal rate
  • Surface finish

Rule: Larger = faster, smaller = more detail

Max RPM ​

Spindle speed limit for this tool.

Typical ranges:

  • Drills: 3,000-8,000 RPM
  • Small endmills (2-6mm): 10,000-18,000 RPM
  • Large endmills (10mm+): 6,000-12,000 RPM

Flutes ​

Number of cutting edges.

More flutes:

  • Better surface finish
  • More suitable for harder materials
  • Lower feed per tooth

Fewer flutes:

  • Better chip evacuation
  • Faster material removal
  • Better for soft materials

Length ​

Tool length (cutting length + shank).

Considerations:

  • Shorter = more rigid = better finish
  • Must be long enough to reach depth
  • Affects tool deflection

Multiple Tools ​

Define all tools you'll use:

yaml
tooling:
  - id: face-mill
    type: endmill
    diameter: 12.0
    max_rpm: 8000
    flutes: 4

  - id: pocket-mill
    type: endmill
    diameter: 6.0
    max_rpm: 12000
    flutes: 2

  - id: drill-bit
    type: drill
    diameter: 4.0
    max_rpm: 5000

Then reference by ID:

yaml
program:
  - op: face
    tool: face-mill  # References face-mill
    # ...

  - op: pocket
    tool: pocket-mill  # References pocket-mill
    # ...

  - op: drill
    tool: drill-bit  # References drill-bit
    # ...

Tool Libraries (Future) ​

Coming soon: Reusable tool libraries

yaml
import:
  - tools: "my-tool-library.yaml"

program:
  - op: face
    tool: @library/endmill-12mm

Best Practices ​

Start Conservative ​

When testing new tools:

  • Lower RPM than maximum
  • Slower feed rates
  • Shallower depth of cut

Tool Naming ​

Use descriptive IDs:

yaml
# Good
drill-5mm
endmill-6mm-2flute
face-mill-12mm

# Avoid
tool1
t1
em1

Document Special Tools ​

yaml
- id: special-carbide-6mm
  type: endmill
  diameter: 6.0
  max_rpm: 15000
  flutes: 3
  # Note: Premium carbide for aluminum only

Troubleshooting ​

Tool not found error:

Tool 'endmill-6' not found in tooling block
  • Check tool ID spelling
  • Ensure tool is defined in tooling block
  • IDs are case-sensitive

Invalid tool type:

Invalid tool type: 'end-mill'
  • Use exact type names: endmill not end-mill
  • See tool types above

Next Steps ​

Released under the Apache License 2.0