Split the Blender gcode-reader-addon into two parts:
- a Gcode parser file
- a Blender draw/render file

See info_on_modifications.txt for rationale, and todo.

(Note: as first-time Git user, I apologize for any errors
or mistakes done by me. Let me know where I can improve!)
Add back the code to animate the beziercurves.

The added function takes the created Beziercurve objects,
hides all of them, and for every advanced frame, will
make one bezierCurve re-appear again.
Enable loading the multiple files as addon in Blender.

The __init__.py script enables the loading of the two
individual files (blenderGcode, parserGcode) as an addon
into Blender.

Use: copy the three files (blenderGcode, parserGcode, __init__.py)
to the /.blender/2.62/scripts/addons/io_gcode/ folder. Then, in
user preferences, in the Addons at Import/Export should be now
listed the 'import Gcode' addon.
1. Typechange: change the scripts from links to 'real' files
2. Gcode_parser: added prototype code to reconstruct the 'raw'
    gcode commands from 'gcodeCommands' instances
Another major rewrite of the Gcode_parser and the Blender_gcode
parts.

(This is still intermediate work, and by no means production grade.)

All functions that were added in the last commit are now organized
in class, to make it more Obj.Oriented structured.

1. The Gcode_parser now has the following organization:
	Machine : stores information on a machine (such as extruders)
	- Extruder: this class stores information on an extruder.
		    (gcode is stored here)
	 - Gcode: this clas stores information of an individual Gcode command
2. The Blender part is adapted to use these classes. This makes it now
possible to 'print' two materials inside Blender (every material is
one extruder head), and assigning two different bevel objects will
show the difference.

(Note that because of the changes between last and current code base,
the models do not yet draw perfectly).

--- still work in progress, but we're getting closer.

Oh, and also in this Gcode_parser file is the information to merge
two extruder heads (i.e., a machine can now hold multiple extruders,
and can merge the Gcode data of two extruders to a new Gcode file).

Also this is WIP and needs further work. But hey, it's all done in
the SplitFiles branch, so not main....
Add a 'debug' method to 'extruder' instances.

With this method, all the raw Gcode commands and the standardized
Gcode commands are saved line by line in a file (currently, location
is hardcoded). With this file, it is easier to check any differences
between the raw Gcode and the created standardized Gcode.
Print line numbers to the debug file (the index number plus one),
that is generated by the function added in the previous commit.

This is just for pretty printing, no functional changes.
The Gcode class instances were initiated with a set X,Y, and Z (X=0.0,
Y=0.0, Z=0.0). However, this resulted in an issue with updating the
Gcode command with the Gcode.update_state() method when only the E or F
values were modified. In that case, the X,Y,and Z were not None and thus
the lastState values were updated with X=0.0, Y=0.0, and Z=0.0 values
where they shouldn't be.

With this commit, the X, Y, and Z values are set to None initially, which
is physically more accurate (as no information is available on its position).

This might break things at some locations (not sure if there is a test
for the NoneType for X, Y, or Z) but as this is the closest to
physical reality, I'd advocate to leave it like this and modify any
code that has issues with this.
Modified the 'debug_extruder' functionality once more.

This commit fixes an issue when debugging an extruder that contains
merged data from multiple extruders: this extruder does not have
any 'rawGcode' commands, and thus the output file contained nothing.

Solved by checking if the length of rawGcode > 0. If yes, add the
rawGcode command; if no, ignore and just print the standardGcode.
Small changes in the 'merge_extruder' code, and in the 'main' function.

Nothing large, but it now works with the sample file.
Include the functionality to import .gcode file and to show the
curves inside Blender, without the need to do so by loading the
'Blender_gcode.py' file into the Blender Script Editor.

With this __init__.py file, now a user is able to select the addon
from the user preferences (Addon >> Import/Export/). When activated,
both a file menu entry appears as well as a panel (where a check
can be placed to use a bevel object or not). When the file is loaded,
a blender GcurveData object is drawn onto the screen.

(This is similar as running the Blender_gcode.py file from a script)

This code works with the latest revision as of April 21, see version info
for the exact blender revision nr.