inform-2d
convert vector paths to MOTOMAN INFORM (.JBI) files in rectangular coordinates with tool up/down in z
This file format is used on big industrial robot arms, like the one at sudoroom.
Watch the algorithm in action.
online svg to inform converter
example
var inform = ;var points = ;var src =;console;
For this points.json
file as input:
the script generates a JBI INFORM file:
/JOB
//NAME WOW
//POS
///NPOS 50,0,0,0
///TOOL 0
///RECTAN
///RCONF 0,0,0,0,0
C000=975.182,-600.551,150.400,-168.90,-11.30,-68.01
C001=975.182,-600.551,140.400,-168.90,-11.30,-68.01
C002=966.465,-587.258,140.400,-168.90,-11.30,-68.01
C003=966.285,-586.398,140.400,-168.90,-11.30,-68.01
C004=971.569,-575.035,140.400,-168.90,-11.30,-68.01
C005=972.351,-574.570,140.400,-168.90,-11.30,-68.01
C006=984.744,-574.007,140.400,-168.90,-11.30,-68.01
C007=985.554,-574.428,140.400,-168.90,-11.30,-68.01
C008=995.424,-588.677,140.400,-168.90,-11.30,-68.01
C009=995.450,-589.553,140.400,-168.90,-11.30,-68.01
C010=990.322,-597.378,140.400,-168.90,-11.30,-68.01
C011=989.521,-597.814,140.400,-168.90,-11.30,-68.01
C012=975.182,-600.551,140.400,-168.90,-11.30,-68.01
C013=975.182,-600.551,150.400,-168.90,-11.30,-68.01
C014=1091.954,-595.991,150.400,-168.90,-11.30,-68.01
C015=1091.954,-595.991,140.400,-168.90,-11.30,-68.01
C016=1078.858,-586.602,140.400,-168.90,-11.30,-68.01
C017=1078.204,-585.745,140.400,-168.90,-11.30,-68.01
C018=1076.430,-572.726,140.400,-168.90,-11.30,-68.01
C019=1077.019,-571.828,140.400,-168.90,-11.30,-68.01
C020=1092.336,-567.162,140.400,-168.90,-11.30,-68.01
C021=1093.445,-567.271,140.400,-168.90,-11.30,-68.01
C022=1108.867,-574.960,140.400,-168.90,-11.30,-68.01
C023=1109.063,-575.813,140.400,-168.90,-11.30,-68.01
C024=1106.648,-589.250,140.400,-168.90,-11.30,-68.01
C025=1106.075,-590.157,140.400,-168.90,-11.30,-68.01
C026=1091.954,-595.991,140.400,-168.90,-11.30,-68.01
C027=1091.954,-595.991,150.400,-168.90,-11.30,-68.01
C028=968.667,-542.789,150.400,-168.90,-11.30,-68.01
C029=968.667,-542.789,140.400,-168.90,-11.30,-68.01
C030=1107.535,-538.785,140.400,-168.90,-11.30,-68.01
C031=1111.385,-538.519,140.400,-168.90,-11.30,-68.01
C032=1111.100,-525.011,140.400,-168.90,-11.30,-68.01
C033=1110.368,-521.409,140.400,-168.90,-11.30,-68.01
C034=1103.620,-500.391,140.400,-168.90,-11.30,-68.01
C035=1101.990,-497.066,140.400,-168.90,-11.30,-68.01
C036=1086.661,-481.144,140.400,-168.90,-11.30,-68.01
C037=1083.087,-479.761,140.400,-168.90,-11.30,-68.01
C038=1022.414,-469.526,140.400,-168.90,-11.30,-68.01
C039=1018.743,-470.634,140.400,-168.90,-11.30,-68.01
C040=1000.943,-477.700,140.400,-168.90,-11.30,-68.01
C041=997.563,-479.472,140.400,-168.90,-11.30,-68.01
C042=985.755,-488.810,140.400,-168.90,-11.30,-68.01
C043=983.503,-491.786,140.400,-168.90,-11.30,-68.01
C044=979.192,-501.633,140.400,-168.90,-11.30,-68.01
C045=980.000,-505.214,140.400,-168.90,-11.30,-68.01
C046=972.184,-517.590,140.400,-168.90,-11.30,-68.01
C047=970.970,-521.072,140.400,-168.90,-11.30,-68.01
C048=968.667,-542.789,140.400,-168.90,-11.30,-68.01
C049=968.667,-542.789,150.400,-168.90,-11.30,-68.01
//INST
///DATE 2014/11/05 13:45
///ATTR 0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0
///FRAME BASE
NOP
*1
MOVL C000 V=200 CONT
PAUSE
MOVL C001 V=50 CONT
MOVL C002 V=50 CONT
MOVL C003 V=50 CONT
MOVL C004 V=50 CONT
MOVL C005 V=50 CONT
MOVL C006 V=50 CONT
MOVL C007 V=50 CONT
MOVL C008 V=50 CONT
MOVL C009 V=50 CONT
MOVL C010 V=50 CONT
MOVL C011 V=50 CONT
MOVL C012 V=50 CONT
MOVL C013 V=200 CONT
MOVL C014 V=200 CONT
MOVL C015 V=50 CONT
MOVL C016 V=50 CONT
MOVL C017 V=50 CONT
MOVL C018 V=50 CONT
MOVL C019 V=50 CONT
MOVL C020 V=50 CONT
MOVL C021 V=50 CONT
MOVL C022 V=50 CONT
MOVL C023 V=50 CONT
MOVL C024 V=50 CONT
MOVL C025 V=50 CONT
MOVL C026 V=50 CONT
MOVL C027 V=200 CONT
MOVL C028 V=200 CONT
MOVL C029 V=50 CONT
MOVL C030 V=50 CONT
MOVL C031 V=50 CONT
MOVL C032 V=50 CONT
MOVL C033 V=50 CONT
MOVL C034 V=50 CONT
MOVL C035 V=50 CONT
MOVL C036 V=50 CONT
MOVL C037 V=50 CONT
MOVL C038 V=50 CONT
MOVL C039 V=50 CONT
MOVL C040 V=50 CONT
MOVL C041 V=50 CONT
MOVL C042 V=50 CONT
MOVL C043 V=50 CONT
MOVL C044 V=50 CONT
MOVL C045 V=50 CONT
MOVL C046 V=50 CONT
MOVL C047 V=50 CONT
MOVL C048 V=50 CONT
MOVL C049 V=200 CONT
JUMP *1
END
Make sure you don't accidentally strip the '\r'
characters, since MOTOMAN
expects '\r\n'
separators.
methods
var inform =
var src = inform(paths, opts)
Return a JBI file string src
that will trace out the vector image described by
paths
. Each item in paths
is an array of points of the form [x,y]
that
describe a path.
Optionally, configure:
opts.name
- the name to use, uppercased, truncated to 8 charsopts.xangle
- x axis euler angle to hold the toolopts.yangle
- y axis euler angle to hold the toolopts.zangle
- z axis euler angle to hold the toolopts.zup
- z value to hold the tool in the up (not tracing) positionopts.zdown
- z value to hold the tool in the down (tracing) positionopts.vup
- velocity to use when z is up (not tracing) in mm/secopts.vdown
- velocity to use when z is down (tracing) in mm/secopts.xmin
,opts.xmax
-path
x coordinates are scaled to this domainopts.ymin
,opts.ymax
-path
y coordinates are scaled to this domain
install
With npm do:
npm install inform-2d
license
MIT