From 7492122a5400d20e5923629d00bf25c616b69f3e Mon Sep 17 00:00:00 2001 From: Byeon Ho cheol Date: Wed, 23 Jan 2019 00:44:04 +0900 Subject: [PATCH] 4904 cubicon device (#4963) * Add Cubicon 3D Printer device profiles. - 3DP-110F - 3DP-210F - 3DP-310F Cubicon: http://www.3dcubicon.com/en/cubicon/ * Add missed profile file. * Remove platform mesh files. Do not necessary platform mesh in Cubicon devices. --- .../definitions/cubicon_3dp_110f.def.json | 42 ++++++++ .../definitions/cubicon_3dp_210f.def.json | 42 ++++++++ .../definitions/cubicon_3dp_310f.def.json | 42 ++++++++ resources/definitions/cubicon_common.def.json | 99 ++++++++++++++++++ .../cubicon_3dp_110f_extruder_0.def.json | 27 +++++ .../cubicon_3dp_210f_extruder_0.def.json | 27 +++++ .../cubicon_3dp_310f_extruder_0.def.json | 27 +++++ resources/images/cubicon_icon.png | Bin 0 -> 299054 bytes resources/images/cubicon_log.png | Bin 0 -> 8912 bytes 9 files changed, 306 insertions(+) create mode 100644 resources/definitions/cubicon_3dp_110f.def.json create mode 100644 resources/definitions/cubicon_3dp_210f.def.json create mode 100644 resources/definitions/cubicon_3dp_310f.def.json create mode 100644 resources/definitions/cubicon_common.def.json create mode 100644 resources/extruders/cubicon_3dp_110f_extruder_0.def.json create mode 100644 resources/extruders/cubicon_3dp_210f_extruder_0.def.json create mode 100644 resources/extruders/cubicon_3dp_310f_extruder_0.def.json create mode 100644 resources/images/cubicon_icon.png create mode 100644 resources/images/cubicon_log.png diff --git a/resources/definitions/cubicon_3dp_110f.def.json b/resources/definitions/cubicon_3dp_110f.def.json new file mode 100644 index 0000000000..8f7f2a48b0 --- /dev/null +++ b/resources/definitions/cubicon_3dp_110f.def.json @@ -0,0 +1,42 @@ +{ + "id": "3DP-110F", + "version": 2, + "name": "Cubicon Single", + "inherits": "cubicon_common", + "metadata": { + "author": "Cubicon R&D Center", + "manufacturer": "Cubicon", + "visible": true, + "file_formats": "text/x-gcode", + "platform": "", + "supports_usb_connection": false, + "machine_extruder_trains": { + "0": "cubicon_3dp_110f_extruder_0" + }, + "platform_offset": [ + 0, + -32.05, + -20 + ] + }, + "overrides": { + "machine_name": { + "default_value": "Cubicon Single" + }, + "machine_start_gcode": { + "default_value": "M911 3DP-110F\nM201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0" + }, + "machine_width": { + "default_value": 240 + }, + "machine_depth": { + "default_value": 190 + }, + "machine_height": { + "default_value": 200 + }, + "material_bed_temp_wait": { + "default_value": true + } + } +} \ No newline at end of file diff --git a/resources/definitions/cubicon_3dp_210f.def.json b/resources/definitions/cubicon_3dp_210f.def.json new file mode 100644 index 0000000000..852af1d4a0 --- /dev/null +++ b/resources/definitions/cubicon_3dp_210f.def.json @@ -0,0 +1,42 @@ +{ + "id": "3DP-210F", + "version": 2, + "name": "Cubicon Style", + "inherits": "cubicon_common", + "metadata": { + "author": "Cubicon R&D Center", + "manufacturer": "Cubicon", + "visible": true, + "file_formats": "text/x-gcode", + "platform": "", + "supports_usb_connection": false, + "machine_extruder_trains": { + "0": "cubicon_3dp_210f_extruder_0" + }, + "platform_offset": [ + 0, + -18.8, + 0 + ] + }, + "overrides": { + "machine_name": { + "default_value": "Cubicon Style" + }, + "machine_start_gcode": { + "default_value": "M911 3DP-210F\nM201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0" + }, + "machine_width": { + "default_value": 150 + }, + "machine_depth": { + "default_value": 150 + }, + "machine_height": { + "default_value": 150 + }, + "material_bed_temp_wait":{ + "default_value": false + } + } +} \ No newline at end of file diff --git a/resources/definitions/cubicon_3dp_310f.def.json b/resources/definitions/cubicon_3dp_310f.def.json new file mode 100644 index 0000000000..e58849fba5 --- /dev/null +++ b/resources/definitions/cubicon_3dp_310f.def.json @@ -0,0 +1,42 @@ +{ + "id": "3DP-310F", + "version": 2, + "name": "Cubicon Single Plus", + "inherits": "cubicon_common", + "metadata": { + "author": "Cubicon R&D Center", + "manufacturer": "Cubicon", + "visible": true, + "file_formats": "text/x-gcode", + "platform": "", + "supports_usb_connection": false, + "machine_extruder_trains": { + "0": "cubicon_3dp_310f_extruder_0" + }, + "platform_offset": [ + 0, + -32.05, + -20 + ] + }, + "overrides": { + "machine_name": { + "default_value": "Cubicon Single Plus" + }, + "machine_start_gcode": { + "default_value": "M911 3DP-310F\nM201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0" + }, + "machine_width": { + "default_value": 240 + }, + "machine_depth": { + "default_value": 190 + }, + "machine_height": { + "default_value": 200 + }, + "material_bed_temp_wait": { + "default_value": true + } + } +} \ No newline at end of file diff --git a/resources/definitions/cubicon_common.def.json b/resources/definitions/cubicon_common.def.json new file mode 100644 index 0000000000..ae085c7552 --- /dev/null +++ b/resources/definitions/cubicon_common.def.json @@ -0,0 +1,99 @@ +{ + "version": 2, + "name": "Cubicon Common", + "inherits": "fdmprinter", + "metadata": { + "author": "Cubicon R&D Center", + "manufacturer": "Cubicon", + "visible": false + }, + "overrides": { + "machine_start_gcode": { + "default_value": "M201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0" + }, + "machine_end_gcode": { + "default_value": "M104 S0\nM140 S0\nM904\nM117 Print completed! \nM84" + }, + "machine_gcode_flavor": { + "default_value": "Repetier" + }, + "machine_heated_bed": { + "default_value": true + }, + "travel_compensate_overlapping_walls_enabled": { + "default_value": false + }, + "travel_compensate_overlapping_walls_0_enabled": { + "default_value": false + }, + "travel_compensate_overlapping_walls_x_enabled": { + "default_value": false + }, + "layer_height": { + "default_value": 0.2 + }, + "layer_height_0": { + "default_value": 0.2 + }, + "infill_line_width": { + "default_value": 0.6 + }, + "adhesion_type": { + "default_value": "raft" + }, + "roofing_pattern": { "default_value": "lines" }, + "top_bottom_pattern": { "default_value": "lines" }, + "top_bottom_pattern_0": { + "default_value": "zigzag" + }, + "fill_perimeter_gaps": { "default_value": "everywhere" }, + "infill_pattern": { + "default_value": "zigzag" + }, + "infill_sparse_density": { "default_value": 20 }, + "infill_overlap": { + "default_value": 15 + }, + "infill_before_walls": { "default_value": false }, + "infill_sparse_thickness": { "default_value": 0.2 }, + "top_bottom_thickness": { + "default_value": 1.0 + }, + "top_thickness": { + "default_value": 1.0 + }, + "bottom_thickness": { + "default_value": 0.6, + "value": "top_bottom_thickness * 0.6" + }, + "roofing_layer_count": { + "default_value": 1 + }, + "skin_preshrink": { "default_value": true }, + "material_flow_layer_0": { "default_value": 100 }, + "top_skin_preshrink": { "default_value": 1.2 }, + "bottom_skin_preshrink": { "default_value": 1.2 }, + "max_skin_angle_for_expansion": { "default_value": 90 }, + "min_skin_width_for_expansion": { "default_value": 2.7475 }, + "skin_angles": { "default_value": "[135,45]" }, + "roofing_angles": { "default_value": "[135,45]" }, + "coasting_volume": { "default_value": 0.032 }, + "wall_thickness": { "default_value": 1.2 }, + "wall_line_count": { "default_value": 3 }, + "speed_wall_0": { "default_value": 25 }, + "skin_overlap": { "default_value": 5 }, + "cool_min_layer_time_fan_speed_max": { "default_value": 15 }, + "cool_min_layer_time": { "default_value": 15 }, + "support_roof_pattern": { "default_value": "zigzag" }, + "support_bottom_pattern": { "default_value": "zigzag" }, + "support_interface_pattern": { "default_value": "zigzag" }, + "support_pattern": { "default_value": "zigzag" }, + "retraction_amount": { "default_value": 1.5 }, + "top_layers": { + "default_value": 5 + }, + "bottom_layers": { + "default_value": 3 + } + } +} \ No newline at end of file diff --git a/resources/extruders/cubicon_3dp_110f_extruder_0.def.json b/resources/extruders/cubicon_3dp_110f_extruder_0.def.json new file mode 100644 index 0000000000..9c854fd2a1 --- /dev/null +++ b/resources/extruders/cubicon_3dp_110f_extruder_0.def.json @@ -0,0 +1,27 @@ +{ + "id": "cubicon_3dp_110f_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "cubicon_3dp_110f", + "position": "0" + }, + "overrides": { + "extruder_nr": { + "default_value": 0 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_offset_x": { + "default_value": -15 + }, + "machine_nozzle_offset_y": { + "default_value": -5 + }, + "material_diameter": { + "default_value": 1.75 + } + } +} \ No newline at end of file diff --git a/resources/extruders/cubicon_3dp_210f_extruder_0.def.json b/resources/extruders/cubicon_3dp_210f_extruder_0.def.json new file mode 100644 index 0000000000..8a8573760a --- /dev/null +++ b/resources/extruders/cubicon_3dp_210f_extruder_0.def.json @@ -0,0 +1,27 @@ +{ + "id": "cubicon_3dp_210f_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "cubicon_3dp_210f", + "position": "0" + }, + "overrides": { + "extruder_nr": { + "default_value": 0 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_offset_x": { + "default_value": -7.25 + }, + "machine_nozzle_offset_y": { + "default_value": -5.82 + }, + "material_diameter": { + "default_value": 1.75 + } + } +} \ No newline at end of file diff --git a/resources/extruders/cubicon_3dp_310f_extruder_0.def.json b/resources/extruders/cubicon_3dp_310f_extruder_0.def.json new file mode 100644 index 0000000000..4edbbd5a6c --- /dev/null +++ b/resources/extruders/cubicon_3dp_310f_extruder_0.def.json @@ -0,0 +1,27 @@ +{ + "id": "cubicon_3dp_310f_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "cubicon_3dp_310f", + "position": "0" + }, + "overrides": { + "extruder_nr": { + "default_value": 0 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_offset_x": { + "default_value": -15 + }, + "machine_nozzle_offset_y": { + "default_value": -5 + }, + "material_diameter": { + "default_value": 1.75 + } + } +} \ No newline at end of file diff --git a/resources/images/cubicon_icon.png b/resources/images/cubicon_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b74457992c924db653317c98419fe08ad39d8e2d GIT binary patch literal 299054 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 literal 0 HcmV?d00001 diff --git a/resources/images/cubicon_log.png b/resources/images/cubicon_log.png new file mode 100644 index 0000000000000000000000000000000000000000..95311636b82e6a9b2e49c3d2494c8c7d1e1fd2a4 GIT binary patch literal 8912 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