Sharp IR Radar icon Sharp IR Radar — Radar-style Sharp IR scanner for EZB ADC: sweeps sensor, displays distance dots, logs ADC voltage, and can steer/avoid obstacles via Movement Panel Try it →
 
Servo Sketch 3d Robot Skill

Servo Sketch 3D

by Synthiam Inc

3D drawing for servos or robot arms: live trail, sketch pad, shapes, SVG import, recording, playback, and AI-assisted control

Requires ARCx v1 (Updated 10/13/2026)
Tags: Graphs Servo
Compatible with: Compatible with Microsoft Windows 10 or 11 Windows Compatible with ARM Linux (Raspberry pi, etc) ARM Compatible with Linux Linux Compatible with MacOS MacOS

How to add the Servo Sketch 3D robot skill

  1. Load the most recent release of ARCx on a compatible operating system (Get ARCx).
  2. Press the + Skills menu from the top menu bar in ARCx.
  3. Choose any of these category tabs, the robot skill appears in each of them: Graphs, Servo.
  4. Press the Servo Sketch 3D icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Servo Sketch 3D robot skill.


How to use the Servo Sketch 3D robot skill

Servo Sketch 3d turns three servos, or a robot arm, into a 3D drawing machine. It plots where the servos (or the arm's end effector) are and have been as a live trail in a 3D view, like the ARC skill of the same name, and it adds a 3D sketch pad: draw with the mouse or a finger, generate shapes and text, import SVG drawings, record what the robot does, and play any of it back to the servos at the speed you choose. A drawing arm writes words, a pan/tilt traces a spiral, a gantry draws a logo.

The main window playing a sketch

How the 3D space works

The space is a box where each axis runs from 0 to 1: X left to right, Y front to back, Z bottom to top (the top view shows X to the right and Y up, like a sheet of paper).

Output What 0 and 1 mean
Servos Each axis moves its own servos. 0 is the servos' Minimum and 1 their Maximum, and Invert swaps them. Extra servos added with Multiple Servos follow the first. A new skill starts on V0, V1 and V2 over the whole servo range, as in ARC.
Kinematic chain The box is a workspace in front of a robot arm, in millimetres (X forward from the base, Y to its left, Z up). Each point goes to the arm through a kinematic chain published by a provider such as the Kinematics Service robot skill, which works out the joint angles. The box is drawn in its real proportions, and shapes stay round.

The live view follows the X, Y and Z servos (or the arm) whatever moves them: this skill, a script, Auto Position, a joystick or another skill. When no controller is connected and no chain is published, the view follows what the skill sends instead, so sketches can be tried before the robot is plugged in; the readout says "simulated" when that happens.

The window

The first toolbar is the sketch and its playback:

Control What it does
Sketch list The open sketch. Drawing adds to it, Play plays it.
New, Duplicate, Delete Make a new empty sketch, copy the open one, or delete it (it asks first).
Undo, Redo Take the last stroke off, or put it back.
Clear Remove every stroke (it asks first; Redo brings them back one at a time).
Fit Centre the sketch and scale it to fill most of the space.
Shapes Opens the shape generator panel (see below).
Play, Pause, Stop Play the open sketch on the robot, pause it where it is, or stop it. A progress bar shows how far it has got, and strokes turn green as they are finished.
Loop Play over and over until Stop.
Speed The playback speed multiplier, 0.25x to 5x.
Record Records whatever moves the servos or the arm into a new sketch. A pause longer than the stroke gap starts a new stroke. Press again to stop and save it.
Home, Release Glide to the home position; release the servos so they stop holding.

The second toolbar is the pen, the plane and the camera:

Control What it does
Orbit Drag turns the camera around the scene, right drag pans, the wheel zooms.
Draw Drag on the drawing plane to add a stroke to the open sketch. Hold Shift for a straight line from where Shift was pressed, and Ctrl to snap to a grid of twentieths. The right button still turns the camera; with a finger, two fingers turn and zoom. With "Move the robot while drawing" on, the robot follows the pen live.
Drive Drag on the drawing plane to move the robot live without drawing anything.
Plane The plane the pen works on: the floor (XY), the front wall (XZ), the side wall (YZ), or Facing me, which picks whichever faces the camera.
Depth slider Where the plane sits along its third axis (Z for the floor). Shift and the mouse wheel in the view do the same. A drawing arm draws on the floor at Z 0; raise the plane to draw in mid air.
Top, Front, Side, Three-quarter Glide this browser's camera to a preset view.
Plot pause, Clear trail, Save trail Pause the trail (the ARC Pause checkbox), clear it (it asks first), or save it as a new sketch.

The view shows the space as a box with a floor grid and the X (red), Y (green) and Z (blue) axes labelled with their servo ports or millimetre ranges. The robot is the yellow ball with a line down to its shadow on the floor; the trail is red; the sketch is drawn in the theme colour with a green dot where each stroke starts and dashed lines for the travel between strokes. The corner readout shows the position and the master servo positions.

Drawing on a raised plane

Shapes and text

The Shapes button opens a panel that generates a shape into the open sketch, centred on the drawing plane at its depth.

Shape Notes
Circle, Square, Triangle, Polygon, Star Polygon has Sides, Star has Points.
Spiral, Wave Turns sets the spiral's turns or the wave's cycles.
Heart, Figure eight, Flower Flower has Petals.
Helix, Cube, Sphere spiral, Trefoil knot, Lissajous, Tornado 3D shapes: they rise out of the plane along its third axis.
Text A single stroke font a pen can draw: A to Z, 0 to 9 and . , ! ? - + = : ' " / * ( ). Lower case is written as upper case; \n starts a new line.

Size is a fraction of the space and Turn rotates the shape in its plane. Add puts it in the sketch; Add and play also plays it.

The shape generator

Playback

A sketch is a list of strokes. For each stroke the robot travels to its first point with the pen up, puts the pen down, traces every point at the drawing speed, and lifts the pen again. Playback starts from wherever the robot is, so it never jumps. The speeds are in widths of the space per second (0.25 crosses the whole space in 4 seconds), multiplied by the playback speed.

For a drawing machine, the Pen tab lifts the pen between strokes: rise on Z by an amount, a pen servo (down at its Minimum, up at its Maximum), or both. With a kinematic chain, points the arm cannot reach are counted and reported in the log when the sketch finishes.

Configuration

Output

Output tab

Setting Description
Output Servos (a set per axis) or Kinematic chain (a robot arm).
X, Y, Z axis servos Servos mode: the servos of each axis, with their Minimum (0) and Maximum (1), Invert, and extra servos that follow the first. Leave Z unassigned for a flat machine.
Kinematic chain Kinematic chain mode: the arm to drive, with its live position.
Workspace box (mm) Kinematic chain mode: the Min and Max of X, Y and Z the space maps onto, in the arm's frame. Put Z Min at the paper for a drawing arm.
Arm update interval (ms) The shortest time between two moves sent to the arm. Each move runs the arm's solver once.

Pen

Pen tab

Setting Description
Lift on Z between strokes Rise, travel above the drawing, and come down at the next stroke's start.
Lift amount How far to rise, as a fraction of the Z axis.
Use a pen servo Move a pen servo down while drawing and up while travelling.
Pen settle time (ms) How long to wait after the pen servo moves.
Pen servo Minimum is pen down, Maximum is pen up; Invert swaps them.

Motion

Motion tab

Setting Description
Drawing speed How fast the pen moves along a stroke, in widths of the space per second.
Travel speed How fast the robot moves between strokes, and for Home and glides.
Playback speed Multiplies both speeds while a sketch plays.
Update interval (ms) The shortest time between servo updates while moving.
Home position Where Home glides to. Use current position takes the robot's position.
Return home when done Glide home when a sketch finishes.
Move the robot while drawing The robot follows the pen live while a stroke is drawn.
Point spacing The smallest distance between two drawn points.
Recording stroke gap (ms) While recording, a pause longer than this starts a new stroke.

View

View tab

Setting Description
Show the live trail Plot where the servos or the arm have been.
Trail length (points) The most points the trail keeps; the oldest go first.
Trail and sketch line widths In pixels.
Show travel moves The dashed lines between strokes.
Show the readout The position and servo positions in the corner of the view.
Show the toolbars, Show the log Turn off for a clean view, i.e. on a Custom UI screen.

Sketches

Sketches tab

Rename, reorder, duplicate, export and delete sketches, and choose the one open in the window. Import sketches reads files exported from any servo Sketch 3d (JSON, each stroke a list of [x, y, z] points, easy to write from another program). Import SVG reads the outlines of an SVG drawing (paths with lines, curves and arcs, polylines, polygons, lines, rectangles, circles and ellipses, with their transforms) onto the chosen plane, depth and size; fills, colours, text and rounded rectangle corners are ignored. Changes here are kept when you press Save.

Scripts

Scripts tab

Setting Description
Publish variables Publish [prefix]X, [prefix]Y, [prefix]Z (0 to 1), [prefix]IsPlaying, [prefix]Progress (0 to 1) and [prefix]Sketch.
Variable prefix ServoSketch by default. Give every servo Sketch 3d in a project its own.
On play start Runs when a sketch starts playing.
On play finished Runs when a sketch plays to its end on its own, not when it is stopped.

Scripts

Every action is a control command, so a script can draw and play. This one writes a word and waits for the robot to finish it:

ControlCommand("Servo Sketch 3d", "NewSketch", "Greeting");
ControlCommand("Servo Sketch 3d", "DrawText", "HI THERE", 0.8);
ControlCommand("Servo Sketch 3d", "PlayAndWait", "Greeting");
print("Done at " + ControlCommand("Servo Sketch 3d", "GetPosition"));

The ARC commands keep their names and meaning: Clear clears the trail, TopView, BottomView, LeftView and RightView turn the camera, and PauseOn, PauseOff and GetPause pause the plotting.

Custom UI widgets

The widgets on a Custom UI screen

Widget Settings
3D view The live view, with a small play, pause and stop bar. Tool: orbit, draw or drive, so a tablet can draw straight onto the robot. Plane: xy, xz, yz or auto. ShowPlayButtons: true or false.
Sketch buttons A button for each sketch, plus Pause, Stop and Home. Loop: true plays on a loop. ShowHome: true or false.

AI assistants (MCP)

With ARCx's MCP server on, an AI assistant can draw with the robot. The tools are get_state (where the robot is, the sketches), draw_path (strokes from its own [x, y, z] points), draw_shape (any shape or text), play_sketch (optionally waiting for the end), stop_sketch, move_to, and get_sketch_image, which returns a picture of a sketch from the top, front, side or three-quarter view so the assistant can check a drawing before it plays it.

Tips

  • Set each axis servo's Minimum and Maximum to the travel the machine can really do; the whole space maps onto them.
  • For a drawing arm, put the paper at Z 0 (the workspace box's Z Min), turn on Lift on Z between strokes, and draw on the floor plane at depth 0.
  • Smaller drawing speeds give cleaner lines on real hardware; the playback speed menu speeds a preview up without changing the settings.
  • Ports on a second controller show as 1.D0 in the labels and readout.

Control Commands for the Servo Sketch 3D robot skill

There are Control Commands available for this robot skill which allows the skill to be controlled programmatically from scripts or other robot skills. These commands enable you to automate actions, respond to sensor inputs, and integrate the robot skill with other systems or custom interfaces. If you're new to the concept of Control Commands, we have a comprehensive manual available here that explains how to use them, provides examples to get you started and make the most of this powerful feature.

Control Command Manual

This robot skill has 49 control commands, listed below. Send them from a JavaScript or Python script, from Blockly, or from another robot skill.

The first value is always the window title, which is the name in the title bar of the robot skill on your workspace. It starts out as Servo Sketch 3d, which is what every example below uses. If you rename the robot skill, or add a second copy of it to the project, use the title as it appears on that window instead.

ControlCommand() can be shortened to CC(), and both spellings work in JavaScript and in Python. The examples are JavaScript; Python is the same call, except that true and false are written True and False.

AddStroke

Add a stroke to the open sketch from a list of points "x,y,z x,y,z ...", each 0 to 1

Syntax

ControlCommand("Servo Sketch 3d", "AddStroke", (String)points)

Parameters

# Name Type What to pass
1 points Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "AddStroke", "points");

BackView

Move the camera to look at the scene from the back

Syntax

ControlCommand("Servo Sketch 3d", "BackView")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "BackView");

