Compare commits

...

52 Commits

Author SHA1 Message Date
SoftFever
4a288c617c refactor global to plate translation 2023-04-17 00:12:57 +08:00
SoftFever
e74d366791 fix bed mesh for multi plate 2023-04-16 22:06:37 +08:00
SoftFever
656101dc79 set default filament_colors in app config 2023-04-16 21:54:33 +08:00
SoftFever
661e79ca8c tweak name pos 2023-04-16 17:02:19 +08:00
SoftFever
1852dec00e Merge pull request #760 from CoryCharlton/main
Revert the default filament color change
2023-04-16 16:40:22 +08:00
Cory Charlton
60adc6c5dc Merge pull request #1 from CoryCharlton/CoryCharlton-issue-759
Revert the default filament color change
2023-04-15 11:11:05 -07:00
Cory Charlton
35725a23e6 Revert the default filament color change
In commit c7dbf848a6# the default filament color was changed. This reverts that change in order to implement #759
2023-04-15 11:10:10 -07:00
SoftFever
44df0d8308 1.6.2-beta 2023-04-16 00:39:20 +08:00
SoftFever
e7ee0effa2 FLSun V400 2023-04-15 23:25:31 +08:00
SoftFever
d4b59ff52b optimized image size 2023-04-15 23:25:13 +08:00
SoftFever
7f12c18a4a support custom bed texture and model
#83
#685
#695
2023-04-15 01:37:46 +08:00
SoftFever
9671cdfc68 increase nozzle_diameter limitation
#752
2023-04-15 01:19:30 +08:00
SoftFever
8127f27d79 fix build error on Windows 2023-04-14 00:57:34 +08:00
SoftFever
f5d82ee906 fix wrong object polygon for non-first plates
#668
2023-04-13 19:51:00 +08:00
SoftFever
099ed10144 Fix Windows icon res 2023-04-12 17:05:23 +08:00
SoftFever
c25ac3829f Merge branch 'main' into feature/delta 2023-04-11 23:16:20 +08:00
SoftFever
a731241e9c fix crash when undo/redo 2023-04-11 23:12:56 +08:00
SoftFever
b8c79d029a fix patch 2023-04-10 23:54:22 +08:00
SoftFever
75567f3c3c update deps 2023-04-10 23:53:46 +08:00
SoftFever
65e397767c optimized plate name location 2023-04-10 22:54:06 +08:00
SoftFever
07d048ef36 USE_PRIVATE_FONTS 2023-04-10 20:44:20 +08:00
SoftFever
ef3614a21a optimize icon position for circle bed 2023-04-10 18:55:14 +08:00
SoftFever
4976e4f91f Merge pull request #665 from hliebscher/lang_de_fix
fix typo
2023-04-10 17:47:28 +08:00
SoftFever
ab6a77ddf3 Merge pull request #663 from hliebscher/j1
Add Snapmaker J1
2023-04-10 17:46:49 +08:00
SoftFever
cb22560d38 fix an issue that time estimation is written twice for 3rd party printers 2023-04-10 11:44:53 +08:00
SoftFever
87ba3263cc fix default bed triangles and check_outside & intersect_instance 2023-04-09 22:16:36 +08:00
SoftFever
0d20f13196 Revert "wip"
This reverts commit 35d8c101fb.
2023-04-08 10:45:42 +08:00
SoftFever
1dec3fe9cb Merge branch 'main' into feature/delta 2023-04-08 09:21:35 +08:00
Heiko Liebscher
793b6d2006 fix asa and petg 2023-04-07 23:29:44 +02:00
SoftFever
3f7ed3829c Fix top/bottom flow rate bug #680 2023-04-07 22:15:50 +08:00
SoftFever
35d8c101fb wip 2023-04-07 13:40:17 +08:00
SoftFever
094611a17c del old model 2023-04-07 11:14:18 +08:00
SoftFever
5c9012b967 Merge branch 'main' into SoftFever
# Conflicts:
#	.github/workflows/build_linux.yml
#	src/slic3r/GUI/GUI_Factories.cpp
2023-04-07 11:12:04 +08:00
Heiko Liebscher
5a2606a289 j1 idex filament start end code 2023-04-06 16:30:00 +02:00
SoftFever
17d6e63cf9 bump up version 1.6.1 2023-04-06 16:59:24 +08:00
Heiko Liebscher
078f240995 fix typo 2023-04-06 10:09:27 +02:00
Heiko Liebscher
970d31c058 fix version 2023-04-06 09:59:33 +02:00
SoftFever
0c8b596c48 update klipper config 2023-04-06 15:52:32 +08:00
SoftFever
f983610827 enable aux part cooling fan by default for Bambulab P1P 2023-04-06 15:42:35 +08:00
SoftFever
23165b8f3e fix Malformed command issue for Klipper 2023-04-06 15:39:02 +08:00
SoftFever
5d1c36c7d4 update OrcaCube v2 2023-04-06 15:38:08 +08:00
Heiko Liebscher
d9cdafbaa0 fix filename 2023-04-06 08:47:53 +02:00
Heiko Liebscher
5c439c4acc fix typo 2023-04-05 22:37:31 +02:00
Heiko Liebscher
81a0edbf3f fix profile 2023-04-05 19:53:14 +02:00
Heiko Liebscher
be71e50be7 fix j1 pla settings 2023-04-05 17:52:31 +02:00
Heiko Liebscher
da558a8aea set version 1.5 2023-04-05 16:33:20 +02:00
SoftFever
4446ae86ec try fix linux cicd 2023-04-05 22:03:19 +08:00
SoftFever
7d582a9455 add Orca Cube V1 2023-04-05 21:43:36 +08:00
SoftFever
0ab05bacb7 Merge branch 'main' into SoftFever 2023-04-05 21:42:24 +08:00
Heiko Liebscher
f9f2148cf8 j1 id fix 2023-04-05 11:26:41 +02:00
Heiko Liebscher
f0f1608b5a add texture svg 2023-04-05 09:42:33 +02:00
Heiko Liebscher
8c1e7eeb35 first add j1 2023-03-30 09:34:23 +02:00
109 changed files with 2712 additions and 175 deletions

View File

@@ -20,11 +20,11 @@ jobs:
- run: mkdir ${{ github.workspace }}/deps/build/OrcaSlicer_dep
- name: download deps
shell: powershell
run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/SoftFever/FileSharing/releases/download/OrcaSlicer_deps_Mar/OrcaSlicer_dep_12Mar2023.zip", "$env:temp\OrcaSlicer_dep_12Mar2023.zip")'
run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/SoftFever/FileSharing/releases/download/OrcaSlicer_deps_Mar/OrcaSlicer_dep_10April2023.zip", "$env:temp\OrcaSlicer_dep_10April2023.zip")'
- name: extract deps
working-directory: ${{ github.workspace }}/deps/build
shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" x %temp%\OrcaSlicer_dep_12Mar2023.zip'
run: '"C:/Program Files/7-Zip/7z.exe" x %temp%\OrcaSlicer_dep_10April2023.zip'
- run: dir "${{ github.workspace }}\deps\build\OrcaSlicer_dep"

View File

