fabmetheus_utilities.gcodec ($Date: 2008/21/04 $)
index
/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/fabmetheus_utilities/gcodec.py

Gcodec is a collection of utilities to decode and encode gcode.

To run gcodec, install python 2.x on your machine, which is avaliable from http://www.python.org/download/

Then in the folder which gcodec is in, type 'python' in a shell to run the python interpreter. Finally type 'from gcodec import *' to import this program.

Below is an example of gcodec use. This example is run in a terminal in the folder which contains gcodec and Screw Holder Bottom_export.gcode.

>>> from gcodec import *
>>> getFileText('Screw Holder Bottom_export.gcode')
'G90
G21
M103
M105
M106
M110 S60.0
M111 S30.0
M108 S210.0
M104 S235.0
G1 X0.37 Y-4.07 Z1.9 F60.0
M101

..
many lines of text
..

 
Modules
       
__init__
fabmetheus_utilities.archive
cStringIO
fabmetheus_utilities.euclidean
math
os
sys
traceback

 
Classes
       
BoundingRectangle
DistanceFeedRate

 
class BoundingRectangle
    A class to get the corners of a gcode text.
 
  Methods defined here:
getFromGcodeLines(self, lines, radius)
Parse gcode text and get the minimum and maximum corners.
isPointInside(self, point)
Determine if the point is inside the bounding rectangle.
parseCorner(self, line)
Parse a gcode line and use the location to update the bounding corners.

 
class DistanceFeedRate
    A class to limit the z feed rate and round values.
 
  Methods defined here:
__init__(self)
Initialize.
addFlowRateLine(self, flowRate)
Add a flow rate line.
addGcodeFromFeedRateThreadZ(self, feedRateMinute, thread, travelFeedRateMinute, z)
Add a thread to the output.
addGcodeFromLoop(self, loop, z)
Add the gcode loop.
addGcodeFromThreadZ(self, thread, z)
Add a thread to the output.
addGcodeMovementZ(self, point, z)
Add a movement to the output.
addGcodeMovementZWithFeedRate(self, feedRateMinute, point, z)
Add a movement to the output.
addGcodeMovementZWithFeedRateVector3(self, feedRateMinute, vector3)
Add a movement to the output by Vector3.
addLine(self, line)
Add a line of text and a newline to the output.
addLineCheckAlteration(self, line)
Add a line of text and a newline to the output and check to see if it is an alteration line.
addLines(self, lines)
Add lines of text to the output.
addLinesSetAbsoluteDistanceMode(self, lines)
Add lines of text to the output and ensure the absolute mode is set.
addParameter(self, firstWord, parameter)
Add the parameter.
addPerimeterBlock(self, loop, z)
Add the edge gcode block for the loop.
addTagBracketedLine(self, tagName, value)
Add a begin tag, value and end tag.
addTagBracketedProcedure(self, procedure)
Add a begin procedure tag, procedure and end procedure tag.
addTagRoundedLine(self, tagName, value)
Add a begin tag, rounded value and end tag.
getBoundaryLine(self, location)
Get boundary gcode line.
getFirstWordMovement(self, firstWord, location)
Get the start of the arc line.
getInfillBoundaryLine(self, location)
Get infill boundary gcode line.
getIsAlteration(self, line)
Determine if it is an alteration.
getLineWithFeedRate(self, feedRateMinute, line, splitLine)
Get the line with a feed rate.
getLineWithX(self, line, splitLine, x)
Get the line with an x.
getLineWithY(self, line, splitLine, y)
Get the line with a y.
getLineWithZ(self, line, splitLine, z)
Get the line with a z.
getLinearGcodeMovement(self, point, z)
Get a linear gcode movement.
getLinearGcodeMovementWithFeedRate(self, feedRateMinute, point, z)
Get a z limited gcode movement.
getRounded(self, number)
Get number rounded to the number of carried decimal places as a string.
parseSplitLine(self, firstWord, splitLine)
Parse gcode split line and store the parameters.

 
Functions
       
addLineAndNewlineIfNecessary(line, output)
Add the line and if the line does not end with a newline add a newline.
addLinesToCString(cString, lines)
Add lines which have something to cStringIO.
getArcDistance(relativeLocation, splitLine)
Get arc distance.
getDoubleAfterFirstLetter(word)
Get the double value of the word after the first letter.
getDoubleForLetter(letter, splitLine)
Get the double value of the word after the first occurence of the letter in the split line.
getDoubleFromCharacterSplitLine(character, splitLine)
Get the double value of the string after the first occurence of the character in the split line.
getDoubleFromCharacterSplitLineValue(character, splitLine, value)
Get the double value of the string after the first occurence of the character in the split line, if it does not exist return the value.
getFeedRateMinute(feedRateMinute, splitLine)
Get the feed rate per minute if the split line has a feed rate.
getFirstWord(splitLine)
Get the first word of a split line.
getFirstWordFromLine(line)
Get the first word of a line.
getFirstWordIndexReverse(firstWord, lines, startIndex)
Parse gcode in reverse order until the first word if there is one, otherwise return -1.
getGcodeFileText(fileName, gcodeText)
Get the gcode text from a file if it the gcode text is empty and if the file is a gcode file.
getGcodeWithoutDuplication(duplicateWord, gcodeText)
Get gcode text without duplicate first words.
getIndexOfStartingWithSecond(letter, splitLine)
Get index of the first occurence of the given letter in the split line, starting with the second word.  Return - 1 if letter is not found
getLineWithValueString(character, line, splitLine, valueString)
Get the line with a valueString.
getLocationFromSplitLine(oldLocation, splitLine)
Get the location from the split line.
getRotationBySplitLine(splitLine)
Get the complex rotation from the split gcode line.
getSplitLineBeforeBracketSemicolon(line)
Get the split line before a bracket or semicolon.
getStringFromCharacterSplitLine(character, splitLine)
Get the string after the first occurence of the character in the split line.
getTagBracketedLine(tagName, value)
Get line with a begin tag, value and end tag.
getTagBracketedProcedure(procedure)
Get line with a begin procedure tag, procedure and end procedure tag.
isProcedureDone(gcodeText, procedure)
Determine if the procedure has been done on the gcode text.
isProcedureDoneOrFileIsEmpty(gcodeText, procedure)
Determine if the procedure has been done on the gcode text or the file is empty.
isThereAFirstWord(firstWord, lines, startIndex)
Parse gcode until the first word if there is one.

 
Data
        __author__ = 'Enrique Perez (perez_enrique@yahoo.com)'
__date__ = '$Date: 2008/21/04 $'
__license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)

 
Author
        Enrique Perez (perez_enrique@yahoo.com)