BottomView

Move the camera to look at the scene from the bottom

Syntax

ControlCommand("Servo Sketch 3d", "BottomView")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "BottomView");

Clear

Clear the live trail from the scene (the ARC command). Sketches are not touched

Syntax

ControlCommand("Servo Sketch 3d", "Clear")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "Clear");

ClearSketch

Remove every stroke from a sketch, without asking. Leave the name empty for the open sketch

Syntax

ControlCommand("Servo Sketch 3d", "ClearSketch", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "ClearSketch", "name");

DeleteSketch

Delete a sketch, without asking. The last sketch is emptied instead. Returns false when there is no such sketch

Syntax

ControlCommand("Servo Sketch 3d", "DeleteSketch", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "DeleteSketch", "name");

DrawShape

Draw a shape into the open sketch, centred on the drawing plane. shape is one of Circle, Square, Triangle, Polygon, Star, Spiral, Heart, FigureEight, Flower, Wave, Helix, Cube, SphereSpiral, Trefoil, Lissajous, Cone, Text. size is 0.02 to 1 of the space. Returns false when the shape is unknown

Syntax

ControlCommand("Servo Sketch 3d", "DrawShape", (String)shape, (Number)size)

Parameters

# Name Type What to pass
1 shape Text Your text, in quotes
2 size Number A number, without quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "DrawShape", "shape", 0);

