def sub_canvas_graphics(ai_rotation_direction, ai_angle_position):
    r_canvas_graphics = []
    r_canvas_graphics.append(("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc, "tkinter"), "red", 1))
    r_canvas_graphics.append(
        ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_x_shifted, "tkinter"), "red", 1)
    )
    r_canvas_graphics.append(
        ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_y_shifted, "tkinter"), "red", 1)
    )
    turning_outline = cnc25d_api.outline_rotate(
        my_outline_for_cnc_xy_shifted, big_length * 4, big_length * 4, ai_angle_position
    )
    r_canvas_graphics.append(("graphic_lines", cnc25d_api.outline_arc_line(turning_outline, "tkinter"), "red", 1))
    r_canvas_graphics.append(
        ("overlay_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_rotated, "tkinter"), "green", 2)
    )
    r_canvas_graphics.append(
        ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_closed, "tkinter"), "blue", 1)
    )
    r_canvas_graphics.append(
        ("graphic_lines", cnc25d_api.outline_arc_line(my_outline_for_cnc_reverse, "tkinter"), "blue", 1)
    )
    # r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_circle((100,100), 40, 'tkinter'), 'orange', 1)) # create a circle (obsolete)
    r_canvas_graphics.append(
        ("overlay_lines", cnc25d_api.outline_arc_line((100, 100, 40), "tkinter"), "orange", 1)
    )  # create a circle
    r_canvas_graphics.append(("overlay_lines", cnc25d_api.outline_arc_line(my_curve, "tkinter"), "green", 2))
    r_canvas_graphics.append(("graphic_lines", cnc25d_api.outline_arc_line(my_curve_for_cnc, "tkinter"), "blue", 1))
    return r_canvas_graphics
Exemplo n.º 2
0
def sub_canvas_graphics(ai_rotation_direction, ai_angle_position):
  r_canvas_graphics = []
  r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc, 'tkinter'), 'red', 1))
  r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_x_shifted, 'tkinter'), 'red', 1))
  r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_y_shifted, 'tkinter'), 'red', 1))
  turning_outline = cnc25d_api.outline_rotate(my_outline_for_cnc_xy_shifted, big_length*4, big_length*4, ai_angle_position)
  r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(turning_outline, 'tkinter'), 'red', 1))
  r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_rotated, 'tkinter'), 'green', 2))
  r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_closed, 'tkinter'), 'blue', 1))
  r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_outline_for_cnc_reverse, 'tkinter'), 'blue', 1))
  #r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_circle((100,100), 40, 'tkinter'), 'orange', 1)) # create a circle (obsolete)
  r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_arc_line((100, 100, 40), 'tkinter'), 'orange', 1)) # create a circle
  r_canvas_graphics.append(('overlay_lines', cnc25d_api.outline_arc_line(my_curve, 'tkinter'), 'green', 2))
  r_canvas_graphics.append(('graphic_lines', cnc25d_api.outline_arc_line(my_curve_for_cnc, 'tkinter'), 'blue', 1))
  return(r_canvas_graphics)
################################################################

## use the Cnc25D API function cnc_cut_outline to create a makable outline from the wished outline
# the second argument is just used to enhance the error, warning and debug messages
my_outline_for_cnc = cnc25d_api.cnc_cut_outline(my_outline, "api_example")
# other help functions to manipulate outlines
# outline_shift_x
my_outline_for_cnc_x_shifted = cnc25d_api.outline_shift_x(my_outline_for_cnc, big_length * 4, 1)
# outline_shift_y
my_outline_for_cnc_y_shifted = cnc25d_api.outline_shift_y(my_outline_for_cnc, big_length * 6, -1)
# outline_shift_xy
my_outline_for_cnc_xy_shifted = cnc25d_api.outline_shift_xy(
    my_outline_for_cnc, big_length * 4, 0.5, big_length * 4, 0.5
)
# outline_rotate
my_outline_for_cnc_rotated = cnc25d_api.outline_rotate(my_outline_for_cnc, big_length * 2, big_length * 2, math.pi / 4)
# outline_close
# it has no effect because the outline is already closed
# notice that the help functions to manipulate outlines can be used before or after applying the function cnc25d_api.cnc_cut_outline()
my_outline_for_cnc_closed = cnc25d_api.cnc_cut_outline(
    cnc25d_api.outline_close(cnc25d_api.outline_shift_x(my_outline, -1 * big_length, 0.25)), "api_example2"
)
# outline_reverse
# reverse the order of the segments. If the outline is closed, it changes the orientation from CW to CCW and vice versa
my_outline_for_cnc_reverse = cnc25d_api.cnc_cut_outline(
    cnc25d_api.outline_reverse(cnc25d_api.outline_shift_x(my_outline, -2 * big_length, 0.25)), "api_example3"
)
# curve
radian_precision = math.pi / 100
my_curve_for_cnc = cnc25d_api.smooth_outline_b_curve(my_curve, radian_precision, my_router_bit_radius, "api_example4")
Exemplo n.º 4
0
################################################################
# Combine your outline and your router_bit constraint
################################################################

## use the Cnc25D API function cnc_cut_outline to create a makable outline from the wished outline
# the second argument is just used to enhance the error, warning and debug messages
my_outline_for_cnc = cnc25d_api.cnc_cut_outline(my_outline, 'api_example')
# other help functions to manipulate outlines
#outline_shift_x
my_outline_for_cnc_x_shifted = cnc25d_api.outline_shift_x(my_outline_for_cnc, big_length*4, 1)
#outline_shift_y
my_outline_for_cnc_y_shifted = cnc25d_api.outline_shift_y(my_outline_for_cnc, big_length*6, -1)
#outline_shift_xy
my_outline_for_cnc_xy_shifted = cnc25d_api.outline_shift_xy(my_outline_for_cnc, big_length*4, 0.5, big_length*4, 0.5)
#outline_rotate
my_outline_for_cnc_rotated = cnc25d_api.outline_rotate(my_outline_for_cnc, big_length*2, big_length*2, math.pi/4)
#outline_close
# it has no effect because the outline is already closed
# notice that the help functions to manipulate outlines can be used before or after applying the function cnc25d_api.cnc_cut_outline()
my_outline_for_cnc_closed = cnc25d_api.cnc_cut_outline(cnc25d_api.outline_close(cnc25d_api.outline_shift_x(my_outline, -1*big_length, 0.25)), 'api_example2')
#outline_reverse
# reverse the order of the segments. If the outline is closed, it changes the orientation from CW to CCW and vice versa
my_outline_for_cnc_reverse = cnc25d_api.cnc_cut_outline(cnc25d_api.outline_reverse(cnc25d_api.outline_shift_x(my_outline, -2*big_length, 0.25)), 'api_example3')
# curve
radian_precision = math.pi/100
my_curve_for_cnc = cnc25d_api.smooth_outline_b_curve(my_curve, radian_precision, my_router_bit_radius, 'api_example4')

################################################################
# ********** Work at outline-level ***********
################################################################