G-Code Question about pause and home.

1,428 views
Skip to first unread message

drando...@gmail.com

unread,
Jun 4, 2012, 10:21:34 PM6/4/12
to make...@googlegroups.com
I am curious if there is two commands that I could insert into the G-Code.

I'm looking for pause and home.
The idea I have is to make objects that during the print process it will pause and home the stepstruder so I can drop not printable items on the form then start the print again (Ideally I would love to hit the "M" button to continue)

I want to design wheel hubs but with metal bearings and not plastic one and I want them to be fully encapsulated with no joinery involved. So my idea was to print till the chamber is complete, pause and home the stepstruder so its out of the way. Insert the bearing and then continue the print. The home feature is important or I physically wont be able to reach in the machine without moving the gantry. If it homes to the limit switches it could find its way back and start where it left off.

Are these commands out there for ReplicatorG.

I know in the normal G-Code world G28 X~Y~Z will go home and in Mach3 I can customize M-Codes but I'm wondering if there is a full set of these codes for ReplicatorG?

Also a good note is that sometimes people refer to pause as dwell which may not be what I'm looking for.
On my home built mill I use Mach3 and when I need to change bits or rekey the workpiece I use the change tool command like M6.
 

Greg Thorstad

unread,
Jun 5, 2012, 12:18:53 AM6/5/12
to make...@googlegroups.com
I have messed with this on the Thingomatic and it is not that hard.
 
Yes those codes are there.  The pause code is at the end of every print.  It is the one that puts Build complete on the screen if you want to copy that. 
 
You actually don't totally want home but just move x and y to the edge of the platform.   You also want to retract the filament a little so you don't get a blob.  Then once you have hit OK then you need to advance the filament again and move back to your old x y position and run the next line of code.    The first  layer of plastic will not stick very well to the encapsulated metal so you may have issues if the span over the bearing is very big.     If I get a chance I will try to track down my vb code that took care of doing all that.  
 
Greg Thorstad, B. Comm.
Thorstad Computer/Thor3d.ca/Canadian Makerbot Distributor
Box 268
Outlook, SK
S0L 2N0
306 867-9596
--
You received this message because you are subscribed to the Google Groups "MakerBot Operators" group.
To view this discussion on the web visit https://groups.google.com/d/msg/makerbot/-/FAKV16GKtVcJ.
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.

drando...@gmail.com

unread,
Jun 5, 2012, 1:55:43 AM6/5/12
to make...@googlegroups.com
That would be great. Let me know if I can help in any way. I would love to write up a tutorial on how to do that for everyone else. So any information anyone has on the embedded G/M codes I would love to play with.

drando...@gmail.com

unread,
Jun 5, 2012, 3:44:47 AM6/5/12
to make...@googlegroups.com
Well if I had actually clicked on the help menu I would have seen all of the G/M Codes in there for me to play with. Looks like G90 and M71 are all I need.

But there are some interesting commands in there. M141, M72, M131, M132

Now that I have the list I will be playing a lot.