DrawShapeAt

Draw a shape into the open sketch at a centre (x, y, z, each 0 to 1) in a plane (XY, XZ or YZ). shape is one of Circle, Square, Triangle, Polygon, Star, Spiral, Heart, FigureEight, Flower, Wave, Helix, Cube, SphereSpiral, Trefoil, Lissajous, Cone, Text

Syntax

ControlCommand("Servo Sketch 3d", "DrawShapeAt", (String)shape, (Number)x, (Number)y, (Number)z, (Number)size, (String)plane)

Parameters

# Name Type What to pass
1 shape Text Your text, in quotes
2 x Number A number, without quotes
3 y Number A number, without quotes
4 z Number A number, without quotes
5 size Number A number, without quotes
6 plane Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "DrawShapeAt", "shape", 0, 0, 0, 0, "plane");

DrawText

Write text into the open sketch in a single stroke font a pen can draw, centred on the drawing plane. Characters: A-Z 0-9 . , ! ? - + = : ' " / * ( ); \n starts a new line. size is 0.02 to 1 of the space

Syntax

ControlCommand("Servo Sketch 3d", "DrawText", (String)text, (Number)size)

Parameters

# Name Type What to pass
1 text Text Your text, in quotes
2 size Number A number, without quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "DrawText", "text", 0);

