print number of generated points

This commit is contained in:
Hendrik Schutter 2022-06-13 15:35:59 +02:00
parent 834341584d
commit ff49e082e8
2 changed files with 24 additions and 20 deletions

View File

@ -15,7 +15,7 @@ example_usage = "-i test_data/Test_H.svg -o test_data/test.gcode"
svg_shapes = set(['rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon', 'path'])
gcode_file_path = " "
def gcode_write(gcode):
def gcode_write(gcode_file, gcode):
if (debug):
for cmd in gcode.split("\n"):
if len(cmd):
@ -53,7 +53,8 @@ def read_input_file(svg_file_path):
print("unable to read svg file: \n" + str(e))
sys.exit(1)
def generate_gcode(svg_file_root_tree, gcode_file):
def generate_gcode(svg_file_root_tree, gcode_file):
generated_points_count = 0
width = svg_file_root_tree.get('width')
height = svg_file_root_tree.get('height')
if width == None or height == None:
@ -69,9 +70,9 @@ def generate_gcode(svg_file_root_tree, gcode_file):
print("[SVG loaded] With:" + str(width) + "mm Height:" + str(height) + "mm")
#generate start cmds's
gcode_write(preamble)
gcode_write(gcode_file, preamble)
num_points = 0
for elem in svg_file_root_tree.iter():
try:
_, tag_suffix = elem.tag.split('}')
@ -80,29 +81,30 @@ def generate_gcode(svg_file_root_tree, gcode_file):
if tag_suffix in svg_shapes:
shape_class = getattr(shapes_pkg, tag_suffix)
shape_obj = shape_class(elem)
d = shape_obj.d_path()
m = shape_obj.transformation_matrix()
obj_path = shape_obj.d_path()
obj_trans_matrix = shape_obj.transformation_matrix()
if d:
#gcode_file.write(shape_preamble)
p = point_generator(d, m, smoothness)
for x,y in p:
#print(";X: " + str(x) + " Y: " + str(y))
if obj_path:
gcode_write(gcode_file, "; == Start of " + tag_suffix + " ==\n")
points = point_generator(obj_path, obj_trans_matrix, smoothness)
num_points = 0
for x,y in points:
if (debug): print("[Point] X: " + str(x) + " Y: " + str(y))
if x > 0 and x < bed_max_x and y > 0 and y < bed_max_y:
gcode_file.write("G1 X%0.01f Y%0.01f\n" % (x, y))
gcode_write(gcode_file, "G1 X%0.001f Y%0.001f\n" % (x, y))
num_points += 1
if num_points == 1:
gcode_file.write("M3 I S150 ;start laser\n")
else:
if (num_points == 1):
gcode_write(gcode_file, "M3 I S150 ;start laser\n")
elif (debug):
print("\n; Coordinates out of range:", "G1 X%0.01f Y%0.01f" % (x, y))
print("; Raw:", str(x), str(y), "\nScaled:", str(x), str(y), "\n")
close_on_failure()
gcode_file.write("M5 ;stop laser\n")
num_points = 0
#gcode_file.write(shape_postamble)
gcode_write(gcode_file, "M5 ;stop laser\n")
gcode_write(gcode_file, "; == End of " + tag_suffix + " ==\n")
generated_points_count += num_points
gcode_file.write(postamble)
print("\nGenerated", num_points, "points")
gcode_write(gcode_file, postamble)
print("\nGenerated", generated_points_count, "points")
if __name__ == "__main__":
sys.setrecursionlimit(20000) #needed for svg's with more indepented paths

View File

@ -1,6 +1,7 @@
G90 ;Absolute programming
G21 ;Programming in millimeters (mm)
M5 ;Disable laser
; == Start of rect ==
G1 X0.1 Y0.1
M3 I S150 ;start laser
G1 X0.1 Y0.1
@ -9,5 +10,6 @@ G1 X9.9 Y9.9
G1 X0.1 Y9.9
G1 X0.1 Y0.1
M5 ;stop laser
; == End of rect ==
G1 X0.0 Y0.0; Display printbed
M02 ;End of program