summaryrefslogtreecommitdiff
path: root/mech
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2024-12-24 12:39:34 +0100
committerxengineering <me@xengineering.eu>2024-12-26 12:06:36 +0100
commitdb966c966929dd3abc29ebab7ce47d638ba4a94f (patch)
treeaf2b844a2938de1698712642261bc2f8aa52732a /mech
parent03d41e8069623b5d627dfb298c471a16c380c91d (diff)
downloadsoundbox-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 'mech')
-rw-r--r--mech/assembly.scad18
-rw-r--r--mech/mech.mk17
-rw-r--r--mech/panel_front.scad70
-rw-r--r--mech/parameters.scad21
-rw-r--r--mech/pcb_case/bolt.scad13
-rw-r--r--mech/pcb_case/conversion.scad8
-rw-r--r--mech/pcb_case/nut.scad7
-rw-r--r--mech/pcb_case/panel.scad28
-rw-r--r--mech/pcb_case/pcb.scad14
-rw-r--r--mech/pcb_case/rounded_cube.scad12
-rw-r--r--mech/pcb_case/shell.scad116
-rw-r--r--mech/pcb_case/spacer.scad10
-rw-r--r--mech/pcb_case/tolerance_tests.scad86
-rw-r--r--mech/production.scad38
-rw-r--r--mech/prusa-slicer/anycubic_i3_mega_s.ini331
15 files changed, 0 insertions, 789 deletions
diff --git a/mech/assembly.scad b/mech/assembly.scad
deleted file mode 100644
index 756e539..0000000
--- a/mech/assembly.scad
+++ /dev/null
@@ -1,18 +0,0 @@
-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/mech/mech.mk b/mech/mech.mk
deleted file mode 100644
index ca39a7c..0000000
--- a/mech/mech.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-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/mech/panel_front.scad b/mech/panel_front.scad
deleted file mode 100644
index da06927..0000000
--- a/mech/panel_front.scad
+++ /dev/null
@@ -1,70 +0,0 @@
-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/mech/parameters.scad b/mech/parameters.scad
deleted file mode 100644
index 9fda8b4..0000000
--- a/mech/parameters.scad
+++ /dev/null
@@ -1,21 +0,0 @@
-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/mech/pcb_case/bolt.scad b/mech/pcb_case/bolt.scad
deleted file mode 100644
index 4c26c30..0000000
--- a/mech/pcb_case/bolt.scad
+++ /dev/null
@@ -1,13 +0,0 @@
-// 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/mech/pcb_case/conversion.scad b/mech/pcb_case/conversion.scad
deleted file mode 100644
index 69c3c3b..0000000
--- a/mech/pcb_case/conversion.scad
+++ /dev/null
@@ -1,8 +0,0 @@
-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/mech/pcb_case/nut.scad b/mech/pcb_case/nut.scad
deleted file mode 100644
index 0768b6a..0000000
--- a/mech/pcb_case/nut.scad
+++ /dev/null
@@ -1,7 +0,0 @@
-nut_h = 3;
-nut_d = 4.15;
-nut_d_tol = 0.2;
-
-module nut() {
- cylinder(d=nut_d,h=nut_h);
-}
diff --git a/mech/pcb_case/panel.scad b/mech/pcb_case/panel.scad
deleted file mode 100644
index eef0b28..0000000
--- a/mech/pcb_case/panel.scad
+++ /dev/null
@@ -1,28 +0,0 @@
-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/mech/pcb_case/pcb.scad b/mech/pcb_case/pcb.scad
deleted file mode 100644
index 7b24131..0000000
--- a/mech/pcb_case/pcb.scad
+++ /dev/null
@@ -1,14 +0,0 @@
-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/mech/pcb_case/rounded_cube.scad b/mech/pcb_case/rounded_cube.scad
deleted file mode 100644
index acd50e7..0000000
--- a/mech/pcb_case/rounded_cube.scad
+++ /dev/null
@@ -1,12 +0,0 @@
-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/mech/pcb_case/shell.scad b/mech/pcb_case/shell.scad
deleted file mode 100644
index 18139f6..0000000
--- a/mech/pcb_case/shell.scad
+++ /dev/null
@@ -1,116 +0,0 @@
-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/mech/pcb_case/spacer.scad b/mech/pcb_case/spacer.scad
deleted file mode 100644
index e7eba3a..0000000
--- a/mech/pcb_case/spacer.scad
+++ /dev/null
@@ -1,10 +0,0 @@
-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/mech/pcb_case/tolerance_tests.scad b/mech/pcb_case/tolerance_tests.scad
deleted file mode 100644
index 94911cd..0000000
--- a/mech/pcb_case/tolerance_tests.scad
+++ /dev/null
@@ -1,86 +0,0 @@
-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/mech/production.scad b/mech/production.scad
deleted file mode 100644
index 5d04fbd..0000000
--- a/mech/production.scad
+++ /dev/null
@@ -1,38 +0,0 @@
-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/mech/prusa-slicer/anycubic_i3_mega_s.ini b/mech/prusa-slicer/anycubic_i3_mega_s.ini
deleted file mode 100644
index 10abab4..0000000
--- a/mech/prusa-slicer/anycubic_i3_mega_s.ini
+++ /dev/null
@@ -1,331 +0,0 @@
-# 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