Increase heap size for RepG big files on windows

219 views
Skip to first unread message

Nagalfar

unread,
Mar 9, 2013, 9:22:21 AM3/9/13
to make...@googlegroups.com
Greetings,

I really like emmets blooming lamp: http://www.thingiverse.com/thing:37926 so I wanted to print it in 0.1 or at least 0.2 with skin module enabled. However the gCode file is almost 100 MB and this useless piece of 1990's software called java won't be able to handle it anymore. I'd turn around and forget about it if it wasn't the 4th or 5th print already, I couldn't render because of this issue and with printer precission increasing further some 80MB java memory maximum size is really something I want to fix, especially since using python64 finally let's me create the gcode files even for big files, just can't load them into RepG anymore.

So I read through all posts available and googled anything I could find considering this problem and I'm still miles away from fixing this. I'm pretty sure increasing the heap size with a -Xmx command should do the job (heck if this is hard coded why isn't it there anway?) but any information regarding this I could find is related to ubuntu usually with a line like "should work on windows similar, dunno how though". But it doesn't, since there is no "Start Script" for ReplicatorG whatsoever. So I wonder, anyone ever managed to increase the heap size of RepG on a windows machine and cares to share how?

Eighty

unread,
Mar 9, 2013, 12:54:41 PM3/9/13
to make...@googlegroups.com
Use sailfish with RepGr10. Dan has increased the allocation in that version.

Dan Newman

unread,
Mar 9, 2013, 1:56:17 PM3/9/13
to make...@googlegroups.com

On 9 Mar 2013 , at 9:54 AM, Eighty wrote:

> Use sailfish with RepGr10. Dan has increased the allocation in that version.

But do not use RepG 40r10 - Sailfish if you are using the Makerbot firmware in your bot.
The Machine > Onboard Parameters may not work correctly.

Dan

Nagalfar

unread,
Mar 9, 2013, 2:41:40 PM3/9/13
to make...@googlegroups.com
Thanks for the replys!

So the steps would be:

Install Sailfish firmware
Use RepG (Version 10 or 40?) with Sailfish


Is this correct?

Eighty

unread,
Mar 9, 2013, 3:17:15 PM3/9/13
to make...@googlegroups.com
Install Sailfish (follow the instructions), which includes both Repg40r10 (that's version 40, revision 10) and the firmware for your bot.  Dan's point was that you can't use RepG40r10 without also installing Sailfish firmware.   

sjlane7160

unread,
Mar 13, 2013, 2:13:18 PM3/13/13
to make...@googlegroups.com
Stephen Lane wrote:
    Hi I'm the one who has been trying to print large files for a while now - trying each of the incarnations of RepG as they have been released, sorry to say RepG40r10 was no success so far but would indicate that its moving in the
correct direction. RepG now opens a 100mb file - eventually, & when go to gcode it it says its not on the plate, if you save it, it increases in size by 5times to 500mb & eventually the gcode window opens & you can make the
relevent choices & when you begin to slice the following logs are generated the 1st one (11pm, 23:00) is the if you slice the saved 500mb file & the 2nd one (2am, 02:00) is if you slice the unsaved 100mb file.
    The first parts are the usual PrintoMatic overides but the last bit clearly shows we still have a memory error so I certainly look forward to the 64bit RepG that has been talked about in another thread I suppose
it will need a 64bit Skeinforge as well.
    Interestingly I have a friend with the same setup as me (i7, Win8, 16Gb of RAM) & she has managed to open (not view in the GUI) a 100mb file she didn't save it but she did manage to slice & print the item but
somewhere in the train of things the file corrupted so it can't be printed again.

Regards
Stephen

[23:44:43] G:\Library Data Other\Downloads\CNC Stuff\LIthos\Wild 001again.STL
[23:44:44] Connecting to machine using serial port: COM3
[23:44:44] Connection error: The serial port named 'COM3' could not be found.
[23:45:10] Saving...
[23:45:10] Writing to G:\Library Data Other\Downloads\CNC Stuff\LIthos\Wild 001again.STL.
[23:58:38] Save operation complete.
[23:58:39] gcode sourcereplicatorg.app.gcode.MutableGCodeSource@127d15e
[23:59:09] printomatic 5D sf other
[23:59:11] Beginning toolpath generation.
[23:59:11] printomatic 5D sf 50
[23:59:11] OVERRIDE raft.csv Add Raft, Elevate Nozzle, Orbit: false
[23:59:11] {'Add Raft, Elevate Nozzle, Orbit:': 'false'}
[23:59:11] OVERRIDE raft.csv None true
[23:59:11] {'Add Raft, Elevate Nozzle, Orbit:': 'false', 'None': 'true'}
[23:59:11] OVERRIDE raft.csv Empty Layers Only false
[23:59:11] {'Add Raft, Elevate Nozzle, Orbit:': 'false', 'Empty Layers Only': 'false', 'None': 'true'}
[23:59:11] OVERRIDE raft.csv Everywhere false
[23:59:11] {'Everywhere': 'false', 'Add Raft, Elevate Nozzle, Orbit:': 'false', 'Empty Layers Only': 'false', 'None': 'true'}
[23:59:11] OVERRIDE raft.csv Exterior Only false
[23:59:11] {'Everywhere': 'false', 'Add Raft, Elevate Nozzle, Orbit:': 'false', 'Empty Layers Only': 'false', 'None': 'true', 'Exterior Only': 'false'}
[23:59:11] OVERRIDE alteration.csv Name of Start File:
[23:59:11] {'Name of Start File:': ''}
[23:59:11] OVERRIDE alteration.csv Name of End File:
[23:59:11] {'Name of End File:': '', 'Name of Start File:': ''}
[23:59:11] OVERRIDE fill.csv Infill Solidity (ratio): 0.1
[23:59:11] {'Infill Solidity (ratio):': '0.1'}
[23:59:11] OVERRIDE speed.csv Feed Rate (mm/s): 80.0
[23:59:11] {'Feed Rate (mm/s):': '80.0'}
[23:59:11] OVERRIDE speed.csv Travel Feed Rate (mm/s): 150.0
[23:59:11] {'Travel Feed Rate (mm/s):': '150.0', 'Feed Rate (mm/s):': '80.0'}
[23:59:11] OVERRIDE speed.csv Flow Rate Setting (float): 80.0
[23:59:11] {'Flow Rate Setting (float):': '80.0', 'Travel Feed Rate (mm/s):': '150.0', 'Feed Rate (mm/s):': '80.0'}
[23:59:11] OVERRIDE dimension.csv Filament Diameter (mm): 1.82
[23:59:11] {'Filament Diameter (mm):': '1.82'}
[23:59:11] OVERRIDE carve.csv Edge Width over Height (ratio): 1.4814814814814814
[23:59:11] {'Edge Width over Height (ratio):': '1.4814814814814814'}
[23:59:11] OVERRIDE inset.csv Infill Width over Thickness (ratio): 1.4814814814814814
[23:59:11] {'Infill Width over Thickness (ratio):': '1.4814814814814814'}
[23:59:11] OVERRIDE carve.csv Layer Height (mm): 0.27
[23:59:11] {'Layer Height (mm):': '0.27', 'Edge Width over Height (ratio):': '1.4814814814814814'}
[23:59:11] OVERRIDE fill.csv Extra Shells on Alternating Solid Layer (layers): 1.0
[23:59:11] {'Extra Shells on Alternating Solid Layer (layers):': '1.0', 'Infill Solidity (ratio):': '0.1'}
[23:59:11] OVERRIDE fill.csv Extra Shells on Base (layers): 1.0
[23:59:11] {'Extra Shells on Base (layers):': '1.0', 'Extra Shells on Alternating Solid Layer (layers):': '1.0', 'Infill Solidity (ratio):': '0.1'}
[23:59:11] OVERRIDE fill.csv Extra Shells on Sparse Layer (layers): 1.0
[23:59:11] {'Extra Shells on Base (layers):': '1.0', 'Extra Shells on Alternating Solid Layer (layers):': '1.0', 'Extra Shells on Sparse Layer (layers):': '1.0', 'Infill Solidity (ratio):': '0.1'}
[23:59:11] File G:\Library Data Other\Downloads\CNC Stuff\LIthos\Wild 001again.STL is being chain exported.
[23:59:23] Traceback (most recent call last):
[23:59:23]   File "skeinforge.py", line 634, in <module>
[23:59:23]     main()
[23:59:23]   File "skeinforge.py", line 629, in main
[23:59:23]     writeOutput( ' '.join(args) )
[23:59:23]   File "skeinforge.py", line 570, in writeOutput
[23:59:23]     settings.startMainLoopFromWindow(repository.execute())
[23:59:23]   File "skeinforge.py", line 594, in execute
[23:59:23]     window = skeinforge_craft.writeOutput(fileName)
[23:59:23]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_utilities\skeinforge_craft.py", line 135, in writeOutput
[23:59:23]     return pluginModule.writeOutput(fileName, shouldAnalyze)
[23:59:23]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_plugins\craft_plugins\export.py", line 275, in writeOutput
[23:59:23]     gcodeText = skeinforge_craft.getChainTextFromProcedures(fileName, procedures[: -1], gcodeText)
[23:59:23]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_utilities\skeinforge_craft.py", line 44, in getChainTextFromProcedures
[23:59:23]     text = craftModule.getCraftedText(fileName, text)
[23:59:23]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_plugins\craft_plugins\carve.py", line 127, in getCraftedText
[23:59:23]     carving = svg_writer.getCarving(fileName)
[23:59:23]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\svg_writer.py", line 38, in getCarving
[23:59:23]     return pluginModule.getCarving(fileName)
[23:59:23]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugins\stl.py", line 72, in getCarving
[23:59:23]     addFacesGivenText( stlData, triangleMesh, vertexIndexTable )
[23:59:23]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugins\stl.py", line 52, in addFacesGivenText
[23:59:23]     vertexes.append( getVertexGivenLine(line) )
[23:59:23] MemoryError
[23:59:23] Unrecognized error code returned by Skeinforge.

[02:31:36] Loading G:\Library Data Other\Downloads\CNC Stuff\LIthos\Wild 001again2.STL
[02:31:36] G:\Library Data Other\Downloads\CNC Stuff\LIthos\Wild 001again2.STL
[02:44:35] gcode sourcereplicatorg.app.gcode.MutableGCodeSource@17ad30a
[02:46:10] printomatic 5D sf other
[02:46:11] Beginning toolpath generation.
[02:46:11] printomatic 5D sf 50
[02:46:11] OVERRIDE raft.csv Add Raft, Elevate Nozzle, Orbit: false
[02:46:11] {'Add Raft, Elevate Nozzle, Orbit:': 'false'}
[02:46:11] OVERRIDE raft.csv None true
[02:46:11] {'Add Raft, Elevate Nozzle, Orbit:': 'false', 'None': 'true'}
[02:46:11] OVERRIDE raft.csv Empty Layers Only false
[02:46:11] {'Add Raft, Elevate Nozzle, Orbit:': 'false', 'Empty Layers Only': 'false', 'None': 'true'}
[02:46:11] OVERRIDE raft.csv Everywhere false
[02:46:11] {'Everywhere': 'false', 'Add Raft, Elevate Nozzle, Orbit:': 'false', 'Empty Layers Only': 'false', 'None': 'true'}
[02:46:11] OVERRIDE raft.csv Exterior Only false
[02:46:11] {'Everywhere': 'false', 'Add Raft, Elevate Nozzle, Orbit:': 'false', 'Empty Layers Only': 'false', 'None': 'true', 'Exterior Only': 'false'}
[02:46:11] OVERRIDE alteration.csv Name of Start File:
[02:46:11] {'Name of Start File:': ''}
[02:46:11] OVERRIDE alteration.csv Name of End File:
[02:46:11] {'Name of End File:': '', 'Name of Start File:': ''}
[02:46:11] OVERRIDE fill.csv Infill Solidity (ratio): 0.1
[02:46:11] {'Infill Solidity (ratio):': '0.1'}
[02:46:11] OVERRIDE speed.csv Feed Rate (mm/s): 80.0
[02:46:11] {'Feed Rate (mm/s):': '80.0'}
[02:46:11] OVERRIDE speed.csv Travel Feed Rate (mm/s): 150.0
[02:46:11] {'Travel Feed Rate (mm/s):': '150.0', 'Feed Rate (mm/s):': '80.0'}
[02:46:11] OVERRIDE speed.csv Flow Rate Setting (float): 80.0
[02:46:11] {'Flow Rate Setting (float):': '80.0', 'Travel Feed Rate (mm/s):': '150.0', 'Feed Rate (mm/s):': '80.0'}
[02:46:11] OVERRIDE dimension.csv Filament Diameter (mm): 1.82
[02:46:11] {'Filament Diameter (mm):': '1.82'}
[02:46:11] OVERRIDE carve.csv Edge Width over Height (ratio): 1.4814814814814814
[02:46:11] {'Edge Width over Height (ratio):': '1.4814814814814814'}
[02:46:11] OVERRIDE inset.csv Infill Width over Thickness (ratio): 1.4814814814814814
[02:46:11] {'Infill Width over Thickness (ratio):': '1.4814814814814814'}
[02:46:11] OVERRIDE carve.csv Layer Height (mm): 0.27
[02:46:11] {'Layer Height (mm):': '0.27', 'Edge Width over Height (ratio):': '1.4814814814814814'}
[02:46:11] OVERRIDE fill.csv Extra Shells on Alternating Solid Layer (layers): 1.0
[02:46:11] {'Extra Shells on Alternating Solid Layer (layers):': '1.0', 'Infill Solidity (ratio):': '0.1'}
[02:46:11] OVERRIDE fill.csv Extra Shells on Base (layers): 1.0
[02:46:11] {'Extra Shells on Base (layers):': '1.0', 'Extra Shells on Alternating Solid Layer (layers):': '1.0', 'Infill Solidity (ratio):': '0.1'}
[02:46:11] OVERRIDE fill.csv Extra Shells on Sparse Layer (layers): 1.0
[02:46:11] {'Extra Shells on Base (layers):': '1.0', 'Extra Shells on Alternating Solid Layer (layers):': '1.0', 'Extra Shells on Sparse Layer (layers):': '1.0', 'Infill Solidity (ratio):': '0.1'}
[02:46:11] File G:\Library Data Other\Downloads\CNC Stuff\LIthos\Wild 001again2.STL is being chain exported.
[02:46:42] Traceback (most recent call last):
[02:46:42]   File "skeinforge.py", line 634, in <module>
[02:46:42]     main()
[02:46:42]   File "skeinforge.py", line 629, in main
[02:46:42]     writeOutput( ' '.join(args) )
[02:46:42]   File "skeinforge.py", line 570, in writeOutput
[02:46:42]     settings.startMainLoopFromWindow(repository.execute())
[02:46:42]   File "skeinforge.py", line 594, in execute
[02:46:42]     window = skeinforge_craft.writeOutput(fileName)
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_utilities\skeinforge_craft.py", line 135, in writeOutput
[02:46:42]     return pluginModule.writeOutput(fileName, shouldAnalyze)
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_plugins\craft_plugins\export.py", line 275, in writeOutput
[02:46:42]     gcodeText = skeinforge_craft.getChainTextFromProcedures(fileName, procedures[: -1], gcodeText)
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_utilities\skeinforge_craft.py", line 44, in getChainTextFromProcedures
[02:46:42]     text = craftModule.getCraftedText(fileName, text)
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\skeinforge_application\skeinforge_plugins\craft_plugins\carve.py", line 127, in getCraftedText
[02:46:42]     carving = svg_writer.getCarving(fileName)
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\svg_writer.py", line 38, in getCarving
[02:46:42]     return pluginModule.getCarving(fileName)
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugins\stl.py", line 75, in getCarving
[02:46:42]     addFacesGivenBinary( stlData, triangleMesh, vertexIndexTable )
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugins\stl.py", line 44, in addFacesGivenBinary
[02:46:42]     addFacesGivenVertexes( triangleMesh, vertexIndexTable, vertexes )
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugins\stl.py", line 58, in addFacesGivenVertexes
[02:46:42]     triangleMesh.faces.append( getFaceGivenLines( triangleMesh, vertexIndex, vertexIndexTable, vertexes ) )
[02:46:42]   File "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_engines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugins\stl.py", line 89, in getFaceGivenLines
[02:46:42]     triangleMesh.vertexes.append(vertex)
[02:46:42] MemoryError
[02:46:44] Unrecognized error code returned by Skeinforge.

Jetguy

unread,
Mar 13, 2013, 2:57:37 PM3/13/13
to MakerBot Operators
First off, we are just plain using the wrong software for the job. Rep-
g is open source and has relatively not changed in 3-4 years. It was
fine when we had models that fit on a 100 x 100x 100 build space and
mostly were not very complex. SF is written in python, a horrible
language for performance of any kind. The entire serial method that SF
uses to slice is memory problematic. You slice the STL into SVG
layers, then run each "script" in serially to create and modify the
resulting gcode. The bigger the build area, the bigger each SVG is,
then we kill that even further with layer height and more layers, thus
more SVGs. All of those must remain in temporary memory and be
accessed by the plugins to perform each action. This process is
repeated over and over with each plugin.
We start off with a bad language JAVA for the main app and then run SF
in python on top of that. No wonder it craps out, it was amazing that
it worked in the first place. 64 bit versions of the application don't
solve the problem. All we do know is churn and burn up the 64 bit
space. Even with the alternative slicers, they still largy are based
on the old and tried SF scripts and methods.

The only way to fix the problem is to move to a new purpose designed
slicer that works in an effecient framework. This already exist in
commercial form- Netfabb engines.
We need an efficent system which applies the scripts or algorithms to
the STL point cloud in a traveling path while creating the gcode. One
pass creates the gcode, not mutliple steps and huge amounts of scratch
memory or temp files.This also would allow for really cool and better
quality prints.
Say for example, round towers and objects could be printed
individually, but a entire plate of them could be printed if the
software was extruder clearance aware. By this I mean the single
spiralying out shells that give great surface finsh would happen on
most prints, even possibly complex ones. The extruder could print a
tall object, then go back and print a lower height portion nearby
given the known clearance issues with the nozzle.

We've all seen this before. Say one of the castle architectural prints
with multiple spires. Now, we just slice each layer at a vertical
slice height and print it that way. What is the software really
analyzed the model and printed the lower portion one way, but then
printed each spire individually so that there is no more jumping from
one tower to the next per layer? That is the future. Software like
that would revolutionize the entire industry of 3D printing. Too bad I
can't program if my life depended on it.

Again, the concept is that the slicing system flows through the STL in
a defined path creating gcode and moves that follow that path. For
items like vases and cups, we define the path as a spiral at the
defined layer height like we do now. The difference in now is a flat
slice, and lots of them, the new way is a spiral path much like a
spiral cut fry from a potato.
We modify the path by analyzing the object as a whole. Not entirely
different from a 3D camera path in 3D studio max. That's the next
level of 3D printing right there.
> "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_e­ngines\skeinforge-50\skeinforge_application\skeinforge_utilities\skeinforge­_craft.py",
> line 135, in writeOutput
> [23:59:23]     return pluginModule.writeOutput(fileName, shouldAnalyze)
> [23:59:23]   File
> "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_e­ngines\skeinforge-50\skeinforge_application\skeinforge_plugins\craft_plugin­s\export.py",
> line 275, in writeOutput
> [23:59:23]     gcodeText =
> skeinforge_craft.getChainTextFromProcedures(fileName, procedures[: -1],
> gcodeText)
> [23:59:23]   File
> "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_e­ngines\skeinforge-50\skeinforge_application\skeinforge_utilities\skeinforge­_craft.py",
> line 44, in getChainTextFromProcedures
> [23:59:23]     text = craftModule.getCraftedText(fileName, text)
> [23:59:23]   File
> "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_e­ngines\skeinforge-50\skeinforge_application\skeinforge_plugins\craft_plugin­s\carve.py",
> line 127, in getCraftedText
> [23:59:23]     carving = svg_writer.getCarving(fileName)
> [23:59:23]   File
> "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_e­ngines\skeinforge-50\fabmetheus_utilities\svg_writer.py",
> line 38, in getCarving
> [23:59:23]     return pluginModule.getCarving(fileName)
> [23:59:23]   File
> "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_e­ngines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugin­s\stl.py",
> line 72, in getCarving
> [23:59:23]     addFacesGivenText( stlData, triangleMesh, vertexIndexTable )
> [23:59:23]   File
> "C:\Users\Stephen\Documents\ReplicatorG\replicatorg-0040r9-Sailfish\skein_e­ngines\skeinforge-50\fabmetheus_utilities\fabmetheus_tools\interpret_plugin­s\stl.py",
> '0.1'} ...
>
> read more »

Dan Newman

unread,
Mar 13, 2013, 3:35:22 PM3/13/13
to make...@googlegroups.com

On 13 Mar 2013 , at 11:13 AM, sjlane7160 wrote:

> Stephen Lane wrote:
> Hi I'm the one who has been trying to print large files for a while now
> - trying each of the incarnations of RepG as they have been released, sorry
> to say RepG40r10 was no success so far but would indicate that its moving
> in the
> correct direction. RepG now opens a 100mb file - eventually, & when go to
> gcode it it says its not on the plate, if you save it, it increases in size
> by 5times to 500mb

That's because RepG converts all STLs from binary format to non-binary
format. You can convert them back to binary with tools like the
free version of Netfabb. But, it's what RepG does.

> & eventually the gcode window opens & you can make the
> relevent choices & when you begin to slice the following logs are generated
> the 1st one (11pm, 23:00) is the if you slice the saved 500mb file & the
> 2nd one (2am, 02:00) is if you slice the unsaved 100mb file.
> The first parts are the usual PrintoMatic overides but the last bit
> clearly shows we still have a memory error so I certainly look forward to
> the 64bit RepG that has been talked about in another thread I suppose
> it will need a 64bit Skeinforge as well.

Skeinforge is all interpreted Python. So you'd need a 64bit Python
interpreter.

You can also go the route of using some other slicer outside of RepG.
And then in RepG only open the .gcode file. Be sure to have the
.stl file with a different name or in some other directory so that
RepG doesn't try to find it and open it too. RepG can then convert
just the gcode to s3g/x3g. However, since RepG suffers somewhat
from object-oriented disease, it consumes a lot of memory simply
parsing gcode and turning everything in sight into objects,
each of which consumes memory.

Dan

Andrew Russell

unread,
Mar 13, 2013, 9:46:05 PM3/13/13
to make...@googlegroups.com
Barry,

This is a very cool idea, and something I was thinking of trying out with my still unfinished calibration script (print each entire object instance at a time, move the z back to '0' and start the next object).   I decided against it, as I would also need to implement a safety check that would verify no gantry/extruder collision would occur when moving between objects.  I also think we would need to redesign the extruder/gantry so there was a more clearance between it and the build platform... Wouldn't this add even more vertical height to the printer?  

Having some graphics background, and speaking to a few of my old RnD buddies, and they seem to believe pathfinding to be a non-trivial problem to solve.  It would take some interesting logic to design what you describe.  Although, I bet there is already existing 3d graphics research that could be repurposed as a starting point.   

Couldn't we already accomplish this in a similar way that the programmatic spiral vases (no seam) do this? 
If an object is a 'solid cylinder' like the famous owl model, couldn't the slicer detect this, and print continuous lines for the places that it can.  This almost seems like something that could be prototyped as a SF plugin... Although I've never looked at the code, and your description of the order of operations makes it sound impossible (code has no knowledge of previous and future layers).  I wonder if a post processing script could pull this off, as it could be designed to stitch up the layers and add a +z movement at the end of each layer. I'm guessing it is actually more complicated than just issuing a extruder command with the z offset by the layer height, and might need a gradual z offset to make the transition invisible.

Wouldn't this also introduce an inconsistent artifact along the z axis, as you will still have some form of 'zipper' seam whenever a start/stop occurs along the z height of the print?

Again, very cool idea!

-Andy





--
You received this message because you are subscribed to the Google Groups "MakerBot Operators" group.
To unsubscribe from this group and stop receiving emails from it, send an email to makerbot+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



Jetguy

unread,
Mar 13, 2013, 10:33:20 PM3/13/13
to MakerBot Operators
That plugin already exists (the Joris plugin). It is designed for the
vase and cup prints by Joris. The issue is that's all it works with is
a specific type of object.

https://groups.google.com/forum/#!msg/ultimaker/faR4C1ZL9dk/7mxhlIPxtFMJ
> ...
>
> read more »

Andy

unread,
Mar 14, 2013, 2:39:23 AM3/14/13
to make...@googlegroups.com, MakerBot Operators
Thanks so much for the link. That thread actually helped explain some mystery gcode I've been getting from SF in my tests.

They also mentioned in that thread the issues with infill and this technique. Seems like in theory you could include infill and extra perimeter loops in the same continuous path. But, if the object isn't hollow, single perimeter & no infill, won't there always be some sort of seam on the outside?

As a side note, looking at those patents wired.com posted several weeks ago, one of them was specific techniques for obscuring and hiding the 'zipper' seam. It seems like a problem even on the high end machines, and they haven't fully cracked it.

I should probably start posting these questions on that thread, although I'm not a ultimaker operator... Yet ;)

Thx again.
-Andy
Reply all
Reply to author
Forward
0 new messages