@@ -59,6 +59,17 @@ Prebuilt binaries are available through the [github releases page](https://githu
- run `BuildLinux.sh -udisr`
# Note:
If you're running Klipper, it's recommended to add the following configuration to your `printer.cfg` file.
```
# Enable object exclusion
[exclude_object]
# Enable arcs support
[gcode_arcs]
resolution: 0.1
```
# License
Orca Slicer is licensed under the GNU Affero General Public License, version 3. Orca Slicer is based on Bambu Studio by BambuLab.

View File

@@ -1,15 +1,13 @@
set(_wx_git_tag v3.1.5)
set(_wx_toolkit "")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=1")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(_gtk_ver 2)
if (DEP_WX_GTK3)
set(_gtk_ver 3)
endif ()
set(_wx_toolkit "-DwxBUILD_TOOLKIT=gtk${_gtk_ver}")
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=1")
else ()
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=0")
endif()
if (MSVC)

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

View File

@@ -23,7 +23,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -23,7 +23,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -23,7 +23,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -1,7 +1,7 @@
{
"name": "Bambulab",
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
"version": "01.06.00.01",
"version": "01.06.00.02",
"force_update": "0",
"description": "the initial version of BBL configurations",
"machine_model_list": [

View File

@@ -30,7 +30,7 @@
"machine_unload_filament_time": "28",
"nozzle_type": "stainless_steel",
"nozzle_hrc": "20",
"auxiliary_fan": "0",
"auxiliary_fan": "1",
"upward_compatible_machine":[
"Bambu Lab X1 0.4 nozzle",
"Bambu Lab X1 Carbon 0.4 nozzle"

View File

@@ -0,0 +1,110 @@
{
"name": "FLSun",
"version": "01.06.00.00",
"force_update": "0",
"description": "FLSun configurations",
"machine_model_list": [
{
"name": "FLSun V400",
"sub_path": "machine/FLSun V400.json"
}
],
"process_list": [
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "0.20mm Standard @FLSun",
"sub_path": "process/0.20mm Standard @FLSun.json"
}
],
"filament_list": [
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "fdm_filament_pet",
"sub_path": "filament/fdm_filament_pet.json"
},
{
"name": "fdm_filament_abs",
"sub_path": "filament/fdm_filament_abs.json"
},
{
"name": "fdm_filament_pc",
"sub_path": "filament/fdm_filament_pc.json"
},
{
"name": "fdm_filament_asa",
"sub_path": "filament/fdm_filament_asa.json"
},
{
"name": "fdm_filament_pva",
"sub_path": "filament/fdm_filament_pva.json"
},
{
"name": "fdm_filament_pa",
"sub_path": "filament/fdm_filament_pa.json"
},
{
"name": "FLSun Generic PLA",
"sub_path": "filament/FLSun Generic PLA.json"
},
{
"name": "FLSun Generic PLA-CF",
"sub_path": "filament/FLSun Generic PLA-CF.json"
},
{
"name": "FLSun Generic PETG",
"sub_path": "filament/FLSun Generic PETG.json"
},
{
"name": "FLSun Generic ABS",
"sub_path": "filament/FLSun Generic ABS.json"
},
{
"name": "FLSun Generic TPU",
"sub_path": "filament/FLSun Generic TPU.json"
},
{
"name": "FLSun Generic ASA",
"sub_path": "filament/FLSun Generic ASA.json"
},
{
"name": "FLSun Generic PC",
"sub_path": "filament/FLSun Generic PC.json"
},
{
"name": "FLSun Generic PVA",
"sub_path": "filament/FLSun Generic PVA.json"
},
{
"name": "FLSun Generic PA",
"sub_path": "filament/FLSun Generic PA.json"
},
{
"name": "FLSun Generic PA-CF",
"sub_path": "filament/FLSun Generic PA-CF.json"
}
],
"machine_list": [
{
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "FLSun V400 0.4 nozzle",
"sub_path": "machine/FLSun V400 0.4 nozzle.json"
}
]
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,18 @@
{
"type": "filament",
"filament_id": "GFB99",
"setting_id": "GFSA04",
"name": "FLSun Generic ABS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.926"
],
"filament_max_volumetric_speed": [
"12"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,18 @@
{
"type": "filament",
"filament_id": "GFB98",
"setting_id": "GFSA04",
"name": "FLSun Generic ASA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_asa",
"filament_flow_ratio": [
"0.93"
],
"filament_max_volumetric_speed": [
"12"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,24 @@
{
"type": "filament",
"filament_id": "GFN98",
"setting_id": "GFSA04",
"name": "FLSun Generic PA-CF",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pa",
"filament_type": [
"PA-CF"
],
"nozzle_temperature_initial_layer": [
"280"
],
"nozzle_temperature": [
"280"
],
"filament_max_volumetric_speed": [
"8"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,21 @@
{
"type": "filament",
"filament_id": "GFN99",
"setting_id": "GFSA04",
"name": "FLSun Generic PA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pa",
"nozzle_temperature_initial_layer": [
"280"
],
"nozzle_temperature": [
"280"
],
"filament_max_volumetric_speed": [
"12"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,18 @@
{
"type": "filament",
"filament_id": "GFC99",
"setting_id": "GFSA04",
"name": "FLSun Generic PC",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pc",
"filament_max_volumetric_speed": [
"12"
],
"filament_flow_ratio": [
"0.94"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,48 @@
{
"type": "filament",
"filament_id": "GFG99",
"setting_id": "GFSA04",
"name": "FLSun Generic PETG",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pet",
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"1"
],
"fan_cooling_layer_time": [
"30"
],
"overhang_fan_speed": [
"90"
],
"overhang_fan_threshold": [
"25%"
],
"fan_max_speed": [
"90"
],
"fan_min_speed": [
"40"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"8"
],
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"10"
],
"filament_start_gcode": [
"; filament start gcode\n"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,24 @@
{
"type": "filament",
"filament_id": "GFL98",
"setting_id": "GFSA04",
"name": "FLSun Generic PLA-CF",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_flow_ratio": [
"0.95"
],
"filament_type": [
"PLA-CF"
],
"filament_max_volumetric_speed": [
"12"
],
"slow_down_layer_time": [
"7"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,21 @@
{
"type": "filament",
"filament_id": "GFL99",
"setting_id": "GFSA04",
"name": "FLSun Generic PLA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"12"
],
"slow_down_layer_time": [
"8"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,24 @@
{
"type": "filament",
"filament_id": "GFS99",
"setting_id": "GFSA04",
"name": "FLSun Generic PVA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pva",
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"12"
],
"slow_down_layer_time": [
"7"
],
"slow_down_min_speed": [
"10"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,15 @@
{
"type": "filament",
"filament_id": "GFU99",
"setting_id": "GFSA04",
"name": "FLSun Generic TPU",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_tpu",
"filament_max_volumetric_speed": [
"3.2"
],
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,82 @@
{
"type": "filament",
"name": "fdm_filament_abs",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"cool_plate_temp" : [
"105"
],
"eng_plate_temp" : [
"105"
],
"hot_plate_temp" : [
"105"
],
"cool_plate_temp_initial_layer" : [
"105"
],
"eng_plate_temp_initial_layer" : [
"105"
],
"hot_plate_temp_initial_layer" : [
"105"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"30"
],
"filament_max_volumetric_speed": [
"28.6"
],
"filament_type": [
"ABS"
],
"filament_density": [
"1.04"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"260"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"80"
],
"fan_min_speed": [
"10"
],
"overhang_fan_threshold": [
"25%"
],
"overhang_fan_speed": [
"80"
],
"nozzle_temperature": [
"260"
],
"temperature_vitrification": [
"110"
],
"nozzle_temperature_range_low": [
"240"
],
"nozzle_temperature_range_high": [
"270"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"3"
]
}

View File

@@ -0,0 +1,82 @@
{
"type": "filament",
"name": "fdm_filament_asa",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"cool_plate_temp" : [
"105"
],
"eng_plate_temp" : [
"105"
],
"hot_plate_temp" : [
"105"
],
"cool_plate_temp_initial_layer" : [
"105"
],
"eng_plate_temp_initial_layer" : [
"105"
],
"hot_plate_temp_initial_layer" : [
"105"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"35"
],
"filament_max_volumetric_speed": [
"28.6"
],
"filament_type": [
"ASA"
],
"filament_density": [
"1.04"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"260"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"80"
],
"fan_min_speed": [
"10"
],
"overhang_fan_threshold": [
"25%"
],
"overhang_fan_speed": [
"80"
],
"nozzle_temperature": [
"260"
],
"temperature_vitrification": [
"110"
],
"nozzle_temperature_range_low": [
"240"
],
"nozzle_temperature_range_high": [
"270"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"3"
]
}

View File

@@ -0,0 +1,138 @@
{
"type": "filament",
"name": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp" : [
"60"
],
"eng_plate_temp" : [
"60"
],
"hot_plate_temp" : [
"60"
],
"cool_plate_temp_initial_layer" : [
"60"
],
"eng_plate_temp_initial_layer" : [
"60"
],
"hot_plate_temp_initial_layer" : [
"60"
],
"overhang_fan_threshold": [
"95%"
],
"overhang_fan_speed": [
"100"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"filament_end_gcode": [
"; filament end gcode \n"
],
"filament_flow_ratio": [
"1"
],
"reduce_fan_stop_start_freq": [
"0"
],
"fan_cooling_layer_time": [
"60"
],
"filament_cost": [
"0"
],
"filament_density": [
"0"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_max_volumetric_speed": [
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_settings_id": [
""
],
"filament_soluble": [
"0"
],
"filament_type": [
"PLA"
],
"filament_vendor": [
"Generic"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"bed_type": [
"Cool Plate"
],
"nozzle_temperature_initial_layer": [
"200"
],
"full_fan_speed_layer": [
"0"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"35"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"8"
],
"filament_start_gcode": [
"; Filament gcode\n"
],
"nozzle_temperature": [
"200"
],
"temperature_vitrification": [
"100"
]
}

View File

@@ -0,0 +1,79 @@
{
"type": "filament",
"name": "fdm_filament_pa",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"cool_plate_temp" : [
"0"
],
"eng_plate_temp" : [
"100"
],
"hot_plate_temp" : [
"100"
],
"cool_plate_temp_initial_layer" : [
"0"
],
"eng_plate_temp_initial_layer" : [
"100"
],
"hot_plate_temp_initial_layer" : [
"100"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"4"
],
"filament_max_volumetric_speed": [
"8"
],
"filament_type": [
"PA"
],
"filament_density": [
"1.04"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"290"
],
"reduce_fan_stop_start_freq": [
"0"
],
"fan_max_speed": [
"60"
],
"fan_min_speed": [
"0"
],
"overhang_fan_speed": [
"30"
],
"nozzle_temperature": [
"290"
],
"temperature_vitrification": [
"108"
],
"nozzle_temperature_range_low": [
"270"
],
"nozzle_temperature_range_high": [
"300"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"2"
]
}

View File

@@ -0,0 +1,82 @@
{
"type": "filament",
"name": "fdm_filament_pc",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"cool_plate_temp" : [
"0"
],
"eng_plate_temp" : [
"110"
],
"hot_plate_temp" : [
"110"
],
"cool_plate_temp_initial_layer" : [
"0"
],
"eng_plate_temp_initial_layer" : [
"110"
],
"hot_plate_temp_initial_layer" : [
"110"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"30"
],
"filament_max_volumetric_speed": [
"23.2"
],
"filament_type": [
"PC"
],
"filament_density": [
"1.04"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"270"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"60"
],
"fan_min_speed": [
"10"
],
"overhang_fan_threshold": [
"25%"
],
"overhang_fan_speed": [
"60"
],
"nozzle_temperature": [
"280"
],
"temperature_vitrification": [
"140"
],
"nozzle_temperature_range_low": [
"260"
],
"nozzle_temperature_range_high": [
"280"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"2"
]
}

View File

@@ -0,0 +1,76 @@
{
"type": "filament",
"name": "fdm_filament_pet",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"cool_plate_temp" : [
"60"
],
"eng_plate_temp" : [
"0"
],
"hot_plate_temp" : [
"80"
],
"cool_plate_temp_initial_layer" : [
"60"
],
"eng_plate_temp_initial_layer" : [
"0"
],
"hot_plate_temp_initial_layer" : [
"80"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"20"
],
"filament_max_volumetric_speed": [
"25"
],
"filament_type": [
"PETG"
],
"filament_density": [
"1.27"
],
"filament_cost": [
"30"
],
"nozzle_temperature_initial_layer": [
"255"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"20"
],
"overhang_fan_speed": [
"100"
],
"nozzle_temperature": [
"255"
],
"temperature_vitrification": [
"80"
],
"nozzle_temperature_range_low": [
"220"
],
"nozzle_temperature_range_high": [
"260"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}

View File

@@ -0,0 +1,88 @@
{
"type": "filament",
"name": "fdm_filament_pla",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"fan_cooling_layer_time": [
"100"
],
"filament_max_volumetric_speed": [
"12"
],
"filament_type": [
"PLA"
],
"filament_density": [
"1.24"
],
"filament_cost": [
"20"
],
"cool_plate_temp" : [
"35"
],
"eng_plate_temp" : [
"0"
],
"hot_plate_temp" : [
"45"
],
"cool_plate_temp_initial_layer" : [
"35"
],
"eng_plate_temp_initial_layer" : [
"0"
],
"hot_plate_temp_initial_layer" : [
"45"
],
"nozzle_temperature_initial_layer": [
"220"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"1"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"close_fan_the_first_x_layers": [
"1"
],
"nozzle_temperature": [
"220"
],
"temperature_vitrification": [
"60"
],
"nozzle_temperature_range_low": [
"190"
],
"nozzle_temperature_range_high": [
"230"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"4"
],
"additional_cooling_fan_speed": [
"70"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}

View File

@@ -0,0 +1,94 @@
{
"type": "filament",
"name": "fdm_filament_pva",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"cool_plate_temp" : [
"35"
],
"eng_plate_temp" : [
"0"
],
"hot_plate_temp" : [
"45"
],
"cool_plate_temp_initial_layer" : [
"35"
],
"eng_plate_temp_initial_layer" : [
"0"
],
"hot_plate_temp_initial_layer" : [
"45"
],
"fan_cooling_layer_time": [
"100"
],
"filament_max_volumetric_speed": [
"15"
],
"filament_soluble": [
"1"
],
"filament_is_support": [
"1"
],
"filament_type": [
"PVA"
],
"filament_density": [
"1.24"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"220"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"1"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"close_fan_the_first_x_layers": [
"1"
],
"nozzle_temperature": [
"220"
],
"temperature_vitrification": [
"50"
],
"nozzle_temperature_range_low": [
"190"
],
"nozzle_temperature_range_high": [
"250"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"4"
],
"additional_cooling_fan_speed": [
"70"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}

View File

@@ -0,0 +1,82 @@
{
"type": "filament",
"name": "fdm_filament_tpu",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"cool_plate_temp" : [
"30"
],
"eng_plate_temp" : [
"30"
],
"hot_plate_temp" : [
"35"
],
"cool_plate_temp_initial_layer" : [
"30"
],
"eng_plate_temp_initial_layer" : [
"30"
],
"hot_plate_temp_initial_layer" : [
"35"
],
"fan_cooling_layer_time": [
"100"
],
"filament_max_volumetric_speed": [
"15"
],
"filament_type": [
"TPU"
],
"filament_density": [
"1.24"
],
"filament_cost": [
"20"
],
"filament_retraction_length": [
"0.4"
],
"nozzle_temperature_initial_layer": [
"240"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"1"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"additional_cooling_fan_speed": [
"70"
],
"close_fan_the_first_x_layers": [
"1"
],
"nozzle_temperature": [
"240"
],
"temperature_vitrification": [
"60"
],
"nozzle_temperature_range_low": [
"200"
],
"nozzle_temperature_range_high": [
"250"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}

View File

@@ -0,0 +1,99 @@
{
"type": "machine",
"setting_id": "GM003",
"name": "FLSun V400 0.4 nozzle",
"from": "system",
"instantiation": "true",
"inherits": "fdm_machine_common",
"printer_model": "FLSun V400",
"default_print_profile": "0.20mm Standard @FLSun",
"gcode_flavor": "klipper",
"nozzle_diameter": [
"0.4"
],
"bed_exclude_area": [
"0x0"
],
"printable_area": [
"149.429x13.0734",
"147.721x26.0472",
"144.889x38.8229",
"140.954x51.303",
"135.946x63.3927",
"129.904x75",
"122.873x86.0365",
"114.907x96.4181",
"106.066x106.066",
"96.4181x114.907",
"86.0365x122.873",
"75x129.904",
"63.3927x135.946",
"51.303x140.954",
"38.8229x144.889",
"26.0472x147.721",
"13.0734x149.429",
"9.18485e-15x150",
"-13.0734x149.429",
"-26.0472x147.721",
"-38.8229x144.889",
"-51.303x140.954",
"-63.3927x135.946",
"-75x129.904",
"-86.0365x122.873",
"-96.4181x114.907",
"-106.066x106.066",
"-114.907x96.4181",
"-122.873x86.0365",
"-129.904x75",
"-135.946x63.3927",
"-140.954x51.303",
"-144.889x38.8229",
"-147.721x26.0472",
"-149.429x13.0734",
"-150x1.83697e-14",
"-149.429x-13.0734",
"-147.721x-26.0472",
"-144.889x-38.8229",
"-140.954x-51.303",
"-135.946x-63.3927",
"-129.904x-75",
"-122.873x-86.0365",
"-114.907x-96.4181",
"-106.066x-106.066",
"-96.4181x-114.907",
"-86.0365x-122.873",
"-75x-129.904",
"-63.3927x-135.946",
"-51.303x-140.954",
"-38.8229x-144.889",
"-26.0472x-147.721",
"-13.0734x-149.429",
"-2.75546e-14x-150",
"13.0734x-149.429",
"26.0472x-147.721",
"38.8229x-144.889",
"51.303x-140.954",
"63.3927x-135.946",
"75x-129.904",
"86.0365x-122.873",
"96.4181x-114.907",
"106.066x-106.066",
"114.907x-96.4181",
"122.873x-86.0365",
"129.904x-75",
"135.946x-63.3927",
"140.954x-51.303",
"144.889x-38.8229",
"147.721x-26.0472",
"149.429x-13.0734",
"150x-3.67394e-14"
],
"printable_height": "410",
"machine_end_gcode": "M107 T0\nM104 S0\nM104 S0 T1\nM140 S0\nG92 E0\nG91\nG1 E-1 F300\nG1 Z+0.5 F6000\nG28 \nG90 ;absolute positioning",
"machine_start_gcode": "G21\nG90\nM82\nM107 T0\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer] T0\nM190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer] T0\nG28\nG1 F3000 Z1\nG1 X-150 Y0 Z0.4\nG92 E0\nG3 X0 Y-130 I150 Z0.3 E30 F2000\nG92 E0",
"layer_change_gcode": "",
"scan_first_layer": "0",
"nozzle_type": "hardened_steel",
"auxiliary_fan": "0"
}

View File

@@ -0,0 +1,12 @@
{
"type": "machine_model",
"name": "FLSun V400",
"model_id": "FLSun_V400",
"nozzle_diameter": "0.4",
"machine_tech": "FFF",
"family": "FLSun",
"bed_model": "",
"bed_texture": "V400.svg",
"hotend_model": "",
"default_materials": "FLSun Generic ABS;FLSun Generic PLA;FLSun Generic PLA-CF;FLSun Generic PETG;FLSun Generic TPU;FLSun Generic ASA;FLSun Generic PC;FLSun Generic PVA;FLSun Generic PA;FLSun Generic PA-CF"
}

View File

@@ -0,0 +1,139 @@
{
"type": "machine",
"name": "fdm_machine_common",
"from": "system",
"instantiation": "false",
"gcode_flavor": "marlin",
"machine_start_gcode": "",
"machine_end_gcode": "",
"extruder_colour": [
"#018001"
],
"extruder_offset": [
"0x0"
],
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"2000",
"2000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"3000",
"3000"
],
"machine_max_acceleration_x": [
"2000",
"2000"
],
"machine_max_acceleration_y": [
"2000",
"2000"
],
"machine_max_acceleration_z": [
"300",
"200"
],
"machine_max_speed_e": [
"25",
"25"
],
"machine_max_speed_x": [
"300",
"200"
],
"machine_max_speed_y": [
"300",
"200"
],
"machine_max_speed_z": [
"12",
"12"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9"
],
"machine_max_jerk_z": [
"0.2",
"0.4"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"max_layer_height": [
"0.3"
],
"min_layer_height": [
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [
"0.4"
],
"printer_settings_id": "",
"printer_technology": "FFF",
"printer_variant": "0.4",
"retraction_minimum_travel": [
"1"
],
"retract_before_wipe": [
"70%"
],
"retract_when_changing_layer": [
"1"
],
"retraction_length": [
"0.8"
],
"retract_length_toolchange": [
"2"
],
"z_hop": [
"0.4"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retraction_speed": [
"30"
],
"deretraction_speed": [
"30"
],
"silent_mode": "0",
"single_extruder_multi_material": "1",
"change_filament_gcode": "",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"machine_pause_gcode": "M400 U1\n",
"wipe": [
"1"
],
"z_hop_types": "Normal Lift"
}

View File

@@ -0,0 +1,20 @@
{
"type": "process",
"setting_id": "GP004",
"name": "0.20mm Standard @FLSun",
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
"initial_layer_speed": "40",
"initial_layer_infill_speed": "50",
"outer_wall_speed": "35",
"inner_wall_speed": "60",
"sparse_infill_speed": "200",
"internal_solid_infill_speed": "200",
"top_surface_speed": "50",
"gap_infill_speed": "40",
"travel_speed": "180",
"compatible_printers": [
"FLSun V400 0.4 nozzle"
]
}

View File

@@ -0,0 +1,108 @@
{
"type": "process",
"name": "fdm_process_common",
"from": "system",
"instantiation": "false",
"adaptive_layer_height": "0",
"reduce_crossing_wall": "0",
"max_travel_detour_distance": "0",
"bottom_surface_pattern": "monotonic",
"bottom_shell_thickness": "0",
"bridge_speed": "50",
"brim_width": "5",
"brim_object_gap": "0.1",
"compatible_printers": [],
"compatible_printers_condition": "",
"print_sequence": "by layer",
"default_acceleration": "1000",
"initial_layer_acceleration": "500",
"top_surface_acceleration": "800",
"travel_acceleration": "1000",
"inner_wall_acceleration": "900",
"outer_wall_acceleration": "700",
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",
"infill_direction": "45",
"sparse_infill_density": "15%",
"sparse_infill_pattern": "grid",
"initial_layer_line_width": "0.5",
"initial_layer_print_height": "0.2",
"infill_combination": "0",
"sparse_infill_line_width": "0.45",
"infill_wall_overlap": "25%",
"interface_shells": "0",
"ironing_flow": "10%",
"ironing_spacing": "0.15",
"ironing_speed": "30",
"ironing_type": "no ironing",
"reduce_infill_retraction": "1",
"filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode",
"detect_overhang_wall": "1",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"inner_wall_line_width": "0.45",
"wall_loops": "3",
"print_settings_id": "",
"raft_layers": "0",
"seam_position": "aligned",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"minimum_sparse_infill_area": "15",
"internal_solid_infill_line_width": "0.4",
"spiral_mode": "0",
"standby_temperature_delta": "-5",
"enable_support": "0",
"resolution": "0.012",
"support_type": "normal(auto)",
"support_on_build_plate_only": "0",
"support_top_z_distance": "0.2",
"support_filament": "0",
"support_line_width": "0.4",
"support_interface_loop_pattern": "0",
"support_interface_filament": "0",
"support_interface_top_layers": "2",
"support_interface_bottom_layers": "2",
"support_interface_spacing": "0.5",
"support_interface_speed": "80",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "2.5",
"support_speed": "150",
"support_threshold_angle": "30",
"support_object_xy_distance": "0.35",
"tree_support_branch_angle": "30",
"tree_support_wall_count": "0",
"tree_support_with_infill": "0",
"detect_thin_wall": "0",
"top_surface_pattern": "monotonic",
"top_surface_line_width": "0.4",
"top_shell_thickness": "0.8",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "35",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0",
"layer_height": "0.2",
"bottom_shell_layers": "3",
"top_shell_layers": "4",
"bridge_flow": "1",
"initial_layer_speed": "45",
"initial_layer_infill_speed": "45",
"outer_wall_speed": "45",
"inner_wall_speed": "80",
"sparse_infill_speed": "150",
"internal_solid_infill_speed": "150",
"top_surface_speed": "50",
"gap_infill_speed": "30",
"travel_speed": "200",
"enable_arc_fitting": "0",
"exclude_object" : "0"
}

View File

@@ -23,7 +23,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"enable_arc_fitting": "0",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -24,7 +24,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -11,6 +11,10 @@
{
"name": "Snapmaker A350",
"sub_path": "machine/Snapmaker A350.json"
},
{
"name": "Snapmaker J1",
"sub_path": "machine/Snapmaker J1.json"
}
],
"process_list": [
@@ -21,6 +25,14 @@
{
"name": "0.20mm Standard @Snapmaker",
"sub_path": "process/0.20mm Standard @Snapmaker.json"
},
{
"name": "0.20mm 0.4 Standard @Snapmaker J1",
"sub_path": "process/0.20mm 0.4 Standard @Snapmaker J1.json"
},
{
"name": "0.20mm 0.6 Standard @Snapmaker J1",
"sub_path": "process/0.20mm 0.6 Standard @Snapmaker J1.json"
}
],
"filament_list": [
@@ -99,6 +111,46 @@
{
"name": "Snapmaker Generic PA-CF",
"sub_path": "filament/Snapmaker Generic PA-CF.json"
},
{
"name": "Snapmaker J1 PLA",
"sub_path": "filament/Snapmaker J1 PLA.json"
},
{
"name": "Snapmaker J1 PLA-CF",
"sub_path": "filament/Snapmaker J1 PLA-CF.json"
},
{
"name": "Snapmaker J1 PETG",
"sub_path": "filament/Snapmaker J1 PETG.json"
},
{
"name": "Snapmaker J1 ABS",
"sub_path": "filament/Snapmaker J1 ABS.json"
},
{
"name": "Snapmaker J1 TPU",
"sub_path": "filament/Snapmaker J1 TPU.json"
},
{
"name": "Snapmaker J1 ASA",
"sub_path": "filament/Snapmaker J1 ASA.json"
},
{
"name": "Snapmaker J1 PC",
"sub_path": "filament/Snapmaker J1 PC.json"
},
{
"name": "Snapmaker J1 PVA",
"sub_path": "filament/Snapmaker J1 PVA.json"
},
{
"name": "Snapmaker J1 PA",
"sub_path": "filament/Snapmaker J1 PA.json"
},
{
"name": "Snapmaker J1 PA-CF",
"sub_path": "filament/Snapmaker J1 PA-CF.json"
}
],
"machine_list": [
@@ -113,6 +165,14 @@
{
"name": "Snapmaker A350 0.4 nozzle",
"sub_path": "machine/Snapmaker A350 0.4 nozzle.json"
},
{
"name": "Snapmaker J1 0.4 nozzle",
"sub_path": "machine/Snapmaker J1 0.4 nozzle.json"
},
{
"name": "Snapmaker J1 0.6 nozzle",
"sub_path": "machine/Snapmaker J1 0.6 nozzle.json"
}
]
}

View File

@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" sodipodi:docname="j1 (googliola).svg" inkscape:export-ydpi="96" inkscape:export-xdpi="96" inkscape:export-filename="j1.svg" xml:space="preserve" id="svg5" version="1.1" viewBox="0 0 300 200" height="200mm" width="300mm" inkscape:version="1.2.2 (732a01da63, 2022-12-09)">
<defs id="defs2">
<clipPath id="clipPath16">
<path d="M 0,858.9 H 1207.6 V 0 H 0 Z" id="path362"/>
</clipPath>
</defs>
<g inkscape:label="GridCartesian:X30:Y20" id="g15224" style="display:inline">
<g inkscape:label="MajorXGridlines" id="g15076" style="display:inline">
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 10,0 V 200" inkscape:label="MajorXDiv1" id="path15018"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 20,0 V 200" inkscape:label="MajorXDiv2" id="path15020"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 30,0 V 200" inkscape:label="MajorXDiv3" id="path15022"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 40,0 V 200" inkscape:label="MajorXDiv4" id="path15024"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 50,0 V 200" inkscape:label="MajorXDiv5" id="path15026"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 60,0 V 200" inkscape:label="MajorXDiv6" id="path15028"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 70,0 V 200" inkscape:label="MajorXDiv7" id="path15030"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 80,0 V 200" inkscape:label="MajorXDiv8" id="path15032"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 90,0 V 200" inkscape:label="MajorXDiv9" id="path15034"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 100,0 V 200" inkscape:label="MajorXDiv10" id="path15036"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 110,0 V 200" inkscape:label="MajorXDiv11" id="path15038"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 120,0 V 200" inkscape:label="MajorXDiv12" id="path15040"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 130,0 V 200" inkscape:label="MajorXDiv13" id="path15042"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 140,0 V 200" inkscape:label="MajorXDiv14" id="path15044"/>
<path style="display:inline;fill:#00112b;stroke:#0066ff;stroke-width:0.258;stroke-dasharray:1.548, 0.258;stroke-dashoffset:0;stroke-opacity:1" d="M 160,10 V 200" inkscape:label="COPYLINE" id="path15048"/>
<path style="fill:none;stroke:#ff0000;stroke-width:0.265;stroke-dasharray:1.59, 0.265;stroke-dashoffset:0;stroke-opacity:1" d="M 150,0 V 190" inkscape:label="MIRRORLINE" id="path15046" sodipodi:nodetypes="cc"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 170,0 V 200" inkscape:label="MajorXDiv17" id="path15050"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 180,0 V 200" inkscape:label="MajorXDiv18" id="path15052"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 190,0 V 200" inkscape:label="MajorXDiv19" id="path15054"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 200,0 V 200" inkscape:label="MajorXDiv20" id="path15056"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 210,0 V 200" inkscape:label="MajorXDiv21" id="path15058"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 220,0 V 200" inkscape:label="MajorXDiv22" id="path15060"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 230,0 V 200" inkscape:label="MajorXDiv23" id="path15062"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 240,0 V 200" inkscape:label="MajorXDiv24" id="path15064"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 250,0 V 200" inkscape:label="MajorXDiv25" id="path15066"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 260,0 V 200" inkscape:label="MajorXDiv26" id="path15068"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 270,0 V 200" inkscape:label="MajorXDiv27" id="path15070"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 280,0 V 200" inkscape:label="MajorXDiv28" id="path15072"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 290,0 V 200" inkscape:label="MajorXDiv29" id="path15074"/>
<g aria-label="MIRROR" id="text16399" style="font-size:10.5833px;line-height:1.25;letter-spacing:0px;word-spacing:0px;display:inline;stroke-width:0.264583" inkscape:label="MIRROR" inkscape:transform-center-x="-0.23386084">
<path d="m 143.06355,193.62239 h 0.51849 l 0.65629,1.75011 0.65973,-1.75011 h 0.51849 v 2.57176 h -0.33934 v -2.25826 l -0.66318,1.76389 h -0.34968 l -0.66318,-1.76389 v 2.25826 h -0.33762 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal';fill:#ff0000" id="path17403"/>
<path d="m 146.10729,193.62239 h 0.34796 v 2.57176 h -0.34796 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal';fill:#ff0000" id="path17405"/>
<path d="m 148.36728,194.98837 q 0.11196,0.0379 0.21704,0.16192 0.10679,0.12402 0.21359,0.34106 l 0.35313,0.7028 h -0.3738 l -0.329,-0.65973 q -0.12747,-0.25839 -0.24805,-0.34279 -0.11886,-0.0844 -0.32556,-0.0844 h -0.37896 v 1.08693 h -0.34796 v -2.57176 h 0.78548 q 0.44098,0 0.65802,0.18431 0.21704,0.18431 0.21704,0.55638 0,0.24288 -0.11369,0.40308 -0.11197,0.1602 -0.32728,0.22221 z m -0.87161,-1.08004 v 0.91295 h 0.43752 q 0.2515,0 0.37896,-0.11541 0.1292,-0.11713 0.1292,-0.34279 0,-0.22565 -0.1292,-0.33934 -0.12746,-0.11541 -0.37896,-0.11541 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal';fill:#ff0000" id="path17407"/>
<path d="m 150.81846,194.98837 q 0.11197,0.0379 0.21704,0.16192 0.1068,0.12402 0.2136,0.34106 l 0.35312,0.7028 h -0.37379 l -0.32901,-0.65973 q -0.12747,-0.25839 -0.24804,-0.34279 -0.11886,-0.0844 -0.32557,-0.0844 h -0.37896 v 1.08693 h -0.34795 v -2.57176 h 0.78548 q 0.44097,0 0.65801,0.18431 0.21705,0.18431 0.21705,0.55638 0,0.24288 -0.11369,0.40308 -0.11197,0.1602 -0.32729,0.22221 z m -0.87161,-1.08004 v 0.91295 h 0.43753 q 0.25149,0 0.37896,-0.11541 0.12919,-0.11713 0.12919,-0.34279 0,-0.22565 -0.12919,-0.33934 -0.12747,-0.11541 -0.37896,-0.11541 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal';fill:#ff0000" id="path17409"/>
<path d="m 153.09395,193.85838 q -0.37896,0 -0.60289,0.28249 -0.22221,0.2825 -0.22221,0.76998 0,0.48576 0.22221,0.76826 0.22393,0.2825 0.60289,0.2825 0.37896,0 0.59945,-0.2825 0.22221,-0.2825 0.22221,-0.76826 0,-0.48748 -0.22221,-0.76998 -0.22049,-0.28249 -0.59945,-0.28249 z m 0,-0.2825 q 0.54088,0 0.86472,0.36346 0.32384,0.36173 0.32384,0.97151 0,0.60806 -0.32384,0.97152 -0.32384,0.36174 -0.86472,0.36174 -0.5426,0 -0.86816,-0.36174 -0.32384,-0.36173 -0.32384,-0.97152 0,-0.60978 0.32384,-0.97151 0.32556,-0.36346 0.86816,-0.36346 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal';fill:#ff0000" id="path17411"/>
<path d="m 156.0464,194.98837 q 0.11196,0.0379 0.21704,0.16192 0.1068,0.12402 0.2136,0.34106 l 0.35312,0.7028 h -0.37379 l -0.32901,-0.65973 q -0.12747,-0.25839 -0.24805,-0.34279 -0.11885,-0.0844 -0.32556,-0.0844 h -0.37896 v 1.08693 h -0.34796 v -2.57176 h 0.78549 q 0.44097,0 0.65801,0.18431 0.21704,0.18431 0.21704,0.55638 0,0.24288 -0.11369,0.40308 -0.11196,0.1602 -0.32728,0.22221 z m -0.87161,-1.08004 v 0.91295 h 0.43753 q 0.25149,0 0.37896,-0.11541 0.12919,-0.11713 0.12919,-0.34279 0,-0.22565 -0.12919,-0.33934 -0.12747,-0.11541 -0.37896,-0.11541 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal';fill:#ff0000" id="path17413"/>
</g>
<g aria-label="COPY" id="text16407" style="font-size:10.5833px;line-height:1.25;letter-spacing:0px;word-spacing:0px;display:inline;fill:#0066ff;stroke-width:0.264583" inkscape:label="COPY" inkscape:transform-center-x="0.54570313" inkscape:transform-center-y="0.66145834">
<path d="m 157.69645,3.740946 v 0.3669029 q -0.1757,-0.1636422 -0.37552,-0.244602 -0.19809,-0.08096 -0.42202,-0.08096 -0.44097,0 -0.67524,0.2704401 -0.23427,0.2687176 -0.23427,0.7785921 0,0.5081519 0.23427,0.7785921 0.23427,0.2687176 0.67524,0.2687176 0.22393,0 0.42202,-0.08096 0.19982,-0.08096 0.37552,-0.2446019 v 0.3634578 q -0.18259,0.1240235 -0.38757,0.1860353 -0.20326,0.062012 -0.43064,0.062012 -0.58394,0 -0.91984,-0.3565676 -0.3359,-0.3582902 -0.3359,-0.9766852 0,-0.6201176 0.3359,-0.9766852 0.3359,-0.3582902 0.91984,-0.3582902 0.23082,0 0.43408,0.062012 0.20498,0.060289 0.38413,0.1825902 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal'" id="path17394"/>
<path d="m 159.27775,3.7788421 q -0.37896,0 -0.60289,0.282498 -0.22221,0.282498 -0.22221,0.7699793 0,0.4857588 0.22221,0.7682568 0.22393,0.282498 0.60289,0.282498 0.37896,0 0.59945,-0.282498 0.22221,-0.282498 0.22221,-0.7682568 0,-0.4874813 -0.22221,-0.7699793 -0.22049,-0.282498 -0.59945,-0.282498 z m 0,-0.2824981 q 0.54088,0 0.86472,0.3634578 0.32384,0.3617353 0.32384,0.9715176 0,0.6080598 -0.32384,0.9715176 -0.32384,0.3617352 -0.86472,0.3617352 -0.5426,0 -0.86816,-0.3617352 -0.32384,-0.3617353 -0.32384,-0.9715176 0,-0.6097823 0.32384,-0.9715176 0.32556,-0.3634578 0.86816,-0.3634578 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal'" id="path17396"/>
<path d="m 161.35859,3.828796 v 0.9663499 h 0.43753 q 0.24288,0 0.37551,-0.1257461 0.13264,-0.1257461 0.13264,-0.3582902 0,-0.2308215 -0.13264,-0.3565676 -0.13263,-0.125746 -0.37551,-0.125746 z m -0.34796,-0.2859431 h 0.78549 q 0.43236,0 0.65284,0.1963705 0.22221,0.1946481 0.22221,0.5718862 0,0.3806833 -0.22221,0.5753314 -0.22048,0.194648 -0.65284,0.194648 h -0.43753 v 1.0335293 h -0.34796 z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal'" id="path17398"/>
<path d="m 162.70734,3.5428529 h 0.3738 l 0.71313,1.057645 0.70797,-1.057645 h 0.37379 l -0.9095,1.3470332 v 1.2247322 h -0.34968 V 4.8898861 Z" style="font-size:3.52778px;-inkscape-font-specification:'sans-serif, Normal'" id="path17400"/>
</g>
</g>
<g inkscape:label="MajorYGridlines" id="g15116" style="display:inline">
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,10 H 300" inkscape:label="MajorYDiv1" id="path15078"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,20 H 300" inkscape:label="MajorYDiv2" id="path15080"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,30 H 300" inkscape:label="MajorYDiv3" id="path15082"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,40 H 300" inkscape:label="MajorYDiv4" id="path15084"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,50 H 300" inkscape:label="MajorYDiv5" id="path15086"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,60 H 300" inkscape:label="MajorYDiv6" id="path15088"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,70 H 300" inkscape:label="MajorYDiv7" id="path15090"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,80 H 300" inkscape:label="MajorYDiv8" id="path15092"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,90 H 300" inkscape:label="MajorYDiv9" id="path15094"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,100 H 300" inkscape:label="MajorYDiv10" id="path15096"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,110 H 300" inkscape:label="MajorYDiv11" id="path15098"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,120 H 300" inkscape:label="MajorYDiv12" id="path15100"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,130 H 300" inkscape:label="MajorYDiv13" id="path15102"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,140 H 300" inkscape:label="MajorYDiv14" id="path15104"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,150 H 300" inkscape:label="MajorYDiv15" id="path15106"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,160 H 300" inkscape:label="MajorYDiv16" id="path15108"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,170 H 300" inkscape:label="MajorYDiv17" id="path15110"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,180 H 300" inkscape:label="MajorYDiv18" id="path15112"/>
<path style="fill:none;stroke:#000000;stroke-width:0.264583" d="M 0,190 H 300" inkscape:label="MajorYDiv19" id="path15114"/>
</g>
<g inkscape:label="SubMinorXGridlines" id="g15178" style="display:none">
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 5,0 V 200" inkscape:label="SubminorXDiv0:0:1" id="path15118"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 15,0 V 200" inkscape:label="SubminorXDiv1:0:1" id="path15120"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 25,0 V 200" inkscape:label="SubminorXDiv2:0:1" id="path15122"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 35,0 V 200" inkscape:label="SubminorXDiv3:0:1" id="path15124"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 45,0 V 200" inkscape:label="SubminorXDiv4:0:1" id="path15126"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 55,0 V 200" inkscape:label="SubminorXDiv5:0:1" id="path15128"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 65,0 V 200" inkscape:label="SubminorXDiv6:0:1" id="path15130"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 75,0 V 200" inkscape:label="SubminorXDiv7:0:1" id="path15132"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 85,0 V 200" inkscape:label="SubminorXDiv8:0:1" id="path15134"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 95,0 V 200" inkscape:label="SubminorXDiv9:0:1" id="path15136"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 105,0 V 200" inkscape:label="SubminorXDiv10:0:1" id="path15138"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 115,0 V 200" inkscape:label="SubminorXDiv11:0:1" id="path15140"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 125,0 V 200" inkscape:label="SubminorXDiv12:0:1" id="path15142"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 135,0 V 200" inkscape:label="SubminorXDiv13:0:1" id="path15144"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 145,0 V 200" inkscape:label="SubminorXDiv14:0:1" id="path15146"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 155,0 V 200" inkscape:label="SubminorXDiv15:0:1" id="path15148"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 165,0 V 200" inkscape:label="SubminorXDiv16:0:1" id="path15150"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 175,0 V 200" inkscape:label="SubminorXDiv17:0:1" id="path15152"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 185,0 V 200" inkscape:label="SubminorXDiv18:0:1" id="path15154"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 195,0 V 200" inkscape:label="SubminorXDiv19:0:1" id="path15156"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 205,0 V 200" inkscape:label="SubminorXDiv20:0:1" id="path15158"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 215,0 V 200" inkscape:label="SubminorXDiv21:0:1" id="path15160"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 225,0 V 200" inkscape:label="SubminorXDiv22:0:1" id="path15162"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 235,0 V 200" inkscape:label="SubminorXDiv23:0:1" id="path15164"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 245,0 V 200" inkscape:label="SubminorXDiv24:0:1" id="path15166"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 255,0 V 200" inkscape:label="SubminorXDiv25:0:1" id="path15168"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 265,0 V 200" inkscape:label="SubminorXDiv26:0:1" id="path15170"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 275,0 V 200" inkscape:label="SubminorXDiv27:0:1" id="path15172"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 285,0 V 200" inkscape:label="SubminorXDiv28:0:1" id="path15174"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 295,0 V 200" inkscape:label="SubminorXDiv29:0:1" id="path15176"/>
</g>
<g inkscape:label="SubMinorYGridlines" id="g15220" style="display:none">
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,5 H 300" inkscape:label="SubminorXDiv0:0:1" id="path15180"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,15 H 300" inkscape:label="SubminorXDiv1:0:1" id="path15182"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,25 H 300" inkscape:label="SubminorXDiv2:0:1" id="path15184"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,35 H 300" inkscape:label="SubminorXDiv3:0:1" id="path15186"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,45 H 300" inkscape:label="SubminorXDiv4:0:1" id="path15188"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,55 H 300" inkscape:label="SubminorXDiv5:0:1" id="path15190"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,65 H 300" inkscape:label="SubminorXDiv6:0:1" id="path15192"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,75 H 300" inkscape:label="SubminorXDiv7:0:1" id="path15194"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,85 H 300" inkscape:label="SubminorXDiv8:0:1" id="path15196"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,95 H 300" inkscape:label="SubminorXDiv9:0:1" id="path15198"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,105 H 300" inkscape:label="SubminorXDiv10:0:1" id="path15200"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,115 H 300" inkscape:label="SubminorXDiv11:0:1" id="path15202"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,125 H 300" inkscape:label="SubminorXDiv12:0:1" id="path15204"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,135 H 300" inkscape:label="SubminorXDiv13:0:1" id="path15206"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,145 H 300" inkscape:label="SubminorXDiv14:0:1" id="path15208"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,155 H 300" inkscape:label="SubminorXDiv15:0:1" id="path15210"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,165 H 300" inkscape:label="SubminorXDiv16:0:1" id="path15212"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,175 H 300" inkscape:label="SubminorXDiv17:0:1" id="path15214"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,185 H 300" inkscape:label="SubminorXDiv18:0:1" id="path15216"/>
<path style="fill:none;stroke:#000000;stroke-width:0.079375" d="M 0,195 H 300" inkscape:label="SubminorXDiv19:0:1" id="path15218"/>
</g>
<rect x="0" y="0" width="300" height="200" style="fill:none;stroke:#000000;stroke-width:3.67183e-17" inkscape:label="Border" id="rect15222"/>
</g>
<g inkscape:groupmode="layer" id="layer3" inkscape:label="Snapmaker | J1" style="display:inline">
<rect style="fill:#ffffff;stroke-width:0.154526" id="rect527" width="0.78233474" height="10.43113" x="279.55826" y="186.86078"/>
<g aria-label="J1" id="text611" style="font-size:9.813px;line-height:1.25;font-family:'Heiti SC';-inkscape-font-specification:'Heiti SC';display:inline;fill:#ffffff;stroke-width:0.229992">
<path d="m 287.28671,193.04701 q 0,0.99111 -0.157,1.47195 -0.1472,0.48083 -0.58878,0.77522 -0.43178,0.28458 -0.94205,0.28458 -0.50046,0 -0.93224,-0.15701 -0.42196,-0.15701 -1.00092,-0.65747 l 0.4514,-0.66728 q 0.56915,0.41214 0.86354,0.54952 0.29439,0.13739 0.56915,0.13739 0.28458,0 0.52009,-0.20608 0.23551,-0.20607 0.29439,-0.5299 0.0687,-0.33364 0.0687,-1.03036 v -4.79856 h 0.85373 z" id="path3063"/>
<path d="m 291.33947,195.40213 h -0.83411 v -6.35883 h -1.16774 l 0.51027,-0.82429 h 1.49158 z" id="path3065"/>
</g>
<g clip-path="url(#clipPath16)" id="g17284" transform="matrix(0.08049864,0,0,-0.08049864,199.09857,227.00105)" style="display:inline;fill:#ffffff">
<g transform="translate(363.26,466.65)" id="g17250" style="fill:#ffffff">
<path d="m 0,0 c -20.922,0 -37.883,-16.96 -37.883,-37.883 v -37.213 h 15.153 v 37.213 h -0.002 c 0,12.555 10.178,22.733 22.732,22.733 12.555,0 22.732,-10.178 22.732,-22.733 h -0.003 v -37.213 h 15.154 v 37.213 C 37.883,-16.96 20.922,0 0,0" fill="#3f3b3a" id="path17248" style="fill:#ffffff"/>
</g>
<g transform="translate(445.58,406.04)" id="g17254" style="fill:#ffffff">
<path d="m 0,0 c -12.554,0 -22.73,10.177 -22.73,22.729 0,12.554 10.176,22.73 22.73,22.73 12.553,0 22.729,-10.176 22.729,-22.73 C 22.729,10.177 12.553,0 0,0 M 22.729,58.244 V 53.037 C 16.398,57.792 8.529,60.612 0,60.612 c -20.923,0 -37.883,-16.96 -37.883,-37.883 0,-20.922 16.96,-37.882 37.883,-37.882 8.529,0 16.398,2.82 22.729,7.576 v -6.906 h 15.154 v 72.727 z" fill="#3f3b3a" id="path17252" style="fill:#ffffff"/>
</g>
<g transform="translate(532.26,406.04)" id="g17258" style="fill:#ffffff">
<path d="m 0,0 c -12.553,0 -22.729,10.177 -22.729,22.729 0,12.554 10.176,22.73 22.729,22.73 12.553,0 22.73,-10.176 22.73,-22.73 C 22.73,10.177 12.553,0 0,0 m 0,60.612 c -20.922,0 -37.882,-16.96 -37.882,-37.883 v -69.2 h 15.153 v 38.894 c 6.331,-4.756 14.2,-7.576 22.729,-7.576 20.922,0 37.883,16.96 37.883,37.882 0,20.923 -16.961,37.883 -37.883,37.883" fill="#3f3b3a" id="path17256" style="fill:#ffffff"/>
</g>
<g transform="translate(734.31,398.46)" id="g17262" style="fill:#ffffff">
<path d="m 0,0 c -16.737,0 -30.306,13.568 -30.306,30.306 0,16.737 13.569,30.306 30.306,30.306 16.737,0 30.306,-13.569 30.306,-30.306 C 30.306,13.568 16.737,0 0,0 M 30.306,65.82 V 53.037 C 23.394,62.237 12.393,68.188 0,68.188 c -20.922,0 -37.883,-16.959 -37.883,-37.882 0,-20.922 16.961,-37.883 37.883,-37.883 12.393,0 23.394,5.952 30.306,15.152 V -6.907 h 7.577 V 65.82 Z" fill="#3f3b3a" id="path17260" style="fill:#ffffff"/>
</g>
<g transform="translate(691.21,436.81)" id="g17266" style="fill:#ffffff">
<path d="m 0,0 c -0.25,16.522 -13.713,29.841 -30.294,29.841 -11.414,0 -21.35,-6.312 -26.519,-15.634 -5.168,9.322 -15.104,15.634 -26.517,15.634 -16.582,0 -30.045,-13.319 -30.295,-29.841 h -0.012 v -45.255 h 7.577 v 44.79 c 0,12.553 10.176,22.729 22.73,22.729 12.553,0 22.729,-10.176 22.729,-22.729 v -44.79 h 7.577 v 44.79 c 0,12.553 10.176,22.729 22.73,22.729 12.553,0 22.73,-10.176 22.73,-22.729 v -44.79 H 0.012 V 0 Z" fill="#3f3b3a" id="path17264" style="fill:#ffffff"/>
</g>
<g transform="translate(856.21,455.02)" id="g17270" style="fill:#ffffff">
<path d="M 0,0 C 13.382,7.726 30.204,4.078 39.292,-7.935 L -12.777,-37.997 C -18.635,-24.118 -13.384,-7.727 0,0 m 45.088,-30.903 c -1.362,-8.745 -6.52,-16.819 -14.782,-21.589 -13.384,-7.727 -30.203,-4.079 -39.294,7.934 L 49.691,-10.68 C 49.175,-9.54 48.6,-8.413 47.96,-7.305 37.499,10.814 14.331,17.022 -3.789,6.561 -21.907,-3.9 -28.115,-27.069 -17.655,-45.188 c 10.461,-18.119 33.631,-24.327 51.749,-13.865 12.12,6.997 18.901,19.681 18.937,32.735 z" fill="#3f3b3a" id="path17268" style="fill:#ffffff"/>
</g>
<g transform="translate(839.22,466.66)" id="g17274" style="fill:#ffffff">
<path d="m 0,0 h -10.716 l -37.79,-37.79 v 70.377 h -7.577 v -107.69 h 7.577 v 26.598 l 5.422,5.421 32.02,-32.019 H -0.35 l -37.376,37.376 z" fill="#3f3b3a" id="path17272" style="fill:#ffffff"/>
</g>
<g transform="translate(917.36,428.77)" id="g17278" style="fill:#ffffff">
<path d="m 0,0 c 0,-0.02 0.003,-0.039 0.003,-0.059 v -37.154 h 7.575 v 37.154 h 10e-4 c 0,0.02 -10e-4,0.039 -10e-4,0.059 0,16.738 13.568,30.306 30.306,30.306 v 7.577 C 16.962,37.883 0,20.923 0,0" fill="#3f3b3a" id="path17276" style="fill:#ffffff"/>
</g>
<g transform="translate(280.65,437.38)" id="g17282" style="fill:#ffffff">
<path d="m 0,0 c -6.641,1.159 -10.845,4.978 -10.218,8.245 0.893,4.658 8.079,5.869 17.803,6.172 12.995,0.405 23.732,-4.078 23.732,-4.078 0,0 3.992,9.327 5.511,12.872 -11.468,5.271 -23.392,6.442 -29.098,6.442 -19.827,0 -35.061,-10.557 -35.061,-22.404 0,-12.88 15.262,-21.176 29.965,-22.574 12.015,-1.144 19.391,-5.593 18.967,-9.818 -0.374,-3.73 -6.558,-5.581 -13.394,-5.903 -5.915,-0.279 -17.31,-0.045 -29.296,4.451 -0.87,-2.064 -4.12,-9.767 -5.504,-13.048 3.022,-1.511 18.332,-8.378 38.223,-6.51 18.771,1.762 29.949,14.058 28.603,24.009 C 37.597,-2.648 11.585,-2.022 0,0" fill="#3f3b3a" id="path17280" style="fill:#ffffff"/>
</g>
</g>
</g>
<g inkscape:label="Icons" inkscape:groupmode="layer" id="layer1" style="display:inline" transform="translate(0.39999965,-2.4459998)">
<path sodipodi:type="star" style="fill:none;fill-opacity:1;stroke:#ffff00;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path1349" sodipodi:sides="3" sodipodi:cx="39.555885" sodipodi:cy="333.11758" sodipodi:r1="12.85258" sodipodi:r2="6.42629" sodipodi:arg1="2.6179939" sodipodi:arg2="3.6651914" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="M 28.425224,339.54387 39.555886,320.265 50.686546,339.54387 Z" inkscape:transform-center-y="-2.4767285" transform="matrix(0.77080989,0,0,0.77080989,-11.733546,-62.159169)"/>
<path sodipodi:type="star" style="fill:none;fill-opacity:1;stroke:#ffff00;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path1349-1" sodipodi:sides="3" sodipodi:cx="74.701828" sodipodi:cy="333.11758" sodipodi:r1="12.85258" sodipodi:r2="6.4262905" sodipodi:arg1="2.6179939" sodipodi:arg2="3.6651914" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="M 63.571167,339.54387 74.701828,320.265 85.832489,339.54387 Z" inkscape:transform-center-y="-2.4767285" transform="matrix(0.77080989,0,0,0.77080989,-11.733546,-62.159169)"/>
<path sodipodi:type="star" style="fill:none;fill-opacity:1;stroke:#ffff00;stroke-width:0.264999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path1349-1-3" sodipodi:sides="3" sodipodi:cx="111.45139" sodipodi:cy="333.11758" sodipodi:r1="12.85258" sodipodi:r2="6.4262905" sodipodi:arg1="2.6179939" sodipodi:arg2="3.6651914" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="m 100.32073,339.54387 11.13066,-19.27887 11.13066,19.27887 z" inkscape:transform-center-y="-2.4767285" transform="matrix(0.77080989,0,0,0.77080989,-11.733546,-62.159169)"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.40005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 44.86076,190.94921 c -0.607012,0.83768 -1.213985,1.6753 -1.2169,2.44625 -0.0029,0.77095 0.597978,1.47503 0.767817,2.01212 0.169839,0.53708 -0.09115,0.90733 -0.352123,1.27754" id="path1396" inkscape:path-effect="#path-effect1398" inkscape:original-d="m 44.86076,190.94921 c -0.606771,0.83785 -1.213745,1.67547 -1.820923,2.51287 0.601121,0.70432 1.202014,1.4084 1.802715,2.11228 -0.260801,0.37047 -0.521796,0.74071 -0.782998,1.11076"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.40005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 46.061612,190.95887 c -0.607012,0.83768 -1.21398,1.67529 -1.216898,2.44625 -0.0029,0.77095 0.597971,1.47502 0.767813,2.01211 0.169841,0.53709 -0.09115,0.90734 -0.352121,1.27755" id="path1396-6" inkscape:path-effect="#path-effect1417" inkscape:original-d="m 46.061612,190.95887 c -0.606771,0.83785 -1.213745,1.67546 -1.820924,2.51287 0.601122,0.70432 1.202014,1.40839 1.802716,2.11228 -0.260801,0.37047 -0.521796,0.74071 -0.782998,1.11076"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.40005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 47.463723,190.94066 c -0.607007,0.83767 -1.21398,1.67529 -1.216898,2.44625 -0.0029,0.77095 0.597971,1.47502 0.767813,2.01211 0.169841,0.53709 -0.09114,0.90733 -0.352121,1.27755" id="path1396-7" inkscape:path-effect="#path-effect1426" inkscape:original-d="m 47.463723,190.94066 c -0.606771,0.83784 -1.213745,1.67546 -1.820924,2.51287 0.601122,0.70432 1.202014,1.40839 1.802716,2.11228 -0.260801,0.37047 -0.521796,0.7407 -0.782998,1.11076"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.40005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 41.874445,197.72306 h 7.647882" id="path1428"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.293709px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 73.497594,193.31026 c -0.198163,0.41818 -0.396244,0.83619 -0.618617,0.78533 -0.222372,-0.0509 -0.469255,-0.57083 -0.716102,-0.82171 -0.246847,-0.25088 -0.493717,-0.23232 -0.66669,-0.1487 -0.172973,0.0836 -0.271732,0.23218 -0.213909,0.36223 0.05782,0.13004 0.271769,0.24145 0.423902,0.4226 0.152134,0.18115 0.242663,0.43186 0.349605,0.96111 0.106942,0.52924 0.230379,1.33701 0.753087,1.79183 0.522707,0.45482 1.444396,0.55696 2.042911,0.34494 0.598514,-0.21202 0.874186,-0.73823 1.149928,-1.26457" id="path1434" inkscape:path-effect="#path-effect1436" inkscape:original-d="m 73.497594,193.31026 c -0.197813,0.41835 -0.395895,0.83636 -0.594271,1.25409 -0.246613,-0.51967 -0.493488,-1.03964 -0.740648,-1.5599 -0.246613,0.019 -0.493496,0.0374 -0.740656,0.0557 -0.09845,0.14888 -0.197227,0.29744 -0.296261,0.44569 0.214255,0.11178 0.428216,0.22316 0.6419,0.33426 0.09082,0.251 0.181333,0.50172 0.271572,0.7521 0.12373,0.80812 0.24716,1.6159 0.37032,2.42339 0.921996,0.10246 1.843685,0.2046 2.765103,0.30643 0.275988,-0.52597 0.551653,-1.05218 0.827056,-1.5787" sodipodi:nodetypes="cccccccccc"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.293709px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 76.19798,195.31224 c 0.31925,-0.47948 0.638551,-0.95904 0.761367,-1.3079 0.122817,-0.34885 0.04895,-0.5673 -0.0817,-0.64121 -0.130652,-0.0739 -0.318041,-0.003 -0.516785,0.2169 -0.198743,0.2198 -0.408593,0.58818 -0.618376,0.95645" id="path1442" inkscape:path-effect="#path-effect1444" inkscape:original-d="m 76.19798,195.31224 c 0.319586,-0.47926 0.638886,-0.95882 0.957916,-1.4387 -0.07354,-0.21812 -0.147448,-0.43655 -0.221584,-0.65531 -0.187161,0.0714 -0.374568,0.14237 -0.562275,0.21309 -0.209576,0.3687 -0.419421,0.73709 -0.629551,1.10516" sodipodi:nodetypes="ccccc"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.293709px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 75.625839,194.75097 c 0.427245,-0.70531 0.854505,-1.41064 0.970243,-1.81734 0.115737,-0.4067 -0.0805,-0.51463 -0.237262,-0.49903 -0.156767,0.0156 -0.273621,0.15486 -0.466514,0.4778 -0.192894,0.32293 -0.461778,0.82941 -0.73061,1.3358" id="path1442-1" inkscape:path-effect="#path-effect1463" inkscape:original-d="m 75.625839,194.75097 c 0.427576,-0.70511 0.854843,-1.41044 1.281941,-2.11627 -0.196024,-0.10766 -0.392265,-0.21557 -0.588821,-0.32384 -0.116585,0.1396 -0.23344,0.27887 -0.35058,0.41783 -0.268627,0.50682 -0.537501,1.01331 -0.806683,1.51951" sodipodi:nodetypes="ccccc"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.322939px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 75.161665,194.2482 c 0.481946,-0.8587 0.963986,-1.71756 1.084052,-2.22574 0.120065,-0.50817 -0.122202,-0.66556 -0.334468,-0.61383 -0.212265,0.0517 -0.393863,0.31261 -0.608715,0.71081 -0.214852,0.39819 -0.462807,0.93338 -0.710675,1.46838" id="path1442-4" inkscape:path-effect="#path-effect1472" inkscape:original-d="m 75.161665,194.2482 c 0.482296,-0.8585 0.964329,-1.71737 1.446163,-2.57667 -0.242112,-0.15714 -0.48437,-0.31454 -0.727067,-0.47233 -0.181449,0.26138 -0.363036,0.52228 -0.545009,0.78299 -0.247723,0.5356 -0.495677,1.07079 -0.743893,1.60563" sodipodi:nodetypes="ccccc"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.293709px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 74.591805,193.58782 c 0.292958,-0.63399 0.58592,-1.26799 0.680949,-1.68074 0.09503,-0.41275 -0.0082,-0.60404 -0.162225,-0.65713 -0.154047,-0.0531 -0.358771,0.0325 -0.582389,0.32275 -0.223619,0.29023 -0.465799,0.78467 -0.708062,1.27928" id="path1487" inkscape:path-effect="#path-effect1489" inkscape:original-d="m 74.591805,193.58782 c 0.293309,-0.63383 0.58627,-1.26783 0.87907,-1.9024 -0.103049,-0.19111 -0.206215,-0.38243 -0.309742,-0.57412 -0.204473,0.086 -0.409223,0.17154 -0.614266,0.25685 -0.241996,0.49495 -0.726789,1.48383 -0.726789,1.48383" sodipodi:nodetypes="ccccc"/>
<path style="fill:none;stroke:#ffff00;stroke-width:0.340061;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 76.762344,196.16538 -3.740817,-3.75884 v 0" id="path1491"/>
<g aria-label="!" id="text1642" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.875px;line-height:1.25;font-family:Amiri;-inkscape-font-specification:Amiri;fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.77080989,0,0,0.77080989,-11.733546,-62.159169)">
<path d="m 38.868313,336.48727 q -0.255799,-0.26355 -0.255799,-0.61236 0,-0.34882 0.255799,-0.58911 0.26355,-0.24805 0.612366,-0.24805 0.348815,0 0.589111,0.24805 0.248047,0.24029 0.248047,0.58911 0,0.34881 -0.248047,0.61236 -0.240296,0.2558 -0.589111,0.2558 -0.348816,0 -0.612366,-0.2558 z m 0.116272,-10.20868 q 0.217041,-0.27905 0.558105,-0.27905 0.341065,0 0.511597,0.27905 0.170532,0.27906 0.170532,0.62012 0,1.65882 -0.542602,7.00733 -0.09302,0.18603 -0.248047,0.20153 -0.147278,-0.062 -0.201538,-0.17053 -0.465088,-5.34851 -0.465088,-7.03833 0,-0.34106 0.217041,-0.62012 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.875px;font-family:Amiri;-inkscape-font-specification:Amiri;fill:#ffff00;fill-opacity:1;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none" id="path1644"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,25 @@
{
"type": "filament",
"filament_id": "GFB99",
"setting_id": "GFSX04",
"name": "Snapmaker J1 ABS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.926"
],
"filament_max_volumetric_speed": [
"12"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,25 @@
{
"type": "filament",
"filament_id": "GFB98",
"setting_id": "GFSX04",
"name": "Snapmaker J1 ASA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_asa",
"filament_flow_ratio": [
"0.93"
],
"filament_max_volumetric_speed": [
"12"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,25 @@
{
"type": "filament",
"filament_id": "GFN98",
"setting_id": "GFSX04",
"name": "Snapmaker J1 PA-CF",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pa",
"filament_type": [
"PA-CF"
],
"nozzle_temperature_initial_layer": [
"280"
],
"nozzle_temperature": [
"280"
],
"filament_max_volumetric_speed": [
"8"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
]
}

View File

@@ -0,0 +1,28 @@
{
"type": "filament",
"filament_id": "GFN99",
"setting_id": "GFSX04",
"name": "Snapmaker J1 PA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pa",
"nozzle_temperature_initial_layer": [
"280"
],
"nozzle_temperature": [
"280"
],
"filament_max_volumetric_speed": [
"12"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,25 @@
{
"type": "filament",
"filament_id": "GFC99",
"setting_id": "GFSX04",
"name": "Snapmaker J1 PC",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pc",
"filament_max_volumetric_speed": [
"12"
],
"filament_flow_ratio": [
"0.94"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,64 @@
{
"type": "filament",
"filament_id": "GFG99",
"setting_id": "GFSX04",
"name": "Snapmaker J1 PETG",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pet",
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"1"
],
"fan_cooling_layer_time": [
"30"
],
"overhang_fan_speed": [
"90"
],
"overhang_fan_threshold": [
"25%"
],
"fan_max_speed": [
"90"
],
"fan_min_speed": [
"40"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"8"
],
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"10"
],
"nozzle_temperature_initial_layer": [
"245"
],
"nozzle_temperature": [
"245"
],
"nozzle_temperature_range_high": [
"250"
],
"filament_start_gcode": [
"; filament start gcode\n"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,31 @@
{
"type": "filament",
"filament_id": "GFL98",
"setting_id": "GFSX04",
"name": "Snapmaker J1 PLA-CF",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_flow_ratio": [
"0.95"
],
"filament_type": [
"PLA-CF"
],
"filament_max_volumetric_speed": [
"12"
],
"slow_down_layer_time": [
"7"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,34 @@
{
"type": "filament",
"filament_id": "GFL99",
"setting_id": "GFSX04",
"name": "Snapmaker J1 PLA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_flow_ratio": [
"0.92"
],
"filament_max_volumetric_speed": [
"12"
],
"slow_down_layer_time": [
"8"
],
"nozzle_temperature_initial_layer": [
"205"
],
"nozzle_temperature": [
"200"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,31 @@
{
"type": "filament",
"filament_id": "GFS99",
"setting_id": "GFSX04",
"name": "Snapmaker J1 PVA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pva",
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"12"
],
"slow_down_layer_time": [
"7"
],
"slow_down_min_speed": [
"10"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,28 @@
{
"type": "filament",
"filament_id": "GFU99",
"setting_id": "GFSX04",
"name": "Snapmaker J1 TPU",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_tpu",
"filament_max_volumetric_speed": [
"3.2"
],
"nozzle_temperature": [
"220"
],
"nozzle_temperature_initial_layer": [
"220"
],
"compatible_printers": [
"Snapmaker J1 0.4 nozzle",
"Snapmaker J1 0.6 nozzle"
],
"filament_end_gcode": [
"; ====================================\n;END Gcode for filament T[current_extruder] \nG92 E0\nG1 F600 E-6 ;retract\n{if current_extruder == 0}G0 X-20 F12000 {endif} ;\n{if current_extruder == 1}G0 X350 F12000 {endif} ;\nM106 S0 ; Lüfter aus\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 0}T1 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n{if has_wipe_tower and total_toolchanges > 0 and current_extruder == 1}T0 \nG0 X{wipe_tower_x[0]} Y{wipe_tower_y[0]} F{travel_speed*60}{endif} ;\n;END gcode for filament T[current_extruder] (Ende) \n; ====================================="
],
"filament_start_gcode": [
"; ====================================\n; START gcode for filament T[current_extruder]\nM900 T[current_extruder] K0.054\nG1 F600 E5.5 \nM106 S255 ;Lüfter an\n; START gcode for filament T[current_extruder] (Ende)\n; ===================================="
]
}

View File

@@ -0,0 +1,69 @@
{
"type": "machine",
"setting_id": "GM010",
"name": "Snapmaker J1 0.4 nozzle",
"from": "system",
"instantiation": "true",
"inherits": "fdm_machine_common",
"printer_model": "Snapmaker J1",
"default_print_profile": "0.20mm 0.4 Standard @Snapmaker J1",
"retraction_minimum_travel": [
"3"
],
"thumbnails": [
"400x400"
],
"z_hop_types": [
"Auto Lift"
],
"z_lift_type": [
"SpiralLift"
],
"nozzle_diameter": [
"0.4"
],
"bed_exclude_area": [
"0x0"
],
"printable_area": [
"0x0",
"324x0",
"324x200",
"0x200"
],
"printable_height": "200",
"machine_start_gcode": ";***** Snapmaker J1\n;***** Update : 20221222\n;***** Printer : [printer_preset]\n;***** Profile : [print_preset]\nM593 P1 X F35.7 \nM593 P1 Y F33.7 \nM355 S1 P16 ;------------OPTIONAL ;dim led \nM83 ;absolute extrusion mode\nM140 S[first_layer_bed_temperature] ;Start Warming Bed\nT[initial_extruder] ;switch to initial extruder\n{if total_toolchanges < 1}; Preheat one extruder (just one used)\nM104 S160 ;preheat nozzle\n{else}; Preheat both extruders used\nM104 S160 T0 ;preheat T0\nM104 S160 T1 ;preheat T1\n{endif}\nG28 ; home all axes\nG90 ;absolute positioning\nG1 Z0.8 F1800\nM201 X5000 Y5000 Z500 E5000\nM205 V5\nM900 T0 K0.02\nM900 T1 K0.02\nM190 S[first_layer_bed_temperature] ; C3 W2 Wait For Bed Temperature\n{if total_toolchanges < 1}; Heat one extruder\nM104 S[first_layer_temperature]\nM109 S[first_layer_temperature] ;Wait for Hotend Temperature\n{else}; Heat both extruders\nM104 T0 S{first_layer_temperature[0]}\nM104 T1 S{first_layer_temperature[1]}\nM109 T0 S{first_layer_temperature[0]} ;Wait for Hotend Temperature\nM109 T1 S{first_layer_temperature[1]} ;Wait for Hotend Temperature\n{endif}\n;\n{if 1==1} ;-----------OPTIONAL ;led effect\n M355 S1 P32\n G4 S1\n M355 S1 P48\n G4 S1\n M355 S1 P64\n G4 S1\n M355 S1 P96\n G4 S1\n M355 S1 P128\n G4 S1\n M355 S1 P255\n{endif}\n;\nG92 E0\n;\n{if total_toolchanges > 0 or initial_extruder == 0}; Purge line T0\nT0\nG92 E0\nG1 F1200 X5 Z0.5\nG1 F600 X100 E20\nG1 F600 Z2\nG92 E0\nG1 F1200 E-6\nG0 X-20 F12000 ; park T0\n{endif}\n{if total_toolchanges > 0 or initial_extruder == 1}; Purge line T1\nT1\nG92 E0\nG1 F1200 X295 Z0.5\nG1 F600 X200 E20\nG1 F600 Z2\nG92 E0\nG1 F1200 E-6\nG0 X350 F12000 ; park T1 (old 345)\n{endif}\n;End Start Gcode J1\n",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_num]\n",
"machine_end_gcode": ";End GCode J1 begin\nM140 S0 ;heated bed heater off \nG90 ;absolute positioning\nG92 E0\n;\nG1 E-6 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n;\nM104 S0 T0 ;extruder heater off\nM104 S0 T1 ;extruder heater off\n;\nG1 Z200 F1500 ;move bed down\nG0 Y10 F3000 ;so the head is out of the way\nM84 ;steppers off\nM355 S1 P16 ;------------OPTIONAL ;dim led \nM107\n;End of Gcode\n;\n; DON'T REMOVE these lines if you're using the smfix (https://github.com/macdylan/Snapmaker2Slic3rPostProcessor)\n; min_x = [first_layer_print_min_0]\n; min_y = [first_layer_print_min_1]\n; max_x = [first_layer_print_max_0]\n; max_y = [first_layer_print_max_1]\n; max_z = [max_layer_z]\n;",
"change_filament_gcode": ";Change Filament",
"machine_max_acceleration_e": [
"6000",
"5000"
],
"machine_max_acceleration_extruding": [
"5000",
"2000"
],
"machine_max_acceleration_retracting": [
"6000",
"5000"
],
"machine_max_acceleration_x": [
"5000",
"2000"
],
"machine_max_acceleration_y": [
"5000",
"2000"
],
"machine_max_speed_e": [
"60",
"25"
],
"max_layer_height": [
"0.30"
],
"scan_first_layer": "0",
"nozzle_type": "hardened_steel",
"auxiliary_fan": "0"
}

View File

@@ -0,0 +1,69 @@
{
"type": "machine",
"setting_id": "GM011",
"name": "Snapmaker J1 0.6 nozzle",
"from": "system",
"instantiation": "true",
"inherits": "fdm_machine_common",
"printer_model": "Snapmaker J1",
"default_print_profile": "0.20mm 0.6 Standard @Snapmaker J1",
"retraction_minimum_travel": [
"3"
],
"thumbnails": [
"400x400"
],
"z_hop_types": [
"Auto Lift"
],
"z_lift_type": [
"SpiralLift"
],
"nozzle_diameter": [
"0.6"
],
"bed_exclude_area": [
"0x0"
],
"printable_area": [
"0x0",
"324x0",
"324x200",
"0x200"
],
"printable_height": "200",
"machine_start_gcode": ";***** Snapmaker J1\n;***** Update : 20221222\n;***** Printer : [printer_preset]\n;***** Profile : [print_preset]\nM593 P1 X F35.7 \nM593 P1 Y F33.7 \nM355 S1 P16 ;------------OPTIONAL ;dim led \nM83 ;absolute extrusion mode\nM140 S[first_layer_bed_temperature] ;Start Warming Bed\nT[initial_extruder] ;switch to initial extruder\n{if total_toolchanges < 1}; Preheat one extruder (just one used)\nM104 S160 ;preheat nozzle\n{else}; Preheat both extruders used\nM104 S160 T0 ;preheat T0\nM104 S160 T1 ;preheat T1\n{endif}\nG28 ; home all axes\nG90 ;absolute positioning\nG1 Z0.8 F1800\nM201 X5000 Y5000 Z500 E5000\nM205 V5\nM900 T0 K0.02\nM900 T1 K0.02\nM190 S[first_layer_bed_temperature] ; C3 W2 Wait For Bed Temperature\n{if total_toolchanges < 1}; Heat one extruder\nM104 S[first_layer_temperature]\nM109 S[first_layer_temperature] ;Wait for Hotend Temperature\n{else}; Heat both extruders\nM104 T0 S{first_layer_temperature[0]}\nM104 T1 S{first_layer_temperature[1]}\nM109 T0 S{first_layer_temperature[0]} ;Wait for Hotend Temperature\nM109 T1 S{first_layer_temperature[1]} ;Wait for Hotend Temperature\n{endif}\n;\n{if 1==1} ;-----------OPTIONAL ;led effect\n M355 S1 P32\n G4 S1\n M355 S1 P48\n G4 S1\n M355 S1 P64\n G4 S1\n M355 S1 P96\n G4 S1\n M355 S1 P128\n G4 S1\n M355 S1 P255\n{endif}\n;\nG92 E0\n;\n{if total_toolchanges > 0 or initial_extruder == 0}; Purge line T0\nT0\nG92 E0\nG1 F1200 X5 Z0.5\nG1 F600 X100 E20\nG1 F600 Z2\nG92 E0\nG1 F1200 E-6\nG0 X-20 F12000 ; park T0\n{endif}\n{if total_toolchanges > 0 or initial_extruder == 1}; Purge line T1\nT1\nG92 E0\nG1 F1200 X295 Z0.5\nG1 F600 X200 E20\nG1 F600 Z2\nG92 E0\nG1 F1200 E-6\nG0 X350 F12000 ; park T1 (old 345)\n{endif}\n;End Start Gcode J1\n",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_num]\n",
"machine_end_gcode": ";End GCode J1 begin\nM140 S0 ;heated bed heater off \nG90 ;absolute positioning\nG92 E0\n;\nG1 E-6 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n;\nM104 S0 T0 ;extruder heater off\nM104 S0 T1 ;extruder heater off\n;\nG1 Z200 F1500 ;move bed down\nG0 Y10 F3000 ;so the head is out of the way\nM84 ;steppers off\nM355 S1 P16 ;------------OPTIONAL ;dim led \nM107\n;End of Gcode\n;\n; DON'T REMOVE these lines if you're using the smfix (https://github.com/macdylan/Snapmaker2Slic3rPostProcessor)\n; min_x = [first_layer_print_min_0]\n; min_y = [first_layer_print_min_1]\n; max_x = [first_layer_print_max_0]\n; max_y = [first_layer_print_max_1]\n; max_z = [max_layer_z]\n;",
"change_filament_gcode": ";Change Filament",
"machine_max_acceleration_e": [
"6000",
"5000"
],
"machine_max_acceleration_extruding": [
"5000",
"2000"
],
"machine_max_acceleration_retracting": [
"6000",
"5000"
],
"machine_max_acceleration_x": [
"5000",
"2000"
],
"machine_max_acceleration_y": [
"5000",
"2000"
],
"machine_max_speed_e": [
"60",
"25"
],
"max_layer_height": [
"0.40"
],
"scan_first_layer": "0",
"nozzle_type": "hardened_steel",
"auxiliary_fan": "0"
}

View File

@@ -0,0 +1,12 @@
{
"type": "machine_model",
"name": "Snapmaker J1",
"model_id": "SnapmakerJ1",
"nozzle_diameter": "0.4;0,6",
"machine_tech": "FFF",
"family": "Snapmaker",
"bed_model": "",
"bed_texture": "j1_texture.svg",
"hotend_model": "hotend.stl",
"default_materials": "Snapmaker J1 ABS;Snapmaker J1 PLA;Snapmaker J1 PLA-CF;Snapmaker J1 PETG;Snapmaker J1 TPU;Snapmaker J1 ASA;Snapmaker J1 PC;Snapmaker J1 PVA;Snapmaker J1 PA;Snapmaker J1 PA-CF"
}

View File

@@ -0,0 +1,80 @@
{
"type": "process",
"setting_id": "GP040",
"name": "0.20mm 0.4 Standard @Snapmaker J1",
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
"bottom_shell_layers": "4",
"bridge_acceleration": "60%",
"brim_type": "no_brim",
"default_acceleration": "5000",
"default_jerk": "3",
"elefant_foot_compensation": "0.1",
"enable_arc_fitting": "1",
"enable_support": "1",
"filename_format": "{input_filename_base}_{layer_height}mm_J1_{print_time}.gcode",
"flush_into_infill": "1",
"gap_infill_speed": "80",
"gcode_comments": "1",
"infill_jerk": "3",
"initial_layer_acceleration": "1000",
"initial_layer_infill_speed": "40",
"initial_layer_jerk": "1",
"initial_layer_speed": "35",
"initial_layer_travel_speed": "50%",
"inner_wall_acceleration": "2000",
"inner_wall_jerk": "3",
"inner_wall_line_width": "0.44",
"inner_wall_speed": "120",
"internal_solid_infill_line_width": "0.45",
"internal_solid_infill_speed": "160",
"is_custom_defined": "0",
"layer_height": "0.25",
"line_width": "0.44",
"max_travel_detour_distance": "3",
"only_one_wall_top": "1",
"outer_wall_acceleration": "2000",
"outer_wall_jerk": "2",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "100",
"overhang_1_4_speed": "50",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "20",
"post_process": [
"/Users/hliebscher/smfix_bs-darwin-arm64",
"\n/Users/hliebscher/j1x2",
"\n"
],
"precise_outer_wall": "1",
"prime_tower_brim_width": "1",
"prime_tower_width": "10",
"prime_volume": "2",
"print_settings_id": "0.4 0.25mm Normal S2J2 Parts",
"reduce_crossing_wall": "1",
"skirt_loops": "2",
"small_perimeter_speed": "80%",
"small_perimeter_threshold": "6",
"sparse_infill_density": "35%",
"sparse_infill_line_width": "0.44",
"sparse_infill_pattern": "adaptivecubic",
"sparse_infill_speed": "130",
"support_interface_top_layers": "0",
"support_line_width": "0.45",
"support_speed": "100",
"support_top_z_distance": "0",
"support_type": "normal(manual)",
"thick_bridges": "1",
"top_shell_thickness": "0",
"top_surface_acceleration": "1000",
"top_surface_jerk": "1",
"top_surface_speed": "60",
"travel_acceleration": "2500",
"travel_jerk": "9",
"travel_speed": "150",
"tree_support_wall_count": "2",
"xy_hole_compensation": "0.08",
"compatible_printers": [
"Snapmaker J1 0.4 nozzle"
]
}

View File

@@ -0,0 +1,80 @@
{
"type": "process",
"setting_id": "GP041",
"name": "0.20mm 0.6 Standard @Snapmaker J1",
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
"bottom_shell_layers": "4",
"bridge_acceleration": "60%",
"brim_type": "no_brim",
"default_acceleration": "5000",
"default_jerk": "3",
"elefant_foot_compensation": "0.1",
"enable_arc_fitting": "1",
"enable_support": "1",
"filename_format": "{input_filename_base}_{layer_height}mm_J1_{print_time}.gcode",
"flush_into_infill": "1",
"gap_infill_speed": "80",
"gcode_comments": "1",
"infill_jerk": "3",
"initial_layer_acceleration": "1000",
"initial_layer_infill_speed": "40",
"initial_layer_jerk": "1",
"initial_layer_speed": "35",
"initial_layer_travel_speed": "50%",
"inner_wall_acceleration": "2000",
"inner_wall_jerk": "3",
"inner_wall_line_width": "0.64",
"inner_wall_speed": "120",
"internal_solid_infill_line_width": "0.65",
"internal_solid_infill_speed": "160",
"is_custom_defined": "0",
"layer_height": "0.25",
"line_width": "0.64",
"max_travel_detour_distance": "3",
"only_one_wall_top": "1",
"outer_wall_acceleration": "2000",
"outer_wall_jerk": "2",
"outer_wall_line_width": "0.62",
"outer_wall_speed": "100",
"overhang_1_4_speed": "50",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "20",
"post_process": [
"/Users/hliebscher/smfix_bs-darwin-arm64",
"\n/Users/hliebscher/j1x1",
"\n"
],
"precise_outer_wall": "1",
"prime_tower_brim_width": "1",
"prime_tower_width": "10",
"prime_volume": "2",
"print_settings_id": "0.6 0.25mm Normal S2J2 Parts",
"reduce_crossing_wall": "1",
"skirt_loops": "2",
"small_perimeter_speed": "80%",
"small_perimeter_threshold": "6",
"sparse_infill_density": "35%",
"sparse_infill_line_width": "0.64",
"sparse_infill_pattern": "adaptivecubic",
"sparse_infill_speed": "130",
"support_interface_top_layers": "0",
"support_line_width": "0.65",
"support_speed": "100",
"support_top_z_distance": "0",
"support_type": "normal(manual)",
"thick_bridges": "1",
"top_shell_thickness": "0",
"top_surface_acceleration": "1000",
"top_surface_jerk": "1",
"top_surface_speed": "60",
"travel_acceleration": "2500",
"travel_jerk": "9",
"travel_speed": "150",
"tree_support_wall_count": "2",
"xy_hole_compensation": "0.08",
"compatible_printers": [
"Snapmaker J1 0.6 nozzle"
]
}

View File

@@ -23,7 +23,6 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -20,7 +20,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"enable_arc_fitting": "0",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -21,7 +21,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"enable_arc_fitting": "0",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -21,7 +21,7 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"enable_arc_fitting": "0",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -20,7 +20,6 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -24,7 +24,6 @@
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "1",
"outer_wall_line_width": "0.4",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.4",

View File

@@ -98,7 +98,7 @@ var LangText={
"t9":"Weiter",
"t10":"Druckerauswahl",
"t11":"Alle",
"t12":"Alles leeren",
"t12":"Keinen",
"t13":"mm Düse",
"t14":"Filamentauswahl",
"t15":"Drucker",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -103,8 +103,8 @@ endif()
# Create a slic3r executable
# Process mainfests for various platforms.
set(MACOSX_BUNDLE_COPYRIGHT "Copyright(C) 2022-2023 Li Jiang All Rights Reserved")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/BambuStudio.rc.in ${CMAKE_CURRENT_BINARY_DIR}/BambuStudio.rc @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/BambuStudio.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/BambuStudio.manifest @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/OrcaSlicer.rc.in ${CMAKE_CURRENT_BINARY_DIR}/OrcaSlicer.rc @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/OrcaSlicer.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/OrcaSlicer.manifest @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/osx/Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist @ONLY)
if (WIN32)
add_library(OrcaSlicer SHARED BambuStudio.cpp BambuStudio.hpp BaseException.cpp BaseException.h StackWalker.cpp StackWalker.h)
@@ -166,7 +166,7 @@ if (WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -municode")
endif()
add_executable(OrcaSlicer_app_gui WIN32 BambuStudio_app_msvc.cpp ${CMAKE_CURRENT_BINARY_DIR}/BambuStudio.rc)
add_executable(OrcaSlicer_app_gui WIN32 BambuStudio_app_msvc.cpp ${CMAKE_CURRENT_BINARY_DIR}/OrcaSlicer.rc)
# Generate debug symbols even in release mode.
if(MSVC)
target_link_options(OrcaSlicer_app_gui PUBLIC "$<$<CONFIG:RELEASE>:/DEBUG>")

View File

@@ -310,6 +310,10 @@ void AppConfig::set_defaults()
// }
// #endif
if (get("presets", "filament_colors").empty()) {
set_str("presets", "filament_colors", "#F2754E");
}
// Remove legacy window positions/sizes
erase("app", "main_frame_maximized");
erase("app", "main_frame_pos");

View File

@@ -70,6 +70,26 @@ public:
return ! (this->max(0) < other.min(0) || this->min(0) > other.max(0) ||
this->max(1) < other.min(1) || this->min(1) > other.max(1));
}
PointClass operator[](size_t idx) const {
switch (idx) {
case 0:
return min;
break;
case 1:
return PointClass(max(0), min(1));
break;
case 2:
return max;
break;
case 3:
return PointClass(min(0), max(1));
break;
default:
return PointClass();
break;
}
return PointClass();
}
bool operator==(const BoundingBoxBase<PointClass> &rhs) { return this->min == rhs.min && this->max == rhs.max; }
bool operator!=(const BoundingBoxBase<PointClass> &rhs) { return ! (*this == rhs); }
friend std::ostream &operator<<(std::ostream &os, const BoundingBoxBase &bbox)

View File

@@ -24,7 +24,7 @@ BuildVolume::BuildVolume(const std::vector<Vec2d> &printable_area, const double
if (printable_area.size() >= 4 && std::abs((m_area - double(m_bbox.size().x()) * double(m_bbox.size().y()))) < sqr(SCALED_EPSILON)) {
// Square print bed, use the bounding box for collision detection.
m_type = Type::Rectangle;
m_type = BuildVolume_Type::Rectangle;
m_circle.center = 0.5 * (m_bbox.min.cast<double>() + m_bbox.max.cast<double>());
m_circle.radius = 0.5 * m_bbox.size().cast<double>().norm();
} else if (printable_area.size() > 3) {
@@ -52,16 +52,16 @@ BuildVolume::BuildVolume(const std::vector<Vec2d> &printable_area, const double
prev = p;
}
if (is_circle) {
m_type = Type::Circle;
m_type = BuildVolume_Type::Circle;
m_circle.center = scaled<double>(m_circle.center);
m_circle.radius = scaled<double>(m_circle.radius);
}
}
if (printable_area.size() >= 3 && m_type == Type::Invalid) {
if (printable_area.size() >= 3 && m_type == BuildVolume_Type::Invalid) {
// Circle check is not used for Convex / Custom shapes, fill it with something reasonable.
m_circle = Geometry::smallest_enclosing_circle_welzl(m_convex_hull.points);
m_type = (m_convex_hull.area() - m_area) < sqr(SCALED_EPSILON) ? Type::Convex : Type::Custom;
m_type = (m_convex_hull.area() - m_area) < sqr(SCALED_EPSILON) ? BuildVolume_Type::Convex : BuildVolume_Type::Custom;
// Initialize the top / bottom decomposition for inside convex polygon check. Do it with two different epsilons applied.
auto convex_decomposition = [](const Polygon &in, double epsilon) {
Polygon src = expand(in, float(epsilon)).front();
@@ -272,7 +272,7 @@ BuildVolume::ObjectState object_state_templ(const indexed_triangle_set &its, con
BuildVolume::ObjectState BuildVolume::object_state(const indexed_triangle_set& its, const Transform3f& trafo, bool may_be_below_bed, bool ignore_bottom) const
{
switch (m_type) {
case Type::Rectangle:
case BuildVolume_Type::Rectangle:
{
BoundingBox3Base<Vec3d> build_volume = this->bounding_volume().inflated(SceneEpsilon);
if (m_max_print_height == 0.0)
@@ -285,20 +285,20 @@ BuildVolume::ObjectState BuildVolume::object_state(const indexed_triangle_set& i
//FIXME This test does NOT correctly interprets intersection of a non-convex object with a rectangular build volume.
return object_state_templ(its, trafo, may_be_below_bed, [build_volumef](const Vec3f &pt) { return build_volumef.contains(pt); });
}
case Type::Circle:
case BuildVolume_Type::Circle:
{
Geometry::Circlef circle { unscaled<float>(m_circle.center), unscaled<float>(m_circle.radius + SceneEpsilon) };
return m_max_print_height == 0.0 ?
object_state_templ(its, trafo, may_be_below_bed, [circle](const Vec3f &pt) { return circle.contains(to_2d(pt)); }) :
object_state_templ(its, trafo, may_be_below_bed, [circle, z = m_max_print_height + SceneEpsilon](const Vec3f &pt) { return pt.z() < z && circle.contains(to_2d(pt)); });
}
case Type::Convex:
case BuildVolume_Type::Convex:
//FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently.
case Type::Custom:
case BuildVolume_Type::Custom:
return m_max_print_height == 0.0 ?
object_state_templ(its, trafo, may_be_below_bed, [this](const Vec3f &pt) { return Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_scene, to_2d(pt).cast<double>()); }) :
object_state_templ(its, trafo, may_be_below_bed, [this, z = m_max_print_height + SceneEpsilon](const Vec3f &pt) { return pt.z() < z && Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_scene, to_2d(pt).cast<double>()); });
case Type::Invalid:
case BuildVolume_Type::Invalid:
default:
return ObjectState::Inside;
}
@@ -306,7 +306,7 @@ BuildVolume::ObjectState BuildVolume::object_state(const indexed_triangle_set& i
BuildVolume::ObjectState BuildVolume::volume_state_bbox(const BoundingBoxf3& volume_bbox, bool ignore_bottom) const
{
assert(m_type == Type::Rectangle);
assert(m_type == BuildVolume_Type::Rectangle);
BoundingBox3Base<Vec3d> build_volume = this->bounding_volume().inflated(SceneEpsilon);
if (m_max_print_height == 0.0)
build_volume.max.z() = std::numeric_limits<double>::max();
@@ -325,7 +325,7 @@ bool BuildVolume::all_paths_inside(const GCodeProcessorResult& paths, const Boun
static constexpr const double epsilon = BedEpsilon;
switch (m_type) {
case Type::Rectangle:
case BuildVolume_Type::Rectangle:
{
BoundingBox3Base<Vec3d> build_volume = this->bounding_volume().inflated(epsilon);
if (m_max_print_height == 0.0)
@@ -334,7 +334,7 @@ bool BuildVolume::all_paths_inside(const GCodeProcessorResult& paths, const Boun
build_volume.min.z() = -std::numeric_limits<double>::max();
return build_volume.contains(paths_bbox);
}
case Type::Circle:
case BuildVolume_Type::Circle:
{
const Vec2f c = unscaled<float>(m_circle.center);
const float r = unscaled<double>(m_circle.radius) + epsilon;
@@ -345,9 +345,9 @@ bool BuildVolume::all_paths_inside(const GCodeProcessorResult& paths, const Boun
std::all_of(paths.moves.begin(), paths.moves.end(), [move_valid, c, r2, z = m_max_print_height + epsilon](const GCodeProcessorResult::MoveVertex& move)
{ return ! move_valid(move) || ((to_2d(move.position) - c).squaredNorm() <= r2 && move.position.z() <= z); });
}
case Type::Convex:
case BuildVolume_Type::Convex:
//FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently.
case Type::Custom:
case BuildVolume_Type::Custom:
return m_max_print_height == 0.0 ?
std::all_of(paths.moves.begin(), paths.moves.end(), [move_valid, this](const GCodeProcessorResult::MoveVertex &move)
{ return ! move_valid(move) || Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_bed, to_2d(move.position).cast<double>()); }) :
@@ -375,7 +375,7 @@ bool BuildVolume::all_paths_inside_vertices_and_normals_interleaved(const std::v
assert(paths.size() % 6 == 0);
static constexpr const double epsilon = BedEpsilon;
switch (m_type) {
case Type::Rectangle:
case BuildVolume_Type::Rectangle:
{
BoundingBox3Base<Vec3d> build_volume = this->bounding_volume().inflated(epsilon);
if (m_max_print_height == 0.0)
@@ -384,7 +384,7 @@ bool BuildVolume::all_paths_inside_vertices_and_normals_interleaved(const std::v
build_volume.min.z() = -std::numeric_limits<double>::max();
return build_volume.contains(paths_bbox.min().cast<double>()) && build_volume.contains(paths_bbox.max().cast<double>());
}
case Type::Circle:
case BuildVolume_Type::Circle:
{
const Vec2f c = unscaled<float>(m_circle.center);
const float r = unscaled<double>(m_circle.radius) + float(epsilon);
@@ -393,9 +393,9 @@ bool BuildVolume::all_paths_inside_vertices_and_normals_interleaved(const std::v
all_inside_vertices_normals_interleaved(paths, [c, r2](Vec3f p) { return (to_2d(p) - c).squaredNorm() <= r2; }) :
all_inside_vertices_normals_interleaved(paths, [c, r2, z = m_max_print_height + epsilon](Vec3f p) { return (to_2d(p) - c).squaredNorm() <= r2 && p.z() <= z; });
}
case Type::Convex:
case BuildVolume_Type::Convex:
//FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently.
case Type::Custom:
case BuildVolume_Type::Custom:
return m_max_print_height == 0.0 ?
all_inside_vertices_normals_interleaved(paths, [this](Vec3f p) { return Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_bed, to_2d(p).cast<double>()); }) :
all_inside_vertices_normals_interleaved(paths, [this, z = m_max_print_height + epsilon](Vec3f p) { return Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_bed, to_2d(p).cast<double>()) && p.z() <= z; });
@@ -404,15 +404,15 @@ bool BuildVolume::all_paths_inside_vertices_and_normals_interleaved(const std::v
}
}
std::string_view BuildVolume::type_name(Type type)
std::string_view BuildVolume::type_name(BuildVolume_Type type)
{
using namespace std::literals;
switch (type) {
case Type::Invalid: return "Invalid"sv;
case Type::Rectangle: return "Rectangle"sv;
case Type::Circle: return "Circle"sv;
case Type::Convex: return "Convex"sv;
case Type::Custom: return "Custom"sv;
case BuildVolume_Type::Invalid: return "Invalid"sv;
case BuildVolume_Type::Rectangle: return "Rectangle"sv;
case BuildVolume_Type::Circle: return "Circle"sv;
case BuildVolume_Type::Convex: return "Convex"sv;
case BuildVolume_Type::Custom: return "Custom"sv;
}
// make visual studio happy
assert(false);

View File

@@ -12,24 +12,23 @@
namespace Slic3r {
struct GCodeProcessorResult;
enum class BuildVolume_Type : unsigned char {
// Not set yet or undefined.
Invalid,
// Rectangular print bed. Most common, cheap to work with.
Rectangle,
// Circular print bed. Common on detals, cheap to work with.
Circle,
// Convex print bed. Complex to process.
Convex,
// Some non convex shape.
Custom
};
// For collision detection of objects and G-code (extrusion paths) against the build volume.
class BuildVolume
{
public:
enum class Type : unsigned char
{
// Not set yet or undefined.
Invalid,
// Rectangular print bed. Most common, cheap to work with.
Rectangle,
// Circular print bed. Common on detals, cheap to work with.
Circle,
// Convex print bed. Complex to process.
Convex,
// Some non convex shape.
Custom
};
// Initialized to empty, all zeros, Invalid.
BuildVolume() {}
@@ -41,11 +40,11 @@ public:
double printable_height() const { return m_max_print_height; }
// Derived data
Type type() const { return m_type; }
BuildVolume_Type type() const { return m_type; }
// Format the type for console output.
static std::string_view type_name(Type type);
static std::string_view type_name(BuildVolume_Type type);
std::string_view type_name() const { return type_name(m_type); }
bool valid() const { return m_type != Type::Invalid; }
bool valid() const { return m_type != BuildVolume_Type::Invalid; }
// Same as printable_area(), but scaled coordinates.
const Polygon& polygon() const { return m_polygon; }
// Bounding box of polygon(), scaled.
@@ -101,7 +100,7 @@ private:
double m_max_print_height { 0.f };
// Derived values.
Type m_type { Type::Invalid };
BuildVolume_Type m_type { BuildVolume_Type::Invalid };
// Geometry of the print bed, scaled copy of m_bed_shape.
Polygon m_polygon;
// Scaled snug bounding box around m_polygon.

View File

@@ -1308,7 +1308,7 @@ void ConfigBase::save_to_json(const std::string &file, const std::string &name,
{
const ConfigOption* opt = this->option(opt_key);
if ( opt->is_scalar() ) {
if (opt->type() == coString)
if (opt->type() == coString && (opt_key != "bed_custom_texture" && opt_key != "bed_custom_model"))
//keep \n, \r, \t
j[opt_key] = (dynamic_cast<const ConfigOptionString *>(opt))->value;
else

View File

@@ -1500,8 +1500,8 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
file.write_format("; HEADER_BLOCK_START\n");
// Write information on the generator.
file.write_format("; generated by %s on %s\n", Slic3r::header_slic3r_generated().c_str(), Slic3r::Utils::local_timestamp().c_str());
//BBS: total estimated printing time
file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str());
if (is_bbl_printers)
file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str());
//BBS: total layer number
file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Total_Layer_Number_Placeholder).c_str());
file.write_format("; HEADER_BLOCK_END\n\n");
@@ -1730,7 +1730,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
auto pts = std::make_unique<ConfigOptionPoints>();
pts->values.reserve(print.first_layer_convex_hull().size());
for (const Point& pt : print.first_layer_convex_hull().points)
pts->values.emplace_back(unscale(pt) - Vec2d(print.get_plate_origin().x(), print.get_plate_origin().y()));
pts->values.emplace_back(print.translate_to_print_space(pt));
BoundingBoxf bbox(pts->values);
m_placeholder_parser.set("first_layer_print_convex_hull", pts.release());
m_placeholder_parser.set("first_layer_print_min", new ConfigOptionFloats({bbox.min.x(), bbox.min.y()}));
@@ -2662,12 +2662,16 @@ namespace Skirt {
} // namespace Skirt
inline std::string get_instance_name(const PrintObject *object, const PrintInstance &inst) {
return (boost::format("%1%_id_%2%_copy_%3%") % object->model_object()->name % object->get_id() % inst.id).str();
inline std::string get_instance_name(const PrintObject *object, size_t inst_id) {
auto obj_name = object->model_object()->name;
// replace space in obj_name with '-'
std::replace(obj_name.begin(), obj_name.end(), ' ', '_');
return (boost::format("%1%_id_%2%_copy_%3%") % obj_name % object->get_id() % inst_id).str();
}
inline std::string get_instance_name(const PrintObject *object, size_t inst_id) {
return (boost::format("%1%_id_%2%_copy_%3%") % object->model_object()->name % object->get_id() % inst_id).str();
inline std::string get_instance_name(const PrintObject *object, const PrintInstance &inst) {
return get_instance_name(object, inst.id);
}
// In sequential mode, process_layer is called once per each object and its copy,
@@ -3870,7 +3874,13 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
}
// calculate extrusion length per distance unit
const auto _mm3_per_mm = path.mm3_per_mm * this->config().print_flow_ratio;
auto _mm3_per_mm = path.mm3_per_mm * this->config().print_flow_ratio;
if (path.role() == erTopSolidInfill)
_mm3_per_mm *= m_config.top_solid_infill_flow_ratio;
else if (path.role() == erBottomSurface)
_mm3_per_mm *= m_config.bottom_solid_infill_flow_ratio;
double e_per_mm = m_writer.extruder()->e_per_mm3() * _mm3_per_mm;
double min_speed = double(m_config.slow_down_min_speed.get_at(m_writer.extruder()->id()));
@@ -4606,31 +4616,34 @@ std::string GCode::set_extruder(unsigned int extruder_id, double print_z)
return gcode;
}
inline std::string polygon_to_string(const Polygon &polygon) {
inline std::string polygon_to_string(const Polygon &polygon, Print *print) {
std::ostringstream gcode;
gcode << "[";
for (const Point &p : polygon.points) {
gcode << "[" << unscaled(p.x()) << "," << unscaled(p.y()) << "],";
const auto v = print->translate_to_print_space(p);
gcode << "[" << v.x() << "," << v.y() << "],";
}
gcode << "[" << unscaled(polygon.points.front().x()) << "," << unscaled(polygon.points.front().y()) << "]";
const auto first_v = print->translate_to_print_space(polygon.points.front());
gcode << "[" << first_v.x() << "," << first_v.y() << "]";
gcode << "]";
return gcode.str();
}
// this function iterator PrintObject and assign a seqential id to each object.
// this function iterator PrintObject and assign a seqential id to each object.
// this id is used to generate unique object id for each object.
std::string GCode::set_object_info(Print* print) {
std::string GCode::set_object_info(Print *print) {
std::ostringstream gcode;
size_t object_id = 0;
for (PrintObject* object : print->objects()) {
for (PrintObject *object : print->objects()) {
object->set_id(object_id++);
size_t inst_id = 0;
for (PrintInstance &inst : object->instances()) {
inst.id = inst_id++;
if (this->config().exclude_object && print->config().gcode_flavor.value == gcfKlipper) {
auto bbox = inst.get_bounding_box();
gcode << "EXCLUDE_OBJECT_DEFINE NAME=" << get_instance_name(object, inst)
<< " CENTER=" << bbox.center().x() << "," << bbox.center().y()
<< " POLYGON=" << polygon_to_string(inst.get_convex_hull_2d()) << "\n";
auto center = print->translate_to_print_space(Vec2d(bbox.center().x(), bbox.center().y()));
gcode << "EXCLUDE_OBJECT_DEFINE NAME=" << get_instance_name(object, inst) << " CENTER=" << center.x()
<< "," << center.y() << " POLYGON=" << polygon_to_string(inst.get_convex_hull_2d(), print)
<< "\n";
}
}
}

View File

@@ -1945,6 +1945,15 @@ std::vector<Point> Print::first_layer_wipe_tower_corners(bool check_wipe_tower_e
return corners;
}
//SoftFever
Vec2d Print::translate_to_print_space(const Vec2d &point) const {
//const BoundingBoxf bed_bbox(config().printable_area.values);
return Vec2d(point(0) - m_origin(0), point(1) - m_origin(1));
}
Vec2d Print::translate_to_print_space(const Point &point) const {
return Vec2d(unscaled(point.x()) - m_origin(0), unscaled(point.y()) - m_origin(1));
}
void Print::finalize_first_layer_convex_hull()
{
append(m_first_layer_convex_hull.points, m_skirt_convex_hull);

View File

@@ -750,6 +750,9 @@ public:
const CalibMode calib_mode() const { return m_calib_params.mode; }
void set_calib_params(const Calib_Params& params);
const Calib_Params& calib_params() const { return m_calib_params; }
Vec2d translate_to_print_space(const Vec2d &point) const;
// scaled point
Vec2d translate_to_print_space(const Point &point) const;
protected:
// Invalidates the step, and its depending steps in Print.
bool invalidate_step(PrintStep step);

View File

@@ -1228,7 +1228,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("Default filament color");
def->gui_type = ConfigOptionDef::GUIType::color;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionStrings{"#F2754E"});
def->set_default_value(new ConfigOptionStrings{""});
def = this->add("filament_colour", coStrings);
def->label = L("Color");
@@ -2184,7 +2184,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("Diameter of nozzle");
def->sidetext = L("mm");
def->mode = comAdvanced;
def->max = 1.8;
def->max = 100;
def->set_default_value(new ConfigOptionFloats { 0.4 });
def = this->add("host_type", coEnum);

View File

@@ -22,15 +22,10 @@ Flow PrintRegion::flow(const PrintObject &object, FlowRole role, double layer_he
{
const PrintConfig &print_config = object.print()->config();
ConfigOptionFloat config_width;
double flow_ratio = 1.0;
// Get extrusion width from configuration.
// (might be an absolute value, or a percent value, or zero for auto)
if (first_layer) {
if(role != frExternalPerimeter)
flow_ratio = m_config.bottom_solid_infill_flow_ratio;
if(print_config.initial_layer_line_width.value > 0) {
config_width = print_config.initial_layer_line_width;
}
if (first_layer && print_config.initial_layer_line_width.value > 0) {
config_width = print_config.initial_layer_line_width;
} else if (role == frExternalPerimeter) {
config_width = m_config.outer_wall_line_width;
} else if (role == frPerimeter) {
@@ -41,7 +36,6 @@ Flow PrintRegion::flow(const PrintObject &object, FlowRole role, double layer_he
config_width = m_config.internal_solid_infill_line_width;
} else if (role == frTopSolidInfill) {
config_width = m_config.top_surface_line_width;
flow_ratio = m_config.top_solid_infill_flow_ratio;
} else {
throw Slic3r::InvalidArgument("Unknown role");
}
@@ -52,7 +46,7 @@ Flow PrintRegion::flow(const PrintObject &object, FlowRole role, double layer_he
// Get the configured nozzle_diameter for the extruder associated to the flow role requested.
// Here this->extruder(role) - 1 may underflow to MAX_INT, but then the get_at() will follback to zero'th element, so everything is all right.
auto nozzle_diameter = float(print_config.nozzle_diameter.get_at(this->extruder(role) - 1));
return Flow::new_from_config_width(role, config_width, nozzle_diameter, float(layer_height)).with_flow_ratio(flow_ratio);
return Flow::new_from_config_width(role, config_width, nozzle_diameter, float(layer_height));
}
coordf_t PrintRegion::nozzle_dmr_avg(const PrintConfig &print_config) const

View File

@@ -6,13 +6,13 @@ PRODUCTVERSION @SLIC3R_VERSION@
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Bambu Research"
VALUE "CompanyName", "SoftFever"
VALUE "FileDescription", "@SLIC3R_APP_NAME@ G-code Viewer"
VALUE "FileVersion", "@SLIC3R_BUILD_ID@"
VALUE "ProductName", "@SLIC3R_APP_NAME@ G-code Viewer"
VALUE "ProductVersion", "@SLIC3R_BUILD_ID@"
VALUE "InternalName", "@SLIC3R_APP_NAME@ G-code Viewer"
VALUE "LegalCopyright", "Copyright(C) 2021-2023 Lunkuo All Rights Reserved"
VALUE "LegalCopyright", ""
VALUE "OriginalFilename", "bambu-gcodeviewer.exe"
}
}
@@ -22,4 +22,4 @@ PRODUCTVERSION @SLIC3R_VERSION@
}
}
2 ICON "@SLIC3R_RESOURCES_DIR@/images/BambuStudio-gcodeviewer.ico"
1 24 "BambuStudio.manifest"
1 24 "OrcaSlicer.manifest"

View File

@@ -6,13 +6,13 @@ PRODUCTVERSION @SLIC3R_VERSION@
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Bambu Research"
VALUE "CompanyName", "SoftFever"
VALUE "FileDescription", "@SLIC3R_APP_NAME@"
VALUE "FileVersion", "@SLIC3R_BUILD_ID@"
VALUE "ProductName", "@SLIC3R_APP_NAME@"
VALUE "ProductVersion", "@SLIC3R_BUILD_ID@"
VALUE "InternalName", "@SLIC3R_APP_NAME@"
VALUE "LegalCopyright", "Copyright(C) 2021-2023 Lunkuo All Rights Reserved"
VALUE "LegalCopyright", ""
VALUE "OriginalFilename", "orca-slicer.exe"
}
}
@@ -21,5 +21,5 @@ PRODUCTVERSION @SLIC3R_VERSION@
VALUE "Translation", 0x409, 1252
}
}
2 ICON "@SLIC3R_RESOURCES_DIR@/images/BambuStudio.ico"
1 24 "BambuStudio.manifest"
2 ICON "@SLIC3R_RESOURCES_DIR@/images/OrcaSlicer.ico"
1 24 "OrcaSlicer.manifest"

View File

@@ -338,7 +338,6 @@ void Bed3D::render_internal(GLCanvas3D& canvas, bool bottom, float scale_factor,
if (show_axes)
render_axes();
glsafe(::glEnable(GL_DEPTH_TEST));
m_model.set_color(-1, m_is_dark ? DEFAULT_MODEL_COLOR_DARK : DEFAULT_MODEL_COLOR);
@@ -631,9 +630,9 @@ GeometryBuffer Bed3D::update_bed_triangles() const
BoundingBoxf3 build_volume;
if (!m_build_volume.valid()) return new_triangles;
(*model_offset_ptr)(0) = m_build_volume.bounding_volume2d().min.x();
(*model_offset_ptr)(1) = m_build_volume.bounding_volume2d().min.y();
auto bed_ext = get_extents(m_bed_shape);
(*model_offset_ptr)(0) = m_build_volume.bounding_volume2d().min.x() - bed_ext.min.x();
(*model_offset_ptr)(1) = m_build_volume.bounding_volume2d().min.y() - bed_ext.min.y();
(*model_offset_ptr)(2) = -0.41 + GROUND_Z;
std::vector<Vec2d> new_bed_shape;

View File

@@ -131,6 +131,9 @@ public:
// Was the model generated procedurally?
bool is_custom() const { return m_type == Type::Custom; }
// get the bed shape type
BuildVolume_Type get_build_volume_type() const { return m_build_volume.type(); }
// Bounding box around the print bed, axes and model, for rendering.
const BoundingBoxf3& extended_bounding_box() const { return m_extended_bounding_box; }

View File

@@ -1414,14 +1414,14 @@ bool GLVolumeCollection::check_outside_state(const BuildVolume &build_volume, Mo
state = BuildVolume::ObjectState::Below;
else {
switch (plate_build_volume.type()) {
case BuildVolume::Type::Rectangle:
case BuildVolume_Type::Rectangle:
//FIXME this test does not evaluate collision of a build volume bounding box with non-convex objects.
state = plate_build_volume.volume_state_bbox(bb);
break;
case BuildVolume::Type::Circle:
case BuildVolume::Type::Convex:
case BuildVolume_Type::Circle:
case BuildVolume_Type::Convex:
//FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently.
case BuildVolume::Type::Custom:
case BuildVolume_Type::Custom:
state = plate_build_volume.object_state(volume_convex_mesh(*volume).its, volume->world_matrix().cast<float>(), volume_sinking(*volume));
break;
default:

View File

@@ -56,7 +56,6 @@ void BedShape::append_option_line(ConfigOptionsGroupShp optgroup, Parameter para
def.max = 1073.5;
def.label = get_option_label(param);
def.tooltip = L("Distance of the 0,0 G-code coordinate from the front left corner of the rectangle.");
def.readonly = true;
key = "rect_origin";
break;
case Parameter::Diameter:
@@ -89,11 +88,11 @@ wxString BedShape::get_name(PageType type)
BedShape::PageType BedShape::get_page_type()
{
switch (m_build_volume.type()) {
case BuildVolume::Type::Rectangle:
case BuildVolume::Type::Invalid: return PageType::Rectangle;
case BuildVolume::Type::Circle: return PageType::Circle;
case BuildVolume::Type::Convex:
case BuildVolume::Type::Custom: return PageType::Custom;
case BuildVolume_Type::Rectangle:
case BuildVolume_Type::Invalid: return PageType::Rectangle;
case BuildVolume_Type::Circle: return PageType::Circle;
case BuildVolume_Type::Convex:
case BuildVolume_Type::Custom: return PageType::Custom;
}
// make visual studio happy
assert(false);
@@ -104,7 +103,7 @@ wxString BedShape::get_full_name_with_params()
{
wxString out = _L("Shape") + ": " + get_name(this->get_page_type());
switch (m_build_volume.type()) {
case BuildVolume::Type::Circle:
case BuildVolume_Type::Circle:
out += "\n" + _L(get_option_label(Parameter::Diameter)) + ": [" + double_to_string(2. * unscaled<double>(m_build_volume.circle().radius)) + "]";
break;
default:
@@ -119,7 +118,7 @@ wxString BedShape::get_full_name_with_params()
void BedShape::apply_optgroup_values(ConfigOptionsGroupShp optgroup)
{
switch (m_build_volume.type()) {
case BuildVolume::Type::Circle:
case BuildVolume_Type::Circle:
optgroup->set_value("diameter", double_to_string(2. * unscaled<double>(m_build_volume.circle().radius)));
break;
default:
@@ -170,12 +169,12 @@ void BedShapeDialog::on_dpi_changed(const wxRect &suggested_rect)
const std::string BedShapePanel::NONE = "None";
const std::string BedShapePanel::EMPTY_STRING = "";
void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model)
void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const std::string& custom_texture, const std::string& custom_model)
{
wxGetApp().UpdateDarkUI(this);
m_shape = default_pt.values;
m_custom_texture = custom_texture.value.empty() ? NONE : custom_texture.value;
m_custom_model = custom_model.value.empty() ? NONE : custom_model.value;
m_custom_texture = custom_texture.empty() ? NONE : custom_texture;
m_custom_model = custom_model.empty() ? NONE : custom_model;
auto sbsizer = new wxStaticBoxSizer(wxVERTICAL, this, _L("Shape"));
sbsizer->GetStaticBox()->SetFont(wxGetApp().bold_font());
@@ -192,9 +191,9 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf
BedShape::append_option_line(optgroup, BedShape::Parameter::RectOrigin);
activate_options_page(optgroup);
// optgroup = init_shape_options_page(BedShape::get_name(BedShape::PageType::Circle));
// BedShape::append_option_line(optgroup, BedShape::Parameter::Diameter);
// activate_options_page(optgroup);
optgroup = init_shape_options_page(BedShape::get_name(BedShape::PageType::Circle));
BedShape::append_option_line(optgroup, BedShape::Parameter::Diameter);
activate_options_page(optgroup);
optgroup = init_shape_options_page(BedShape::get_name(BedShape::PageType::Custom));

View File

@@ -35,7 +35,7 @@ struct BedShape
BedShape(const ConfigOptionPoints& points);
bool is_custom() { return m_build_volume.type() == BuildVolume::Type::Convex || m_build_volume.type() == BuildVolume::Type::Custom; }
bool is_custom() { return m_build_volume.type() == BuildVolume_Type::Convex || m_build_volume.type() == BuildVolume_Type::Custom; }
static void append_option_line(ConfigOptionsGroupShp optgroup, Parameter param);
static wxString get_name(PageType type);
@@ -63,7 +63,7 @@ class BedShapePanel : public wxPanel
public:
BedShapePanel(wxWindow* parent) : wxPanel(parent, wxID_ANY), m_custom_texture(NONE), m_custom_model(NONE) {}
void build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model);
void build_panel(const ConfigOptionPoints& default_pt, const std::string& custom_texture, const std::string& custom_model);
// Returns the resulting bed shape polygon. This value will be stored to the ini file.
const std::vector<Vec2d>& get_shape() const { return m_shape; }

View File

@@ -116,7 +116,7 @@ RetinaHelper::~RetinaHelper() {}
float RetinaHelper::get_scale_factor() { return float(m_window->GetContentScaleFactor()); }
#endif // __WXGTK3__
// Fixed the collision between BuildVolume::Type::Convex and macro Convex defined inside /usr/include/X11/X.h that is included by WxWidgets 3.0.
// Fixed the collision between BuildVolume_Type::Convex and macro Convex defined inside /usr/include/X11/X.h that is included by WxWidgets 3.0.
#if defined(__linux__) && defined(Convex)
#undef Convex
#endif
@@ -6542,22 +6542,22 @@ void GLCanvas3D::_render_objects(GLVolumeCollection::ERenderType type, bool with
if (const BuildVolume &build_volume = m_bed.build_volume(); build_volume.valid()) {
switch (build_volume.type()) {
case BuildVolume::Type::Rectangle: {
case BuildVolume_Type::Rectangle: {
const BoundingBox3Base<Vec3d> bed_bb = build_volume.bounding_volume().inflated(BuildVolume::SceneEpsilon);
m_volumes.set_print_volume({ 0, // Rectangle
{ float(bed_bb.min.x()), float(bed_bb.min.y()), float(bed_bb.max.x()), float(bed_bb.max.y()) },
{ 0.0f, float(build_volume.printable_height()) } });
break;
}
case BuildVolume::Type::Circle: {
case BuildVolume_Type::Circle: {
m_volumes.set_print_volume({ 1, // Circle
{ unscaled<float>(build_volume.circle().center.x()), unscaled<float>(build_volume.circle().center.y()), unscaled<float>(build_volume.circle().radius + BuildVolume::SceneEpsilon), 0.0f },
{ 0.0f, float(build_volume.printable_height() + BuildVolume::SceneEpsilon) } });
break;
}
default:
case BuildVolume::Type::Convex:
case BuildVolume::Type::Custom: {
case BuildVolume_Type::Convex:
case BuildVolume_Type::Custom: {
m_volumes.set_print_volume({ static_cast<int>(type),
{ -FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX },
{ -FLT_MAX, FLT_MAX } }

View File

@@ -488,7 +488,7 @@ wxMenu* MenuFactory::append_submenu_add_generic(wxMenu* menu, ModelVolumeType ty
std::vector<boost::filesystem::path> input_files;
std::string file_name = item;
if (file_name == "Orca Cube")
file_name = "OrcaCube_v1.3mf";
file_name = "OrcaCube_v2.3mf";
else if (file_name == "3DBenchy")
file_name = "3DBenchy.stl";
else if (file_name == "Autodesk FDM Test")

View File

@@ -3286,7 +3286,7 @@ ObjectTableDialog::ObjectTableDialog(wxWindow* parent, Plater* platerObj, Model
auto m_main_sizer = new wxBoxSizer(wxVERTICAL);
// icon
std::string icon_path = (boost::format("%1%/images/BambuStudio.ico") % resources_dir()).str();
std::string icon_path = (boost::format("%1%/images/OrcaSlicer.ico") % resources_dir()).str();
SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
//top line

Some files were not shown because too many files have changed in this diff Show More