Machines file for RepG

27 views
Skip to first unread message

Z LeHericy

unread,
Feb 10, 2012, 7:57:59 PM2/10/12
to makerbot
So, I've been searching everwhere (including this group) but can't find any documentation on the syntax and allowed things in the machines file..

I've started working on one (and will post it on my blog and here when it's done) but don't know anything that's not in the machines xml file already.

Anybody know where I could find more info?

Thanks!
-Zeno LeHericy

//((=:Z:=))\\
INVENTIONS
Technologies
zinventions.com

Dan Newman

unread,
Feb 10, 2012, 8:18:18 PM2/10/12
to make...@googlegroups.com

On 10 Feb 2012 , at 4:57 PM, Z LeHericy wrote:

> So, I've been searching everwhere (including this group) but can't find any
> documentation on the syntax and allowed things in the machines file..
>
> I've started working on one (and will post it on my blog and here when it's
> done) but don't know anything that's not in the machines xml file already.
>
> Anybody know where I could find more info?

As with all things open source, you can always look at the source code itself.
(And, often it's the case with open source that that is all the info there is.)
The sources are at github,

git://github.com/makerbot/ReplicatorG.git

Dan

Dan Newman

unread,
Feb 10, 2012, 8:21:06 PM2/10/12
to make...@googlegroups.com

On 10 Feb 2012 , at 5:18 PM, Dan Newman wrote:

>
> On 10 Feb 2012 , at 4:57 PM, Z LeHericy wrote:
>
>> So, I've been searching everwhere (including this group) but can't find any
>> documentation on the syntax and allowed things in the machines file..
>>
>> I've started working on one (and will post it on my blog and here when it's
>> done) but don't know anything that's not in the machines xml file already.
>>
>> Anybody know where I could find more info?

BTW, there is the doc page,

http://replicat.org/machine-configuration

but I don't believe it mentions anything which you don't know already from
looking at the supplied XML files that came with RepG. (Hence why I mentioned
looking at the sources if you want a definitive guide.)

Dan

Z LeHericy

unread,
Feb 10, 2012, 8:20:45 PM2/10/12
to make...@googlegroups.com
I've looked a bit, but am not much of a programmer and can't make heads or tails of anything that might reference this...

I've posted a google doc with the start of my list, I'll be gleaning out more info in the next couple hours

https://docs.google.com/document/pub?id=13mGrIWs0ci4-7g2B2FZlaBw1x5Mkoq14pWIXDnmdvgg

If anyone wants editing rights, email me and I'll add you as an editor


-Zeno LeHericy

//((=:Z:=))\\
INVENTIONS
Technologies
zinventions.com



Dan

--
You received this message because you are subscribed to the Google Groups "MakerBot Operators" group.
To post to this group, send email to make...@googlegroups.com.
To unsubscribe from this group, send email to makerbot+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/makerbot?hl=en.


Z LeHericy

unread,
Feb 10, 2012, 8:27:00 PM2/10/12
to make...@googlegroups.com
I saw that page, and if you look at it, you'll see that it barely mentions anything about the file, just one or two of the 50 or 60 elements that can be used...


-Zeno LeHericy

//((=:Z:=))\\
INVENTIONS
Technologies
zinventions.com



Dan

Dan Newman

unread,
Feb 10, 2012, 8:44:30 PM2/10/12
to make...@googlegroups.com

On 10 Feb 2012 , at 5:27 PM, Z LeHericy wrote:

> I saw that page, and if you look at it, you'll see that it barely mentions

Hence my comment that it didn't show anything you didn't already know. I'll
pull a copy of repg this evening and have a look see.

Dan

Z LeHericy

unread,
Feb 10, 2012, 8:45:17 PM2/10/12
to make...@googlegroups.com
thanks! If you want I'll add you to the google doc so you can add things if you find them


-Zeno LeHericy

//((=:Z:=))\\
INVENTIONS
Technologies
zinventions.com



Dan

Rob Giseburt

unread,
Feb 10, 2012, 8:50:23 PM2/10/12
to make...@googlegroups.com
I believe all that there is to know is contained in this file:


That's the part of RepG that actually reads the XML file. 

  -Rob

Dan Newman

unread,
Feb 11, 2012, 1:17:40 AM2/11/12
to make...@googlegroups.com
Zeno,

Hope this helps you -- it's literally what you asked after, the elements
and the attributes associated with them and their approximate syntax.
It's not the semantics, however. That would require code spelunking to
accurately arrive at. Note that the exact syntax of the integers and
double precision floats is as per Java's parsing of those from strings.
Booleans are "true", "false", "0", or "1".

Dan

<machine> <!-- zero or more -->

<!-- TYPE INFORMATION -->

<!-- A machine profile name. If the name starts with "The Replicator", "Thingomatic",
"Cupcake" then that has significance to RepG. -->

<name>machine profile name</name>

<!-- AXES INFORMATION -->

<geometry>

<!-- zero or more "axis" elements -->

<axis id="string" <!-- one of "x", "y", "z", "a" (extruder t0), "b" (extruder t1),
"c" (rotational around z), "u" (parallel to x), "v" (parallel to y),
"w" (parallel to z) -->
length="value" <!-- double prec. float; default = 100.0;
used for build volume information and thus only used when
id="x", "y", or "z" -->
maxfeedrate="value" <!-- double prec. float; default = 0.0 -->
homingfeedrate="value" <!-- double precision float; defaults to "maxfeedrate" -->
stepspermm="value" <!-- double precision float; if not specified, then "scale" is used;
defaults to "1.0" -->
scale="value" <!-- only used of "stepspermm" is not specified -->
timeout="value" <!-- homing timeout; defaults to "20.0" (seconds?) -->
endstops="string" <!-- one of "min", "max", "none", or "both" (case insensitive);
default="none" --> />