G0: Rapid Positioning
G1: Coordinated Motion
G2: Clockwise Arc
G3: Counter Clockwise Arc
G4: Dwell
G10: Create Coordinate System Offset from the Absolute one
G20: Use Inches as Units
G21: Use Milimeters as Units
G28: Home given axes to maximum
G53: Set absolute coordinate system
G54: Use coordinate system from G10 P0
G55: Use coordinate system from G10 P1
G56: Use coordinate system from G10 P2
G57: Use coordinate system from G10 P3
G58: Use coordinate system from G10 P4
G59: Use coordinate system from G10 P5
G70: Use Inches as Units
G71: Use Milimeters as Units
G90: Absolute Positioning
G91: Relative Positioning
G92: Define current position on axes
G97: Spindle speed rate
G130: Set given axes potentiometer Value
G161: Home given axes to minimum
G162: Home given axes to maximum
M0: Unconditional Halt, not supported on SD?
M1: Optional Halt, not supported on SD?
M2: End program
M3: Spindle On - Clockwise
M4: Spindle On - Counter Clockwise
M5: Spindle Off
M6: Wait for toolhead to come up to reach (or exceed) temperature
M7: Coolant A on (flood coolant)
M8: Coolant B on (mist coolant)
M9: All Coolant Off
M10: Close Clamp
M11: Open Clamp
M13: Spindle CW and Coolant A On
M14: Spindle CCW and Coolant A On
M17: Enable Motor(s)
M18: Disable Motor(s)
M21: Open Collet
M22: Close Collet
M30: Program Rewind
M40: Change Gear Ratio to 0
M41: Change Gear Ratio to 1
M42: Change Gear Ratio to 2
M43: Change Gear Ratio to 3
M44: Change Gear Ratio to 4
M45: Change Gear Ratio to 5
M46: Change Gear Ratio to 6
M50: Read Spindle Speed
M70: Display Message On Machine
M71: Display Message, Wait For User Button Press
M72: Play a Tone or Song
M73: Manual Set Build %
M101: Turn Extruder On, Forward
M102: Turn Extruder On, Reverse
M103: Turn Extruder Off
M104: Set Temperature
M105: Get Temperature
M106: Turn Automated Build Platform (or the Fan, on older models) On
M107: Turn Automated Build Platform (or the Fan, on older models) Off
M108: Set Extruder's Max Speed (R = RPM, P = PWM)
M109: Set Build Platform Temperature
M110: Set Build Chamber Temperature
M126: Valve Open
M127: Valve Close
M128: Get Position
M131: Store Current Position to EEPROM
M132: Load Current Position from EEPROM
M140: Set Build Platform Temperature
M141: Set Chamber Temperature (Ignored)
M142: Set Chamber Holding Pressure (Ignored)
M200: Reset driver
M300: Set Servo 1 Position
M301: Set Servo 2 Position
M310: Start data capture
M311: Stop data capture
M312: Log a note to the data capture store

Greg Thorstad

unread,
Jun 5, 2012, 11:11:21 AM6/5/12
to make...@googlegroups.com
Here is my chunk of VB code that was doing the pause
 
   inputting line by line into lin  when we hit the first z higher than the pause height
 
                           Print #(l_filenum3), lin
                           Print #(l_filenum3), "M102 (Extruder on, reverse)"
                           Print #(l_filenum3), "G04 P500 (Wait t/1000 seconds)"
''                           Print #(l_filenum3), "M108 R1.98"
                           Print #(l_filenum3), "M103"
                           Print #(l_filenum3), "G1 X0.0 F3300.0 (move to cooling position)"
                           Print #(l_filenum3), "G1 X0.0 Y55.0 F3300.0 (move to cooling position)"
                           Print #(l_filenum3), "M103 M01 (" & qquotes("put your nut in") & ")"
                          Print #(l_filenum3), lin

 
the cooling position would have to change for a replicator of course but that should be the jist of it
 
 
Greg Thorstad, B. Comm.
Thorstad Computer/Thor3d.ca/Canadian Makerbot Distributor
Box 268
Outlook, SK
S0L 2N0
306 867-9596
--
You received this message because you are subscribed to the Google Groups "MakerBot Operators" group.
To view this discussion on the web visit https://groups.google.com/d/msg/makerbot/-/FFmJAQtzFF8J.

W. Craig Trader

unread,
Jun 5, 2012, 1:59:37 PM6/5/12
to make...@googlegroups.com
I wonder how hard it would be to do that as a SkeinForge plugin?  In fact, it sounds like an excellent opportunity for a "HOWTO Write a SkeinForge Plugin".

- Craig -

Shawn

unread,
Jun 5, 2012, 2:17:37 PM6/5/12
to make...@googlegroups.com
Please blog or post the HOWTO when you work it out. Eventually I think
I may want to do a plugin or two...

