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