tower ($Date: 2008/21/04 $) | index /home/enrique/Desktop/backup/babbleold/script/reprap/pyRepRap_v0.1/tower.py |
Tower is a script to extrude a few layers up, then go across to other regions.
This script commands the fabricator to extrude a disconnected region for a few layers, then go to another disconnected region
and extrude there. Its purpose is to reduce the number of stringers between a shape and reduce extruder travel. The important
value for the tower preferences is "Maximum Tower Height (layers)" which is the maximum number of layers that the extruder
will extrude in one region before going to another. When the value is zero tower will do nothing. Because tower could result in
the extruder collidiing with an already extruded part of the shape and because extruding in one region for more than one layer
could result in the shape melting, the default is the safe value of zero.
Tower works by looking for islands in each layer and if it finds another island in the layer above, it goes to the next layer above
instead of going across to other regions on the original layer. It checks for collision with shapes already extruded within a cone
from the nozzle tip. The "Extruder Possible Collision Cone Angle (degrees)" preference is the angle of that cone. Realistic
values for the cone angle range between zero and ninety. The higher the angle, the less likely a collision with the rest of the
shape is, generally the extruder will stay in the region for only a few layers before a collision is detected with the wide cone.
The default angle is sixty degrees.
The "Tower Start Layer" is the layer which the script starts extruding towers. It is best to not tower at least the first layer
because the temperature of the first layer should sometimes be different than that of the other layers. The default preference is
three. To run tower, in a shell type:
> python tower.py
To run tower, install python 2.x on your machine, which is avaliable from http://www.python.org/download/
To use the preferences dialog you'll also need Tkinter, which probably came with the python installation. If it did not, look for it at:
www.tcl.tk/software/tcltk/
To export a GNU Triangulated Surface file from Art of Illusion, you can use the Export GNU Triangulated Surface script at:
http://members.axion.net/~enrique/Export%20GNU%20Triangulated%20Surface.bsh
To bring it into Art of Illusion, drop it into the folder ArtOfIllusion/Scripts/Tools/.
The GNU Triangulated Surface format is supported by Mesh Viewer, and it is described at:
http://gts.sourceforge.net/reference/gts-surfaces.html#GTS-SURFACE-WRITE
To turn an STL file into filled, towered gcode, first import the file using the STL import plugin in the import submenu of the file menu
of Art of Illusion. Then from the Scripts submenu in the Tools menu, choose Export GNU Triangulated Surface and select the
imported STL shape. Then type 'python slice.py' in a shell in the folder which slice & tower are in and when the dialog pops up, set
the parameters and click 'Save Preferences'. Then type 'python fill.py' in a shell in the folder which fill is in and when the dialog
pops up, set the parameters and click 'Save Preferences'. Then click 'Tower', choose the file which you exported in
Export GNU Triangulated Surface and the filled & towered file will be saved with the suffix '_tower'.
To write documentation for this program, open a shell in the tower.py directory, then type 'pydoc -w tower', then open 'tower.html' in
a browser or click on the '?' button in the dialog. To write documentation for all the python scripts in the directory, type 'pydoc -w ./'.
To use other functions of tower, type 'python' in a shell to run the python interpreter, then type 'import tower' to import this program.
The computation intensive python modules will use psyco if it is available and run about twice as fast. Psyco is described at:
http://psyco.sourceforge.net/index.html
The psyco download page is:
http://psyco.sourceforge.net/download.html
The following examples tower the files Hollow Square.gcode & Hollow Square.gts. The examples are run in a terminal in the folder
which contains Hollow Square.gcode, Hollow Square.gts and tower.py. The tower function will tower if 'Maximum Tower Layers' is
greater than zero, which can be set in the dialog or by changing the preferences file 'tower.csv' with a text editor or a spreadsheet
program set to separate tabs. The functions towerChainFile and getTowerChainGcode check to see if the text has been towered,
if not they call the getFillChainGcode in fill.py to fill the text; once they have the filled text, then they tower.
> pydoc -w tower
wrote tower.html
> python tower.py
This brings up the dialog, after clicking 'Tower', the following is printed:
File Hollow Square.gts is being chain towered.
The towered file is saved as Hollow Square_tower.gcode
>python
Python 2.5.1 (r251:54863, Sep 22 2007, 01:43:31)
[GCC 4.2.1 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tower
>>> tower.main()
This brings up the tower dialog.
>>> tower.towerChainFile()
Hollow Square.gts
File Hollow Square.gts is being chain towered.
The towered file is saved as Hollow Square_tower.gcode
>>> tower.towerFile()
File Hollow Square.gcode is being towered.
The towered file is saved as Hollow Square_tower.gcode
>>> tower.getTowerGcode("
( GCode generated by May 8, 2008 slice.py )
( Extruder Initialization )
..
many lines of gcode
..
")
>>> tower.getTowerChainGcode("
( GCode generated by May 8, 2008 slice.py )
( Extruder Initialization )
..
many lines of gcode
..
")
Modules | ||||||
|
Classes | ||||||||||||||||||||||||||
|
Functions | ||
|
Data | ||
__author__ = 'Enrique Perez (perez_enrique@yahoo.com)' __date__ = '$Date: 2008/21/04 $' __license__ = 'GPL 3.0' |
Author | ||
Enrique Perez (perez_enrique@yahoo.com) |