On 12-06-05 11:59 AM, W. Craig Trader wrote:
> I wonder how hard it would be to do that as a SkeinForge plugin? In
> fact, it sounds like an excellent opportunity for a "HOWTO Write a
> SkeinForge Plugin".
>
> - Craig -
>
> On Tue, Jun 5, 2012 at 11:11 AM, Greg Thorstad <gr...@thorstad.ca
> <mailto:gr...@thorstad.ca>> wrote:
>
> __
> Here is my chunk of VB code that was doing the pause
> inputting line by line into lin when we hit the first z higher
> than the pause height
> Print #(l_filenum3), lin
> Print #(l_filenum3), "M102 (Extruder on,
> reverse)"
> Print #(l_filenum3), "G04 P500 (Wait
> t/1000 seconds)"
> '' Print #(l_filenum3), "M108 R1.98"
> Print #(l_filenum3), "M103"
> Print #(l_filenum3), "G1 X0.0 F3300.0
> (move to cooling position)"
> Print #(l_filenum3), "G1 X0.0 Y55.0
> F3300.0 (move to cooling position)"
> Print #(l_filenum3), "M103 M01 (" &
> qquotes("put your nut in") & ")"
> Print #(l_filenum3), lin
>
> the cooling position would have to change for a replicator of course
> but that should be the jist of it
> Greg Thorstad, B. Comm.
> Thorstad Computer/Thor3d.ca/Canadian Makerbot Distributor
> Box 268
> Outlook, SK
> S0L 2N0
> 306 867-9596 <tel:306%20867-9596>
>
> ----- Original Message -----
> *From:* da...@avidquestion.com <mailto:da...@avidquestion.com>
> *To:* make...@googlegroups.com <mailto:make...@googlegroups.com>
> *Sent:* Monday, June 04, 2012 11:55 PM
> *Subject:* Re: [MakerBot] G-Code Question about pause and home.
> <mailto:make...@googlegroups.com>.
> To unsubscribe from this group, send email to
> makerbot+u...@googlegroups.com
> <mailto:makerbot%2Bunsu...@googlegroups.com>.
> For more options, visit this group at
> http://groups.google.com/group/makerbot?hl=en.
>
> --
> 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
> <mailto:make...@googlegroups.com>.
> To unsubscribe from this group, send email to
> makerbot+u...@googlegroups.com
> <mailto:makerbot%2Bunsu...@googlegroups.com>.

Dan Newman

unread,
Jun 5, 2012, 4:59:14 PM6/5/12
to make...@googlegroups.com

On 5 Jun 2012 , at 10:59 AM, W. Craig Trader wrote:

> I wonder how hard it would be to do that as a SkeinForge plugin? In fact,
> it sounds like an excellent opportunity for a "HOWTO Write a SkeinForge
> Plugin".

Craig, it's pretty simple actually. And, if I recall correctly, you know
more than a little Python…. The plugins are in Python and are pretty straightforward.
They are somewhat in the spirit of Unix filter programs. Each one reads
the gcode from start to finish, rewriting it as it goes. (And as such,
conceptually looks like a pipeline of Unix filter programs.) Chaining
a new plugin in is done by editing

skein_engines/skeinforge-VERSION/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py

and adding the new script to the tool chain sequence by inserting its name
(without the .py extension) into the plugin sequence in getCraftSequence().

Sample plugins? Just find a simple one in

skein_engines/skeinforge-VERSION/skeinforge_application/skeinforge_plugins/craft_plugins/

copy, it and then edit it. The old "outline" plugin from SF 35 may be a good
choice to emulate. (There may be an even better choice to crib from -- outline.py
is just my knee jerk reaction.)

Dan

Len Trigg

unread,
Jun 5, 2012, 9:05:37 PM6/5/12
to make...@googlegroups.com
On Wed, Jun 6, 2012 at 8:59 AM, Dan Newman <dan.n...@mtbaldy.us> wrote:
> Sample plugins?  Just find a simple one in
>
> skein_engines/skeinforge-VERSION/skeinforge_application/skeinforge_plugins/craft_plugins/
>
> copy, it and then edit it.  The old "outline" plugin from SF 35 may be a good
> choice to emulate.  (There may be an even better choice to crib from -- outline.py
> is just my knee jerk reaction.)

An even simpler one to use as a starting point might be rpmify (which
has since had the functionality rolled into reversal). See
http://www.thingiverse.com/thing:4917 (I wrote rpmify and outline, and
I definitely don't count python as one of my languages, so it isn't
that hard). One thing to be aware of is that the names of imports
frequently change from one version of skeinforge to the next so best
to start with something from the same version of skeinforge that you
want to target.