FitSketch

Centre a sketch and scale it to fill most of the space. Leave the name empty for the open sketch

Syntax

ControlCommand("Servo Sketch 3d", "FitSketch", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "FitSketch", "name");

FrontView

Move the camera to look at the scene from the front (the XZ plane, X to the right)

Syntax

ControlCommand("Servo Sketch 3d", "FrontView")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "FrontView");

GetActiveSketch

The name of the sketch open in the window

Syntax

ControlCommand("Servo Sketch 3d", "GetActiveSketch")

Returns: String

Example

var result = ControlCommand("Servo Sketch 3d", "GetActiveSketch");

GetPause

Whether the plotting of positions is paused

Syntax

ControlCommand("Servo Sketch 3d", "GetPause")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "GetPause");

GetPosition

Where the robot is as [x, y, z], each 0 to 1 (-1 before it is known)

Syntax

ControlCommand("Servo Sketch 3d", "GetPosition")

Returns: Array of Double

Example

var result = ControlCommand("Servo Sketch 3d", "GetPosition");

GetPositionMm

Kinematic chain mode: where the end effector is as [x, y, z] in millimetres in the arm's frame

Syntax

ControlCommand("Servo Sketch 3d", "GetPositionMm")

Returns: Array of Double

Example

var result = ControlCommand("Servo Sketch 3d", "GetPositionMm");

GetProgress

How far through the playing sketch, 0 to 1. 0 when nothing plays

Syntax

ControlCommand("Servo Sketch 3d", "GetProgress")

