Workflows by use case
Spot dispensing (epoxy, glue, paint, electronics)
A syringe or dispenser on the flange deposits a controlled amount of material at each programmed point.
- Tool setup: drop Custom Tool (or Tool (TCP) for TCP-centric IK) with a plane at the dispenser tip relative to the flange.
- TCP Load: tell the controller your dispenser's mass with TCP Load for cleaner motion.
- Dispense pattern: author dispense positions as Points, build Planes from them (3Pt Plane or constructed), feed into PTP.
- Trigger: use IO When to fire a digital output (gating a solenoid valve or pump) when the TCP reaches each dispense point.
- Safety: wrap the toolpath in Bounds with a box matching the work area.
CNC milling / pumpkin carving
- Tool: spindle attached to flange. Custom Tool with the tool tip plane.
- Path: Path Curve (for single-pass cuts) or G-Code Import (for CAM-generated toolpaths). For curved surfaces, use Orient Plane to keep the tool aimed at the carving center.
- Approach/retract: Tool Axis Offset (per-target along local tool axis) is better than Safe Plane for tilted-tool work.
- Analog spindle: Analog Output sets a voltage that drives spindle RPM.
3D printing (FDM extruder on robot)
- Slicer output: G-Code Import parses PrusaSlicer/Cura/Slic3r G-code, turns it into LIN targets.
- Print frame: position the build volume via the Print Frame input on G-Code Import. The plugin maps G-code (0,0,0) onto your fixture.
- Extruder: set Use Extruder = true; transitions in E emit DIGITAL_OUT on the Extruder Pin (drives a stepper enable or relay).
- Density: slicer output is dense. Pipe through Reduce to collapse collinear LIN sequences before sending to the robot.
Pick-and-place / production
- Gripper: drop the right gripper component (BIO / Robotiq / Vacuum). Pinball between Robotiq Position(0) and Position(255) for full open/close cycles.
- Repeat: Repeat with Tag Index = true gives you debugging info via Extract.
- Counter: Counter tracks how many cycles ran; condition logic in Blockly or downstream Python can act on it.
Teach by demonstration
- Connect to robot via Connect.
- Drag Mode → set Drag = true. Robot goes to manual / free-drive.
- Record → set Start = true. Recording begins (250Hz).
- Physically move the arm through the desired path.
- Record → set Start = false, set File =
my_path.traj. Saved on the controller. - Drag Mode → set Drag = false.
- Play back later via xArm Studio or extend the bridge with a
playbackcmd.