From db966c966929dd3abc29ebab7ce47d638ba4a94f Mon Sep 17 00:00:00 2001 From: xengineering Date: Tue, 24 Dec 2024 12:39:34 +0100 Subject: WIP: Move `mech` directory to `case` TODO: There are outdated references (see grep -R mech .) The directory name should reflect what is inside, not the field of engineering it belongs to. --- case/assembly.scad | 18 ++ case/mech.mk | 17 ++ case/panel_front.scad | 70 +++++++ case/parameters.scad | 21 ++ case/pcb_case/bolt.scad | 13 ++ case/pcb_case/conversion.scad | 8 + case/pcb_case/nut.scad | 7 + case/pcb_case/panel.scad | 28 +++ case/pcb_case/pcb.scad | 14 ++ case/pcb_case/rounded_cube.scad | 12 ++ case/pcb_case/shell.scad | 116 +++++++++++ case/pcb_case/spacer.scad | 10 + case/pcb_case/tolerance_tests.scad | 86 ++++++++ case/production.scad | 38 ++++ case/prusa-slicer/anycubic_i3_mega_s.ini | 331 +++++++++++++++++++++++++++++++ 15 files changed, 789 insertions(+) create mode 100644 case/assembly.scad create mode 100644 case/mech.mk create mode 100644 case/panel_front.scad create mode 100644 case/parameters.scad create mode 100644 case/pcb_case/bolt.scad create mode 100644 case/pcb_case/conversion.scad create mode 100644 case/pcb_case/nut.scad create mode 100644 case/pcb_case/panel.scad create mode 100644 case/pcb_case/pcb.scad create mode 100644 case/pcb_case/rounded_cube.scad create mode 100644 case/pcb_case/shell.scad create mode 100644 case/pcb_case/spacer.scad create mode 100644 case/pcb_case/tolerance_tests.scad create mode 100644 case/production.scad create mode 100644 case/prusa-slicer/anycubic_i3_mega_s.ini (limited to 'case') diff --git a/case/assembly.scad b/case/assembly.scad new file mode 100644 index 0000000..756e539 --- /dev/null +++ b/case/assembly.scad @@ -0,0 +1,18 @@ +include + +use + +use +use +use + +module assembly() { + pcb(pcb_dim, drillings, margins, t); + + pcb_case_shell_bottom(pcb_dim, drillings, margins, t); + pcb_case_shell_top(pcb_dim, margins, t); + pcb_case_panel_back(pcb_dim, margins, t); + panel_front(pcb_dim, margins, t); +} + +assembly(); diff --git a/case/mech.mk b/case/mech.mk new file mode 100644 index 0000000..ca39a7c --- /dev/null +++ b/case/mech.mk @@ -0,0 +1,17 @@ +PRINTER := anycubic_i3_mega_s +PRINTER_CONFIG := $(PRINTER:%=mech/prusa-slicer/%.ini) +MECH_BUILD_DIR := $(BUILD_DIR)/mech +PARTS := assembly production pcb_case/tolerance_tests +STL := $(PARTS:%=$(MECH_BUILD_DIR)/%.stl) +GCODE := $(PARTS:%=$(MECH_BUILD_DIR)/%.gcode) + +.PHONY: mech +mech: $(GCODE) $(STL) + +$(BUILD_DIR)/%.gcode: $(BUILD_DIR)/%.stl + mkdir -p $(dir $@) + prusa-slicer --load $(PRINTER_CONFIG) --output $@ --export-gcode $< + +$(BUILD_DIR)/%.stl: %.scad + mkdir -p $(dir $@) + openscad --hardwarnings --export-format binstl -o $@ $< diff --git a/case/panel_front.scad b/case/panel_front.scad new file mode 100644 index 0000000..da06927 --- /dev/null +++ b/case/panel_front.scad @@ -0,0 +1,70 @@ +use +use + +tol = 2; + +module panel_front(pcb_dim, margins, t) { + dim = dim_pcb_to_case(pcb_dim, margins, t); + x_off = dim[0]-2*t; + + difference() { + pcb_case_panel_front(pcb_dim, margins, t); + mini_hdmi_hole(pcb_dim, margins, t); + for(v=[ + [usb_max_y-usb_max_delta_y-tol/2, 0.75*t], + [usb_max_y-usb_delta_y-tol/2, t] + ]) { + translate([0, v[0], 0]) { + micro_usb_hole(pcb_dim, margins, t, v[1]); + } + } + for(y = [cinch_min_y+0.5*cinch_d, cinch_min_y+1.5*cinch_d+cinch_delta_y]) { + translate([0, y, 0]) { + cinch_hole(pcb_dim, margins, t); + } + } + } +} + +hdmi_delta_y = 11.8; +hdmi_delta_z = 3.9; +hdmi_max_y = 31.7; +hdmi_max_z = 13.7; +module mini_hdmi_hole(pcb_dim, margins, t) { + case_dim = dim_pcb_to_case(pcb_dim, margins, t); + translate([ + case_dim[0]-2*t, + hdmi_max_y-hdmi_delta_y-tol/2, + hdmi_max_z-hdmi_delta_z-tol/2]) { + cube([t, hdmi_delta_y+tol, hdmi_delta_z+tol]); + } +} + +usb_delta_y = 8; +usb_max_delta_y = 20.6; +usb_delta_z = 3; +usb_max_y = 71.55; +usb_max_z = 12.7; +module micro_usb_hole(pcb_dim, margins, t, dx) { + echo(dx); + case_dim = dim_pcb_to_case(pcb_dim, margins, t); + translate([ + case_dim[0]-2*t, + 0, + usb_max_z-usb_delta_z-tol/2]) { + cube([dx, usb_delta_y+tol, usb_delta_z+tol]); + } +} + +cinch_d = 8.3; +cinch_min_y = 45; +cinch_delta_y = 8.2; +cinch_max_z = 34.25; +module cinch_hole(pcb_dim, margins, t) { + case_dim = dim_pcb_to_case(pcb_dim, margins, t); + translate([case_dim[0]-2*t, 0, cinch_max_z-cinch_d/2]) { + rotate([0, 90, 0]) { + cylinder(d=cinch_d+tol, h=t, $fn=30); + } + } +} diff --git a/case/parameters.scad b/case/parameters.scad new file mode 100644 index 0000000..9fda8b4 --- /dev/null +++ b/case/parameters.scad @@ -0,0 +1,21 @@ +include + +t = 1.65; + +pcb_dim = [30, 65, 1.4]; + +margins = [ + [1, 0.3], + [3.6, 1.7], + [bolt_l-t-pcb_dim[2], 27] +]; + +base_drilling = [3.5, 3.5]; +dx = [23, 0]; +dy = [0, 58]; +drillings = [ + base_drilling, + base_drilling + dx, + base_drilling + dy, + base_drilling + dx + dy +]; diff --git a/case/pcb_case/bolt.scad b/case/pcb_case/bolt.scad new file mode 100644 index 0000000..4c26c30 --- /dev/null +++ b/case/pcb_case/bolt.scad @@ -0,0 +1,13 @@ +// bolt based on ISO 4762 (https://www.fasteners.eu/us/standards/ISO/4762) +bolt_k = 3; +bolt_l = 10; +bolt_dk = 5.5; +bolt_ds = 3; +bolt_ds_tol = 0.45; + +module bolt() { + union() { + cylinder(d=bolt_ds, h=bolt_l, $fn=30); + translate([0, 0, -bolt_ds]) cylinder(d=bolt_dk, h=bolt_ds, $fn=30); + } +} diff --git a/case/pcb_case/conversion.scad b/case/pcb_case/conversion.scad new file mode 100644 index 0000000..69c3c3b --- /dev/null +++ b/case/pcb_case/conversion.scad @@ -0,0 +1,8 @@ +include +include + +function dim_pcb_to_case(pcb_dim, margins, t) = [ + pcb_dim[0]+margins[0][0]+margins[0][1]+4*t, + pcb_dim[1]+margins[1][0]+margins[1][1]+2*t+2*(bolt_l-t), + pcb_dim[2]+margins[2][0]+margins[2][1]+4*t +]; diff --git a/case/pcb_case/nut.scad b/case/pcb_case/nut.scad new file mode 100644 index 0000000..0768b6a --- /dev/null +++ b/case/pcb_case/nut.scad @@ -0,0 +1,7 @@ +nut_h = 3; +nut_d = 4.15; +nut_d_tol = 0.2; + +module nut() { + cylinder(d=nut_d,h=nut_h); +} diff --git a/case/pcb_case/panel.scad b/case/pcb_case/panel.scad new file mode 100644 index 0000000..eef0b28 --- /dev/null +++ b/case/pcb_case/panel.scad @@ -0,0 +1,28 @@ +include + +use +use + +panel_dim_0_tol = 0.3; +panel_dim_1_2_tol = 0.45; + +module pcb_case_panel(pcb_dim, margins, t) { + dim = dim_pcb_to_case(pcb_dim, margins, t); + + rounded_cube( + dim=[t, dim[1]-2*t, dim[2]-2*t], + radius=t + ); +} + +module pcb_case_panel_back(pcb_dim, margins, t) { + translate([t, t, t]) + pcb_case_panel(pcb_dim, margins, t); +} + +module pcb_case_panel_front(pcb_dim, margins, t) { + dim = dim_pcb_to_case(pcb_dim, margins, t); + + translate([dim[0]-2*t, t, t]) + pcb_case_panel(pcb_dim, margins, t); +} diff --git a/case/pcb_case/pcb.scad b/case/pcb_case/pcb.scad new file mode 100644 index 0000000..7b24131 --- /dev/null +++ b/case/pcb_case/pcb.scad @@ -0,0 +1,14 @@ +include +include + +module pcb(dim, drillings, margins, t) { + translate([2*t+margins[0][0], bolt_l+margins[1][0], t+margins[2][0]]) { + difference() { + cube([dim[0], dim[1], dim[2]]); + for (drilling = drillings) { + translate([drilling[0], drilling[1], 0]) + cylinder(d=3, h=dim[2], $fn=30); + } + } + } +} diff --git a/case/pcb_case/rounded_cube.scad b/case/pcb_case/rounded_cube.scad new file mode 100644 index 0000000..acd50e7 --- /dev/null +++ b/case/pcb_case/rounded_cube.scad @@ -0,0 +1,12 @@ +module rounded_cube(dim, radius) { + range_y = [radius, dim[1]-radius]; + range_z = [radius, dim[2]-radius]; + height = dim[0]; + + hull() { + for (y=range_y, z=range_z) { + translate([0,y,z]) rotate([0,90,0]) + cylinder(r=radius, h=height, $fn=30); + } + } +} diff --git a/case/pcb_case/shell.scad b/case/pcb_case/shell.scad new file mode 100644 index 0000000..18139f6 --- /dev/null +++ b/case/pcb_case/shell.scad @@ -0,0 +1,116 @@ +include +include +include + +use +use + +module shell_base(pcb_dim, margins, t) { + dim = dim_pcb_to_case(pcb_dim, margins, t); + + difference() { + // full body + rounded_cube(dim=dim, radius=t); + + // cut away upper half + translate([0,0,dim[2]/2]) + cube([dim[0], dim[1], dim[2]/2]); + + // main PCB space + translate([3*t, t, t]) + rounded_cube([dim[0]-6*t, dim[1]-2*t, dim[2]-2*t], t); + + // remove front and back + translate([0, 2*t, 2*t]) + rounded_cube([dim[0], dim[1]-4*t, dim[2]-4*t], t); + + // panel holder + for (x_off = [t-panel_dim_0_tol/2, dim[0]-2*t-panel_dim_0_tol/2]) { + translate([x_off, t-panel_dim_0_tol/2, t-panel_dim_0_tol/2]) { + rounded_cube( + [ + t+panel_dim_0_tol, + dim[1]-2*t+panel_dim_1_2_tol, + dim[2]-2*t+panel_dim_1_2_tol + ], + t + ); + } + } + + // bolt drillings + for (x = [dim[0]/4, dim[0]-dim[0]/4]) { + translate([x,0,dim[2]/2-1.5*bolt_ds]) + rotate([-90,0,0]) + cylinder(d=bolt_ds+bolt_ds_tol, h=1.1*t, $fn=30); + } + } +} + +module shell_connector(pcb_dim, margins, t) { + dim = dim_pcb_to_case(pcb_dim, margins, t); + + size_x = dim[0]-6*t; + size_y = bolt_l-t; + size_z = dim[2]/2+3*bolt_ds; + + difference () { + // base body + translate([3*t,dim[1]-t-size_y,0]) + cube([size_x,size_y,size_z]); + + // bolt holes + for (x = [dim[0]/4, dim[0]-dim[0]/4]) { + translate([x,dim[1]-t,dim[2]/2+1.5*bolt_ds]) + rotate([90,0,0]) + cylinder(d=bolt_ds+bolt_ds_tol, h=size_y, $fn=30); + } + + // nut holes + for (x = [dim[0]/4, dim[0]-dim[0]/4]) { + translate([x, dim[1]-t-size_y, dim[2]/2+1.5*bolt_ds]) + rotate([-90,0,0]) + cylinder(d=nut_d+nut_d_tol, h=nut_h, $fn=30); + } + } + + echo(min_shell_bolt_length=t+size_y); +} + +module pcb_case_shell(pcb_dim, drillings, margins, t) { + difference () { + union() { + shell_base(pcb_dim, margins, t); + shell_connector(pcb_dim, margins, t); + for (drilling = drillings) { + translate([ + 2*t+margins[0][0]+drilling[0], + bolt_l+margins[1][0]+drilling[1], + 0 + ]) cylinder(d=nut_d+2, h=t+margins[2][0], $fn=30); + } + } + for (drilling = drillings) { + translate([ + 2*t+margins[0][0]+drilling[0], + bolt_l+margins[1][0]+drilling[1], + 0 + ]) { + cylinder(d=bolt_ds+bolt_ds_tol, h=t+margins[2][0], $fn=30); + cylinder(d=nut_d+nut_d_tol, h=nut_h, $fn=30); + } + } + } +} + +module pcb_case_shell_bottom(pcb_dim, drillings, margins, t) { + pcb_case_shell(pcb_dim, drillings, margins, t); +} + +module pcb_case_shell_top(pcb_dim, margins, t) { + dim = dim_pcb_to_case(pcb_dim, margins, t); + + translate([0, dim[1], dim[2]]) + rotate([180,0,0]) + pcb_case_shell(pcb_dim, [], margins, t); +} diff --git a/case/pcb_case/spacer.scad b/case/pcb_case/spacer.scad new file mode 100644 index 0000000..e7eba3a --- /dev/null +++ b/case/pcb_case/spacer.scad @@ -0,0 +1,10 @@ +include + +spacer_h = 11; + +module spacer() { + difference() { + cylinder(d=bolt_dk, h=spacer_h, $fn=30); + cylinder(d=bolt_ds+bolt_ds_tol, h=spacer_h, $fn=30); + } +} diff --git a/case/pcb_case/tolerance_tests.scad b/case/pcb_case/tolerance_tests.scad new file mode 100644 index 0000000..94911cd --- /dev/null +++ b/case/pcb_case/tolerance_tests.scad @@ -0,0 +1,86 @@ +include +include +include + +use + +t = 2; +step_width = 0.15; + +module bolt_drilling() { + steps = 2; + + for(i = [-steps : steps]) { + tol = bolt_ds_tol + i * step_width; + echo(bolt_ds_tol=tol); + translate([i*5*bolt_ds,0,0]) + difference() { + cube([5*bolt_ds, 5*bolt_ds, t]); + translate([2.5*bolt_ds,2.5*bolt_ds,0]) { + cylinder(d=bolt_ds+tol,h=t,$fn=50); + } + } + } +} + +module nut_drilling() { + steps = 2; + + for(i = [-steps : steps]) { + tol = nut_d_tol + i * step_width; + echo(nut_d_tol=tol); + translate([i*5*nut_d,0,0]) + difference() { + cube([5*nut_d, 5*nut_d, 2*nut_h]); + translate([2.5*nut_d,2.5*nut_d,0]) { + union() { + cylinder(d=bolt_ds+bolt_ds_tol,h=2*nut_h,$fn=50); + translate([0,0,nut_h]) + cylinder(d=tol+nut_d,h=nut_h,$fn=50); + } + } + } + } +} + +module panel_thickness() { + steps = 2; + + height = 2*t; + + for(i = [-steps : steps]) { + tol = panel_dim_0_tol + i * step_width; + echo(panel_dim_0_tol=tol); + translate([i*5*t,0,0]) + difference() { + cube([5*t, 5*t, height]); + translate([2*t, 0, t]) { + cube([t+tol, 5*t, t]); + } + } + } +} + +module panel_width_height() { + steps = 2; + + height = 3*t; + + for(i = [-steps : steps]) { + tol = panel_dim_1_2_tol + i * step_width; + echo(panel_dim_1_2_tol=tol); + translate([i*3*t,0,0]) + difference() { + cube([3*t, 8*t, height]); + translate([t, t-tol/2, t]) { + rounded_cube([t+panel_dim_0_tol, 6*t+tol, 6*t+tol], t); + } + } + } +} + +bolt_drilling(); +translate([0, 20, 0]) nut_drilling(); +translate([0, 70, 0]) panel_thickness(); +translate([0, 50, 0]) panel_width_height(); +translate([0, 85, 0]) rotate([0, -90, 0]) rounded_cube([t, 6*t, 6*t], t); diff --git a/case/production.scad b/case/production.scad new file mode 100644 index 0000000..5d04fbd --- /dev/null +++ b/case/production.scad @@ -0,0 +1,38 @@ +include + +use + +use +use +use +use + +module production() { + dim = dim_pcb_to_case(pcb_dim, margins, t); + spacing = 5; + + pcb_case_shell_bottom(pcb_dim, drillings, margins, t); + + translate([-spacing, 0, 0]) + rotate([0, 180, 0]) + translate([0, 0, -dim[2]]) + pcb_case_shell_top(pcb_dim, margins, t); + + translate([-spacing, dim[1]+spacing, 0]) + rotate([0, -90, 0]) + translate([-t, -t, -t]) + pcb_case_panel_back(pcb_dim, margins, t); + + translate([0, dim[1]+spacing, t]) + rotate([0, 90, 0]) + translate([2*t-dim[0], -t, -t]) + panel_front(pcb_dim, margins, t); + + for(i = [0:3]) { + translate([dim[0]+bolt_dk/2+spacing, bolt_dk/2+i*(bolt_dk+spacing), 0]) { + spacer(); + } + } +} + +production(); diff --git a/case/prusa-slicer/anycubic_i3_mega_s.ini b/case/prusa-slicer/anycubic_i3_mega_s.ini new file mode 100644 index 0000000..10abab4 --- /dev/null +++ b/case/prusa-slicer/anycubic_i3_mega_s.ini @@ -0,0 +1,331 @@ +# generated by PrusaSlicer 2.7.1 on 2023-12-23 at 18:21:27 UTC +arc_fitting = disabled +autoemit_temperature_commands = 1 +avoid_crossing_curled_overhangs = 0 +avoid_crossing_perimeters = 0 +avoid_crossing_perimeters_max_detour = 0 +bed_custom_model = +bed_custom_texture = +bed_shape = 0x0,210x0,210x210,0x210 +bed_temperature = 60 +before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z] +between_objects_gcode = +binary_gcode = 0 +bottom_fill_pattern = monotonic +bottom_solid_layers = 5 +bottom_solid_min_thickness = 0.5 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_fan_speed = 100 +bridge_flow_ratio = 1 +bridge_speed = 25 +brim_separation = 0 +brim_type = outer_only +brim_width = 0 +color_change_gcode = M600 +colorprint_heights = +compatible_printers_condition_cummulative = "printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_I3_MEGA.*/ and nozzle_diameter[0]==0.4";"printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_I3_MEGA.*/" +complete_objects = 0 +cooling = 1 +cooling_tube_length = 5 +cooling_tube_retraction = 91.5 +default_acceleration = 1000 +default_filament_profile = "Generic PLA @MEGA" +default_print_profile = 0.15mm QUALITY @MEGA +deretract_speed = 50 +disable_fan_first_layers = 1 +dont_support_bridges = 1 +draft_shield = disabled +duplicate_distance = 6 +elefant_foot_compensation = 0 +enable_dynamic_fan_speeds = 0 +enable_dynamic_overhang_speeds = 0 +end_filament_gcode = "; Filament-specific end gcode" +end_gcode = G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < max_print_height} Z{z_offset+min(max_layer_z+30, max_print_height)}{endif} E-34.0 F720 ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F3000 ; park print head\nM84 ; disable motors +external_perimeter_acceleration = 0 +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 40 +external_perimeters_first = 0 +extra_loading_move = -2 +extra_perimeters = 1 +extra_perimeters_on_overhangs = 0 +extruder_clearance_height = 35 +extruder_clearance_radius = 60 +extruder_colour = #808080 +extruder_offset = 0x0 +extrusion_axis = E +extrusion_multiplier = 1 +extrusion_width = 0.45 +fan_always_on = 1 +fan_below_layer_time = 100 +filament_colour = #FF3232 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 4 +filament_cost = 25.4 +filament_density = 1.24 +filament_deretract_speed = nil +filament_diameter = 1.75 +filament_load_time = 0 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_max_volumetric_speed = 10 +filament_minimal_purge_on_wipe_tower = 15 +filament_multitool_ramming = 0 +filament_multitool_ramming_flow = 10 +filament_multitool_ramming_volume = 10 +filament_notes = "" +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_retract_before_travel = nil +filament_retract_before_wipe = nil +filament_retract_layer_change = nil +filament_retract_length = nil +filament_retract_length_toolchange = nil +filament_retract_lift = nil +filament_retract_lift_above = nil +filament_retract_lift_below = nil +filament_retract_restart_extra = nil +filament_retract_restart_extra_toolchange = nil +filament_retract_speed = nil +filament_settings_id = "Generic PLA @MEGA" +filament_soluble = 0 +filament_spool_weight = 0 +filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil +filament_type = PLA +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +filament_vendor = Generic +filament_wipe = nil +fill_angle = 45 +fill_density = 15% +fill_pattern = gyroid +first_layer_acceleration = 800 +first_layer_acceleration_over_raft = 0 +first_layer_bed_temperature = 65 +first_layer_extrusion_width = 0.42 +first_layer_height = 0.2 +first_layer_speed = 20 +first_layer_speed_over_raft = 30 +first_layer_temperature = 215 +full_fan_speed_layer = 0 +fuzzy_skin = none +fuzzy_skin_point_dist = 0.8 +fuzzy_skin_thickness = 0.3 +gap_fill_enabled = 1 +gap_fill_speed = 40 +gcode_comments = 0 +gcode_flavor = marlin +gcode_label_objects = octoprint +gcode_resolution = 0.0125 +gcode_substitutions = +high_current_on_filament_swap = 0 +host_type = prusalink +idle_temperature = nil +infill_acceleration = 1000 +infill_anchor = 2.5 +infill_anchor_max = 12 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.45 +infill_first = 0 +infill_overlap = 25% +infill_speed = 60 +interface_shells = 0 +ironing = 0 +ironing_flowrate = 15% +ironing_spacing = 0.1 +ironing_speed = 15 +ironing_type = top +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +layer_height = 0.15 +machine_limits_usage = time_estimate_only +machine_max_acceleration_e = 10000 +machine_max_acceleration_extruding = 1250 +machine_max_acceleration_retracting = 1250 +machine_max_acceleration_travel = 1500,1250 +machine_max_acceleration_x = 3000 +machine_max_acceleration_y = 2000 +machine_max_acceleration_z = 60 +machine_max_feedrate_e = 30 +machine_max_feedrate_x = 500 +machine_max_feedrate_y = 500 +machine_max_feedrate_z = 8 +machine_max_jerk_e = 5 +machine_max_jerk_x = 10 +machine_max_jerk_y = 10 +machine_max_jerk_z = 0.4 +machine_min_extruding_rate = 0,0 +machine_min_travel_rate = 0,0 +max_fan_speed = 100 +max_layer_height = 0.36 +max_print_height = 205 +max_print_speed = 100 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_bead_width = 85% +min_fan_speed = 100 +min_feature_size = 25% +min_layer_height = 0.07 +min_print_speed = 15 +min_skirt_length = 4 +mmu_segmented_region_interlocking_depth = 0 +mmu_segmented_region_max_width = 0 +notes = +nozzle_diameter = 0.4 +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode +overhang_fan_speed_0 = 0 +overhang_fan_speed_1 = 0 +overhang_fan_speed_2 = 0 +overhang_fan_speed_3 = 0 +overhang_speed_0 = 15 +overhang_speed_1 = 15 +overhang_speed_2 = 20 +overhang_speed_3 = 25 +overhangs = 1 +parking_pos_retraction = 92 +pause_print_gcode = M601 +perimeter_acceleration = 800 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_generator = arachne +perimeter_speed = 50 +perimeters = 2 +physical_printer_settings_id = +post_process = +print_host = +print_settings_id = 0.15mm QUALITY @MEGA +printer_model = I3MEGAS +printer_notes = Do not remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_I3_MEGA_S\nPRINTER_HAS_BOWDEN +printer_settings_id = Anycubic i3 Mega S +printer_technology = FFF +printer_variant = 0.4 +printer_vendor = +printhost_apikey = +printhost_cafile = +raft_contact_distance = 0.1 +raft_expansion = 1.5 +raft_first_layer_density = 90% +raft_first_layer_expansion = 3 +raft_layers = 0 +remaining_times = 1 +resolution = 0 +retract_before_travel = 1.5 +retract_before_wipe = 60% +retract_layer_change = 1 +retract_length = 6 +retract_length_toolchange = 10 +retract_lift = 0.075 +retract_lift_above = 0 +retract_lift_below = 204 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 40 +seam_position = nearest +silent_mode = 0 +single_extruder_multi_material = 0 +single_extruder_multi_material_priming = 1 +skirt_distance = 2 +skirt_height = 3 +skirts = 1 +slice_closing_radius = 0.049 +slicing_mode = regular +slowdown_below_layer_time = 20 +small_perimeter_speed = 25 +solid_infill_acceleration = 0 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 50 +spiral_vase = 0 +staggered_inner_seams = 0 +standby_temperature_delta = -5 +start_filament_gcode = "; Filament gcode\n" +start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0 +support_material = 0 +support_material_angle = 0 +support_material_auto = 1 +support_material_bottom_contact_distance = 0 +support_material_bottom_interface_layers = -1 +support_material_buildplate_only = 0 +support_material_closing_radius = 2 +support_material_contact_distance = 0.1 +support_material_enforce_layers = 0 +support_material_extruder = 1 +support_material_extrusion_width = 0.35 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 1 +support_material_interface_layers = 2 +support_material_interface_pattern = rectilinear +support_material_interface_spacing = 0.2 +support_material_interface_speed = 80% +support_material_pattern = rectilinear +support_material_spacing = 2 +support_material_speed = 50 +support_material_style = grid +support_material_synchronize_layers = 0 +support_material_threshold = 50 +support_material_with_sheath = 1 +support_material_xy_spacing = 60% +support_tree_angle = 40 +support_tree_angle_slow = 25 +support_tree_branch_diameter = 2 +support_tree_branch_diameter_angle = 5 +support_tree_branch_diameter_double_wall = 3 +support_tree_branch_distance = 1 +support_tree_tip_diameter = 0.8 +support_tree_top_rate = 15% +temperature = 210 +template_custom_gcode = +thick_bridges = 1 +thin_walls = 0 +thumbnails = 16x16,220x124 +thumbnails_format = PNG +toolchange_gcode = +top_fill_pattern = monotonic +top_infill_extrusion_width = 0.4 +top_solid_infill_acceleration = 0 +top_solid_infill_speed = 40 +top_solid_layers = 7 +top_solid_min_thickness = 0.7 +travel_acceleration = 0 +travel_lift_before_obstacle = 0 +travel_max_lift = 0 +travel_ramping_lift = 0 +travel_slope = 0 +travel_speed = 180 +travel_speed_z = 0 +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wall_distribution_count = 1 +wall_transition_angle = 10 +wall_transition_filter_deviation = 25% +wall_transition_length = 100% +wipe = 1 +wipe_into_infill = 0 +wipe_into_objects = 0 +wipe_tower = 0 +wipe_tower_bridging = 10 +wipe_tower_brim_width = 2 +wipe_tower_cone_angle = 0 +wipe_tower_extra_spacing = 100% +wipe_tower_extruder = 0 +wipe_tower_no_sparse_layers = 0 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +wiping_volumes_extruders = 70,70 +wiping_volumes_matrix = 0 +xy_size_compensation = 0 +z_offset = 0 -- cgit v1.2.3-70-g09d2