diff options
author | xengineering <me@xengineering.eu> | 2024-12-24 12:39:34 +0100 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2024-12-26 12:06:36 +0100 |
commit | db966c966929dd3abc29ebab7ce47d638ba4a94f (patch) | |
tree | af2b844a2938de1698712642261bc2f8aa52732a /case | |
parent | 03d41e8069623b5d627dfb298c471a16c380c91d (diff) | |
download | soundbox-db966c966929dd3abc29ebab7ce47d638ba4a94f.tar soundbox-db966c966929dd3abc29ebab7ce47d638ba4a94f.tar.zst soundbox-db966c966929dd3abc29ebab7ce47d638ba4a94f.zip |
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.
Diffstat (limited to 'case')
-rw-r--r-- | case/assembly.scad | 18 | ||||
-rw-r--r-- | case/mech.mk | 17 | ||||
-rw-r--r-- | case/panel_front.scad | 70 | ||||
-rw-r--r-- | case/parameters.scad | 21 | ||||
-rw-r--r-- | case/pcb_case/bolt.scad | 13 | ||||
-rw-r--r-- | case/pcb_case/conversion.scad | 8 | ||||
-rw-r--r-- | case/pcb_case/nut.scad | 7 | ||||
-rw-r--r-- | case/pcb_case/panel.scad | 28 | ||||
-rw-r--r-- | case/pcb_case/pcb.scad | 14 | ||||
-rw-r--r-- | case/pcb_case/rounded_cube.scad | 12 | ||||
-rw-r--r-- | case/pcb_case/shell.scad | 116 | ||||
-rw-r--r-- | case/pcb_case/spacer.scad | 10 | ||||
-rw-r--r-- | case/pcb_case/tolerance_tests.scad | 86 | ||||
-rw-r--r-- | case/production.scad | 38 | ||||
-rw-r--r-- | case/prusa-slicer/anycubic_i3_mega_s.ini | 331 |
15 files changed, 789 insertions, 0 deletions
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 <parameters.scad> + +use <panel_front.scad> + +use <pcb_case/pcb.scad> +use <pcb_case/shell.scad> +use <pcb_case/panel.scad> + +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 <pcb_case/conversion.scad> +use <pcb_case/panel.scad> + +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 <pcb_case/bolt.scad> + +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 <bolt.scad> +include <nut.scad> + +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 <nut.scad> + +use <conversion.scad> +use <rounded_cube.scad> + +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 <bolt.scad> +include <nut.scad> + +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 <bolt.scad> +include <nut.scad> +include <panel.scad> + +use <conversion.scad> +use <rounded_cube.scad> + +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 <bolt.scad> + +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 <bolt.scad> +include <nut.scad> +include <panel.scad> + +use <rounded_cube.scad> + +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 <parameters.scad> + +use <panel_front.scad> + +use <pcb_case/conversion.scad> +use <pcb_case/shell.scad> +use <pcb_case/panel.scad> +use <pcb_case/spacer.scad> + +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 |