Returns: Double [5.0e324 to 1.7e308]

Example

var result = ControlCommand("Servo Sketch 3d", "GetProgress");

GetSketches

The names of the saved sketches

Syntax

ControlCommand("Servo Sketch 3d", "GetSketches")

Returns: Array of String

Example

var result = ControlCommand("Servo Sketch 3d", "GetSketches");

GetSpeed

The playback speed multiplier

Syntax

ControlCommand("Servo Sketch 3d", "GetSpeed")

Returns: Double [5.0e324 to 1.7e308]

Example

var result = ControlCommand("Servo Sketch 3d", "GetSpeed");

GetX

Where the robot is on the X axis, 0 to 1 (-1 before it is known)

Syntax

ControlCommand("Servo Sketch 3d", "GetX")

Returns: Double [5.0e324 to 1.7e308]

Example

var result = ControlCommand("Servo Sketch 3d", "GetX");

GetY

Where the robot is on the Y axis, 0 to 1 (-1 before it is known)

Syntax

ControlCommand("Servo Sketch 3d", "GetY")

Returns: Double [5.0e324 to 1.7e308]

Example

var result = ControlCommand("Servo Sketch 3d", "GetY");

GetZ

Where the robot is on the Z axis, 0 to 1 (-1 before it is known)

Syntax

ControlCommand("Servo Sketch 3d", "GetZ")

Returns: Double [5.0e324 to 1.7e308]

Example

var result = ControlCommand("Servo Sketch 3d", "GetZ");

GlideTo

Glide in a straight line to a point over a number of milliseconds (0 for the travel speed). x, y and z are 0 to 1. Returns straight away

Syntax

ControlCommand("Servo Sketch 3d", "GlideTo", (Number)x, (Number)y, (Number)z, (Number)milliseconds)

Parameters

# Name Type What to pass
1 x Number A number, without quotes
2 y Number A number, without quotes
3 z Number A number, without quotes
4 milliseconds Number A number, without quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "GlideTo", 0, 0, 0, 0);

GoHome

Glide to the home position set in the configuration

Syntax

ControlCommand("Servo Sketch 3d", "GoHome")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "GoHome");

IsoView

Move the camera to the three-quarter view it starts in

Syntax

ControlCommand("Servo Sketch 3d", "IsoView")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "IsoView");

IsPlaying

Whether a sketch is playing (true while paused, too)

Syntax

ControlCommand("Servo Sketch 3d", "IsPlaying")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "IsPlaying");

IsRecording

Whether the live position is being recorded

Syntax

ControlCommand("Servo Sketch 3d", "IsRecording")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "IsRecording");

LeftView

Move the camera to look at the scene from the left

Syntax

ControlCommand("Servo Sketch 3d", "LeftView")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "LeftView");

MoveTo

Move straight to a point at once. x, y and z are 0 to 1

Syntax

ControlCommand("Servo Sketch 3d", "MoveTo", (Number)x, (Number)y, (Number)z)

Parameters

# Name Type What to pass
1 x Number A number, without quotes
2 y Number A number, without quotes
3 z Number A number, without quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "MoveTo", 0, 0, 0);

NewSketch

Make a new empty sketch and open it. Returns its name, made unique if it is taken

Syntax

ControlCommand("Servo Sketch 3d", "NewSketch", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: String

Example

var result = ControlCommand("Servo Sketch 3d", "NewSketch", "name");

PauseOff

Un-pause the plotting of positions

Syntax

ControlCommand("Servo Sketch 3d", "PauseOff")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "PauseOff");

PauseOn

Pause the plotting of positions: the trail stops growing

Syntax

ControlCommand("Servo Sketch 3d", "PauseOn")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "PauseOn");

PausePlayback

Pause the playing sketch where it is. Returns false when nothing is playing

Syntax

ControlCommand("Servo Sketch 3d", "PausePlayback")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "PausePlayback");

Play

Play a sketch: the robot traces it. Leave the name empty for the open sketch. Returns straight away; use PlayAndWait to wait for the end. Returns false when there is no such sketch or it is empty

Syntax

ControlCommand("Servo Sketch 3d", "Play", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "Play", "name");

PlayAndWait