Cheers,
Len.

Andy

unread,
Jun 6, 2012, 3:40:23 AM6/6/12
to make...@googlegroups.com, make...@googlegroups.com
Amazing thread! Thanks for all this great information.

-Andy

AdanA

unread,
Aug 24, 2012, 12:01:14 PM8/24/12
to make...@googlegroups.com
Hi all,

I was curious if anyone had taken this further: has anyone tried making a SF plugin for Pause At Z Height? Or, short of that, is there a stock block of gcode anyone manually inserts to get this functionality?

I'm very interested in embedding things (nuts, bushings, electronics), and of course would love to take advantage of whatever previous development's been done on the topic.

Thanks!

Adan

Jetty

unread,
Aug 24, 2012, 12:33:41 PM8/24/12
to MakerBot Operators
Another way to do it is with the Jetty Firmware. It has "Pause At Z
Height" built in,
you set it up after the print starts, then when it pauses it moves it
off the platform.
Then you can jog around to clear the platform, insert the bearing, and
cancel to resume the print.

It's often used for multiple color printing on a ToM, for example:
http://www.thingiverse.com/thing:15941
http://www.thingiverse.com/thing:26141

On Aug 24, 10:01 am, AdanA <a...@akerworks.com> wrote:
> Hi all,
>
> I was curious if anyone had taken this further: has anyone tried making a
> SF plugin for Pause At Z Height? Or, short of that, is there a stock block
> of gcode anyone manually inserts to get this functionality?
>
> I'm very interested in embedding things (nuts, bushings, electronics), and
> of course would love to take advantage of whatever previous development's
> been done on the topic.
>
> Thanks!
>
> Adan
>
>
>
>
>
>
>
> On Wednesday, June 6, 2012 3:40:23 AM UTC-4, Andrew wrote:
>
> > Amazing thread! Thanks for all this great information.
>
> > -Andy
>
> > On Jun 5, 2012, at 6:05 PM, Len Trigg <len...@gmail.com <javascript:>>
> > wrote:
>
> > > On Wed, Jun 6, 2012 at 8:59 AM, Dan Newman <dan.n...@mtbaldy.us<javascript:>>
> > wrote:
> > >> Sample plugins?  Just find a simple one in
>
> > skein_engines/skeinforge-VERSION/skeinforge_application/skeinforge_plugins/ craft_plugins/
>
> > >> copy, it and then edit it.  The old "outline" plugin from SF 35 may be
> > a good
> > >> choice to emulate.  (There may be an even better choice to crib from --
> > outline.py
> > >> is just my knee jerk reaction.)
>
> > > An even simpler one to use as a starting point might be rpmify (which
> > > has since had the functionality rolled into reversal). See
> > >http://www.thingiverse.com/thing:4917(I wrote rpmify and outline, and
> > > I definitely don't count python as one of my languages, so it isn't
> > > that hard). One thing to be aware of is that the names of imports
> > > frequently change from one version of skeinforge to the next so best
> > > to start with something from the same version of skeinforge that you
> > > want to target.
>
> > > Cheers,
> > > Len.
>
> > > --
> > > 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<javascript:>.
>
> > > To unsubscribe from this group, send email to
> > makerbot+u...@googlegroups.com <javascript:>.

Adan Akerman

unread,
Aug 24, 2012, 12:47:18 PM8/24/12
to make...@googlegroups.com
Yes, that functionality sounds exactly perfect. I've been eagerly awaiting its release for Replicator so I could try it out. Have I missed it?

The new MBI accelerated firmware, by the way, doesn't print properly in accelerated mode on my machine. MBI support said that's the case with some of the machines, though it's, if I understood them correctly, not machine related? They're working on it, just wait... so I have the accelerated firmware loaded but I'm still printing with it in "unaccelerated" mode. I look forward to having functional accelerated firmware.


To post to this group, send email to make...@googlegroups.com.
To unsubscribe from this group, send email to makerbot+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages