diff --git a/Cura/skeinforge_application/alterations/end.gcode b/Cura/alterations/end.gcode similarity index 100% rename from Cura/skeinforge_application/alterations/end.gcode rename to Cura/alterations/end.gcode diff --git a/Cura/skeinforge_application/alterations/start.gcode b/Cura/alterations/start.gcode similarity index 100% rename from Cura/skeinforge_application/alterations/start.gcode rename to Cura/alterations/start.gcode diff --git a/Cura/cura.py b/Cura/cura.py index b968a941c4..4de0ed1212 100644 --- a/Cura/cura.py +++ b/Cura/cura.py @@ -14,9 +14,9 @@ import __init__ import sys import platform - from optparse import OptionParser -from newui import sliceRun + +from util import sliceRun __author__ = 'Daid' __credits__ = """ @@ -49,7 +49,7 @@ def main(): if len( args ) > 0: sliceRun.runSlice(args) else: - from newui import mainWindow + from gui import mainWindow mainWindow.main() if __name__ == '__main__': diff --git a/Cura/skeinforge_application/__init__.py b/Cura/cura_sf/__init__.py similarity index 100% rename from Cura/skeinforge_application/__init__.py rename to Cura/cura_sf/__init__.py diff --git a/Cura/fabmetheus_utilities/__init__.py b/Cura/cura_sf/fabmetheus_utilities/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/__init__.py diff --git a/Cura/fabmetheus_utilities/archive.py b/Cura/cura_sf/fabmetheus_utilities/archive.py similarity index 100% rename from Cura/fabmetheus_utilities/archive.py rename to Cura/cura_sf/fabmetheus_utilities/archive.py diff --git a/Cura/fabmetheus_utilities/euclidean.py b/Cura/cura_sf/fabmetheus_utilities/euclidean.py similarity index 100% rename from Cura/fabmetheus_utilities/euclidean.py rename to Cura/cura_sf/fabmetheus_utilities/euclidean.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/__init__.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/__init__.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/alphabetize.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/alphabetize.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/alphabetize.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/alphabetize.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/fabmetheus_interpret.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/fabmetheus_interpret.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/fabmetheus_interpret.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/fabmetheus_interpret.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/__init__.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/__init__.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/csv.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/csv.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/csv.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/csv.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/gts.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/gts.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/gts.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/gts.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/obj.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/obj.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/obj.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/obj.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/slc.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/slc.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/slc.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/slc.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/stl.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/stl.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/stl.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/stl.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/svg.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/svg.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/svg.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/svg.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/prepare.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/prepare.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/prepare.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/prepare.py diff --git a/Cura/fabmetheus_utilities/fabmetheus_tools/wikifier.py b/Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/wikifier.py similarity index 100% rename from Cura/fabmetheus_utilities/fabmetheus_tools/wikifier.py rename to Cura/cura_sf/fabmetheus_utilities/fabmetheus_tools/wikifier.py diff --git a/Cura/fabmetheus_utilities/gcodec.py b/Cura/cura_sf/fabmetheus_utilities/gcodec.py similarity index 100% rename from Cura/fabmetheus_utilities/gcodec.py rename to Cura/cura_sf/fabmetheus_utilities/gcodec.py diff --git a/Cura/fabmetheus_utilities/geometry/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/_drill.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/_drill.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/_drill.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/_drill.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/_svg.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/_svg.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/_svg.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/_svg.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/circle.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/circle.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/circle.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/circle.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/concatenate.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/concatenate.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/concatenate.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/concatenate.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/extrude.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/extrude.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/extrude.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/extrude.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/gear.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/gear.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/gear.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/gear.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/grid.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/grid.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/grid.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/grid.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/heightmap.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/heightmap.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/heightmap.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/heightmap.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/lathe.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/lathe.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/lathe.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/lathe.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/line.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/line.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/line.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/line.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/linear_bearing_cage.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/linear_bearing_cage.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/linear_bearing_cage.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/linear_bearing_cage.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/lineation.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/lineation.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/lineation.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/lineation.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/mechaslab.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/mechaslab.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/mechaslab.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/mechaslab.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/peg.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/peg.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/peg.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/peg.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/polygon.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/polygon.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/polygon.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/polygon.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/shaft.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/shaft.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/shaft.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/shaft.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/solid.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/solid.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/solid.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/solid.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/sponge_slice.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/sponge_slice.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/sponge_slice.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/sponge_slice.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/square.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/square.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/square.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/square.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/teardrop.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/teardrop.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/teardrop.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/teardrop.py diff --git a/Cura/fabmetheus_utilities/geometry/creation/text.py b/Cura/cura_sf/fabmetheus_utilities/geometry/creation/text.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/creation/text.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/creation/text.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/dictionary.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/dictionary.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/dictionary.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/dictionary.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/face.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/face.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/face.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/face.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/path.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/path.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/arc.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/arc.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/arc.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/arc.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/cubic.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/cubic.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/cubic.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/cubic.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/quadratic.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/quadratic.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/path_elements/quadratic.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/path_elements/quadratic.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_tools/vertex.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/vertex.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_tools/vertex.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_tools/vertex.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/boolean_geometry.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/boolean_geometry.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/boolean_geometry.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/boolean_geometry.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/boolean_solid.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/boolean_solid.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/boolean_solid.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/boolean_solid.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/creation.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/creation.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/creation.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/creation.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/document.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/document.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/document.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/document.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/setting.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/setting.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/setting.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_elements/setting.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/dictionary_attribute.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/dictionary_attribute.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/dictionary_attribute.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/dictionary_attribute.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/list_attribute.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/list_attribute.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/list_attribute.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/list_attribute.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/string_attribute.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/string_attribute.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/string_attribute.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_enumerables/string_attribute.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/_math.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/_math.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/_math.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/_math.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/euclid.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/euclid.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/euclid.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/euclid.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/measure.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/measure.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/measure.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/measure.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/print.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/print.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/print.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/evaluate_fundamentals/print.py diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/example.csv b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/example.csv similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/example.csv rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/example.csv diff --git a/Cura/fabmetheus_utilities/geometry/geometry_utilities/matrix.py b/Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/matrix.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/geometry_utilities/matrix.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/geometry_utilities/matrix.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_matrix/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_matrix/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_matrix/_scale.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/_scale.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_matrix/_scale.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/_scale.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_matrix/rotate.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/rotate.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_matrix/rotate.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/rotate.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_matrix/transform.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/transform.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_matrix/transform.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/transform.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_matrix/translate.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/translate.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_matrix/translate.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_matrix/translate.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_meta/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_meta/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_meta/_array.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/_array.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_meta/_array.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/_array.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_meta/_carve.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/_carve.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_meta/_carve.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/_carve.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_meta/_copy.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/_copy.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_meta/_copy.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/_copy.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_meta/disjoin.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/disjoin.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_meta/disjoin.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/disjoin.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_meta/import.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/import.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_meta/import.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/import.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_meta/write.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/write.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_meta/write.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_meta/write.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/bevel.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/bevel.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/bevel.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/bevel.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/convex.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/convex.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/convex.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/convex.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/outline.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/outline.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/outline.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/outline.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/overhang.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/overhang.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/overhang.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/overhang.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/round.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/round.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/round.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/round.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/segment.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/segment.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/segment.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/segment.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_paths/wedge.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/wedge.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_paths/wedge.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_paths/wedge.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_shapes/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_shapes/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_shapes/_bottom.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/_bottom.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_shapes/_bottom.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/_bottom.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_shapes/_inset.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/_inset.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_shapes/_inset.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/_inset.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_shapes/_outset.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/_outset.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_shapes/_outset.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/_outset.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_shapes/equation.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/equation.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_shapes/equation.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/equation.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_shapes/flip.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/flip.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_shapes/flip.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/flip.py diff --git a/Cura/fabmetheus_utilities/geometry/manipulation_shapes/mirror.py b/Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/mirror.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/manipulation_shapes/mirror.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/manipulation_shapes/mirror.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/cube.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/cube.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/cube.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/cube.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/cylinder.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/cylinder.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/cylinder.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/cylinder.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/difference.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/difference.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/difference.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/difference.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/group.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/group.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/group.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/group.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/intersection.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/intersection.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/intersection.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/intersection.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/sphere.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/sphere.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/sphere.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/sphere.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/triangle_mesh.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/triangle_mesh.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/triangle_mesh.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/triangle_mesh.py diff --git a/Cura/fabmetheus_utilities/geometry/solids/union.py b/Cura/cura_sf/fabmetheus_utilities/geometry/solids/union.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/solids/union.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/solids/union.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/_print.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/_print.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/_print.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/_print.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/class.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/class.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/class.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/class.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/elif.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/elif.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/elif.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/elif.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/else.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/else.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/else.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/else.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/for.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/for.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/for.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/for.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/function.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/function.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/function.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/function.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/if.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/if.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/if.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/if.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/return.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/return.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/return.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/return.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/statement.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/statement.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/statement.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/statement.py diff --git a/Cura/fabmetheus_utilities/geometry/statements/while.py b/Cura/cura_sf/fabmetheus_utilities/geometry/statements/while.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry/statements/while.py rename to Cura/cura_sf/fabmetheus_utilities/geometry/statements/while.py diff --git a/Cura/fabmetheus_utilities/geometry_plugins/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry_plugins/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry_plugins/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry_plugins/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry_plugins/creation/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry_plugins/creation/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry_plugins/creation/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry_plugins/creation/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry_plugins/manipulation_matrix/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_matrix/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry_plugins/manipulation_matrix/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_matrix/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry_plugins/manipulation_meta/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_meta/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry_plugins/manipulation_meta/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_meta/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry_plugins/manipulation_paths/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_paths/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry_plugins/manipulation_paths/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_paths/__init__.py diff --git a/Cura/fabmetheus_utilities/geometry_plugins/manipulation_shapes/__init__.py b/Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_shapes/__init__.py similarity index 100% rename from Cura/fabmetheus_utilities/geometry_plugins/manipulation_shapes/__init__.py rename to Cura/cura_sf/fabmetheus_utilities/geometry_plugins/manipulation_shapes/__init__.py diff --git a/Cura/fabmetheus_utilities/intercircle.py b/Cura/cura_sf/fabmetheus_utilities/intercircle.py similarity index 100% rename from Cura/fabmetheus_utilities/intercircle.py rename to Cura/cura_sf/fabmetheus_utilities/intercircle.py diff --git a/Cura/fabmetheus_utilities/settings.py b/Cura/cura_sf/fabmetheus_utilities/settings.py similarity index 90% rename from Cura/fabmetheus_utilities/settings.py rename to Cura/cura_sf/fabmetheus_utilities/settings.py index 351c3cce85..3c27c0f458 100644 --- a/Cura/fabmetheus_utilities/settings.py +++ b/Cura/cura_sf/fabmetheus_utilities/settings.py @@ -10,7 +10,7 @@ import __init__ import os, sys import types, math -from newui import profile +from util import profile from fabmetheus_utilities import archive def DEFSET(setting): @@ -36,43 +36,19 @@ def storedPercentSetting(name): return lambda setting: float(profile.getProfileSetting(name)) / 100 def calculateEdgeWidth(setting): - wallThickness = float(profile.getProfileSetting('wall_thickness')) - nozzleSize = float(profile.getPreference('nozzle_size')) - - if wallThickness < nozzleSize: - return wallThickness - - lineCount = int(wallThickness / nozzleSize) - lineWidth = wallThickness / lineCount - lineWidthAlt = wallThickness / (lineCount + 1) - if lineWidth > nozzleSize * 1.5: - return lineWidthAlt - return lineWidth + return profile.calculateEdgeWidth() def calculateShells(setting): - return calculateShellsImp(float(profile.getProfileSetting('wall_thickness'))) + return profile.calculateLineCount() - 1 def calculateShellsBase(setting): - return calculateShellsImp(float(profile.getProfileSetting('wall_thickness')) + float(profile.getProfileSetting('extra_base_wall_thickness'))) - -def calculateShellsImp(wallThickness): - nozzleSize = float(profile.getPreference('nozzle_size')) + edgeWidth = profile.calculateEdgeWidth() + extraWall = float(profile.getProfileSetting('extra_base_wall_thickness')) - if wallThickness < nozzleSize: - return 0 - - lineCount = int(wallThickness / nozzleSize + 0.0001) - lineWidth = wallThickness / lineCount - lineWidthAlt = wallThickness / (lineCount + 1) - if lineWidth > nozzleSize * 1.5: - return lineCount - return lineCount - 1 + return profile.calculateLineCount() - 1 + int(extraWall / edgeWidth + 0.0001) def calculateSolidLayerCount(setting): - layerHeight = float(profile.getProfileSetting('layer_height')) - solidThickness = float(profile.getProfileSetting('solid_layer_thickness')) - ret = int(math.ceil(solidThickness / layerHeight - 0.0001)) - return ret + return profile.calculateSolidLayerCount() def firstLayerSpeedRatio(setting): bottomSpeed = float(profile.getProfileSetting('bottom_layer_speed')) @@ -129,7 +105,7 @@ def getProfileInformation(): },'inset': { 'Add_Custom_Code_for_Temperature_Reading': DEFSET, 'Infill_in_Direction_of_Bridge': "True", - 'Infill_Width': storedPreference("nozzle_size"), + 'Infill_Width': storedSetting("nozzle_size"), 'Loop_Order_Choice': DEFSET, 'Overlap_Removal_Width_over_Perimeter_Width_ratio': DEFSET, 'Turn_Extruder_Heater_Off_at_Shut_Down': DEFSET, @@ -157,7 +133,7 @@ def getProfileInformation(): 'Line': ifSettingIs('infill_type', 'Line'), 'Infill_Perimeter_Overlap_ratio': storedPercentSetting('fill_overlap'), 'Infill_Solidity_ratio': storedPercentSetting('fill_density'), - 'Infill_Width': storedPreference("nozzle_size"), + 'Infill_Width': storedSetting("nozzle_size"), 'Sharpest_Angle_degrees': DEFSET, 'Solid_Surface_Thickness_layers': calculateSolidLayerCount, 'Start_From_Choice': DEFSET, @@ -434,27 +410,8 @@ def getAlterationFileLines(fileName): def getAlterationLines(fileName): return archive.getTextLines(getAlterationFile(fileName)) -def getAlterationFile(fileName, allowMagicPrefix = True): - "Get the file from the fileName or the lowercase fileName in the alterations directories." - #print ('getAlterationFile:', fileName) - prefix = '' - if allowMagicPrefix: - if fileName == 'start.gcode': - #For the start code, hack the temperature and the steps per E value into it. So the temperature is reached before the start code extrusion. - #We also set our steps per E here, if configured. - eSteps = float(profile.getPreference('steps_per_e')) - if eSteps > 0: - prefix += 'M92 E'+str(eSteps)+'\n' - temp = float(profile.getProfileSetting('print_temperature')) - if temp > 0: - prefix += 'M109 S'+str(temp)+'\n' - elif fileName == 'replace.csv': - prefix = 'M101\nM103\n' - alterationsDirectory = archive.getSkeinforgePath('alterations') - fullFilename = os.path.join(alterationsDirectory, fileName) - if os.path.isfile(fullFilename): - return prefix + archive.getFileText( fullFilename ) - return prefix +def getAlterationFile(fileName): + return profile.getAlterationFileContents(fileName) #################################### ## Configuration settings classes ## diff --git a/Cura/fabmetheus_utilities/svg_reader.py b/Cura/cura_sf/fabmetheus_utilities/svg_reader.py similarity index 100% rename from Cura/fabmetheus_utilities/svg_reader.py rename to Cura/cura_sf/fabmetheus_utilities/svg_reader.py diff --git a/Cura/fabmetheus_utilities/svg_writer.py b/Cura/cura_sf/fabmetheus_utilities/svg_writer.py similarity index 100% rename from Cura/fabmetheus_utilities/svg_writer.py rename to Cura/cura_sf/fabmetheus_utilities/svg_writer.py diff --git a/Cura/fabmetheus_utilities/templates/canvas_template.svg b/Cura/cura_sf/fabmetheus_utilities/templates/canvas_template.svg similarity index 100% rename from Cura/fabmetheus_utilities/templates/canvas_template.svg rename to Cura/cura_sf/fabmetheus_utilities/templates/canvas_template.svg diff --git a/Cura/fabmetheus_utilities/templates/layer_template.svg b/Cura/cura_sf/fabmetheus_utilities/templates/layer_template.svg similarity index 100% rename from Cura/fabmetheus_utilities/templates/layer_template.svg rename to Cura/cura_sf/fabmetheus_utilities/templates/layer_template.svg diff --git a/Cura/fabmetheus_utilities/vector3.py b/Cura/cura_sf/fabmetheus_utilities/vector3.py similarity index 100% rename from Cura/fabmetheus_utilities/vector3.py rename to Cura/cura_sf/fabmetheus_utilities/vector3.py diff --git a/Cura/fabmetheus_utilities/vector3index.py b/Cura/cura_sf/fabmetheus_utilities/vector3index.py similarity index 100% rename from Cura/fabmetheus_utilities/vector3index.py rename to Cura/cura_sf/fabmetheus_utilities/vector3index.py diff --git a/Cura/fabmetheus_utilities/version.txt b/Cura/cura_sf/fabmetheus_utilities/version.txt similarity index 100% rename from Cura/fabmetheus_utilities/version.txt rename to Cura/cura_sf/fabmetheus_utilities/version.txt diff --git a/Cura/fabmetheus_utilities/xml_simple_reader.py b/Cura/cura_sf/fabmetheus_utilities/xml_simple_reader.py similarity index 100% rename from Cura/fabmetheus_utilities/xml_simple_reader.py rename to Cura/cura_sf/fabmetheus_utilities/xml_simple_reader.py diff --git a/Cura/fabmetheus_utilities/xml_simple_writer.py b/Cura/cura_sf/fabmetheus_utilities/xml_simple_writer.py similarity index 100% rename from Cura/fabmetheus_utilities/xml_simple_writer.py rename to Cura/cura_sf/fabmetheus_utilities/xml_simple_writer.py diff --git a/Cura/cura_sf/skeinforge_application/__init__.py b/Cura/cura_sf/skeinforge_application/__init__.py new file mode 100644 index 0000000000..bdac25da57 --- /dev/null +++ b/Cura/cura_sf/skeinforge_application/__init__.py @@ -0,0 +1,9 @@ +#This is required to workaround the python import bug where relative imports don't work if the module is imported as a main module. +import os +import sys +numberOfLevelsDeepInPackageHierarchy = 1 +packageFilePath = os.path.abspath(__file__) +for level in range( numberOfLevelsDeepInPackageHierarchy + 1 ): + packageFilePath = os.path.dirname( packageFilePath ) +if packageFilePath not in sys.path: + sys.path.insert( 0, packageFilePath ) diff --git a/Cura/skeinforge_application/skeinforge_plugins/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/analyze.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/analyze.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/analyze.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/analyze.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/analyze_plugins/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/analyze_plugins/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/analyze_plugins/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/analyze_plugins/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/alteration.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/alteration.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/alteration.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/alteration.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/bottom.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/bottom.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/bottom.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/bottom.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/chop.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/chop.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/chop.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/chop.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/cleave.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/cleave.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/cleave.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/cleave.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/coil.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/coil.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/coil.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/coil.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/drill.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/drill.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/drill.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/drill.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/dwindle.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dwindle.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/dwindle.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/dwindle.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/binary_16_byte.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/binary_16_byte.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/binary_16_byte.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/binary_16_byte.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_step.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_step.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_step.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_step.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_time_segment.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_time_segment.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_time_segment.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/gcode_time_segment.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/gcode_small.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/gcode_small.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/gcode_small.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/gcode_small.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/feed.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/feed.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/feed.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/feed.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/fillet.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/fillet.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/fillet.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/fillet.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/flow.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/flow.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/flow.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/flow.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/home.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/home.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/home.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/home.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/hop.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/hop.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/hop.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/hop.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/inset.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/inset.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/inset.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/inset.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/joris.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/joris.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/joris.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/joris.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/lash.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/lash.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/lash.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/lash.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/lift.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/lift.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/lift.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/lift.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/mill.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/mill.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/mill.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/mill.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/oozebane.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/oozebane.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/oozebane.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/oozebane.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/outset.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/outset.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/outset.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/outset.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/preface.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/preface.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/preface.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/preface.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/scale.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/scale.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/scale.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/scale.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/skin.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/skin.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/skin.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/skin.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/skirt.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/skirt.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/skirt.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/skirt.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/smooth.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/smooth.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/smooth.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/smooth.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/splodge.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/splodge.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/splodge.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/splodge.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/stretch.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/stretch.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/stretch.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/stretch.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/tower.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/tower.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/tower.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/tower.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/unpause.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/unpause.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/unpause.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/unpause.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/whittle.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/whittle.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/whittle.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/whittle.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/widen.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/widen.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/widen.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/widen.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/craft_plugins/wipe.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/wipe.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/craft_plugins/wipe.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/wipe.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/help.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/help.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/help.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/help.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/meta.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/meta.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/meta_plugins/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta_plugins/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/meta_plugins/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta_plugins/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/meta_plugins/description.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta_plugins/description.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/meta_plugins/description.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta_plugins/description.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/meta_plugins/polyfile.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta_plugins/polyfile.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/meta_plugins/polyfile.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/meta_plugins/polyfile.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/profile.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/profile.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/profile_plugins/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/profile_plugins/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/profile_plugins/cutting.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/cutting.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/profile_plugins/cutting.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/cutting.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/profile_plugins/milling.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/milling.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/profile_plugins/milling.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/milling.py diff --git a/Cura/skeinforge_application/skeinforge_plugins/profile_plugins/winding.py b/Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/winding.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_plugins/profile_plugins/winding.py rename to Cura/cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/winding.py diff --git a/Cura/skeinforge_application/skeinforge_utilities/__init__.py b/Cura/cura_sf/skeinforge_application/skeinforge_utilities/__init__.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_utilities/__init__.py rename to Cura/cura_sf/skeinforge_application/skeinforge_utilities/__init__.py diff --git a/Cura/skeinforge_application/skeinforge_utilities/skeinforge_analyze.py b/Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_analyze.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_utilities/skeinforge_analyze.py rename to Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_analyze.py diff --git a/Cura/skeinforge_application/skeinforge_utilities/skeinforge_craft.py b/Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_craft.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_utilities/skeinforge_craft.py rename to Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_craft.py diff --git a/Cura/skeinforge_application/skeinforge_utilities/skeinforge_help.py b/Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_help.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_utilities/skeinforge_help.py rename to Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_help.py diff --git a/Cura/skeinforge_application/skeinforge_utilities/skeinforge_meta.py b/Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_meta.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_utilities/skeinforge_meta.py rename to Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_meta.py diff --git a/Cura/skeinforge_application/skeinforge_utilities/skeinforge_polyfile.py b/Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_polyfile.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_utilities/skeinforge_polyfile.py rename to Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_polyfile.py diff --git a/Cura/skeinforge_application/skeinforge_utilities/skeinforge_profile.py b/Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_profile.py similarity index 100% rename from Cura/skeinforge_application/skeinforge_utilities/skeinforge_profile.py rename to Cura/cura_sf/skeinforge_application/skeinforge_utilities/skeinforge_profile.py diff --git a/Cura/newui/__init__.py b/Cura/gui/__init__.py similarity index 62% rename from Cura/newui/__init__.py rename to Cura/gui/__init__.py index 163803379e..4870325b1f 100644 --- a/Cura/newui/__init__.py +++ b/Cura/gui/__init__.py @@ -1,7 +1,3 @@ -""" -This page is in the table of contents. -This is required to workaround the python import bug where relative imports don't work if the module is imported as a main module. -""" import os import sys diff --git a/Cura/newui/advancedConfig.py b/Cura/gui/advancedConfig.py similarity index 95% rename from Cura/newui/advancedConfig.py rename to Cura/gui/advancedConfig.py index 2febe8bc7b..4f9a0c9b82 100644 --- a/Cura/newui/advancedConfig.py +++ b/Cura/gui/advancedConfig.py @@ -4,16 +4,16 @@ import __init__ import wx, os, platform, types import ConfigParser -from newui import configBase -from newui import preview3d -from newui import sliceProgessPanel -from newui import alterationPanel -from newui import validators +from gui import configBase +from gui import preview3d +from gui import sliceProgessPanel +from gui import alterationPanel +from gui import validators class advancedConfigWindow(configBase.configWindowBase): "Advanced configuration window" def __init__(self): - super(advancedConfigWindow, self).__init__(title='Advanced config') + super(advancedConfigWindow, self).__init__(title='Expert config') wx.EVT_CLOSE(self, self.OnClose) @@ -22,6 +22,7 @@ class advancedConfigWindow(configBase.configWindowBase): configBase.TitleRow(left, "Accuracy") c = configBase.SettingRow(left, "Extra Wall thickness for bottom/top (mm)", 'extra_base_wall_thickness', '0.0', 'Additional wall thickness of the bottom and top layers.') validators.validFloat(c, 0.0) + configBase.TitleRow(left, "Sequence") c = configBase.SettingRow(left, "Print order sequence", 'sequence', ['Loops > Perimeter > Infill', 'Loops > Infill > Perimeter', 'Infill > Loops > Perimeter', 'Infill > Perimeter > Loops', 'Perimeter > Infill > Loops', 'Perimeter > Loops > Infill'], 'Sequence of printing. The perimeter is the outer print edge, the loops are the insides of the walls, and the infill is the insides.'); c = configBase.SettingRow(left, "Force first layer sequence", 'force_first_layer_sequence', True, 'This setting forces the order of the first layer to be \'Perimeter > Loops > Infill\'') diff --git a/Cura/newui/alterationPanel.py b/Cura/gui/alterationPanel.py similarity index 78% rename from Cura/newui/alterationPanel.py rename to Cura/gui/alterationPanel.py index 453cdd4d07..425c823c9d 100644 --- a/Cura/newui/alterationPanel.py +++ b/Cura/gui/alterationPanel.py @@ -1,14 +1,13 @@ import wx import sys,math,threading,os -from fabmetheus_utilities import settings -from fabmetheus_utilities import archive +from util import profile class alterationPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent,-1) - self.alterationFileList = ['start.gcode', 'end.gcode', 'cool_start.gcode', 'cool_end.gcode'] + self.alterationFileList = ['start.gcode', 'end.gcode', 'cool_start.gcode', 'cool_end.gcode', 'replace.csv'] self.currentFile = None self.textArea = wx.TextCtrl(self, style=wx.TE_MULTILINE|wx.TE_DONTWRAP|wx.TE_PROCESS_TAB) @@ -32,11 +31,11 @@ class alterationPanel(wx.Panel): self.currentFile = self.list.GetSelection() def loadFile(self, filename): - self.textArea.SetValue(unicode(settings.getAlterationFile(filename, False), "utf-8")) + self.textArea.SetValue(unicode(profile.getAlterationFileContents(filename, False), "utf-8")) def OnFocusLost(self, e): if self.currentFile == self.list.GetSelection(): - filename = os.path.join(archive.getSkeinforgePath('alterations'), self.alterationFileList[self.list.GetSelection()]) + filename = profile.getAlterationFilePath(self.alterationFileList[self.list.GetSelection()]) f = open(filename, "wb") f.write(self.textArea.GetValue().encode("utf-8")) f.close() diff --git a/Cura/newui/configBase.py b/Cura/gui/configBase.py similarity index 99% rename from Cura/newui/configBase.py rename to Cura/gui/configBase.py index 265a687dfa..9d28af4f64 100644 --- a/Cura/newui/configBase.py +++ b/Cura/gui/configBase.py @@ -3,8 +3,8 @@ import __init__ import wx, os, sys, platform, types -from newui import validators -from newui import profile +from gui import validators +from util import profile def main(): app = wx.App(False) diff --git a/Cura/newui/configWizard.py b/Cura/gui/configWizard.py similarity index 96% rename from Cura/newui/configWizard.py rename to Cura/gui/configWizard.py index 4450195bb2..923f5a1447 100644 --- a/Cura/newui/configWizard.py +++ b/Cura/gui/configWizard.py @@ -4,8 +4,8 @@ import __init__ import wx, os, platform, types, webbrowser, threading, time, re import wx.wizard -from newui import machineCom -from newui import profile +from gui import machineCom +from util import profile class InfoPage(wx.wizard.WizardPageSimple): def __init__(self, parent, title): @@ -97,17 +97,17 @@ class MachineSelectPage(InfoPage): profile.putPreference('machine_width', '205') profile.putPreference('machine_depth', '205') profile.putPreference('machine_height', '200') - profile.putPreference('nozzle_size', '0.4') + profile.putProfileSetting('nozzle_size', '0.4') profile.putProfileSetting('machine_center_x', '100') profile.putProfileSetting('machine_center_y', '100') else: profile.putPreference('machine_width', '80') profile.putPreference('machine_depth', '80') profile.putPreference('machine_height', '60') - profile.putPreference('nozzle_size', '0.5') + profile.putProfileSetting('nozzle_size', '0.5') profile.putProfileSetting('machine_center_x', '40') profile.putProfileSetting('machine_center_y', '40') - profile.putProfileSetting('wall_thickness', float(profile.getPreference('nozzle_size')) * 2) + profile.putProfileSetting('wall_thickness', float(profile.getProfileSetting('nozzle_size')) * 2) class FirmwareUpgradePage(InfoPage): def __init__(self, parent): diff --git a/Cura/newui/machineCom.py b/Cura/gui/machineCom.py similarity index 98% rename from Cura/newui/machineCom.py rename to Cura/gui/machineCom.py index 5f6974d933..605d05cefa 100644 --- a/Cura/newui/machineCom.py +++ b/Cura/gui/machineCom.py @@ -1,7 +1,7 @@ from __future__ import absolute_import import __init__ -import os, glob, wx, threading +import os, glob, wx, threading, sys from serial import Serial @@ -9,7 +9,7 @@ from avr_isp import stk500v2 from avr_isp import ispBase from avr_isp import intelHex -from newui import profile +from util import profile try: import _winreg diff --git a/Cura/newui/mainWindow.py b/Cura/gui/mainWindow.py similarity index 93% rename from Cura/newui/mainWindow.py rename to Cura/gui/mainWindow.py index 7ac31951af..af4c08c4f4 100644 --- a/Cura/newui/mainWindow.py +++ b/Cura/gui/mainWindow.py @@ -3,17 +3,17 @@ import __init__ import wx, os, platform, types, webbrowser -from newui import configBase -from newui import advancedConfig -from newui import preview3d -from newui import sliceProgessPanel -from newui import alterationPanel -from newui import validators -from newui import preferencesDialog -from newui import configWizard -from newui import machineCom -from newui import profile -from newui import printWindow +from gui import configBase +from gui import advancedConfig +from gui import preview3d +from gui import sliceProgessPanel +from gui import alterationPanel +from gui import validators +from gui import preferencesDialog +from gui import configWizard +from gui import machineCom +from gui import printWindow +from util import profile def main(): app = wx.App(False) @@ -85,7 +85,7 @@ class mainWindow(configBase.configWindowBase): configBase.TitleRow(left, "Accuracy") c = configBase.SettingRow(left, "Layer height (mm)", 'layer_height', '0.2', 'Layer height in millimeters.\n0.2 is a good value for quick prints.\n0.1 gives high quality prints.') validators.validFloat(c, 0.0) - validators.warningAbove(c, lambda : (float(profile.getPreference('nozzle_size')) * 80 / 100), "Thicker layers then %.2fmm (80%% nozzle size) usually give bad results and are not recommended.") + validators.warningAbove(c, lambda : (float(profile.getProfileSetting('nozzle_size')) * 80 / 100), "Thicker layers then %.2fmm (80%% nozzle size) usually give bad results and are not recommended.") c = configBase.SettingRow(left, "Wall thickness (mm)", 'wall_thickness', '0.8', 'Thickness of the walls.\nThis is used in combination with the nozzle size to define the number\nof perimeter lines and the thickness of those perimeter lines.') validators.validFloat(c, 0.0) validators.wallThicknessValidator(c) @@ -124,9 +124,11 @@ class mainWindow(configBase.configWindowBase): c = configBase.SettingRow(right, "Packing Density", 'filament_density', '1.00', 'Packing density of your filament. This should be 1.00 for PLA and 0.85 for ABS') validators.validFloat(c, 0.5, 1.5) - (left, right) = self.CreateConfigTab(nb, 'Machine config') + (left, right) = self.CreateConfigTab(nb, 'Advanced config') configBase.TitleRow(left, "Machine size") + c = configBase.SettingRow(left, "Nozzle size (mm)", 'nozzle_size', '0.4', 'The nozzle size is very important, this is used to calculate the line width of the infill, and used to calculate the amount of outside wall lines and thickness for the wall thickness you entered in the print settings.') + validators.validFloat(c, 0.1, 1.0) c = configBase.SettingRow(left, "Machine center X (mm)", 'machine_center_x', '100', 'The center of your machine, your print will be placed at this location') validators.validInt(c, 10) configBase.settingNotify(c, self.preview3d.updateCenterX) @@ -221,7 +223,7 @@ class mainWindow(configBase.configWindowBase): def OnCustomFirmware(self, e): dlg=wx.FileDialog(self, "Open firmware to upload", self.lastPath, style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST) - dlg.SetWildcard("HEX file (*.hex)|*.hex") + dlg.SetWildcard("HEX file (*.hex)|*.hex;*.HEX") if dlg.ShowModal() == wx.ID_OK: filename = dlg.GetPath() if not(os.path.exists(filename)): @@ -235,7 +237,7 @@ class mainWindow(configBase.configWindowBase): def OnLoadModel(self, e): dlg=wx.FileDialog(self, "Open file to print", self.lastPath, style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST) - dlg.SetWildcard("STL files (*.stl)|*.stl") + dlg.SetWildcard("STL files (*.stl)|*.stl;*.STL") if dlg.ShowModal() == wx.ID_OK: self.filename=dlg.GetPath() profile.putPreference('lastFile', self.filename) diff --git a/Cura/newui/preferencesDialog.py b/Cura/gui/preferencesDialog.py similarity index 77% rename from Cura/newui/preferencesDialog.py rename to Cura/gui/preferencesDialog.py index 539a69a7a9..564a583c57 100644 --- a/Cura/newui/preferencesDialog.py +++ b/Cura/gui/preferencesDialog.py @@ -4,9 +4,9 @@ import __init__ import wx, os, platform, types import ConfigParser -from newui import configBase -from newui import validators -from newui import machineCom +from gui import configBase +from gui import validators +from gui import machineCom class preferencesDialog(configBase.configWindowBase): def __init__(self, parent): @@ -16,8 +16,6 @@ class preferencesDialog(configBase.configWindowBase): left, right, main = self.CreateConfigPanel(self) configBase.TitleRow(left, 'Machine settings') - c = configBase.SettingRow(left, "Nozzle size (mm)", 'nozzle_size', '0.4', 'The nozzle size is very important, this is used to calculate the line width of the infill, and used to calculate the amount of outside wall lines and thickness for the wall thickness you entered in the print settings.', type = 'preference') - validators.validFloat(c, 0.1, 1.0) c = configBase.SettingRow(left, 'Steps per E', 'steps_per_e', '0', 'Amount of steps per mm filament extrusion', type = 'preference') validators.validFloat(c, 0.1) c = configBase.SettingRow(left, 'Machine width (mm)', 'machine_width', '205', 'Size of the machine in mm', type = 'preference') @@ -30,6 +28,9 @@ class preferencesDialog(configBase.configWindowBase): configBase.TitleRow(left, 'Communication settings') c = configBase.SettingRow(left, 'Serial port', 'serial_port', ['AUTO'] + machineCom.serialList(), 'Serial port to use for communication with the printer', type = 'preference') c = configBase.SettingRow(left, 'Baudrate', 'serial_baud', '250000', 'Speed of the serial port communication\nNeeds to match your firmware settings\nCommon values are 250000, 115200, 57600', type = 'preference') + + configBase.TitleRow(left, 'Slicer settings') + c = configBase.SettingRow(left, 'Slicer selection', 'slicer', ['Cura (Skeinforge based)', 'Slic3r'], 'Which slicer to use to slice objects. Usually the Cura engine produces the best results. But Slic3r is developing fast and is faster with slicing.', type = 'preference') self.MakeModal(True) main.Fit() diff --git a/Cura/newui/preview3d.py b/Cura/gui/preview3d.py similarity index 89% rename from Cura/newui/preview3d.py rename to Cura/gui/preview3d.py index 722c2821d1..311d49a17c 100644 --- a/Cura/newui/preview3d.py +++ b/Cura/gui/preview3d.py @@ -17,12 +17,10 @@ except: print "Failed to find PyOpenGL: http://pyopengl.sourceforge.net/" hasOpenGLlibs = False -from newui import profile -from newui import gcodeInterpreter -from newui import util3d - -from fabmetheus_utilities.fabmetheus_tools import fabmetheus_interpret -from fabmetheus_utilities.vector3 import Vector3 +from util import profile +from util import gcodeInterpreter +from util import stl +from util import util3d class previewPanel(wx.Panel): def __init__(self, parent): @@ -38,8 +36,8 @@ class previewPanel(wx.Panel): self.modelFilename = None self.loadingProgressAmount = 0 self.loadThread = None - self.machineSize = Vector3(float(profile.getPreference('machine_width')), float(profile.getPreference('machine_depth')), float(profile.getPreference('machine_height'))) - self.machineCenter = Vector3(0, 0, 0) + self.machineSize = util3d.Vector3(float(profile.getPreference('machine_width')), float(profile.getPreference('machine_depth')), float(profile.getPreference('machine_height'))) + self.machineCenter = util3d.Vector3(0, 0, 0) self.toolbar = wx.ToolBar( self, -1 ) self.toolbar.SetToolBitmapSize( ( 21, 21 ) ) @@ -215,7 +213,8 @@ class previewPanel(wx.Panel): def doFileLoadThread(self): if os.path.isfile(self.modelFilename) and self.modelFileTime != os.stat(self.modelFilename).st_mtime: self.modelFileTime = os.stat(self.modelFilename).st_mtime - triangleMesh = fabmetheus_interpret.getCarving(self.modelFilename) + triangleMesh = stl.stlModel() + triangleMesh.load(self.modelFilename) triangleMesh.origonalVertexes = list(triangleMesh.vertexes) for i in xrange(0, len(triangleMesh.origonalVertexes)): triangleMesh.origonalVertexes[i] = triangleMesh.origonalVertexes[i].copy() @@ -297,9 +296,9 @@ class previewPanel(wx.Panel): self.triangleMesh.vertexes[i].z = self.triangleMesh.origonalVertexes[i].z * scaleZ for face in self.triangleMesh.faces: - v1 = self.triangleMesh.vertexes[face.vertexIndexes[0]] - v2 = self.triangleMesh.vertexes[face.vertexIndexes[1]] - v3 = self.triangleMesh.vertexes[face.vertexIndexes[2]] + v1 = face.v[0] + v2 = face.v[1] + v3 = face.v[2] face.normal = (v2 - v1).cross(v3 - v1) face.normal.normalize() @@ -309,8 +308,8 @@ class previewPanel(wx.Panel): if self.triangleMesh == None: return minZ = self.triangleMesh.getMinimumZ() - min = self.triangleMesh.getCarveCornerMinimum() - max = self.triangleMesh.getCarveCornerMaximum() + min = self.triangleMesh.getMinimum() + max = self.triangleMesh.getMaximum() for v in self.triangleMesh.vertexes: v.z -= minZ v.x -= min.x + (max.x - min.x) / 2 @@ -440,39 +439,39 @@ class PreviewGLCanvas(glcanvas.GLCanvas): layerThickness = 0.0 filamentRadius = float(profile.getProfileSetting('filament_diameter')) / 2 filamentArea = math.pi * filamentRadius * filamentRadius - lineWidth = float(profile.getPreference('nozzle_size')) / 2 + lineWidth = float(profile.getProfileSetting('nozzle_size')) / 2 curLayerNum = 0 for path in self.parent.gcode.pathList: - if path['layerNr'] != curLayerNum: + if path.layerNr != curLayerNum: prevLayerZ = curLayerZ - curLayerZ = path['list'][1].z - curLayerNum = path['layerNr'] + curLayerZ = path.list[1].z + curLayerNum = path.layerNr layerThickness = curLayerZ - prevLayerZ c = 1.0 - if path['layerNr'] != self.parent.layerSpin.GetValue(): - if path['layerNr'] < self.parent.layerSpin.GetValue(): - c = 0.9 - (self.parent.layerSpin.GetValue() - path['layerNr']) * 0.1 + if path.layerNr != self.parent.layerSpin.GetValue(): + if path.layerNr < self.parent.layerSpin.GetValue(): + c = 0.9 - (self.parent.layerSpin.GetValue() - path.layerNr) * 0.1 if c < 0.4: c = 0.4 else: break - if path['type'] == 'move': + if path.type == 'move': glColor3f(0,0,c) - if path['type'] == 'extrude': - if path['pathType'] == 'FILL': + if path.type == 'extrude': + if path.pathType == 'FILL': glColor3f(c/2,c/2,0) - elif path['pathType'] == 'WALL-INNER': + elif path.pathType == 'WALL-INNER': glColor3f(0,c,0) else: glColor3f(c,0,0) - if path['type'] == 'retract': + if path.type == 'retract': glColor3f(0,c,c) - if c > 0.4 and path['type'] == 'extrude': - for i in xrange(0, len(path['list'])-1): - v0 = path['list'][i] - v1 = path['list'][i+1] + if c > 0.4 and path.type == 'extrude': + for i in xrange(0, len(path.list)-1): + v0 = path.list[i] + v1 = path.list[i+1] # Calculate line width from ePerDistance (needs layer thickness and filament diameter) dist = (v0 - v1).vsize() @@ -488,7 +487,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas): v1 = v1 - normal * lineWidth glBegin(GL_QUADS) - if path['pathType'] == 'FILL': #Remove depth buffer fighting on infill/wall overlap + if path.pathType == 'FILL': #Remove depth buffer fighting on infill/wall overlap glVertex3f(v0.x, v0.y, v0.z - 0.02) glVertex3f(v1.x, v1.y, v1.z - 0.02) glVertex3f(v3.x, v3.y, v3.z - 0.02) @@ -511,7 +510,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas): # glEnd() else: glBegin(GL_LINE_STRIP) - for v in path['list']: + for v in path.list: glVertex3f(v.x, v.y, v.z) glEnd() glEndList() @@ -525,7 +524,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas): self.parent.modelDirty = False multiX = int(profile.getProfileSetting('model_multiply_x')) multiY = int(profile.getProfileSetting('model_multiply_y')) - modelSize = self.parent.triangleMesh.getCarveCornerMaximum() - self.parent.triangleMesh.getCarveCornerMinimum() + modelSize = self.parent.triangleMesh.getMaximum() - self.parent.triangleMesh.getMinimum() glNewList(self.modelDisplayList, GL_COMPILE) glPushMatrix() glTranslate(-(modelSize.x+10)*(multiX-1)/2,-(modelSize.y+10)*(multiY-1)/2, 0) @@ -535,9 +534,9 @@ class PreviewGLCanvas(glcanvas.GLCanvas): glPushMatrix() glTranslate((modelSize.x+10)*mx,(modelSize.y+10)*my, 0) glBegin(GL_TRIANGLES) - v1 = self.parent.triangleMesh.vertexes[face.vertexIndexes[0]] - v2 = self.parent.triangleMesh.vertexes[face.vertexIndexes[1]] - v3 = self.parent.triangleMesh.vertexes[face.vertexIndexes[2]] + v1 = face.v[0] + v2 = face.v[1] + v3 = face.v[2] glNormal3f(face.normal.x, face.normal.y, face.normal.z) glVertex3f(v1.x, v1.y, v1.z) glVertex3f(v2.x, v2.y, v2.z) @@ -664,7 +663,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas): glRotate(-self.pitch, 1,0,0) glRotate(self.yaw, 0,0,1) if self.parent.triangleMesh != None: - glTranslate(0,0,-self.parent.triangleMesh.getCarveCornerMaximum().z / 2) + glTranslate(0,0,-self.parent.triangleMesh.getMaximum().z / 2) else: glTranslate(self.offsetX, self.offsetY, 0) diff --git a/Cura/newui/printWindow.py b/Cura/gui/printWindow.py similarity index 100% rename from Cura/newui/printWindow.py rename to Cura/gui/printWindow.py diff --git a/Cura/newui/sliceProgessPanel.py b/Cura/gui/sliceProgessPanel.py similarity index 99% rename from Cura/newui/sliceProgessPanel.py rename to Cura/gui/sliceProgessPanel.py index 3c3537c0c6..5854060ee4 100644 --- a/Cura/newui/sliceProgessPanel.py +++ b/Cura/gui/sliceProgessPanel.py @@ -8,7 +8,7 @@ import threading import subprocess import time -from newui import sliceRun +from util import sliceRun class sliceProgessPanel(wx.Panel): def __init__(self, mainWindow, parent, filename): diff --git a/Cura/newui/validators.py b/Cura/gui/validators.py similarity index 96% rename from Cura/newui/validators.py rename to Cura/gui/validators.py index 79a3d318ae..d7db5c8283 100644 --- a/Cura/newui/validators.py +++ b/Cura/gui/validators.py @@ -4,7 +4,7 @@ import __init__ import types import math -from newui import profile +from util import profile SUCCESS = 0 WARNING = 1 @@ -75,7 +75,7 @@ class wallThicknessValidator(): def validate(self): try: wallThickness = float(self.setting.GetValue()) - nozzleSize = float(profile.getPreference('nozzle_size')) + nozzleSize = float(profile.getProfileSetting('nozzle_size')) if wallThickness <= nozzleSize * 0.5: return ERROR, 'Trying to print walls thinner then the half of your nozzle size, this will not produce anything usable' if wallThickness <= nozzleSize * 0.85: @@ -100,7 +100,7 @@ class printSpeedValidator(): def validate(self): try: - nozzleSize = float(profile.getPreference('nozzle_size')) + nozzleSize = float(profile.getProfileSetting('nozzle_size')) layerHeight = float(profile.getProfileSetting('layer_height')) printSpeed = float(profile.getProfileSetting('print_speed')) diff --git a/Cura/newui/sliceRun.py b/Cura/newui/sliceRun.py deleted file mode 100644 index 22327682d6..0000000000 --- a/Cura/newui/sliceRun.py +++ /dev/null @@ -1,47 +0,0 @@ -from __future__ import absolute_import - -import platform, os, subprocess, sys - -from skeinforge_application.skeinforge_utilities import skeinforge_craft - -def getPyPyExe(): - "Return the path to the pypy executable if we can find it. Else return False" - if platform.system() == "Windows": - exeName = "pypy.exe" - pypyExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../pypy/pypy.exe")); - else: - exeName = "pypy" - pypyExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../pypy/bin/pypy")); - if os.path.exists(pypyExe): - return pypyExe - - path = os.environ['PATH'] - paths = path.split(os.pathsep) - for p in paths: - pypyExe = os.path.join(p, exeName) - if os.path.exists(pypyExe): - return pypyExe - return False - -def runSlice(fileNames): - "Run the slicer on the files. If we are running with PyPy then just do the slicing action. If we are running as Python, try to find pypy." - pypyExe = getPyPyExe() - for fileName in fileNames: - if platform.python_implementation() == "PyPy": - skeinforge_craft.writeOutput(fileName) - elif pypyExe == False: - print "************************************************" - print "* Failed to find pypy, so slicing with python! *" - print "************************************************" - skeinforge_craft.writeOutput(fileName) - print "************************************************" - print "* Failed to find pypy, so sliced with python! *" - print "************************************************" - else: - subprocess.call([pypyExe, os.path.join(sys.path[0], sys.argv[0]), fileName]) - -def getSliceCommand(filename): - pypyExe = getPyPyExe() - if pypyExe == False: - pypyExe = sys.executable - return [pypyExe, os.path.join(sys.path[0], os.path.split(sys.argv[0])[1]), filename] diff --git a/Cura/skeinforge_application/alterations/example_cool_end.gcode b/Cura/skeinforge_application/alterations/example_cool_end.gcode deleted file mode 100644 index 730c60644b..0000000000 --- a/Cura/skeinforge_application/alterations/example_cool_end.gcode +++ /dev/null @@ -1,2 +0,0 @@ -(this is a sample cool end file, it must be renamed cool_end.gcode for skeinforge to recognize it) -M107 diff --git a/Cura/skeinforge_application/alterations/example_cool_start.gcode b/Cura/skeinforge_application/alterations/example_cool_start.gcode deleted file mode 100644 index 90285c7282..0000000000 --- a/Cura/skeinforge_application/alterations/example_cool_start.gcode +++ /dev/null @@ -1,2 +0,0 @@ -(this is a sample cool start file, it must be renamed cool_start.gcode for skeinforge to recognize it) -M106 diff --git a/Cura/skeinforge_application/alterations/example_end.gcode b/Cura/skeinforge_application/alterations/example_end.gcode deleted file mode 100644 index 86dc43baf0..0000000000 --- a/Cura/skeinforge_application/alterations/example_end.gcode +++ /dev/null @@ -1,2 +0,0 @@ -(this is a sample gcode end file, it must be renamed end.gcode for skeinforge to recognize it) -M2 diff --git a/Cura/skeinforge_application/alterations/example_home.gcode b/Cura/skeinforge_application/alterations/example_home.gcode deleted file mode 100644 index a089a3111f..0000000000 --- a/Cura/skeinforge_application/alterations/example_home.gcode +++ /dev/null @@ -1,5 +0,0 @@ -(this is a sample gcode homing file, it must be renamed homing.gcode for skeinforge to recognize it) -G1 X-250.0 -G92 X0 ;set x 0 -G1 Y-250.0 -G92 Y0 ;set y 0 diff --git a/Cura/skeinforge_application/alterations/example_replace.csv b/Cura/skeinforge_application/alterations/example_replace.csv deleted file mode 100644 index dbcbd1bf1a..0000000000 --- a/Cura/skeinforge_application/alterations/example_replace.csv +++ /dev/null @@ -1,3 +0,0 @@ -M101 -M103 - diff --git a/Cura/skeinforge_application/alterations/example_replace_M108.csv b/Cura/skeinforge_application/alterations/example_replace_M108.csv deleted file mode 100644 index 4cac8154da..0000000000 --- a/Cura/skeinforge_application/alterations/example_replace_M108.csv +++ /dev/null @@ -1,2 +0,0 @@ -M108 S M108 P -M113 S M108 S diff --git a/Cura/skeinforge_application/alterations/example_start.gcode b/Cura/skeinforge_application/alterations/example_start.gcode deleted file mode 100644 index eeafa85354..0000000000 --- a/Cura/skeinforge_application/alterations/example_start.gcode +++ /dev/null @@ -1,3 +0,0 @@ -(This is a sample gcode start file, it must be renamed start.gcode for skeinforge to recognize it. Also, to remove confusion this comment line should be deleted.) -G28 -M140 S diff --git a/Cura/skeinforge_application/alterations/example_support_end.gcode b/Cura/skeinforge_application/alterations/example_support_end.gcode deleted file mode 100644 index 63315e94ba..0000000000 --- a/Cura/skeinforge_application/alterations/example_support_end.gcode +++ /dev/null @@ -1,2 +0,0 @@ -(this is a sample support end file, it must be renamed support_end.gcode for skeinforge to recognize it) - diff --git a/Cura/skeinforge_application/alterations/example_support_start.gcode b/Cura/skeinforge_application/alterations/example_support_start.gcode deleted file mode 100644 index 04392f0912..0000000000 --- a/Cura/skeinforge_application/alterations/example_support_start.gcode +++ /dev/null @@ -1,2 +0,0 @@ -(this is a sample support start file, it must be renamed support_start.gcode for skeinforge to recognize it) - diff --git a/Cura/util/__init__.py b/Cura/util/__init__.py new file mode 100644 index 0000000000..4870325b1f --- /dev/null +++ b/Cura/util/__init__.py @@ -0,0 +1,9 @@ +import os +import sys + +numberOfLevelsDeepInPackageHierarchy = 1 +packageFilePath = os.path.abspath(__file__) +for level in range( numberOfLevelsDeepInPackageHierarchy + 1 ): + packageFilePath = os.path.dirname( packageFilePath ) +if packageFilePath not in sys.path: + sys.path.insert( 0, packageFilePath ) diff --git a/Cura/newui/gcodeInterpreter.py b/Cura/util/gcodeInterpreter.py similarity index 83% rename from Cura/newui/gcodeInterpreter.py rename to Cura/util/gcodeInterpreter.py index cd10cdfa79..71e26f0c65 100644 --- a/Cura/newui/gcodeInterpreter.py +++ b/Cura/util/gcodeInterpreter.py @@ -3,11 +3,17 @@ import __init__ import sys import math -import threading import re import os -from newui import util3d +from util import util3d + +class gcodePath(): + def __init__(self, newType, pathType, layerNr, startPoint): + self.type = newType + self.pathType = pathType + self.list = [startPoint] + self.layerNr = layerNr class gcode(): def __init__(self): @@ -35,8 +41,9 @@ class gcode(): pathType = 'CUSTOM'; layerNr = 0; #Note layer 0 will be the start code. startCodeDone = False - currentPath = {'type': 'move', 'pathType': pathType, 'list': [pos.copy()], 'layerNr': layerNr} - currentPath['list'][-1].e = totalExtrusion + currentPath = gcodePath('move', pathType, layerNr, pos.copy()) + currentPath.list[0].e = totalExtrusion + pathList.append(currentPath) for line in gcodeFile: if filePos != gcodeFile.tell(): filePos = gcodeFile.tell() @@ -46,6 +53,20 @@ class gcode(): pathType = line[6:].strip() if pathType != "CUSTOM": startCodeDone = True + + if ';' in line: + #Slic3r GCode comment parser + comment = line[line.find(';')+1:].strip() + if comment == 'fill': + pathType = 'FILL' + elif comment == 'perimeter': + pathType = 'WALL-INNER' + elif comment == 'skirt': + pathType = 'SKIRT' + if pathType != "CUSTOM": + startCodeDone = True + line = line[0:line.find(';')] + G = self.getCodeInt(line, 'G') if G is not None: if G == 0 or G == 1: #Move @@ -94,11 +115,12 @@ class gcode(): currentE += e if totalExtrusion > maxExtrusion: maxExtrusion = totalExtrusion - if currentPath['type'] != moveType or currentPath['pathType'] != pathType: + if currentPath.type != moveType or currentPath.pathType != pathType: + currentPath = gcodePath(moveType, pathType, layerNr, currentPath.list[-1]) pathList.append(currentPath) - currentPath = {'type': moveType, 'pathType': pathType, 'list': [currentPath['list'][-1]], 'layerNr': layerNr} - currentPath['list'].append(pos.copy()) - currentPath['list'][-1].e = totalExtrusion + newPos = pos.copy() + newPos.e = totalExtrusion + currentPath.list.append(newPos) elif G == 20: #Units are inches scale = 25.4 elif G == 21: #Units are mm diff --git a/Cura/newui/profile.py b/Cura/util/profile.py similarity index 63% rename from Cura/newui/profile.py rename to Cura/util/profile.py index 5a3e40363e..d523962098 100644 --- a/Cura/newui/profile.py +++ b/Cura/util/profile.py @@ -5,9 +5,15 @@ import __init__ import ConfigParser import os import traceback +import math + +######################################################### +## Profile and preferences functions +######################################################### #Single place to store the defaults, so we have a consistent set of default settings. profileDefaultSettings = { + 'nozzle_size': '0.4', 'layer_height': '0.2', 'wall_thickness': '0.8', 'solid_layer_thickness': '0.6', @@ -59,10 +65,10 @@ preferencesDefaultSettings = { 'machine_width': '205', 'machine_depth': '205', 'machine_height': '200', - 'nozzle_size': '0.4', 'steps_per_e': '0', 'serial_port': 'AUTO', 'serial_baud': '250000', + 'slicer': 'Cura (Skeinforge based)', } def getDefaultProfilePath(): @@ -146,3 +152,72 @@ def putPreference(name, value): globalPreferenceParser.add_section('preference') globalPreferenceParser.set('preference', name, str(value)) globalPreferenceParser.write(open(getPreferencePath(), 'w')) + +######################################################### +## Utility functions to calculate common profile values +######################################################### +def calculateEdgeWidth(): + wallThickness = float(getProfileSetting('wall_thickness')) + nozzleSize = float(getProfileSetting('nozzle_size')) + + if wallThickness < nozzleSize: + return wallThickness + + lineCount = int(wallThickness / nozzleSize) + lineWidth = wallThickness / lineCount + lineWidthAlt = wallThickness / (lineCount + 1) + if lineWidth > nozzleSize * 1.5: + return lineWidthAlt + return lineWidth + +def calculateLineCount(): + wallThickness = float(getProfileSetting('wall_thickness')) + nozzleSize = float(getProfileSetting('nozzle_size')) + + if wallThickness < nozzleSize: + return 1 + + lineCount = int(wallThickness / nozzleSize + 0.0001) + lineWidth = wallThickness / lineCount + lineWidthAlt = wallThickness / (lineCount + 1) + if lineWidth > nozzleSize * 1.5: + return lineCount + 1 + return lineCount + +def calculateSolidLayerCount(): + layerHeight = float(getProfileSetting('layer_height')) + solidThickness = float(getProfileSetting('solid_layer_thickness')) + return int(math.ceil(solidThickness / layerHeight - 0.0001)) + +######################################################### +## Alteration file functions +######################################################### +def getCuraBasePath(): + return os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) + +def getAlterationFilePath(filename): + return os.path.join(getCuraBasePath(), "alterations", filename) + +def getAlterationFileContents(filename, allowMagicPrefix = True): + "Get the file from the fileName or the lowercase fileName in the alterations directories." + prefix = '' + if allowMagicPrefix: + if filename == 'start.gcode': + #For the start code, hack the temperature and the steps per E value into it. So the temperature is reached before the start code extrusion. + #We also set our steps per E here, if configured. + eSteps = float(getPreference('steps_per_e')) + if eSteps > 0: + prefix += 'M92 E'+str(eSteps)+'\n' + temp = float(getProfileSetting('print_temperature')) + if temp > 0: + prefix += 'M109 S'+str(temp)+'\n' + elif filename == 'replace.csv': + prefix = 'M101\nM103\n' + fullFilename = getAlterationFilePath(filename) + if os.path.isfile(fullFilename): + file = open(fullFilename, "r") + fileText = file.read() + file.close() + return prefix + fileText + return prefix + diff --git a/Cura/util/sliceRun.py b/Cura/util/sliceRun.py new file mode 100644 index 0000000000..e18fb98af8 --- /dev/null +++ b/Cura/util/sliceRun.py @@ -0,0 +1,120 @@ +from __future__ import absolute_import + +import platform, os, subprocess, sys + +from cura_sf.skeinforge_application.skeinforge_utilities import skeinforge_craft +from util import profile + +def getPyPyExe(): + "Return the path to the pypy executable if we can find it. Else return False" + if platform.system() == "Windows": + exeName = "pypy.exe" + pypyExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../pypy/pypy.exe")); + else: + exeName = "pypy" + pypyExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../pypy/bin/pypy")); + if os.path.exists(pypyExe): + return pypyExe + + path = os.environ['PATH'] + paths = path.split(os.pathsep) + for p in paths: + pypyExe = os.path.join(p, exeName) + if os.path.exists(pypyExe): + return pypyExe + return False + +def getSlic3rExe(): + "Return the path to the pypy executable if we can find it. Else return False" + if platform.system() == "Windows": + exeName = "slic3r.exe" + slic3rExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../Slic3r/bin/slic3r.exe")); + else: + exeName = "slic3r" + slic3rExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../Slic3r/bin/slic3r")); + if os.path.exists(slic3rExe): + return slic3rExe + + path = os.environ['PATH'] + paths = path.split(os.pathsep) + for p in paths: + slic3rExe = os.path.join(p, exeName) + if os.path.exists(slic3rExe): + return slic3rExe + return False + +def runSlice(fileNames): + "Run the slicer on the files. If we are running with PyPy then just do the slicing action. If we are running as Python, try to find pypy." + pypyExe = getPyPyExe() + for fileName in fileNames: + if platform.python_implementation() == "PyPy": + skeinforge_craft.writeOutput(fileName) + elif pypyExe == False: + print "************************************************" + print "* Failed to find pypy, so slicing with python! *" + print "************************************************" + skeinforge_craft.writeOutput(fileName) + print "************************************************" + print "* Failed to find pypy, so sliced with python! *" + print "************************************************" + else: + subprocess.call([pypyExe, os.path.join(sys.path[0], sys.argv[0]), fileName]) + +def getSliceCommand(filename): + if profile.getPreference('slicer').startswith('Slic3r'): + slic3rExe = getSlic3rExe() + if slic3rExe == False: + return False + cmd = [slic3rExe, + '--output-filename-format', '[input_filename_base]_export.gcode', + '--nozzle-diameter', str(profile.calculateEdgeWidth()), + '--print-center', '%s,%s' % (profile.getProfileSetting('machine_center_x'), profile.getProfileSetting('machine_center_y')), + '--z-offset', '0', + '--gcode-flavor', 'reprap', + '--gcode-comments', + '--filament-diameter', profile.getProfileSetting('filament_diameter'), + '--extrusion-multiplier', str(1.0 / float(profile.getProfileSetting('filament_density'))), + '--temperature', profile.getProfileSetting('print_temperature'), + '--travel-speed', profile.getProfileSetting('travel_speed'), + '--perimeter-speed', profile.getProfileSetting('print_speed'), + '--small-perimeter-speed', profile.getProfileSetting('print_speed'), + '--infill-speed', profile.getProfileSetting('print_speed'), + '--solid-infill-speed', profile.getProfileSetting('print_speed'), + '--bridge-speed', profile.getProfileSetting('print_speed'), + '--bottom-layer-speed-ratio', str(float(profile.getProfileSetting('bottom_layer_speed')) / float(profile.getProfileSetting('print_speed'))), + '--layer-height', profile.getProfileSetting('layer_height'), + '--first-layer-height-ratio', '1.0', + '--infill-every-layers', '1', + '--perimeters', str(profile.calculateLineCount()), + '--solid-layers', str(profile.calculateSolidLayerCount()), + '--fill-density', str(float(profile.getProfileSetting('fill_density'))/100), + '--fill-angle', '45', + '--fill-pattern', 'rectilinear', + '--solid-fill-pattern', 'rectilinear', + '--start-gcode', profile.getAlterationFilePath('start.gcode'), + '--end-gcode', profile.getAlterationFilePath('end.gcode'), + '--retract-length', profile.getProfileSetting('retraction_amount'), + '--retract-speed', str(int(float(profile.getProfileSetting('retraction_speed')))), + '--retract-restart-extra', profile.getProfileSetting('retraction_extra'), + '--retract-before-travel', profile.getProfileSetting('retraction_min_travel'), + '--retract-lift', '0', + '--slowdown-below-layer-time', profile.getProfileSetting('cool_min_layer_time'), + '--min-print-speed', profile.getProfileSetting('cool_min_feedrate'), + '--skirts', profile.getProfileSetting('skirt_line_count'), + '--skirt-distance', str(int(float(profile.getProfileSetting('skirt_gap')))), + '--skirt-height', '1', + '--scale', profile.getProfileSetting('model_scale'), + '--rotate', profile.getProfileSetting('model_rotate_base'), + '--duplicate-x', profile.getProfileSetting('model_multiply_x'), + '--duplicate-y', profile.getProfileSetting('model_multiply_y'), + '--duplicate-distance', '10'] + if profile.getProfileSetting('support') != 'None': + cmd.extend(['--support-material']) + cmd.extend([filename]) + return cmd + else: + pypyExe = getPyPyExe() + if pypyExe == False: + pypyExe = sys.executable + return [pypyExe, os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", os.path.split(sys.argv[0])[1])), filename] + diff --git a/Cura/util/stl.py b/Cura/util/stl.py new file mode 100644 index 0000000000..05e759ea22 --- /dev/null +++ b/Cura/util/stl.py @@ -0,0 +1,87 @@ +from __future__ import absolute_import +import __init__ + +import sys +import math +import re +import os +import struct + +from util import util3d + +class stlFace(): + def __init__(self, v0, v1, v2): + self.v = [v0, v1, v2] + +class stlModel(): + def __init__(self): + self.faces = [] + self.vertexes = [] + + def load(self, filename): + f = open(filename, "rb") + if f.read(6).lower() == "solid ": + self._loadAscii(f) + if len(self.faces) < 1: + f.seek(6, os.SEEK_SET) + self._loadBinary(f) + else: + self._loadBinary(f) + f.close() + + def _loadAscii(self, f): + cnt = 0 + for line in f: + if 'vertex' in line: + data = line.split() + if cnt == 0: + v0 = util3d.Vector3(float(data[1]), float(data[2]), float(data[3])) + cnt = 1 + elif cnt == 1: + v1 = util3d.Vector3(float(data[1]), float(data[2]), float(data[3])) + cnt = 2 + elif cnt == 2: + v2 = util3d.Vector3(float(data[1]), float(data[2]), float(data[3])) + self.faces.append(stlFace(v0, v1, v2)) + self.vertexes.append(v0) + self.vertexes.append(v1) + self.vertexes.append(v2) + cnt = 0 + + def _loadBinary(self, f): + #Skip the header + f.read(80-6) + faceCount = struct.unpack('