<!-- CLAMPS INFORMATION (looks to not be implemented yet) -->

<clamps>

<!-- Each element with ANY tag name at this level causes a "Clamp" object to be created -->

</clamps>

<!-- TOOLS INFORMATION -->

<tools>

<!-- Zero or more "tool" elements -->

<tool name="string" <!-- tool name; default is "Generic Tool" -->
index="integer" <!-- default is 0 -->
type="string" <!-- "Mk1", "Mk2", "Mk3", "Mk5", "Mk6", "Mk7",
"Mk7a", "Mk8", "Frostruder", "Unicorn", "Unknown";
default is "Unknown" -->
material="string" <!-- default is "unknown" -->
log_hbp="boolean" <!-- default is "0" -->
motor="boolean" <!-- default is "0" -->
motor_encoder_ppr="integer"
motor_steps="value" <!-- double prec. float -->
stepper_axis="string" <!-- "x", "y", "z", "a", "b", "c", "u", "v", "w" -->
default_rpm="value" <!-- double prec. float -->
default_pwm="integer"
use_relay="boolean" <!-- default is "0" -->
spindle="boolean" <!-- default is "0" -->
floodcoolant="boolean" <!-- default is "0" -->
mistcoolant="boolean" <!-- default is "0" -->
fan="boolean" <!-- default is "0" -->
valve="boolean" <!-- default is "0" -->
collet="boolean" <!-- default is "0" -->
heater="boolean" <!-- default is "0" -->
heatedplatform="boolean" <!-- default is "0" -->
automatedplatform="boolean" <!-- default is "0" --> />

</tools>

<!-- WIPES INFORMATION (see WipeModel.java) -->

<wipes>

<!-- zero or more "wipe" elements -->

<wipe index="int" <!-- tool head number -->
X1="string" <!-- default is "" -->
Y1="string" <!-- default is "" -->
Z1="string" <!-- default is "" -->
X2="string" <!-- default is "" -->
Y2="string" <!-- default is "" -->
Z2="string" <!-- default is "" -->
wait="string" <!-- default is "" -->
purge_duration="string" <!-- default is "" -->
reverse_duration="string" <!-- default is "" -->
purge_rpm="string" <!-- default is "" --> />
</wipes>

<!-- EXLCUSION INFORMATION -->


<!-- GCODE INFORMATION -->

<!-- Must have a "bookend" element -- required -->

<bookend dualstart="filename"
start="filename"
end="filename" />


Theron Trowbridge

unread,
Feb 12, 2012, 1:50:11 AM2/12/12
to make...@googlegroups.com
The machines file is an XML document, meaning it should have a schema defined somewhere.  I'm guessing based on this conversation that one never got defined.  It's tempting to skip the schema step for simple projects, but eventually you get into trouble.

Yeah, RepG is open source, and you can dig through the code.  But that shouldn't be necessary, especially in this case.  That's the whole point of using XML.

So, based on Dan's info and the actual machines.xml file, I built a XSD file (attached) that I think describes the schema properly.  The XML from RepG 31 beta validates to it (though that's admittedly a little backwards).

It could use someone to look over it and do some testing.  I'm not a XSD whiz.  I tried to do it in a way where values are properly enumerated, but if I missed any values, the token lists can be extended easily enough.


If an original schema exists, never mind :)  But either way, a schema file should be hosted on a public URL (like the MakerBot web site) and the machines.xml would contain a link to it.  That way, all the information needed to build a new xml file to describe any new machine would be available to anyone.


-Theron
^

machines.xsd

JohnA.

unread,
Feb 12, 2012, 11:26:44 AM2/12/12
to MakerBot Operators
I'm not sure what you're trying to do? If we had more info on where
you're trying to get to, it might help...


JohnA.

Z LeHericy

unread,
Feb 12, 2012, 1:46:43 PM2/12/12
to make...@googlegroups.com
So basically, What I'm trying to do is just gain knowledge...

I've wanted to edit the machines xml before, but had issues with the syntax

knowing all the things that can be put in is very helpful for creating new machine profiles

-Zeno LeHericy

//((=:Z:=))\\
INVENTIONS
Technologies
zinventions.com


Robert Hunt

unread,
Feb 13, 2012, 8:50:49 AM2/13/12
to MakerBot Operators
Just be aware that ReplicatorG may not actually read or do anything
useful with some of the information from the XML file. You will need
to dig into the code to actually see what the settings are used for.
For example, the <material> node isn't used at the moment.

sjlane7160

unread,
Feb 17, 2012, 2:21:07 PM2/17/12
to MakerBot Operators
Stephen Lane wrote:
Hi there I just read this thread & was wondering can the XML file
be used to "calibrate" the X & Y axis
by this I mean my bot prints the 20mm cube at 20.18mm on x axis & 19.4
on the y axis the z axis seems to be controlled by not only the z
settings in this but also the flow rate ratios covered in another
thread so I'm not really concerned with that but I would like my X & y
to be a little more accurate if I could.
Regards
Stephen
Reply all
Reply to author
Forward
0 new messages