Play a sketch once and wait until it ends. Returns true when it played to the end, false when it was stopped or could not play. Stopping the script stops the robot

Syntax

ControlCommand("Servo Sketch 3d", "PlayAndWait", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "PlayAndWait", "name");

PlayLoop

Play a sketch over and over until Stop. Leave the name empty for the open sketch

Syntax

ControlCommand("Servo Sketch 3d", "PlayLoop", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "PlayLoop", "name");

RedoStroke

Put the last undone stroke back

Syntax

ControlCommand("Servo Sketch 3d", "RedoStroke")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "RedoStroke");

ReleaseServos

Stop and release the axis and pen servos so they stop holding

Syntax

ControlCommand("Servo Sketch 3d", "ReleaseServos")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "ReleaseServos");

RenameSketch

Rename a sketch. Returns the new name (made unique), or an empty string when there is no such sketch

Syntax

ControlCommand("Servo Sketch 3d", "RenameSketch", (String)name, (String)newName)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes
2 newName Text Your text, in quotes

Returns: String

Example

var result = ControlCommand("Servo Sketch 3d", "RenameSketch", "name", "newName");

ResumePlayback

Carry on with a paused sketch

Syntax

ControlCommand("Servo Sketch 3d", "ResumePlayback")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "ResumePlayback");

RightView

Move the camera to look at the scene from the right

Syntax

ControlCommand("Servo Sketch 3d", "RightView")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "RightView");

SaveTrail

Save the live trail as a new sketch and open it. Returns its name, or an empty string when the trail is empty

Syntax

ControlCommand("Servo Sketch 3d", "SaveTrail", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: String

Example

var result = ControlCommand("Servo Sketch 3d", "SaveTrail", "name");

SelectSketch

Open a sketch in the window, for drawing into and playing. Returns false when there is no such sketch

Syntax

ControlCommand("Servo Sketch 3d", "SelectSketch", (String)name)

Parameters

# Name Type What to pass
1 name Text Your text, in quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "SelectSketch", "name");

SetDrawPlane

Set the window's drawing plane (XY, XZ, YZ or Auto) and its depth along the third axis, 0 to 1 (Z for XY, Y for XZ, X for YZ)

Syntax

ControlCommand("Servo Sketch 3d", "SetDrawPlane", (String)plane, (Number)depth)

Parameters

# Name Type What to pass
1 plane Text Your text, in quotes
2 depth Number A number, without quotes

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "SetDrawPlane", "plane", 0);

SetSpeed

Set the playback speed multiplier: 1 as configured, 0.5 half speed, 2 double (0.05 to 10). Takes effect at once. Returns the speed set

Syntax

ControlCommand("Servo Sketch 3d", "SetSpeed", (Number)multiplier)

Parameters

# Name Type What to pass
1 multiplier Number A number, without quotes

Returns: Double [5.0e324 to 1.7e308]

Example

var result = ControlCommand("Servo Sketch 3d", "SetSpeed", 0);

StartRecording

Start recording the live position (whatever moves the servos or the arm) into a new sketch

Syntax

ControlCommand("Servo Sketch 3d", "StartRecording")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "StartRecording");

Stop

Stop the sketch (or glide) in progress. The robot stays where it is. Returns false when nothing was moving

Syntax

ControlCommand("Servo Sketch 3d", "Stop")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "Stop");

StopRecording

Stop recording and save it as a sketch, which is opened. Returns its name, or an empty string when nothing moved

Syntax

ControlCommand("Servo Sketch 3d", "StopRecording")

Returns: String

Example

var result = ControlCommand("Servo Sketch 3d", "StopRecording");

TopView

Move the camera to look at the scene from the top

Syntax

ControlCommand("Servo Sketch 3d", "TopView")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "TopView");

UndoStroke

Take the last stroke off the open sketch

Syntax

ControlCommand("Servo Sketch 3d", "UndoStroke")

Returns: Boolean [true or false]

Example

var result = ControlCommand("Servo Sketch 3d", "UndoStroke");

This list is read out of the robot skill itself each time its package is uploaded, so it matches the published version (v1).


ARC Pro

Upgrade to ARC Pro

Synthiam ARC Pro is a new tool that will help unleash your creativity with programming robots in just seconds!