Merge branch 'main' into CURA-9622_unable_to_scroll_long_materials_list

This commit is contained in:
Joey de l'Arago 2022-12-20 13:46:32 +01:00
commit 0a4c7869e6
295 changed files with 6538 additions and 2715 deletions

View File

@ -1,5 +1,5 @@
name: Cura All Installers
run-name: ${{ inputs.cura_conan_version }} by @${{ github.actor }}
run-name: ${{ inputs.cura_conan_version }} for Windows ${{ inputs.build_windows }}, MacOS ${{ inputs.build_macos }}, Linux ${{ inputs.build_linux }}
on:
workflow_dispatch:

View File

@ -2,16 +2,15 @@ name: printer-linter-format
on:
push:
branches:
- main
- '[1-9].[0-9]'
- '[1-9].[0-9][0-9]'
path:
- 'resources/**'
paths:
- 'resources/definitions/**'
- 'resources/extruders/**'
- 'resources/intent/**'
- 'resources/quality/**'
- 'resources/variants/**'
jobs:
printer-linter-format:
if: ${{ github.repository_owner == 'Ultimaker' }}
name: Printer linter auto format
runs-on: ubuntu-latest

View File

@ -1,59 +1,59 @@
name: printer-linter-pr-diagnose
on:
pull_request:
path:
- 'resources/**'
pull_request:
path:
- "resources/**"
jobs:
printer-linter-diagnose:
name: Printer linter PR diagnose
printer-linter-diagnose:
name: Printer linter PR diagnose
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Setup Python and pip
uses: actions/setup-python@v4
with:
python-version: 3.11.x
cache: 'pip'
cache-dependency-path: .github/workflows/requirements-printer-linter.txt
- name: Setup Python and pip
uses: actions/setup-python@v4
with:
python-version: 3.11.x
cache: "pip"
cache-dependency-path: .github/workflows/requirements-printer-linter.txt
- uses: technote-space/get-diff-action@v6
with:
PATTERNS: |
resources/+(extruders|definitions)/*.def.json
resources/+(intent|quality|variants)/**/*.inst.cfg
- uses: technote-space/get-diff-action@v6
with:
PATTERNS: |
resources/+(extruders|definitions)/*.def.json
resources/+(intent|quality|variants)/**/*.inst.cfg
- name: Install Python requirements for runner
if: env.GIT_DIFF && !env.MATCHED_FILES
run: pip install -r .github/workflows/requirements-printer-linter.txt
- name: Install Python requirements for runner
if: env.GIT_DIFF && !env.MATCHED_FILES
run: pip install -r .github/workflows/requirements-printer-linter.txt
- name: Create results directory
run: mkdir printer-linter-result
- name: Create results directory
run: mkdir printer-linter-result
- name: Diagnose file(s)
if: env.GIT_DIFF && !env.MATCHED_FILES
run: python printer-linter/src/terminal.py --diagnose --report printer-linter-result/fixes.yml ${{ env.GIT_DIFF_FILTERED }}
- name: Diagnose file(s)
if: env.GIT_DIFF && !env.MATCHED_FILES
run: python printer-linter/src/terminal.py --diagnose --report printer-linter-result/fixes.yml ${{ env.GIT_DIFF_FILTERED }}
- name: Save PR metadata
run: |
echo ${{ github.event.number }} > printer-linter-result/pr-id.txt
echo ${{ github.event.pull_request.head.repo.full_name }} > printer-linter-result/pr-head-repo.txt
echo ${{ github.event.pull_request.head.ref }} > printer-linter-result/pr-head-ref.txt
- name: Save PR metadata
run: |
echo ${{ github.event.number }} > printer-linter-result/pr-id.txt
echo ${{ github.event.pull_request.head.repo.full_name }} > printer-linter-result/pr-head-repo.txt
echo ${{ github.event.pull_request.head.ref }} > printer-linter-result/pr-head-ref.txt
- uses: actions/upload-artifact@v2
with:
name: printer-linter-result
path: printer-linter-result/
- uses: actions/upload-artifact@v2
with:
name: printer-linter-result
path: printer-linter-result/
- name: Run clang-tidy-pr-comments action
uses: platisd/clang-tidy-pr-comments@fix_suggestions_for_multiline_comments
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
clang_tidy_fixes: result.yml
request_changes: true
- name: Run clang-tidy-pr-comments action
uses: platisd/clang-tidy-pr-comments@bc0bb7da034a8317d54e7fe1e819159002f4cc40
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
clang_tidy_fixes: result.yml
request_changes: true

View File

@ -1,81 +1,81 @@
name: printer-linter-pr-post
on:
workflow_run:
workflows: [ "printer-linter-pr-diagnose" ]
types: [ completed ]
workflow_run:
workflows: ["printer-linter-pr-diagnose"]
types: [completed]
jobs:
clang-tidy-results:
# Trigger the job only if the previous (insecure) workflow completed successfully
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Download analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "printer-linter-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data));
clang-tidy-results:
# Trigger the job only if the previous (insecure) workflow completed successfully
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Download analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "printer-linter-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data));
- name: Set environment variables
run: |
mkdir printer-linter-result
unzip printer-linter-result.zip -d printer-linter-result
echo "pr_id=$(cat printer-linter-result/pr-id.txt)" >> $GITHUB_ENV
echo "pr_head_repo=$(cat printer-linter-result/pr-head-repo.txt)" >> $GITHUB_ENV
echo "pr_head_ref=$(cat printer-linter-result/pr-head-ref.txt)" >> $GITHUB_ENV
- name: Set environment variables
run: |
mkdir printer-linter-result
unzip printer-linter-result.zip -d printer-linter-result
echo "pr_id=$(cat printer-linter-result/pr-id.txt)" >> $GITHUB_ENV
echo "pr_head_repo=$(cat printer-linter-result/pr-head-repo.txt)" >> $GITHUB_ENV
echo "pr_head_ref=$(cat printer-linter-result/pr-head-ref.txt)" >> $GITHUB_ENV
- uses: actions/checkout@v3
with:
repository: ${{ env.pr_head_repo }}
ref: ${{ env.pr_head_ref }}
persist-credentials: false
- uses: actions/checkout@v3
with:
repository: ${{ env.pr_head_repo }}
ref: ${{ env.pr_head_ref }}
persist-credentials: false
- name: Redownload analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "printer-linter-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data));
- name: Redownload analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "printer-linter-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data));
- name: Extract analysis results
run: |
mkdir printer-linter-result
unzip printer-linter-result.zip -d printer-linter-result
- name: Extract analysis results
run: |
mkdir printer-linter-result
unzip printer-linter-result.zip -d printer-linter-result
- name: Run clang-tidy-pr-comments action
uses: platisd/clang-tidy-pr-comments@fix_suggestions_for_multiline_comments
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
clang_tidy_fixes: printer-linter-result/fixes.yml
pull_request_id: ${{ env.pr_id }}
request_changes: true
- name: Run clang-tidy-pr-comments action
uses: platisd/clang-tidy-pr-comments@bc0bb7da034a8317d54e7fe1e819159002f4cc40
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
clang_tidy_fixes: printer-linter-result/fixes.yml
pull_request_id: ${{ env.pr_id }}
request_changes: true

View File

@ -16,9 +16,9 @@ datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
# Add dynamic libs in the venv bin/Script Path. This is needed because we might copy some additional libs
# e.q.: OpenSSL 1.1.1l in that directory with a separate:
# `conan install openssl@1.1.1l -g deploy && cp openssl/bin/*.so cura_inst/bin`
binaries.extend([(str(bin), ".") for bin in Path("{{ venv_script_path }}").glob("*.so*")])
binaries.extend([(str(bin), ".") for bin in Path("{{ venv_script_path }}").glob("*.dll")])
binaries.extend([(str(bin), ".") for bin in Path("{{ venv_script_path }}").glob("*.dylib")])
binaries.extend([(str(bin), ".") for bin in Path(r"{{ venv_script_path }}").glob("*.so*")])
binaries.extend([(str(bin), ".") for bin in Path(r"{{ venv_script_path }}").glob("*.dll")])
binaries.extend([(str(bin), ".") for bin in Path(r"{{ venv_script_path }}").glob("*.dylib")])
block_cipher = None

View File

@ -709,6 +709,7 @@ class CuraApplication(QtApplication):
self.showMessageBox.emit(title, text, informativeText, detailedText, buttons, icon)
showDiscardOrKeepProfileChanges = pyqtSignal()
showCompareAndSaveProfileChanges = pyqtSignal(int)
def discardOrKeepProfileChanges(self) -> bool:
has_user_interaction = False

View File

@ -184,7 +184,8 @@ class QualityManagementModel(ListModel):
container_registry.addContainer(container.duplicate(new_id, new_name))
@pyqtSlot(str)
def createQualityChanges(self, base_name: str) -> None:
@pyqtSlot(str, bool)
def createQualityChanges(self, base_name: str, activate_after_success: bool = False) -> None:
"""Create quality changes containers from the user containers in the active stacks.
This will go through the global and extruder stacks and create quality_changes containers from the user
@ -233,6 +234,14 @@ class QualityManagementModel(ListModel):
container_registry.addContainer(new_changes)
if activate_after_success:
# At this point, the QualityChangesGroup object for the new changes may not exist yet.
# This can be forced by asking for all of them. At that point it's just as well to loop.
for quality_changes in ContainerTree.getInstance().getCurrentQualityChangesGroups():
if quality_changes.name == unique_name:
machine_manager.setQualityChangesGroup(quality_changes)
break
def _createQualityChanges(self, quality_type: str, intent_category: Optional[str], new_name: str, machine: "GlobalStack", extruder_stack: Optional["ExtruderStack"]) -> "InstanceContainer":
"""Create a quality changes container with the given set-up.

View File

@ -2,13 +2,15 @@
# Cura is released under the terms of the LGPLv3 or higher.
from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant # For communicating data and events to Qt.
from UM.Application import Application
from UM.FlameProfiler import pyqtSlot
import cura.CuraApplication # To get the global container stack to find the current machine.
from UM.Util import parseBool
from cura.Settings.GlobalStack import GlobalStack
from UM.Logger import Logger
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
from UM.Scene.SceneNode import SceneNode
from UM.Scene.Selection import Selection
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
from UM.Settings.ContainerRegistry import ContainerRegistry # Finding containers by ID.
@ -45,6 +47,7 @@ class ExtruderManager(QObject):
self._selected_object_extruders = [] # type: List[Union[str, "ExtruderStack"]]
Selection.selectionChanged.connect(self.resetSelectedObjectExtruders)
Application.getInstance().globalContainerStackChanged.connect(self.emitGlobalStackExtrudersChanged) # When the machine is swapped we must update the active machine extruders
extrudersChanged = pyqtSignal(QVariant)
"""Signal to notify other components when the list of extruders for a machine definition changes."""
@ -52,6 +55,21 @@ class ExtruderManager(QObject):
activeExtruderChanged = pyqtSignal()
"""Notify when the user switches the currently active extruder."""
def emitGlobalStackExtrudersChanged(self):
# HACK
# The emit function can't be directly connected to another signal. This wrapper function is required.
# The extrudersChanged signal is emitted early when changing machines. This triggers it a second time
# after the extruder have changed properly. This is important for any QML using ExtruderManager.extruderIds
# This is a hack, but other behaviour relys on the updating in this order.
self.extrudersChanged.emit(self._application.getGlobalContainerStack().getId())
@pyqtProperty(int, notify = extrudersChanged)
def enabledExtruderCount(self) -> int:
global_container_stack = self._application.getGlobalContainerStack()
if global_container_stack:
return len([extruder for extruder in global_container_stack.extruderList if parseBool(extruder.getMetaDataEntry("enabled", "True"))])
return 0
@pyqtProperty(str, notify = activeExtruderChanged)
def activeExtruderStackId(self) -> Optional[str]:
"""Gets the unique identifier of the currently active extruder stack.

View File

@ -42,21 +42,8 @@ class SimpleModeSettingsManager(QObject):
for extruder_stack in global_stack.extruderList:
user_setting_keys.update(extruder_stack.userChanges.getAllKeys())
# remove settings that are visible in recommended (we don't show the reset button for those)
for skip_key in self.__ignored_custom_setting_keys:
if skip_key in user_setting_keys:
user_setting_keys.remove(skip_key)
has_customized_user_settings = len(user_setting_keys) > 0
if has_customized_user_settings != self._is_profile_customized:
self._is_profile_customized = has_customized_user_settings
self.isProfileCustomizedChanged.emit()
# These are the settings included in the Simple ("Recommended") Mode, so only when the other settings have been
# changed, we consider it as a user customized profile in the Simple ("Recommended") Mode.
__ignored_custom_setting_keys = ["support_enable",
"infill_sparse_density",
"gradual_infill_steps",
"adhesion_type",
"support_extruder_nr"]

View File

@ -27,7 +27,7 @@ Item
Row
{
height: parent.height
spacing: UM.Theme.getSize("print_setup_slider_handle").width // TODO: Theme! (Should be same as extruder spacing)
spacing: UM.Theme.getSize("slider_handle").width // TODO: Theme! (Should be same as extruder spacing)
// This wrapper ensures that the buildplate icon is located centered
// below an extruder icon.

View File

@ -23,7 +23,7 @@ Item
//So compute here the visibility of the menu items, so that we can use it for the visibility of the button.
property bool sendToTopVisible:
{
if (printJob && printJob.state in ("queued", "error") && !isAssigned(printJob)) {
if (printJob && (printJob.state == "queued" || printJob.state == "error")) {
if (OutputDevice && OutputDevice.queuedPrintJobs[0] && OutputDevice.canWriteOthersPrintJobs) {
return OutputDevice.queuedPrintJobs[0].key != printJob.key;
}
@ -246,10 +246,4 @@ Item
function close() {
popUp.close()
}
function isAssigned(job) {
if (!job) {
return false;
}
return job.assignedPrinter ? true : false;
}
}

View File

@ -3,9 +3,9 @@ Printer linter is a python package that does linting on Cura definitions files.
Running this on your definition files will get them ready for a pull request.
## Running Locally
From the Cura root folder.
From the Cura root folder and pointing to the relative paths of the wanted definition files:
```python3 printer-linter/src/terminal.py "flashforge_dreamer_nx.def.json" "flashforge_base.def.json" --fix --format```
```python3 printer-linter/src/terminal.py "resources/definitions/flashforge_dreamer_nx.def.json" "resources/definitions/flashforge_base.def.json" --fix --format```
## Developing
### Printer Linter Rules

View File

@ -41,21 +41,28 @@ class Definition(Linter):
definition = self._definitions[definition_name]
if "overrides" in definition and definition_name not in ("fdmprinter", "fdmextruder"):
for key, value_dict in definition["overrides"].items():
is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits'])
is_redefined, child_key, child_value, parent = self._isDefinedInParent(key, value_dict, definition['inherits'])
if is_redefined:
redefined = re.compile(r'.*(\"' + key + r'\"[\s\:\S]*?)\{[\s\S]*?\},?')
found = redefined.search(self._content)
yield Diagnostic(
file = self._file,
diagnostic_name = "diagnostic-definition-redundant-override",
message = f"Overriding {key} with the same value ({value}) as defined in parent definition: {definition['inherits']}",
level = "Warning",
offset = found.span(0)[0],
# TODO: Figure out a way to support multiline fixes in the PR review GH Action, for now suggest no fix to ensure no ill-formed json are created
# see: https://github.com/platisd/clang-tidy-pr-comments/issues/37
if len(found.group().splitlines()) > 1:
replacements = []
else:
replacements = [Replacement(
file = self._file,
offset = found.span(1)[0],
length = len(found.group()),
replacement_text = "")]
yield Diagnostic(
file = self._file,
diagnostic_name = "diagnostic-definition-redundant-override",
message = f"Overriding {key} with the same value ({child_key}: {child_value}) as defined in parent definition: {definition['inherits']}",
level = "Warning",
offset = found.span(0)[0],
replacements = replacements
)
def _loadDefinitionFiles(self, definition_file) -> None:
@ -85,28 +92,31 @@ class Definition(Linter):
is_number = False
else:
is_number = self._definitions[self.base_def]["overrides"][key]["type"] in ("float", "int")
for value in value_dict.values():
for child_key, child_value in value_dict.items():
if key in parent:
check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None]
if child_key in ("default_value", "value"):
check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None]
else:
check_values = [parent[key].get(child_key, None)]
for check_value in check_values:
if is_number:
if is_number and child_key in ("default_value", "value"):
try:
v = str(float(value))
v = str(float(child_value))
except:
v = value
v = child_value
try:
cv = str(float(check_value))
except:
cv = check_value
else:
v = value
v = child_value
cv = check_value
if v == cv:
return True, value, parent
return True, child_key, child_value, parent
if "inherits" in parent:
return self._isDefinedInParent(key, value_dict, parent["inherits"])
return False, None, None
return False, None, None, None
def _loadBasePrinterSettings(self):
""" TODO @Jelle please explain why this """

View File

@ -1,5 +1,6 @@
from argparse import ArgumentParser
from os import getcwd
from os import path
from pathlib import Path
from typing import List
@ -41,6 +42,11 @@ def main() -> None:
full_body_check = {"Diagnostics": []}
for file in files:
if not path.exists(file):
print(f"Can't find the file: {file}")
return
if to_fix or to_diagnose:
for file in files:
diagnostics = diagnoseIssuesWithFile(file, settings)

View File

@ -0,0 +1,148 @@
{
"version": 2,
"name": "Geeetech Base Dual-Extruder Printer",
"inherits": "fdmprinter",
"metadata":
{
"visible": false,
"author": "Teddy.Hu",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"first_start_actions": [ "MachineSettingsAction" ],
"has_machine_quality": true,
"has_materials": true,
"has_variants": false,
"machine_extruder_trains":
{
"0": "Geeetech_Dual_Extruder_0",
"1": "Geeetech_Dual_Extruder_1"
},
"preferred_material": "generic_pla",
"preferred_quality_type": "standard",
"preferred_variant_name": "0.4mm Nozzle",
"quality_definition": "Geeetech_Base_Single_Extruder",
"variants_name": "Nozzle Size"
},
"overrides":
{
"acceleration_print": { "value": 500 },
"acceleration_travel": { "value": 500 },
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
"adhesion_type": { "value": "'skirt'" },
"brim_replaces_support": { "value": false },
"cool_min_layer_time": { "value": "1.3 if speed_infill>=200 else 5" },
"gantry_height": { "value": 40 },
"infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'" },
"line_width": { "value": "1.125*machine_nozzle_size if speed_infill<=100 else machine_nozzle_size" },
"machine_acceleration": { "value": 500 },
"machine_depth": { "default_value": 350 },
"machine_end_gcode": { "default_value": ";Geeetech Custom end G-code\nG91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers\n\n\n" },
"machine_extruder_count": { "default_value": 2 },
"machine_head_with_fans_polygon":
{
"default_value": [
[-40, 40],
[40, 40],
[40, -40],
[-40, -40]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 350 },
"machine_max_acceleration_e": { "value": 1000 },
"machine_max_acceleration_x": { "value": 500 },
"machine_max_acceleration_y": { "value": 500 },
"machine_max_acceleration_z": { "value": 111 },
"machine_max_feedrate_e": { "value": 40 },
"machine_max_feedrate_x": { "value": 500 },
"machine_max_feedrate_y": { "value": 500 },
"machine_max_feedrate_z": { "value": 10 },
"machine_max_jerk_e": { "value": 4.9 },
"machine_max_jerk_xy": { "value": 10 },
"machine_max_jerk_z": { "value": 0.3 },
"machine_name": { "default_value": "Geeetech Base Dual-Extruder Printer" },
"machine_start_gcode": { "default_value": ";Geeetech Custom Start G-code\nM104 S{material_print_temperature_layer_0} ;Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ;Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ;Wait for Hotend Temperature\nG92 E0 ;Reset Extruder\nG28 ;Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ;ON Light\n;M106 P0 S383 ;ON MainFan 150% if need\n;M106 P1 S255 ;ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ;Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ;Draw the first line\nG92 E0 ;Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ;Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ;Scrape off nozzle residue" },
"machine_width": { "default_value": 350 },
"material_bed_temperature": { "maximum_value_warning": 110 },
"material_final_print_temperature": { "value": "material_print_temperature" },
"material_initial_print_temperature":
{
"minimum_value_warning": "material_standby_temperature - 10",
"value": "material_print_temperature - 5"
},
"material_print_temperature":
{
"maximum_value": "250",
"value": "200 if speed_infill <=100 else 210 if speed_infill <= 150 else 220 if speed_infill <= 180 else 230"
},
"material_print_temperature_layer_0":
{
"maximum_value_warning": 250,
"value": "material_print_temperature + 5"
},
"minimum_interface_area": { "value": 10 },
"minimum_support_area": { "value": 2 },
"optimize_wall_printing_order": { "value": true },
"prime_tower_brim_enable": { "value": true },
"prime_tower_min_volume":
{
"maximum_value_warning": 150,
"value": 85
},
"prime_tower_size": { "value": 30 },
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'all'" },
"retraction_combing_max_distance": { "value": 30 },
"retraction_hop": { "value": 0.5 },
"retraction_speed": { "value": 35 },
"skirt_brim_speed":
{
"maximum_value_warning": "60",
"value": "speed_print_layer_0"
},
"skirt_gap": { "value": 6 },
"small_hole_max_size": { "value": "5 if speed_infill>=150 else 0" },
"speed_layer_0":
{
"maximum_value_warning": "100",
"value": "50 if speed_infill <= 150 else 75"
},
"speed_print_layer_0":
{
"maximum_value_warning": "60",
"value": "25 if speed_infill <= 150 else 35"
},
"speed_support": { "value": "speed_print*0.5" },
"speed_support_bottom": { "value": "speed_support_roof" },
"speed_support_interface": { "value": "speed_support / 0.8" },
"speed_support_roof": { "value": "speed_support_interface / 2" },
"speed_topbottom": { "value": "speed_print" },
"speed_travel": { "value": "200 if 120<=speed_print<=200 else speed_print if speed_print>200 else 120" },
"speed_travel_layer_0":
{
"maximum_value_warning": "150",
"value": "speed_layer_0"
},
"speed_wall": { "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))" },
"speed_wall_0": { "value": "30 if speed_print==60 else math.ceil(round(speed_print*0.75))" },
"speed_wall_x": { "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))" },
"support_brim_enable": { "value": true },
"support_brim_width": { "value": 5 },
"support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" },
"support_interface_density": { "value": 33.333 },
"support_interface_height": { "value": "layer_height * 3" },
"support_interface_pattern": { "value": "zigzag" },
"support_interface_skip_height": { "value": 0.2 },
"support_pattern": { "value": "'zigzag'" },
"support_use_towers": { "value": false },
"support_wall_count": { "value": 0 },
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
"top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" },
"travel_avoid_supports": { "value": true },
"wall_thickness": { "value": "line_width * 2" },
"wall_transition_filter_deviation": { "value": 0.15 },
"z_seam_corner": { "value": "'z_seam_corner_inner'" },
"z_seam_type": { "value": "'sharpest_corner'" }
}
}

View File

@ -0,0 +1,149 @@
{
"version": 2,
"name": "Geeetech Base Multi-Extruder Printer",
"inherits": "fdmprinter",
"metadata":
{
"visible": false,
"author": "Teddy.Hu",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"first_start_actions": [ "MachineSettingsAction" ],
"has_machine_quality": true,
"has_materials": true,
"has_variants": false,
"machine_extruder_trains":
{
"0": "Geeetech_Multi_Extruder_0",
"1": "Geeetech_Multi_Extruder_1",
"2": "Geeetech_Multi_Extruder_2"
},
"preferred_material": "generic_pla",
"preferred_quality_type": "standard",
"preferred_variant_name": "0.4mm Nozzle",
"quality_definition": "Geeetech_Base_Single_Extruder",
"variants_name": "Nozzle Size"
},
"overrides":
{
"acceleration_print": { "value": 500 },
"acceleration_travel": { "value": 500 },
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
"adhesion_type": { "value": "'skirt'" },
"brim_replaces_support": { "value": false },
"cool_min_layer_time": { "value": "1.3 if speed_infill>=200 else 5" },
"gantry_height": { "value": 40 },
"infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'" },
"line_width": { "value": "1.125*machine_nozzle_size if speed_infill<=100 else machine_nozzle_size" },
"machine_acceleration": { "value": 500 },
"machine_depth": { "default_value": 350 },
"machine_end_gcode": { "default_value": ";Geeetech Custom end G-code\nG91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers\n\n\n" },
"machine_extruder_count": { "default_value": 3 },
"machine_head_with_fans_polygon":
{
"default_value": [
[-40, 40],
[40, 40],
[40, -40],
[-40, -40]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 350 },
"machine_max_acceleration_e": { "value": 1000 },
"machine_max_acceleration_x": { "value": 500 },
"machine_max_acceleration_y": { "value": 500 },
"machine_max_acceleration_z": { "value": 111 },
"machine_max_feedrate_e": { "value": 40 },
"machine_max_feedrate_x": { "value": 500 },
"machine_max_feedrate_y": { "value": 500 },
"machine_max_feedrate_z": { "value": 10 },
"machine_max_jerk_e": { "value": 4.9 },
"machine_max_jerk_xy": { "value": 10 },
"machine_max_jerk_z": { "value": 0.3 },
"machine_name": { "default_value": "Geeetech Base Multi-Extruder Printer" },
"machine_start_gcode": { "default_value": ";Geeetech Custom Start G-code\nM104 S{material_print_temperature_layer_0} ;Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ;Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ;Wait for Hotend Temperature\nG92 E0 ;Reset Extruder\nG28 ;Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ;ON Light\n;M106 P0 S383 ;ON MainFan 150% if need\n;M106 P1 S255 ;ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ;Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ;Draw the first line\nG92 E0 ;Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ;Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ;Scrape off nozzle residue" },
"machine_width": { "default_value": 350 },
"material_bed_temperature": { "maximum_value_warning": 110 },
"material_final_print_temperature": { "value": "material_print_temperature" },
"material_initial_print_temperature":
{
"minimum_value_warning": "material_standby_temperature - 10",
"value": "material_print_temperature - 5"
},
"material_print_temperature":
{
"maximum_value": "250",
"value": "200 if speed_infill <=100 else 210 if speed_infill <= 150 else 220 if speed_infill <= 180 else 230"
},
"material_print_temperature_layer_0":
{
"maximum_value_warning": 250,
"value": "material_print_temperature + 5"
},
"minimum_interface_area": { "value": 10 },
"minimum_support_area": { "value": 2 },
"optimize_wall_printing_order": { "value": true },
"prime_tower_brim_enable": { "value": true },
"prime_tower_min_volume":
{
"maximum_value_warning": 150,
"value": 85
},
"prime_tower_size": { "value": 30 },
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'all'" },
"retraction_combing_max_distance": { "value": 30 },
"retraction_hop": { "value": 0.5 },
"retraction_speed": { "value": 35 },
"skirt_brim_speed":
{
"maximum_value_warning": "60",
"value": "speed_print_layer_0"
},
"skirt_gap": { "value": 6 },
"small_hole_max_size": { "value": "5 if speed_infill>=150 else 0" },
"speed_layer_0":
{
"maximum_value_warning": "100",
"value": "50 if speed_infill <= 150 else 75"
},
"speed_print_layer_0":
{
"maximum_value_warning": "60",
"value": "25 if speed_infill <= 150 else 35"
},
"speed_support": { "value": "speed_print*0.5" },
"speed_support_bottom": { "value": "speed_support_roof" },
"speed_support_interface": { "value": "speed_support / 0.8" },
"speed_support_roof": { "value": "speed_support_interface / 2" },
"speed_topbottom": { "value": "speed_print" },
"speed_travel": { "value": "200 if 120<=speed_print<=200 else speed_print if speed_print>200 else 120" },
"speed_travel_layer_0":
{
"maximum_value_warning": "150",
"value": "speed_layer_0"
},
"speed_wall": { "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))" },
"speed_wall_0": { "value": "30 if speed_print==60 else math.ceil(round(speed_print*0.75))" },
"speed_wall_x": { "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))" },
"support_brim_enable": { "value": true },
"support_brim_width": { "value": 5 },
"support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" },
"support_interface_density": { "value": 33.333 },
"support_interface_height": { "value": "layer_height * 3" },
"support_interface_pattern": { "value": "zigzag" },
"support_interface_skip_height": { "value": 0.2 },
"support_pattern": { "value": "'zigzag'" },
"support_use_towers": { "value": false },
"support_wall_count": { "value": 0 },
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
"top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" },
"travel_avoid_supports": { "value": true },
"wall_thickness": { "value": "line_width * 2" },
"wall_transition_filter_deviation": { "value": 0.15 },
"z_seam_corner": { "value": "'z_seam_corner_inner'" },
"z_seam_type": { "value": "'sharpest_corner'" }
}
}

View File

@ -0,0 +1,136 @@
{
"version": 2,
"name": "Geeetech Base Single Extruder Printer",
"inherits": "fdmprinter",
"metadata":
{
"visible": false,
"author": "Teddy.Hu",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"first_start_actions": [ "MachineSettingsAction" ],
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" },
"preferred_material": "generic_pla",
"preferred_quality_type": "standard",
"preferred_variant_name": "0.4mm Nozzle",
"quality_definition": "Geeetech_Base_Single_Extruder",
"variants_name": "Nozzle Size"
},
"overrides":
{
"acceleration_print": { "value": 500 },
"acceleration_travel": { "value": 500 },
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
"adhesion_type": { "value": "'skirt'" },
"brim_replaces_support": { "value": false },
"cool_min_layer_time": { "value": "1.3 if speed_infill>=200 else 5" },
"gantry_height": { "value": 40 },
"infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'" },
"line_width": { "value": "1.125*machine_nozzle_size if speed_infill<=100 else machine_nozzle_size" },
"machine_acceleration": { "value": 500 },
"machine_depth": { "default_value": 350 },
"machine_end_gcode": { "default_value": ";Geeetech Custom end G-code\nG91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers\n\n\n" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-40, 40],
[40, 40],
[40, -40],
[-40, -40]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 350 },
"machine_max_acceleration_e": { "value": 1000 },
"machine_max_acceleration_x": { "value": 500 },
"machine_max_acceleration_y": { "value": 500 },
"machine_max_acceleration_z": { "value": 111 },
"machine_max_feedrate_e": { "value": 40 },
"machine_max_feedrate_x": { "value": 500 },
"machine_max_feedrate_y": { "value": 500 },
"machine_max_feedrate_z": { "value": 10 },
"machine_max_jerk_e": { "value": 4.9 },
"machine_max_jerk_xy": { "value": 10 },
"machine_max_jerk_z": { "value": 0.3 },
"machine_name": { "default_value": "Geeetech Base Single Extruder Printer" },
"machine_start_gcode": { "default_value": ";Geeetech Custom Start G-code\nM104 S{material_print_temperature_layer_0} ;Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ;Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ;Wait for Hotend Temperature\nG92 E0 ;Reset Extruder\nG28 ;Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ;ON Light\n;M106 P0 S383 ;ON MainFan 150% if need\n;M106 P1 S255 ;ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ;Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ;Draw the first line\nG92 E0 ;Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ;Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ;Scrape off nozzle residue" },
"machine_width": { "default_value": 350 },
"material_bed_temperature": { "maximum_value_warning": 110 },
"material_final_print_temperature": { "value": "material_print_temperature" },
"material_initial_print_temperature":
{
"minimum_value_warning": "material_standby_temperature - 10",
"value": "material_print_temperature - 5"
},
"material_print_temperature":
{
"maximum_value": "250",
"value": "200 if speed_infill <=100 else 210 if speed_infill <= 150 else 220 if speed_infill <= 180 else 230"
},
"material_print_temperature_layer_0":
{
"maximum_value_warning": 250,
"value": "material_print_temperature + 5"
},
"minimum_interface_area": { "value": 10 },
"minimum_support_area": { "value": 2 },
"optimize_wall_printing_order": { "value": true },
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'all'" },
"retraction_combing_max_distance": { "value": 30 },
"retraction_hop": { "value": 0.5 },
"retraction_speed": { "value": 40 },
"skirt_brim_speed":
{
"maximum_value_warning": "60",
"value": "speed_print_layer_0"
},
"skirt_gap": { "value": 6 },
"small_hole_max_size": { "value": "5 if speed_infill>=150 else 0" },
"speed_layer_0":
{
"maximum_value_warning": "100",
"value": "50 if speed_infill <= 150 else 75"
},
"speed_print_layer_0":
{
"maximum_value_warning": "60",
"value": "25 if speed_infill <= 150 else 35"
},
"speed_support": { "value": "speed_print*0.5" },
"speed_support_bottom": { "value": "speed_support_roof" },
"speed_support_interface": { "value": "speed_support / 0.8" },
"speed_support_roof": { "value": "speed_support_interface / 2" },
"speed_topbottom": { "value": "speed_print" },
"speed_travel": { "value": "200 if 120<=speed_print<=200 else speed_print if speed_print>200 else 120" },
"speed_travel_layer_0":
{
"maximum_value_warning": "150",
"value": "speed_layer_0"
},
"speed_wall": { "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))" },
"speed_wall_0": { "value": "30 if speed_print==60 else math.ceil(round(speed_print*0.75))" },
"speed_wall_x": { "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))" },
"support_brim_enable": { "value": true },
"support_brim_width": { "value": 5 },
"support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" },
"support_interface_density": { "value": 33.333 },
"support_interface_height": { "value": "layer_height * 3" },
"support_interface_pattern": { "value": "zigzag" },
"support_interface_skip_height": { "value": 0.2 },
"support_pattern": { "value": "'zigzag'" },
"support_use_towers": { "value": false },
"support_wall_count": { "value": 0 },
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
"top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" },
"travel_avoid_supports": { "value": true },
"wall_thickness": { "value": "line_width * 2" },
"wall_transition_filter_deviation": { "value": 0.15 },
"z_seam_corner": { "value": "'z_seam_corner_inner'" },
"z_seam_type": { "value": "'sharpest_corner'" }
}
}

View File

@ -22,37 +22,48 @@
"cool_min_layer_time": { "value": 6 },
"cool_min_speed": { "value": 30 },
"gantry_height": { "value": 25 },
"hole_xy_offset": { "value": 0.2 },
"infill_pattern": { "value": "'lines' if infill_sparse_density >= 25 else 'grid'" },
"infill_sparse_density": { "value": 25 },
"machine_depth": { "default_value": 235 },
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84" },
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 250 },
"machine_name": { "default_value": "AnkerMake M5" },
"machine_start_gcode": { "default_value": "M104 S{material_print_temperature_layer_0} ; set final nozzle temp\nM190 S{material_bed_temperature_layer_0} ; set and wait for nozzle temp to stabilize\nM109 S{material_print_temperature_layer_0} ; wait for nozzle temp to stabilize\nG28 ;Home\nG1 E10 F3600; push out retracted filament(fix for over retraction after prime)" },
"machine_width": { "default_value": 235 },
"material_bed_temperature": { "maximum_value_warning": "110" },
"material_bed_temperature_layer_0":
{
"maximum_value_warning": "110",
"value": "material_bed_temperature + 5"
},
"material_bed_temperature_layer_0": { "maximum_value_warning": "110" },
"material_diameter": { "default_value": 1.75 },
"material_flow_layer_0": { "value": 120 },
"material_final_print_temperature": { "value": "material_print_temperature" },
"material_flow_layer_0": { "value": 115 },
"material_initial_print_temperature": { "value": "material_print_temperature" },
"material_print_temperature": { "maximum_value_warning": "260" },
"material_print_temperature_layer_0":
{
"maximum_value_warning": "260",
"maximum_value_warning": "270",
"value": "material_print_temperature + 5"
},
"minimum_interface_area": { "value": 10 },
"minimum_support_area": { "value": 2 },
"retraction_amount": { "default_value": 1.5 },
"retraction_combing": { "value": "infill" },
"retraction_speed": { "default_value": 70 },
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'infill'" },
"retraction_hop": { "value": 0.2 },
"retraction_speed": { "default_value": 60 },
"skin_material_flow": { "value": 97 },
"skin_monotonic": { "default_value": true },
"skirt_line_count": { "value": 3 },
"small_hole_max_size": { "value": 10 },
"speed_infill": { "maximum_value_warning": 255 },
"speed_print":
{
"maximum_value_warning": 255,
"value": 250.0
},
"speed_support": { "maximum_value_warning": 255 },
"speed_support_bottom": { "maximum_value_warning": 255 },
"speed_support_infill": { "maximum_value_warning": 255 },
"speed_support_interface": { "maximum_value_warning": 255 },
"speed_support_roof": { "maximum_value_warning": 255 },
"speed_topbottom": { "value": 150.0 },
"speed_travel": { "value": 250.0 },
"speed_wall":
@ -64,6 +75,23 @@
{
"maximum_value_warning": 255,
"value": 250.0
}
},
"support_angle": { "value": "math.floor(math.degrees(math.atan(line_width / 2.0 /layer_height)))" },
"support_brim_width": { "value": 4.0 },
"support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" },
"support_interface_density": { "value": 33.333 },
"support_interface_enable": { "value": true },
"support_interface_pattern": { "value": "'grid'" },
"support_interface_skip_height": { "value": 0.2 },
"support_roof_enable": { "value": true },
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
"support_z_distance": { "value": "layer_height * 2" },
"top_bottom_thickness": { "value": "layer_height * 4" },
"wall_overhang_angle": { "value": 55 },
"wall_overhang_speed_factor": { "value": 55 },
"xy_offset_layer_0": { "value": -0.2 },
"zig_zaggify_infill": { "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'lines'" }
}
}

View File

@ -27,6 +27,8 @@
"machine_height": { "default_value": 165 },
"machine_name": { "default_value": "Creality Sermoon V1" },
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y170.0 Z0.28 F1500.0 E12 ;Draw the first line\nG1 X10.4 Y170.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E25 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up" },
"machine_width": { "default_value": 175 }
"machine_width": { "default_value": 175 },
"retraction_amount": { "value": 0.8 },
"retraction_speed": { "default_value": 40 }
}
}

View File

@ -0,0 +1,38 @@
{
"version": 2,
"name": "PastePrinter",
"inherits": "fdmprinter",
"metadata":
{
"visible": true,
"author": "eduardo_chamorro",
"manufacturer": "FablabBcn",
"file_formats": "text/x-gcode",
"first_start_actions": [ "MachineSettingsAction" ],
"machine_extruder_trains": { "0": "fablabbcn_0" }
},
"overrides":
{
"adhesion_type": { "default_value": "skirt" },
"layer_height": { "default_value": 1.5 },
"layer_height_0": { "default_value": 1.5 },
"machine_always_write_active_tool": { "default_value": true },
"machine_depth": { "default_value": 235 },
"machine_end_gcode": { "default_value": ";FOOTER\nG91; relative positioning\nM107; turn off layer fan\nG1 Z50 F1000\nM400;Wait finish move\nG90; absolute positioning\nG1 X235 Y235\n;ENDFOOTER" },
"machine_height": { "default_value": 235 },
"machine_max_jerk_e": { "default_value": 50.0 },
"machine_max_jerk_xy": { "default_value": 50.0 },
"machine_max_jerk_z": { "default_value": 50.0 },
"machine_nozzle_size": { "settable_per_extruder": false },
"machine_start_gcode": { "default_value": ";HEADER;\nG21; Set to metric [change to G20 if you want Imperial]\nG91;Force coordinates to be absolute relative to the origin \nG1 Z10 F1000;\nG90; Force coordinates to be absolute relative to the origin\nG28 X; Home X axis\nG28 Y; Home Y axis\nG28 Z; Home Z axis\nM302 P1; Disable Cold Extrusion Checking\nG92 E0; Reset extruder to [0] zero end of cleaning run\nG91; Force coordinates to be absolute relative to the origin\nG1 Z10 F1000;\nG90;\nT0;\nM117 Printing...;ENDHEADER" },
"machine_width": { "default_value": 235 },
"material_bed_temp_prepend": { "default_value": false },
"material_bed_temp_wait": { "default_value": false },
"material_diameter": { "default_value": 1.75 },
"material_print_temp_prepend": { "default_value": false },
"material_print_temp_wait": { "default_value": false },
"retraction_enable": { "default_value": false },
"speed_print": { "default_value": 15 },
"top_bottom_pattern": { "default_value": "concentric" }
}
}

View File

@ -8161,6 +8161,7 @@
"small_feature_max_length":
{
"label": "Small Feature Max Length",
"enabled": "small_hole_max_size > 0",
"description": "Feature outlines that are shorter than this length will be printed using Small Feature Speed.",
"unit": "mm",
"type": "float",
@ -8174,6 +8175,7 @@
"small_feature_speed_factor":
{
"label": "Small Feature Speed",
"enabled": "small_hole_max_size > 0",
"description": "Small features will be printed at this percentage of their normal print speed. Slower printing can help with adhesion and accuracy.",
"unit": "%",
"type": "float",
@ -8186,6 +8188,7 @@
"small_feature_speed_factor_0":
{
"label": "Small Feature Initial Layer Speed",
"enabled": "small_hole_max_size > 0",
"description": "Small features on the first layer will be printed at this percentage of their normal print speed. Slower printing can help with adhesion and accuracy.",
"unit": "%",
"type": "float",

View File

@ -1,59 +0,0 @@
{
"version": 2,
"name": "Geeetech A10",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Amit L",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"has_materials": true,
"machine_extruder_trains":
{
"0": "geeetech_A10_1"
}
},
"overrides": {
"machine_name": { "default_value": "Geeetech A10" },
"machine_width": {
"default_value": 220
},
"machine_height": {
"default_value": 260
},
"machine_depth": {
"default_value": 220
},
"machine_center_is_zero": {
"default_value": false
},
"layer_height": { "default_value": 0.1 },
"layer_height_0": { "default_value": 0.15 },
"retraction_amount": { "default_value": 0.8 },
"retraction_speed": { "default_value": 35 },
"adhesion_type": { "default_value": "skirt" },
"machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
"gantry_height": { "value": "28" },
"machine_max_feedrate_z": { "default_value": 12 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_acceleration": { "default_value": 1000 },
"machine_max_jerk_xy": { "default_value": 10 },
"machine_max_jerk_z": { "default_value": 0.2 },
"machine_max_jerk_e": { "default_value": 2.5 },
"machine_heated_bed": { "default_value": true },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": "G28 ; Auto home\nG1 Z15 F300 ;Move up slightly\nM107 ;Off fans\nG90 ;Switch to absolute positioning\nM82 ;Extruder absolute mode\nG92 E0 ;Set position of extruder to 0\nG0 X10 Y20 F1500 ;Move to X10 Y20 at 1500mms\nG1 Z0.8 ;Move Z to 0.8\nG1 F300 X180 E40 ;Extrude a line of filament\nG1 F1200 Z2 ;Raise Z\nG92 E0 ;Set extruder position to zero\nG28 ;Auto home"
},
"machine_end_gcode": {
"default_value": "G91 ;Switch to relative positioning\nG1 E-1 ;Retract filament to lower pressure\nG0 X0 Y200 ;Move hotend to left and bed forward\nM104 S0 ;Cooldown hotend\nG90 ;Switch to absolute mode\nG92 E0 ;Set extruder to zero\nM140 S0 ;Cooldown bed\nM84 ; Disable steppers"
},
"machine_extruder_count": {
"default_value": 1
}
}
}

View File

@ -1,58 +1,37 @@
{
"version": 2,
"name": "Geeetech A10M",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Amit L",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"has_materials": true,
"machine_extruder_trains":
{
"0": "geeetech_A10M_1",
"1": "geeetech_A10M_2"
}
},
"overrides": {
"machine_name": { "default_value": "Geeetech A10M" },
"machine_width": {
"default_value": 220
},
"machine_height": {
"default_value": 260
},
"machine_depth": {
"default_value": 220
}, "machine_center_is_zero": {
"default_value": false
},
"layer_height": { "default_value": 0.1 },
"layer_height_0": { "default_value": 0.15 },
"retraction_amount": { "default_value": 0.8 },
"retraction_speed": { "default_value": 35 },
"adhesion_type": { "default_value": "skirt" },
"machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
"gantry_height": { "value": "28" },
"machine_max_feedrate_z": { "default_value": 12 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_acceleration": { "default_value": 1000 },
"machine_max_jerk_xy": { "default_value": 10 },
"machine_max_jerk_z": { "default_value": 0.2 },
"machine_max_jerk_e": { "default_value": 2.5 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": ";GeeeTech A10M start script\nG28 ;home\nG90 ;absolute positioning\nG1 X0 Y0 Z15 E0 F300 ;go to wait position\nM140 S{material_bed_temperature_layer_0} ;set bed temp\nM109 S{material_print_temperature_layer_0} ;set extruder temp and wait\nG1 Z0.8 F200 ;set extruder height\nG1 X220 Y0 E80 F1000 ;purge line\n;end of start script"
},
"machine_end_gcode": {
"default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
},
"machine_extruder_count": {
"default_value": 2
}
}
}
{
"version": 2,
"name": "Geeetech A10M",
"inherits": "Geeetech_Base_Dual_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Dual_Extruder_0",
"1": "Geeetech_Dual_Extruder_1"
},
"preferred_material": "Geeetech_PLA_Cyan"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 28 },
"machine_depth": { "default_value": 220 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 260 },
"machine_name": { "default_value": "Geeetech A10M" },
"machine_start_gcode": { "default_value": ";Geeetech A10M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 220 },
"prime_tower_position_x": { "value": 190 },
"prime_tower_position_y": { "value": 160 }
}
}

View File

@ -0,0 +1,29 @@
{
"version": 2,
"name": "Geeetech A10Pro",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 28 },
"machine_depth": { "default_value": 220 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 260 },
"machine_name": { "default_value": "Geeetech A10Pro" },
"machine_start_gcode": { "default_value": ";Geeetech A10Pro Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 220 }
}
}

View File

@ -1,60 +1,38 @@
{
"version": 2,
"name": "Geeetech A10T",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Amit L",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"has_materials": true,
"machine_extruder_trains":
{
"0": "geeetech_A10T_1",
"1": "geeetech_A10T_2",
"2": "geeetech_A10T_3"
}
},
"overrides": {
"machine_name": { "default_value": "Geeetech A10T" },
"machine_width": {
"default_value": 220
},
"machine_height": {
"default_value": 220
},
"machine_depth": {
"default_value": 260
},
"machine_center_is_zero": {
"default_value": false
},
"layer_height": { "default_value": 0.1 },
"layer_height_0": { "default_value": 0.15 },
"retraction_amount": { "default_value": 0.8 },
"retraction_speed": { "default_value": 35 },
"adhesion_type": { "default_value": "skirt" },
"machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
"gantry_height": { "value": "28" },
"machine_max_feedrate_z": { "default_value": 12 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_acceleration": { "default_value": 1000 },
"machine_max_jerk_xy": { "default_value": 10 },
"machine_max_jerk_z": { "default_value": 0.2 },
"machine_max_jerk_e": { "default_value": 2.5 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nM163 S0 P0.33\nM163 S1 P0.33\nM163 S2 P0.33\nM164 S4\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X180 E40\nG1 F1200 Z2\nG92 E0\nG28"
},
"machine_end_gcode": {
"default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
},
"machine_extruder_count": {
"default_value": 3
}
}
}
{
"version": 2,
"name": "Geeetech A10T",
"inherits": "Geeetech_Base_Multi_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Multi_Extruder_0",
"1": "Geeetech_Multi_Extruder_1",
"2": "Geeetech_Multi_Extruder_2"
},
"preferred_material": "Geeetech_PLA_Magenta"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 28 },
"machine_depth": { "default_value": 220 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 260 },
"machine_name": { "default_value": "Geeetech A10T" },
"machine_start_gcode": { "default_value": ";Geeetech A10T Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 220 },
"prime_tower_position_x": { "value": 190 },
"prime_tower_position_y": { "value": 160 }
}
}

View File

@ -1,57 +1,29 @@
{
"version": 2,
"name": "Geeetech A20",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Amit L",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"has_materials": true,
"machine_extruder_trains":
{
"0": "geeetech_A20_1"
}
},
"overrides": {
"machine_name": { "default_value": "Geeetech A20" },
"machine_width": {
"default_value": 250
},
"machine_height": {
"default_value": 250
},
"machine_depth": {
"default_value": 250
}, "machine_center_is_zero": {
"default_value": false
},
"layer_height": { "default_value": 0.1 },
"layer_height_0": { "default_value": 0.15 },
"retraction_amount": { "default_value": 0.8 },
"retraction_speed": { "default_value": 35 },
"adhesion_type": { "default_value": "skirt" },
"machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
"gantry_height": { "value": "28" },
"machine_max_feedrate_z": { "default_value": 12 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_acceleration": { "default_value": 1000 },
"machine_max_jerk_xy": { "default_value": 10 },
"machine_max_jerk_z": { "default_value": 0.2 },
"machine_max_jerk_e": { "default_value": 2.5 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X200 E40\nG1 F1200 Z2\nG92 E0\nG28"
},
"machine_end_gcode": {
"default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
},
"machine_extruder_count": {
"default_value": 1
}
}
}
{
"version": 2,
"name": "Geeetech A20",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 250 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 250 },
"machine_name": { "default_value": "Geeetech A20" },
"machine_start_gcode": { "default_value": ";Geeetech A20 Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 250 }
}
}

View File

@ -1,58 +1,37 @@
{
"version": 2,
"name": "Geeetech A20M",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Amit L",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"has_materials": true,
"machine_extruder_trains":
{
"0": "geeetech_A20M_1",
"1": "geeetech_A20M_2"
}
},
"overrides": {
"machine_name": { "default_value": "Geeetech A20M" },
"machine_width": {
"default_value": 250
},
"machine_height": {
"default_value": 250
},
"machine_depth": {
"default_value": 250
}, "machine_center_is_zero": {
"default_value": false
},
"layer_height": { "default_value": 0.1 },
"layer_height_0": { "default_value": 0.15 },
"retraction_amount": { "default_value": 0.8 },
"retraction_speed": { "default_value": 35 },
"adhesion_type": { "default_value": "skirt" },
"machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
"gantry_height": { "value": "28" },
"machine_max_feedrate_z": { "default_value": 12 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_acceleration": { "default_value": 1000 },
"machine_max_jerk_xy": { "default_value": 10 },
"machine_max_jerk_z": { "default_value": 0.2 },
"machine_max_jerk_e": { "default_value": 2.5 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": ";GeeeTech A20M start script\nG28 ;home\nG90 ;absolute positioning\nG1 X0 Y0 Z15 E0 F300 ;go to wait position\nM140 S{material_bed_temperature_layer_0} ;set bed temp\nM109 S{material_print_temperature_layer_0} ;set extruder temp and wait\nG1 Z0.8 F200 ;set extruder height\nG1 X220 Y0 E80 F1000 ;purge line\n;end of start script"
},
"machine_end_gcode": {
"default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
},
"machine_extruder_count": {
"default_value": 2
}
}
}
{
"version": 2,
"name": "Geeetech A20M",
"inherits": "Geeetech_Base_Dual_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Dual_Extruder_0",
"1": "Geeetech_Dual_Extruder_1"
},
"preferred_material": "Geeetech_PLA_Yellow"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 250 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 250 },
"machine_name": { "default_value": "Geeetech A20M" },
"machine_start_gcode": { "default_value": ";Geeetech A20M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 250 },
"prime_tower_position_x": { "value": 220 },
"prime_tower_position_y": { "value": 190 }
}
}

View File

@ -1,59 +1,38 @@
{
"version": 2,
"name": "Geeetech A20T",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Amit L",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"has_materials": true,
"machine_extruder_trains":
{
"0": "geeetech_A20T_1",
"1": "geeetech_A20T_2",
"2": "geeetech_A20T_3"
}
},
"overrides": {
"machine_name": { "default_value": "Geeetech A20T" },
"machine_width": {
"default_value": 250
},
"machine_height": {
"default_value": 250
},
"machine_depth": {
"default_value": 250
}, "machine_center_is_zero": {
"default_value": false
},
"layer_height": { "default_value": 0.1 },
"layer_height_0": { "default_value": 0.15 },
"retraction_amount": { "default_value": 0.8 },
"retraction_speed": { "default_value": 35 },
"adhesion_type": { "default_value": "skirt" },
"machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
"gantry_height": { "value": "28" },
"machine_max_feedrate_z": { "default_value": 12 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_acceleration": { "default_value": 1000 },
"machine_max_jerk_xy": { "default_value": 10 },
"machine_max_jerk_z": { "default_value": 0.2 },
"machine_max_jerk_e": { "default_value": 2.5 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nM163 S0 P0.33\nM163 S1 P0.33\nM163 S2 P0.33\nM164 S4\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X200 E40\nG1 F1200 Z2\nG92 E0\nG28"
},
"machine_end_gcode": {
"default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
},
"machine_extruder_count": {
"default_value": 3
}
}
}
{
"version": 2,
"name": "Geeetech A20T",
"inherits": "Geeetech_Base_Multi_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Multi_Extruder_0",
"1": "Geeetech_Multi_Extruder_1",
"2": "Geeetech_Multi_Extruder_2"
},
"preferred_material": "Geeetech_PLA_Red"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 250 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 250 },
"machine_name": { "default_value": "Geeetech A20T" },
"machine_start_gcode": { "default_value": ";Geeetech A20T Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 250 },
"prime_tower_position_x": { "value": 220 },
"prime_tower_position_y": { "value": 190 }
}
}

View File

@ -0,0 +1,37 @@
{
"version": 2,
"name": "Geeetech A30M",
"inherits": "Geeetech_Base_Dual_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Dual_Extruder_0",
"1": "Geeetech_Dual_Extruder_1"
},
"preferred_material": "Geeetech_PLA_Green"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 320 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 420 },
"machine_name": { "default_value": "Geeetech A30M" },
"machine_start_gcode": { "default_value": ";Geeetech A30M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 320 },
"prime_tower_position_x": { "value": 290 },
"prime_tower_position_y": { "value": 260 }
}
}

View File

@ -0,0 +1,29 @@
{
"version": 2,
"name": "Geeetech A30Pro",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 320 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 420 },
"machine_name": { "default_value": "Geeetech A30Pro" },
"machine_start_gcode": { "default_value": ";Geeetech A30Pro Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 320 }
}
}

View File

@ -0,0 +1,38 @@
{
"version": 2,
"name": "Geeetech A30T",
"inherits": "Geeetech_Base_Multi_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Multi_Extruder_0",
"1": "Geeetech_Multi_Extruder_1",
"2": "Geeetech_Multi_Extruder_2"
},
"preferred_material": "Geeetech_PLA_Blue"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 320 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 420 },
"machine_name": { "default_value": "Geeetech A30T" },
"machine_start_gcode": { "default_value": ";Geeetech A30T Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 320 },
"prime_tower_position_x": { "value": 290 },
"prime_tower_position_y": { "value": 260 }
}
}

View File

@ -0,0 +1,30 @@
{
"version": 2,
"name": "Geeetech E180",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 28 },
"machine_depth": { "default_value": 130 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_heated_bed": { "default_value": false },
"machine_height": { "default_value": 126 },
"machine_name": { "default_value": "Geeetech E180" },
"machine_start_gcode": { "default_value": ";Geeetech E180 Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y120.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y120.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y10 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 125 }
}
}

View File

@ -0,0 +1,30 @@
{
"version": 2,
"name": "Geeetech GiantArmD200",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 45 },
"machine_depth": { "default_value": 180 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 180 },
"machine_name": { "default_value": "Geeetech GiantArmD200" },
"machine_start_gcode": { "default_value": ";Geeetech GiantArmD200 Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y160.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y160.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y10 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 300 },
"retraction_amount": { "value": 2 }
}
}

View File

@ -0,0 +1,30 @@
{
"version": 2,
"name": "Geeetech I3ProB",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 45 },
"machine_depth": { "default_value": 200 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 180 },
"machine_name": { "default_value": "Geeetech I3ProB" },
"machine_start_gcode": { "default_value": ";Geeetech I3ProB Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y180.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y180.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 200 },
"retraction_amount": { "value": 2 }
}
}

View File

@ -0,0 +1,38 @@
{
"version": 2,
"name": "Geeetech I3ProC",
"inherits": "Geeetech_Base_Dual_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Dual_Extruder_0",
"1": "Geeetech_Dual_Extruder_1"
},
"preferred_material": "Geeetech_PLA_Black"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 45 },
"machine_depth": { "default_value": 200 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 180 },
"machine_name": { "default_value": "Geeetech I3ProC" },
"machine_start_gcode": { "default_value": ";Geeetech I3ProC Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y180.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y180.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 200 },
"prime_tower_position_x": { "value": 170 },
"prime_tower_position_y": { "value": 140 },
"retraction_amount": { "value": 2 }
}
}

View File

@ -0,0 +1,30 @@
{
"version": 2,
"name": "Geeetech I3ProW",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 45 },
"machine_depth": { "default_value": 200 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 180 },
"machine_name": { "default_value": "Geeetech I3ProW" },
"machine_start_gcode": { "default_value": ";Geeetech I3ProW Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y180.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y180.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 200 },
"retraction_amount": { "value": 2 }
}
}

View File

@ -0,0 +1,30 @@
{
"version": 2,
"name": "Geeetech MeCreator",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 45 },
"machine_depth": { "default_value": 150 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 125 },
"machine_name": { "default_value": "Geeetech MeCreator" },
"machine_start_gcode": { "default_value": ";Geeetech MeCreator Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y130.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y130.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y10 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 150 },
"retraction_amount": { "value": 2 }
}
}

View File

@ -0,0 +1,30 @@
{
"version": 2,
"name": "Geeetech MeCreator2",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 45 },
"machine_depth": { "default_value": 160 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 160 },
"machine_name": { "default_value": "Geeetech MeCreator2" },
"machine_start_gcode": { "default_value": ";Geeetech MeCreator2 Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y140.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y140.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y10 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 160 },
"retraction_amount": { "value": 2 }
}
}

View File

@ -0,0 +1,30 @@
{
"version": 2,
"name": "Geeetech MeDucer",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 45 },
"machine_depth": { "default_value": 150 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"machine_height": { "default_value": 150 },
"machine_name": { "default_value": "Geeetech MeDucer" },
"machine_start_gcode": { "default_value": ";Geeetech MeDucer Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y10 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y130.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y130.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y10 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y10 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 180 },
"retraction_amount": { "value": 2 }
}
}

View File

@ -0,0 +1,29 @@
{
"version": 2,
"name": "Geeetech Mizar",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 220 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 260 },
"machine_name": { "default_value": "Geeetech Mizar" },
"machine_start_gcode": { "default_value": ";Official open-source firmware for Mizar: https://github.com/Geeetech3D/Mizar \n\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 220 }
}
}

View File

@ -0,0 +1,38 @@
{
"version": 2,
"name": "Geeetech MizarM",
"inherits": "Geeetech_Base_Dual_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains":
{
"0": "Geeetech_Dual_Extruder_0",
"1": "Geeetech_Dual_Extruder_1"
},
"preferred_material": "Geeetech_PLA_Magenta"
},
"overrides":
{
"brim_width": { "value": 10 },
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 255 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 260 },
"machine_name": { "default_value": "Geeetech MizarM" },
"machine_start_gcode": { "default_value": ";Official open-source firmware for MizarM: https://github.com/Geeetech3D/Mizar-M \n\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 255 },
"material_standby_temperature": { "value": 200 },
"prime_tower_position_x": { "value": 225 },
"prime_tower_position_y": { "value": 195 }
}
}

View File

@ -0,0 +1,29 @@
{
"version": 2,
"name": "Geeetech MizarMax",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 320 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 400 },
"machine_name": { "default_value": "Geeetech MizarMax" },
"machine_start_gcode": { "default_value": ";Official open-source firmware for MizarMax: https://github.com/Geeetech3D/Mizar-Max \n\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 320 }
}
}

View File

@ -0,0 +1,29 @@
{
"version": 2,
"name": "Geeetech MizarPro",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 220 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 260 },
"machine_name": { "default_value": "Geeetech MizarPro" },
"machine_start_gcode": { "default_value": ";Official open-source firmware for MizarPro: https://github.com/Geeetech3D/Mizar-Pro \n\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 220 }
}
}

View File

@ -0,0 +1,29 @@
{
"version": 2,
"name": "Geeetech MizarS",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 255 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, 31],
[34, 31],
[34, -40],
[-31, -40]
]
},
"machine_height": { "default_value": 260 },
"machine_name": { "default_value": "Geeetech MizarS" },
"machine_start_gcode": { "default_value": ";Official open-source firmware for MizarS: https://github.com/Geeetech3D/Mizar-S \n\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 255 }
}
}

View File

@ -1,59 +0,0 @@
{
"version": 2,
"name": "Geeetech Mizar_S",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Amit L",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"has_materials": true,
"machine_extruder_trains":
{
"0": "geeetech_Mizar_S_1"
}
},
"overrides": {
"machine_name": { "default_value": "Geeetech Mizar_S" },
"machine_width": {
"default_value": 255
},
"machine_height": {
"default_value": 260
},
"machine_depth": {
"default_value": 255
},
"machine_center_is_zero": {
"default_value": false
},
"layer_height": { "default_value": 0.1 },
"layer_height_0": { "default_value": 0.15 },
"retraction_amount": { "default_value": 0.8 },
"retraction_speed": { "default_value": 35 },
"adhesion_type": { "default_value": "skirt" },
"machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
"gantry_height": { "value": "28" },
"machine_max_feedrate_z": { "default_value": 12 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_acceleration_z": { "default_value": 500 },
"machine_acceleration": { "default_value": 1000 },
"machine_max_jerk_xy": { "default_value": 10 },
"machine_max_jerk_z": { "default_value": 0.2 },
"machine_max_jerk_e": { "default_value": 2.5 },
"machine_heated_bed": { "default_value": true },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": "G28 ; Auto home\nG1 Z15 F300 ;Move up slightly\nM107 ;Off fans\nG90 ;Switch to absolute positioning\nM82 ;Extruder absolute mode\nG92 E0 ;Set position of extruder to 0\nG0 X10 Y20 F1500 ;Move to X10 Y20 at 1500mms\nG1 Z0.8 ;Move Z to 0.8\nG1 F300 X180 E40 ;Extrude a line of filament\nG1 F1200 Z2 ;Raise Z\nG92 E0 ;Set extruder position to zero\nG28 ;Auto home"
},
"machine_end_gcode": {
"default_value": "G91 ;Switch to relative positioning\nG1 E-1 ;Retract filament to lower pressure\nG0 X0 Y200 ;Move hotend to left and bed forward\nM104 S0 ;Cooldown hotend\nG90 ;Switch to absolute mode\nG92 E0 ;Set extruder to zero\nM140 S0 ;Cooldown bed\nM84 ; Disable steppers"
},
"machine_extruder_count": {
"default_value": 1
}
}
}

View File

@ -0,0 +1,132 @@
{
"version": 2,
"name": "Geeetech Thunder",
"inherits": "Geeetech_Base_Single_Extruder",
"metadata":
{
"visible": true,
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
},
"overrides":
{
"acceleration_print": { "value": 3500 },
"acceleration_travel": { "value": 5000 },
"cool_fan_full_at_height":
{
"label": "Regular Fan Speed at Height",
"value": "layer_height_0 + layer_height"
},
"cool_fan_speed":
{
"maximum_value": "151",
"value": "151 if speed_infill>=200 else 100"
},
"cool_fan_speed_max":
{
"maximum_value": "151",
"value": "cool_fan_speed"
},
"cool_fan_speed_min":
{
"maximum_value": "151",
"value": "cool_fan_speed"
},
"cool_min_layer_time": { "value": "1.3 if speed_infill>=200 else 2.5" },
"fill_outline_gaps":
{
"label": "Print Thin Walls",
"value": false
},
"gantry_height": { "value": 35 },
"infill_before_walls":
{
"label": "Infill Before Walls",
"value": false
},
"infill_overlap":
{
"label": "Infill Overlap Percentage",
"value": 10.0
},
"infill_sparse_density":
{
"label": "Infill Density",
"value": "15"
},
"infill_wipe_dist":
{
"label": "Infill Wipe Distance",
"value": 0.0
},
"line_width": { "value": "1.2*machine_nozzle_size if speed_infill>=200 else machine_nozzle_size" },
"machine_depth": { "default_value": 250 },
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-20, 25],
[20, 25],
[20, -25],
[-20, -25]
]
},
"machine_height": { "default_value": 260 },
"machine_max_acceleration_e": { "value": 3500 },
"machine_max_acceleration_x": { "value": 5000 },
"machine_max_acceleration_y": { "value": 4000 },
"machine_max_acceleration_z": { "value": 50 },
"machine_max_feedrate_e": { "value": 60 },
"machine_max_feedrate_x": { "value": 300 },
"machine_max_jerk_e": { "value": 8 },
"machine_max_jerk_xy": { "value": 45 },
"machine_max_jerk_z": { "value": 0.8 },
"machine_name": { "default_value": "Geeetech Thunder" },
"machine_start_gcode": { "default_value": ";Official viki homepage for Thunder:https://www.geeetech.com/wiki/index.php/Geeetech_Thunder_3D_printer \n\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
"machine_width": { "default_value": 250 },
"material_flow_layer_0": { "value": 95 },
"material_print_temperature":
{
"maximum_value": "250",
"value": "200 if speed_infill <=150 else 205 if speed_infill <= 200 else 215 if speed_infill <= 260 else 220"
},
"material_print_temperature_layer_0":
{
"maximum_value_warning": 300,
"value": "material_print_temperature"
},
"retraction_speed": { "value": 35 },
"skin_overlap":
{
"label": "Skin Overlap Percentage",
"value": 10.0
},
"small_hole_max_size": { "value": "8 if speed_infill>=200 else 0" },
"speed_infill": { "maximum_value_warning": "300" },
"speed_print":
{
"maximum_value_warning": "300",
"value": 250
},
"speed_roofing": { "maximum_value_warning": "300" },
"speed_support": { "maximum_value_warning": "200" },
"speed_support_bottom": { "maximum_value_warning": "200" },
"speed_support_infill": { "maximum_value_warning": "200" },
"speed_support_interface": { "maximum_value_warning": "200" },
"speed_support_roof": { "maximum_value_warning": "200" },
"speed_topbottom": { "maximum_value_warning": "300" },
"speed_travel_layer_0": { "maximum_value_warning": "200" },
"speed_wall": { "maximum_value_warning": "300" },
"speed_wall_0": { "maximum_value_warning": "300" },
"speed_wall_x": { "maximum_value_warning": "300" },
"wall_0_wipe_dist":
{
"label": "Outer Wall Wipe Distance",
"value": 0.0
},
"zig_zaggify_infill":
{
"label": "Connect Infill Lines",
"value": true
}
}
}

View File

@ -1,113 +0,0 @@
{
"version": 2,
"name": "Geeetech A30",
"inherits": "fdmprinter",
"metadata": {
"author": "William & Cataldo URSO",
"manufacturer": "Geeetech",
"file_formats": "text/x-gcode",
"visible": true,
"has_materials": true,
"preferred_quality_type": "draft",
"machine_extruder_trains": {
"0": "geeetech_a30_extruder_0"
}
},
"overrides": {
"machine_name": {
"default_value": "Geeetech A30"
},
"machine_start_gcode": {
"default_value": "G28 ;Home\nM190 S{material_bed_temperature}\nM109 S{material_print_temperature} T0\nG1 Z15.0 F6000 ;Move the platform down 15mm\nG92 E0\nG1 F200 E3\nG92 E0"
},
"machine_end_gcode": {
"default_value": "M104 S0;Cooling the heat end\nM140 S0;Cooling the heat bed\nG92 E1\nG1 E-1 F300\nG28 X0 Y0;Home X axis and Y axis\nM84"
},
"machine_width": {
"default_value": 320
},
"machine_height": {
"default_value": 420
},
"machine_depth": {
"default_value": 320
},
"machine_heated_bed": {
"default_value": true
},
"machine_center_is_zero": {
"default_value": false
},
"material_diameter": {
"default_value": 1.75
},
"machine_nozzle_size": {
"default_value": 0.4
},
"layer_height": {
"default_value": 0.1
},
"layer_height_0": {
"default_value": 0.3
},
"retraction_amount": {
"default_value": 2
},
"retraction_speed": {
"default_value": 25
},
"adhesion_type": {
"default_value": "skirt"
},
"machine_head_with_fans_polygon": {
"default_value": [
[-75, 35],
[18, 35],
[18, -18],
[-75, -18]
]
},
"gantry_height": {
"value": "55"
},
"machine_max_feedrate_x": {
"default_value": 300
},
"machine_max_feedrate_y": {
"default_value": 300
},
"machine_max_feedrate_z": {
"default_value": 7
},
"machine_max_feedrate_e": {
"default_value": 50
},
"machine_max_acceleration_x": {
"default_value": 2000
},
"machine_max_acceleration_y": {
"default_value": 2000
},
"machine_max_acceleration_z": {
"default_value": 100
},
"machine_max_acceleration_e": {
"default_value": 10000
},
"machine_acceleration": {
"default_value": 2000
},
"machine_max_jerk_xy": {
"default_value": 10
},
"machine_max_jerk_z": {
"default_value": 1
},
"machine_max_jerk_e": {
"default_value": 5
},
"machine_gcode_flavor": {
"default_value": "Repetier"
}
}
}

View File

@ -58,6 +58,7 @@
"jerk_travel_enabled": { "value": false },
"jerk_wall": { "minimum_value_warning": 20 },
"jerk_wall_0": { "minimum_value_warning": 20 },
"layer_height": { "value": 0.15 },
"layer_height_0": { "value": "max(0.2, layer_height)" },
"line_width": { "value": "machine_nozzle_size" },
"machine_max_feedrate_e": { "default_value": 45 },
@ -75,7 +76,7 @@
},
"meshfix_maximum_deviation": { "value": "machine_nozzle_size / 10" },
"meshfix_maximum_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" },
"minimum_support_area": { "value": "4.0" },
"minimum_support_area": { "value": "(2 + support_offset)**2" },
"raft_base_speed": { "value": "raft_speed" },
"raft_base_thickness": { "value": "min(machine_nozzle_size * 0.75, 0.3)" },
"raft_interface_fan_speed": { "value": "(raft_base_fan_speed + raft_surface_fan_speed) / 2" },

View File

@ -2,102 +2,105 @@
"version": 2,
"name": "Ultimaker 2",
"inherits": "ultimaker",
"metadata": {
"metadata":
{
"visible": true,
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"weight": 3,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"platform_texture": "Ultimaker2backplate.png",
"platform_offset": [9, 0, 0],
"has_materials": false,
"has_machine_quality": true,
"preferred_variant_name": "0.4 mm",
"machine_extruder_trains":
{
"0": "ultimaker2_extruder_0"
},
"exclude_materials": [
"generic_hips",
"generic_petg",
"structur3d_dap100silicone",
"ultimaker_petg_red",
"ultimaker_petg_blue",
"ultimaker_petg_grey",
"ultimaker_petg_black",
"ultimaker_petg_green",
"ultimaker_petg_white",
"ultimaker_petg_orange",
"ultimaker_petg_silver",
"ultimaker_petg_yellow",
"ultimaker_petg_transparent",
"ultimaker_petg_red_translucent",
"ultimaker_petg_blue_translucent",
"ultimaker_petg_green_translucent",
"ultimaker_petg_yellow_fluorescent"
],
"firmware_file": "MarlinUltimaker2.hex",
"exclude_materials": [ "generic_hips", "generic_petg", "structur3d_dap100silicone", "ultimaker_petg_red", "ultimaker_petg_blue", "ultimaker_petg_grey", "ultimaker_petg_black", "ultimaker_petg_green", "ultimaker_petg_white", "ultimaker_petg_orange", "ultimaker_petg_silver", "ultimaker_petg_yellow", "ultimaker_petg_transparent", "ultimaker_petg_red_translucent", "ultimaker_petg_blue_translucent", "ultimaker_petg_green_translucent", "ultimaker_petg_yellow_fluorescent"]
"has_machine_quality": true,
"has_materials": false,
"machine_extruder_trains": { "0": "ultimaker2_extruder_0" },
"platform_offset": [
9,
0,
0
],
"platform_texture": "Ultimaker2backplate.png",
"preferred_variant_name": "0.4 mm",
"weight": 3
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 2" },
"machine_start_gcode" : {
"value": "\"G0 F3000 Y50 ;avoid prime blob\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG28 Z0 ;move Z to bottom endstops\\nG28 X0 Y0 ;move X/Y to endstops\\nG1 X15 Y0 F4000 ;move X/Y to front of printer\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 Y50 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\""
},
"machine_end_gcode" : {
"value": "\";Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\" if machine_gcode_flavor == \"UltiGCode\" else \"M104 S0 ;extruder heater off\\nM140 S0 ;heated bed heater off (if you have it)\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning\\n;Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\""
},
"machine_width": {
"default_value": 223
},
"machine_depth": {
"default_value": 223
},
"machine_height": {
"default_value": 205
},
"machine_heated_bed": {
"default_value": true
"overrides":
{
"cool_fan_speed_0": { "value": 0 },
"gantry_height": { "value": "48" },
"layer_height_0": { "value": 0.3 },
"machine_acceleration": { "default_value": 3000 },
"machine_center_is_zero": { "default_value": false },
"machine_depth": { "default_value": 223 },
"machine_disallowed_areas":
{
"default_value": [
[
[-115, 112.5],
[-82, 112.5],
[-84, 102.5],
[-115, 102.5]
],
[
[115, 112.5],
[115, 102.5],
[110, 102.5],
[108, 112.5]
],
[
[-115, -112.5],
[-115, -104.5],
[-84, -104.5],
[-82, -112.5]
],
[
[115, -112.5],
[108, -112.5],
[110, -104.5],
[115, -104.5]
]
]
},
"machine_end_gcode": { "value": "\";Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\" if machine_gcode_flavor == \"UltiGCode\" else \"M104 S0 ;extruder heater off\\nM140 S0 ;heated bed heater off (if you have it)\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning\\n;Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\"" },
"machine_gcode_flavor": { "default_value": "UltiGCode" },
"machine_head_with_fans_polygon":
{
"default_value": [
[ -42, 12 ],
[ -42, -32 ],
[ 62, 12 ],
[ 62, -32 ]
[-42, 12],
[-42, -32],
[62, 12],
[62, -32]
]
},
"machine_center_is_zero": {
"default_value": false
},
"gantry_height": {
"value": "48"
},
"machine_use_extruder_offset_to_offset_coords": {
"default_value": true
},
"machine_gcode_flavor": {
"default_value": "UltiGCode"
},
"machine_disallowed_areas": {
"default_value": [
[[-115, 112.5], [ -82, 112.5], [ -84, 102.5], [-115, 102.5]],
[[ 115, 112.5], [ 115, 102.5], [ 110, 102.5], [ 108, 112.5]],
[[-115, -112.5], [-115, -104.5], [ -84, -104.5], [ -82, -112.5]],
[[ 115, -112.5], [ 108, -112.5], [ 110, -104.5], [ 115, -104.5]]
]},
"machine_nozzle_tip_outer_diameter": {
"default_value": 1
},
"machine_nozzle_head_distance": {
"default_value": 3
},
"machine_max_feedrate_x": {
"default_value": 300
},
"machine_max_feedrate_y": {
"default_value": 300
},
"machine_max_feedrate_z": {
"default_value": 40
},
"machine_acceleration": {
"default_value": 3000
},
"support_z_distance": {
"value": "0.1"
},
"cool_fan_speed_0": {
"value": 0
},
"layer_height_0": {
"value": 0.3
},
"speed_slowdown_layers": {
"value": 2
}
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 205 },
"machine_max_feedrate_x": { "default_value": 300 },
"machine_max_feedrate_y": { "default_value": 300 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_name": { "default_value": "Ultimaker 2" },
"machine_nozzle_head_distance": { "default_value": 3 },
"machine_nozzle_tip_outer_diameter": { "default_value": 1 },
"machine_start_gcode": { "value": "\"G0 F3000 Y50 ;avoid prime blob\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG28 Z0 ;move Z to bottom endstops\\nG28 X0 Y0 ;move X/Y to endstops\\nG1 X15 Y0 F4000 ;move X/Y to front of printer\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 Y50 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\"" },
"machine_use_extruder_offset_to_offset_coords": { "default_value": true },
"machine_width": { "default_value": 223 },
"speed_slowdown_layers": { "value": 2 },
"support_z_distance": { "value": "0.1" }
}
}
}

View File

@ -2,25 +2,21 @@
"version": 2,
"name": "Ultimaker 2 Extended",
"inherits": "ultimaker2",
"metadata": {
"metadata":
{
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"quality_definition": "ultimaker2",
"weight": 3,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"firmware_file": "MarlinUltimaker2extended.hex",
"machine_extruder_trains": { "0": "ultimaker2_extended_extruder_0" },
"platform_texture": "Ultimaker2Extendedbackplate.png",
"machine_extruder_trains":
{
"0": "ultimaker2_extended_extruder_0"
},
"firmware_file": "MarlinUltimaker2extended.hex"
"quality_definition": "ultimaker2",
"weight": 3
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 2 Extended" },
"machine_height": {
"default_value": 305
}
"overrides":
{
"machine_height": { "default_value": 305 },
"machine_name": { "default_value": "Ultimaker 2 Extended" }
}
}
}

View File

@ -2,11 +2,9 @@
"version": 2,
"name": "Ultimaker 2 Extended with Olsson",
"inherits": "ultimaker2_extended",
"metadata": {
"has_variants": true
},
"overrides": {
"metadata": { "has_variants": true },
"overrides":
{
"machine_name": { "default_value": "Ultimaker 2 Extended with Olsson" }
}
}
}

View File

@ -2,25 +2,21 @@
"version": 2,
"name": "Ultimaker 2 Extended+",
"inherits": "ultimaker2_plus",
"metadata": {
"metadata":
{
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"quality_definition": "ultimaker2_plus",
"weight": 2,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"firmware_file": "MarlinUltimaker2extended-plus.hex",
"machine_extruder_trains": { "0": "ultimaker2_extended_plus_extruder_0" },
"platform_texture": "Ultimaker2ExtendedPlusbackplate.png",
"machine_extruder_trains":
{
"0": "ultimaker2_extended_plus_extruder_0"
},
"firmware_file": "MarlinUltimaker2extended-plus.hex"
"quality_definition": "ultimaker2_plus",
"weight": 2
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 2 Extended+" },
"machine_height": {
"default_value": 305
}
"overrides":
{
"machine_height": { "default_value": 305 },
"machine_name": { "default_value": "Ultimaker 2 Extended+" }
}
}
}

View File

@ -1,44 +1,59 @@
{
"version": 2,
"version": 2,
"name": "Ultimaker 2 Go",
"inherits": "ultimaker2",
"metadata": {
"metadata":
{
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"quality_definition": "ultimaker2",
"weight": 3,
"file_formats": "text/x-gcode",
"platform": "ultimaker2go_platform.obj",
"firmware_file": "MarlinUltimaker2go.hex",
"machine_extruder_trains": { "0": "ultimaker2_go_extruder_0" },
"platform_offset": [
0,
0,
0
],
"platform_texture": "Ultimaker2Gobackplate.png",
"platform_offset": [0, 0, 0],
"machine_extruder_trains":
{
"0": "ultimaker2_go_extruder_0"
},
"firmware_file": "MarlinUltimaker2go.hex"
"quality_definition": "ultimaker2",
"weight": 3
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 2 Go" },
"machine_width": {
"default_value": 120
},
"machine_depth": {
"default_value": 120
},
"machine_height": {
"default_value": 115
},
"machine_heated_bed": {
"default_value": false
},
"machine_disallowed_areas": {
"overrides":
{
"machine_depth": { "default_value": 120 },
"machine_disallowed_areas":
{
"default_value": [
[[-60, 60], [-33, 60], [-35, 52], [-60, 52]],
[[ 60, 60], [ 60, 52], [ 35, 52], [ 33, 60]],
[[-60, -60], [-60, -52], [-35, -52], [-33, -60]],
[[ 60, -60], [ 33, -60], [ 35, -52], [ 60, -52]]
[
[-60, 60],
[-33, 60],
[-35, 52],
[-60, 52]
],
[
[60, 60],
[60, 52],
[35, 52],
[33, 60]
],
[
[-60, -60],
[-60, -52],
[-35, -52],
[-33, -60]
],
[
[60, -60],
[33, -60],
[35, -52],
[60, -52]
]
]
}
},
"machine_heated_bed": { "default_value": false },
"machine_height": { "default_value": 115 },
"machine_name": { "default_value": "Ultimaker 2 Go" },
"machine_width": { "default_value": 120 }
}
}
}

View File

@ -2,12 +2,13 @@
"version": 2,
"name": "Ultimaker 2 with Olsson Block",
"inherits": "ultimaker2",
"metadata": {
"metadata":
{
"has_variants": true,
"quality_definition": "ultimaker2"
},
"overrides": {
"overrides":
{
"machine_name": { "default_value": "Ultimaker 2 with Olsson Block" }
}
}
}

View File

@ -2,72 +2,104 @@
"version": 2,
"name": "Ultimaker 2+",
"inherits": "ultimaker2",
"metadata": {
"metadata":
{
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"weight": 1,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"exclude_materials": [
"generic_hips",
"generic_petg",
"generic_bam",
"ultimaker_bam",
"generic_pva",
"ultimaker_pva",
"generic_tough_pla",
"ultimaker_tough_pla_black",
"ultimaker_tough_pla_green",
"ultimaker_tough_pla_red",
"ultimaker_tough_pla_white",
"generic_cffcpe",
"generic_cffpa",
"generic_gffcpe",
"generic_gffpa",
"structur3d_dap100silicone",
"ultimaker_petg_red",
"ultimaker_petg_blue",
"ultimaker_petg_grey",
"ultimaker_petg_black",
"ultimaker_petg_green",
"ultimaker_petg_white",
"ultimaker_petg_orange",
"ultimaker_petg_silver",
"ultimaker_petg_yellow",
"ultimaker_petg_transparent",
"ultimaker_petg_red_translucent",
"ultimaker_petg_blue_translucent",
"ultimaker_petg_green_translucent",
"ultimaker_petg_yellow_fluorescent"
],
"firmware_file": "MarlinUltimaker2plus.hex",
"first_start_actions": [],
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"machine_extruder_trains": { "0": "ultimaker2_plus_extruder_0" },
"platform_texture": "Ultimaker2Plusbackplate.png",
"preferred_variant_name": "0.4 mm",
"has_variants": true,
"has_materials": true,
"has_machine_quality": true,
"exclude_materials": ["generic_hips", "generic_petg", "generic_bam", "ultimaker_bam", "generic_pva", "ultimaker_pva", "generic_tough_pla", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "generic_cffcpe", "generic_cffpa", "generic_gffcpe", "generic_gffpa", "structur3d_dap100silicone", "ultimaker_petg_red", "ultimaker_petg_blue", "ultimaker_petg_grey", "ultimaker_petg_black", "ultimaker_petg_green", "ultimaker_petg_white", "ultimaker_petg_orange", "ultimaker_petg_silver", "ultimaker_petg_yellow", "ultimaker_petg_transparent", "ultimaker_petg_red_translucent", "ultimaker_petg_blue_translucent", "ultimaker_petg_green_translucent", "ultimaker_petg_yellow_fluorescent"],
"first_start_actions": [],
"supported_actions": [],
"machine_extruder_trains":
{
"0": "ultimaker2_plus_extruder_0"
},
"firmware_file": "MarlinUltimaker2plus.hex"
"weight": 1
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 2+" },
"speed_infill": {
"value": "speed_print"
},
"speed_wall_x": {
"value": "speed_wall"
},
"layer_height_0": {
"value": "round(machine_nozzle_size / 1.5, 2)"
},
"speed_support": {
"value": "speed_wall_0"
},
"machine_height": {
"default_value": 205
},
"machine_show_variants": {
"default_value": true
},
"gantry_height": {
"value": "52"
},
"machine_nozzle_head_distance": {
"default_value": 5
},
"machine_heat_zone_length": {
"default_value": 20
"overrides":
{
"gantry_height": { "value": "52" },
"layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" },
"machine_disallowed_areas":
{
"default_value": [
[
[-115, 112.5],
[-78, 112.5],
[-80, 102.5],
[-115, 102.5]
],
[
[115, 112.5],
[115, 102.5],
[105, 102.5],
[103, 112.5]
],
[
[-115, -112.5],
[-115, -104.5],
[-84, -104.5],
[-82, -112.5]
],
[
[115, -112.5],
[108, -112.5],
[110, -104.5],
[115, -104.5]
]
]
},
"machine_head_with_fans_polygon":
{
"default_value": [
[ -44, 14 ],
[ -44, -34 ],
[ 64, 14 ],
[ 64, -34 ]
[-44, 14],
[-44, -34],
[64, 14],
[64, -34]
]
},
"machine_disallowed_areas": {
"default_value": [
[[-115, 112.5], [ -78, 112.5], [ -80, 102.5], [-115, 102.5]],
[[ 115, 112.5], [ 115, 102.5], [ 105, 102.5], [ 103, 112.5]],
[[-115, -112.5], [-115, -104.5], [ -84, -104.5], [ -82, -112.5]],
[[ 115, -112.5], [ 108, -112.5], [ 110, -104.5], [ 115, -104.5]]
]
}
"machine_heat_zone_length": { "default_value": 20 },
"machine_height": { "default_value": 205 },
"machine_name": { "default_value": "Ultimaker 2+" },
"machine_nozzle_head_distance": { "default_value": 5 },
"machine_show_variants": { "default_value": true },
"speed_infill": { "value": "speed_print" },
"speed_support": { "value": "speed_wall_0" },
"speed_wall_x": { "value": "speed_wall" }
}
}
}

View File

@ -2,87 +2,131 @@
"version": 2,
"name": "Ultimaker 2+ Connect",
"inherits": "ultimaker2",
"metadata": {
"metadata":
{
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"weight": 1,
"file_formats": "application/x-ufp;text/x-gcode",
"platform": "ultimaker2_plus_connect_platform.obj",
"platform_texture": "Ultimaker2PlusConnectbackplate.png",
"platform_offset": [-1, -6, 0],
"preferred_variant_name": "0.4 mm",
"has_variants": true,
"has_materials": true,
"exclude_materials": [
"generic_hips",
"generic_petg",
"generic_bam",
"ultimaker_bam",
"generic_pva",
"ultimaker_pva",
"generic_tough_pla",
"ultimaker_tough_pla_black",
"ultimaker_tough_pla_green",
"ultimaker_tough_pla_red",
"ultimaker_tough_pla_white",
"generic_cffcpe",
"generic_cffpa",
"generic_gffcpe",
"generic_gffpa",
"structur3d_dap100silicone"
],
"first_start_actions": [],
"has_machine_materials": true,
"has_machine_quality": true,
"exclude_materials": ["generic_hips", "generic_petg", "generic_bam", "ultimaker_bam", "generic_pva", "ultimaker_pva", "generic_tough_pla", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "generic_cffcpe", "generic_cffpa", "generic_gffcpe", "generic_gffpa", "structur3d_dap100silicone" ],
"first_start_actions": [],
"has_materials": true,
"has_variants": true,
"machine_extruder_trains": { "0": "ultimaker2_plus_connect_extruder_0" },
"platform_offset": [
-1,
-6,
0
],
"platform_texture": "Ultimaker2PlusConnectbackplate.png",
"preferred_variant_name": "0.4 mm",
"supported_actions": [],
"machine_extruder_trains":
{
"0": "ultimaker2_plus_connect_extruder_0"
},
"supports_network_connection": true,
"supports_usb_connection": false,
"supports_network_connection": true
"weight": 1
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 2+ Connect" },
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_width": { "default_value": 223 },
"machine_depth": { "default_value": 220 },
"machine_height": { "default_value": 205 },
"machine_show_variants": { "default_value": true },
"overrides":
{
"gantry_height": { "value": "52" },
"machine_nozzle_head_distance": { "default_value": 5 },
"machine_heat_zone_length": { "default_value": 20 },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'grid'" },
"infill_wipe_dist": { "value": "0" },
"layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" },
"machine_depth": { "default_value": 220 },
"machine_disallowed_areas":
{
"default_value": [
[
[-115, 112.5],
[-83, 112.5],
[-85, 104.0],
[-115, 104.0]
],
[
[115, 112.5],
[115, 104.0],
[104, 104.0],
[102, 112.5]
],
[
[-115, -112.5],
[-115, -104.0],
[-87, -104.0],
[-85, -112.5]
],
[
[115, -112.5],
[104, -112.5],
[106, -104.0],
[115, -104.0]
]
]
},
"machine_end_gcode": { "value": "''" },
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_head_with_fans_polygon":
{
"default_value": [
[ -44, 14 ],
[ -44, -34 ],
[ 64, 14 ],
[ 64, -34 ]
[-44, 14],
[-44, -34],
[64, 14],
[64, -34]
]
},
"machine_disallowed_areas":
{
"default_value": [
[[-115, 112.5], [ -83, 112.5], [ -85, 104.0], [-115, 104.0]],
[[ 115, 112.5], [ 115, 104.0], [ 104, 104.0], [ 102, 112.5]],
[[-115, -112.5], [-115, -104.0], [ -87, -104.0], [ -85, -112.5]],
[[ 115, -112.5], [ 104, -112.5], [ 106, -104.0], [ 115, -104.0]]
]
},
"infill_wipe_dist": { "value": "0" },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'grid'" },
"layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" },
"optimize_wall_printing_order": { "value": "True" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" },
"speed_support": { "value": "speed_wall_0" },
"material_initial_print_temperature": {
"value": "material_print_temperature",
"maximum_value": 260
},
"material_final_print_temperature": {
"value": "material_print_temperature",
"maximum_value": 260
},
"material_print_temperature_layer_0": {
"maximum_value": 260
},
"machine_heat_zone_length": { "default_value": 20 },
"machine_height": { "default_value": 205 },
"machine_name": { "default_value": "Ultimaker 2+ Connect" },
"machine_nozzle_head_distance": { "default_value": 5 },
"machine_show_variants": { "default_value": true },
"machine_start_gcode": { "value": "''" },
"machine_end_gcode": { "value": "''" },
"machine_width": { "default_value": 223 },
"material_bed_temperature": { "maximum_value": 110 },
"material_bed_temperature_layer_0": { "maximum_value": 110 },
"material_final_print_temperature":
{
"maximum_value": 260,
"value": "material_print_temperature"
},
"material_initial_print_temperature":
{
"maximum_value": 260,
"value": "material_print_temperature"
},
"material_print_temperature": { "maximum_value": 260 },
"meshfix_maximum_resolution": { "value": "(speed_wall_0 + speed_wall_x) / 60" },
"material_print_temperature_layer_0": { "maximum_value": 260 },
"meshfix_maximum_deviation": { "value": "(layer_height / 3) if magic_spiralize else (layer_height / 4)" },
"meshfix_maximum_resolution": { "value": "(speed_wall_0 + speed_wall_x) / 60" },
"meshfix_maximum_travel_resolution": { "value": 0.5 },
"prime_blob_enable": { "enabled": true, "default_value": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" },
"optimize_wall_printing_order": { "value": "True" },
"prime_blob_enable":
{
"default_value": true,
"enabled": true,
"value": "resolveOrValue('print_sequence') != 'one_at_a_time'"
},
"retraction_prime_speed": { "value": "15" },
"retraction_speed": {"value": "45" },
"speed_wall_x": { "value": "speed_wall" }
"retraction_speed": { "value": "45" },
"speed_support": { "value": "speed_wall_0" },
"speed_wall_x": { "value": "speed_wall" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }
}
}
}

View File

@ -2,85 +2,54 @@
"version": 2,
"name": "Ultimaker 3",
"inherits": "ultimaker",
"metadata": {
"metadata":
{
"visible": true,
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"visible": true,
"file_formats": "application/gzip;text/x-gcode",
"platform": "ultimaker3_platform.obj",
"platform_texture": "Ultimaker3backplate.png",
"platform_offset": [0, 0, 0],
"bom_numbers": [
9066
],
"exclude_materials": [
"generic_hips",
"generic_cffcpe",
"generic_cffpa",
"generic_gffcpe",
"generic_gffpa",
"structur3d_dap100silicone"
],
"firmware_update_info":
{
"check_urls": [ "https://software.ultimaker.com/releases/firmware/9066/stable/um-update.swu.version" ],
"id": 9066,
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"exclude_materials": [ "generic_hips", "generic_cffcpe", "generic_cffpa", "generic_gffcpe", "generic_gffpa", "structur3d_dap100silicone" ],
"preferred_variant_name": "AA 0.4",
"preferred_quality_type": "normal",
"variants_name": "Print core",
"machine_extruder_trains":
{
"0": "ultimaker3_extruder_left",
"1": "ultimaker3_extruder_right"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"platform_offset": [
0,
0,
0
],
"platform_texture": "Ultimaker3backplate.png",
"preferred_quality_type": "fast",
"preferred_variant_name": "AA 0.4",
"supported_actions": [ "DiscoverUM3Action" ],
"supports_usb_connection": false,
"supports_network_connection": true,
"firmware_update_info": {
"id": 9066,
"check_urls":
[
"https://software.ultimaker.com/releases/firmware/9066/stable/um-update.swu.version"
],
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"bom_numbers": [
9066
]
"supports_usb_connection": false,
"variants_name": "Print core"
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 3" },
"machine_width": { "default_value": 233 },
"machine_depth": { "default_value": 215 },
"machine_height": { "default_value": 200 },
"machine_heated_bed": { "default_value": true },
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
"machine_head_with_fans_polygon":
{
"default_value":
[
[ -41.9, -45.8 ],
[ -41.9, 33.9 ],
[ 59.9, 33.9 ],
[ 59.9, -45.8 ]
]
},
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_max_feedrate_x": { "default_value": 300 },
"machine_max_feedrate_y": { "default_value": 300 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_acceleration": { "default_value": 3000 },
"gantry_height": { "value": "60" },
"machine_disallowed_areas": { "default_value": [
[[92.8, -53.4], [92.8, -97.5], [116.5, -97.5], [116.5, -53.4]],
[[73.8, 107.5], [73.8, 100.5], [116.5, 100.5], [116.5, 107.5]],
[[74.6, 107.5], [74.6, 100.5], [116.5, 100.5], [116.5, 107.5]],
[[74.9, -97.5], [74.9, -107.5], [116.5, -107.5], [116.5, -97.5]],
[[-116.5, -103.5], [-116.5, -107.5], [-100.9, -107.5], [-100.9, -103.5]],
[[-116.5, 105.8], [-96.9, 105.8], [-96.9, 107.5], [-116.5, 107.5]]
]},
"machine_extruder_count": { "default_value": 2 },
"extruder_prime_pos_abs": { "default_value": true },
"machine_start_gcode": { "default_value": "" },
"machine_end_gcode": { "default_value": "G91 ;Relative movement\nG0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\nG90 ;Disable relative movement" },
"prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" },
"prime_tower_wipe_enabled": { "default_value": false },
"prime_blob_enable": { "enabled": true, "default_value": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" },
"overrides":
{
"acceleration_enabled": { "value": true },
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 3500)" },
"acceleration_print": { "value": "3500" },
@ -93,22 +62,97 @@
"cool_fan_speed": { "value": "50" },
"cool_fan_speed_max": { "value": "100" },
"cool_min_speed": { "value": "5" },
"default_material_print_temperature": { "value": "200" },
"extruder_prime_pos_abs": { "default_value": true },
"gantry_height": { "value": "60" },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'triangles'" },
"infill_wipe_dist": { "value": "0" },
"jerk_enabled": { "value": "True" },
"layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" },
"layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" },
"machine_acceleration": { "default_value": 3000 },
"machine_depth": { "default_value": 215 },
"machine_disallowed_areas":
{
"default_value": [
[
[92.8, -53.4],
[92.8, -97.5],
[116.5, -97.5],
[116.5, -53.4]
],
[
[73.8, 107.5],
[73.8, 100.5],
[116.5, 100.5],
[116.5, 107.5]
],
[
[74.6, 107.5],
[74.6, 100.5],
[116.5, 100.5],
[116.5, 107.5]
],
[
[74.9, -97.5],
[74.9, -107.5],
[116.5, -107.5],
[116.5, -97.5]
],
[
[-116.5, -103.5],
[-116.5, -107.5],
[-100.9, -107.5],
[-100.9, -103.5]
],
[
[-116.5, 105.8],
[-96.9, 105.8],
[-96.9, 107.5],
[-116.5, 107.5]
]
]
},
"machine_end_gcode": { "default_value": "G91 ;Relative movement\nG0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\nG90 ;Disable relative movement" },
"machine_extruder_count": { "default_value": 2 },
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-41.9, -45.8],
[-41.9, 33.9],
[59.9, 33.9],
[59.9, -45.8]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 200 },
"machine_max_feedrate_x": { "default_value": 300 },
"machine_max_feedrate_y": { "default_value": 300 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_min_cool_heat_time_window": { "value": "15" },
"default_material_print_temperature": { "value": "200" },
"machine_name": { "default_value": "Ultimaker 3" },
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
"machine_start_gcode": { "default_value": "" },
"machine_width": { "default_value": 233 },
"material_bed_temperature": { "maximum_value": "115" },
"material_bed_temperature_layer_0": { "maximum_value": "115" },
"multiple_mesh_overlap": { "value": "0" },
"optimize_wall_printing_order": { "value": "True" },
"prime_blob_enable":
{
"default_value": true,
"enabled": true,
"value": "resolveOrValue('print_sequence') != 'one_at_a_time'"
},
"prime_tower_enable": { "default_value": true },
"prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" },
"prime_tower_wipe_enabled": { "default_value": false },
"retraction_amount": { "value": "6.5" },
"retraction_hop": { "value": "2" },
"retraction_hop_enabled": { "value": "extruders_enabled_count > 1" },
"retraction_hop_enabled": { "value": "extruders_enabled_count > 1" },
"retraction_hop_only_when_collides": { "value": "True" },
"retraction_min_travel": { "value": "5" },
"retraction_prime_speed": { "value": "15" },
@ -130,4 +174,4 @@
"wall_0_inset": { "value": "0" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }
}
}
}

View File

@ -2,42 +2,45 @@
"version": 2,
"name": "Ultimaker 3 Extended",
"inherits": "ultimaker3",
"metadata": {
"metadata":
{
"visible": true,
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"quality_definition": "ultimaker3",
"visible": true,
"file_formats": "application/gzip;text/x-gcode",
"platform": "ultimaker3_platform.obj",
"platform_texture": "Ultimaker3Extendedbackplate.png",
"platform_offset": [0, 0, 0],
"bom_numbers": [
9511
],
"firmware_update_info":
{
"check_urls": [ "https://software.ultimaker.com/releases/firmware/9066/stable/um-update.swu.version" ],
"id": 9511,
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"preferred_variant_name": "AA 0.4",
"variants_name": "Print core",
"machine_extruder_trains":
{
"0": "ultimaker3_extended_extruder_left",
"1": "ultimaker3_extended_extruder_right"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"platform_offset": [
0,
0,
0
],
"platform_texture": "Ultimaker3Extendedbackplate.png",
"preferred_variant_name": "AA 0.4",
"quality_definition": "ultimaker3",
"supported_actions": [ "DiscoverUM3Action" ],
"firmware_update_info": {
"id": 9511,
"check_urls":
[
"https://software.ultimaker.com/releases/firmware/9066/stable/um-update.swu.version"
],
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"bom_numbers": [
9511
]
"variants_name": "Print core"
},
"overrides": {
"machine_name": { "default_value": "Ultimaker 3 Extended" },
"machine_height": { "default_value": 300 }
"overrides":
{
"machine_height": { "default_value": 300 },
"machine_name": { "default_value": "Ultimaker 3 Extended" }
}
}
}

View File

@ -2,75 +2,84 @@
"version": 2,
"name": "Ultimaker Original",
"inherits": "ultimaker",
"metadata": {
"metadata":
{
"visible": true,
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"weight": 4,
"file_formats": "text/x-gcode",
"platform": "ultimaker_platform.3mf",
"has_materials": true,
"has_machine_quality": true,
"exclude_materials": ["generic_hips", "generic_petg", "generic_bam", "ultimaker_bam", "generic_pva", "ultimaker_pva", "generic_tough_pla", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "generic_cffcpe", "generic_cffpa", "generic_gffcpe", "generic_gffpa", "structur3d_dap100silicone", "ultimaker_petg_blue", "ultimaker_petg_grey", "ultimaker_petg_black", "ultimaker_petg_green", "ultimaker_petg_white", "ultimaker_petg_orange", "ultimaker_petg_silver", "ultimaker_petg_yellow", "ultimaker_petg_transparent", "ultimaker_petg_red_translucent", "ultimaker_petg_blue_translucent", "ultimaker_petg_green_translucent", "ultimaker_petg_yellow_fluorescent", "ultimaker_petg_red" ],
"first_start_actions": ["UMOUpgradeSelection", "BedLevel"],
"supported_actions": ["UMOUpgradeSelection", "BedLevel"],
"machine_extruder_trains":
{
"0": "ultimaker_original_extruder_0"
},
"exclude_materials": [
"generic_hips",
"generic_petg",
"generic_bam",
"ultimaker_bam",
"generic_pva",
"ultimaker_pva",
"generic_tough_pla",
"ultimaker_tough_pla_black",
"ultimaker_tough_pla_green",
"ultimaker_tough_pla_red",
"ultimaker_tough_pla_white",
"generic_cffcpe",
"generic_cffpa",
"generic_gffcpe",
"generic_gffpa",
"structur3d_dap100silicone",
"ultimaker_petg_blue",
"ultimaker_petg_grey",
"ultimaker_petg_black",
"ultimaker_petg_green",
"ultimaker_petg_white",
"ultimaker_petg_orange",
"ultimaker_petg_silver",
"ultimaker_petg_yellow",
"ultimaker_petg_transparent",
"ultimaker_petg_red_translucent",
"ultimaker_petg_blue_translucent",
"ultimaker_petg_green_translucent",
"ultimaker_petg_yellow_fluorescent",
"ultimaker_petg_red"
],
"firmware_file": "MarlinUltimaker-{baudrate}.hex",
"firmware_hbk_file": "MarlinUltimaker-HBK-{baudrate}.hex"
"firmware_hbk_file": "MarlinUltimaker-HBK-{baudrate}.hex",
"first_start_actions": [
"UMOUpgradeSelection",
"BedLevel"
],
"has_machine_quality": true,
"has_materials": true,
"machine_extruder_trains": { "0": "ultimaker_original_extruder_0" },
"supported_actions": [
"UMOUpgradeSelection",
"BedLevel"
],
"weight": 4
},
"overrides": {
"machine_name": { "default_value": "Ultimaker Original" },
"machine_width": {
"default_value": 205
},
"machine_height": {
"default_value": 200
},
"machine_depth": {
"default_value": 205
},
"machine_center_is_zero": {
"default_value": false
},
"overrides":
{
"cool_fan_speed_0": { "value": 0 },
"gantry_height": { "value": "55" },
"infill_before_walls": { "value": "False" },
"layer_height_0": { "value": 0.3 },
"machine_center_is_zero": { "default_value": false },
"machine_depth": { "default_value": 205 },
"machine_end_gcode": { "value": "'M104 S0 ;extruder heater off' + ('\\nM140 S0 ;heated bed heater off' if machine_heated_bed else '') + '\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning'" },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_head_with_fans_polygon":
{
"default_value": [
[ -75, 35 ],
[ -75, -18 ],
[ 18, 35 ],
[ 18, -18 ]
[-75, 35],
[-75, -18],
[18, 35],
[18, -18]
]
},
"gantry_height": {
"value": "55"
},
"machine_use_extruder_offset_to_offset_coords": {
"default_value": true
},
"machine_gcode_flavor": {
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_start_gcode": {
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Y50 F9000\n;Put printing message on LCD screen\nM117 Printing..."
},
"machine_end_gcode": {
"value": "'M104 S0 ;extruder heater off' + ('\\nM140 S0 ;heated bed heater off' if machine_heated_bed else '') + '\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning'"
},
"infill_before_walls": {
"value": "False"
},
"cool_fan_speed_0": {
"value": 0
},
"layer_height_0": {
"value": 0.3
},
"speed_slowdown_layers": {
"value": 2
}
"machine_height": { "default_value": 200 },
"machine_name": { "default_value": "Ultimaker Original" },
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Y50 F9000\n;Put printing message on LCD screen\nM117 Printing..." },
"machine_use_extruder_offset_to_offset_coords": { "default_value": true },
"machine_width": { "default_value": 205 },
"speed_slowdown_layers": { "value": 2 }
}
}
}

View File

@ -2,74 +2,88 @@
"version": 2,
"name": "Ultimaker Original Dual Extrusion",
"inherits": "ultimaker",
"metadata": {
"metadata":
{
"visible": true,
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"weight": 4,
"file_formats": "text/x-gcode",
"platform": "ultimaker_platform.3mf",
"has_materials": true,
"exclude_materials": [
"generic_hips",
"generic_petg",
"generic_bam",
"ultimaker_bam",
"generic_pva",
"ultimaker_pva",
"generic_tough_pla",
"ultimaker_tough_pla_black",
"ultimaker_tough_pla_green",
"ultimaker_tough_pla_red",
"ultimaker_tough_pla_white",
"generic_cffcpe",
"generic_cffpa",
"generic_gffcpe",
"generic_gffpa",
"structur3d_dap100silicone",
"ultimaker_petg_blue",
"ultimaker_petg_grey",
"ultimaker_petg_black",
"ultimaker_petg_green",
"ultimaker_petg_white",
"ultimaker_petg_orange",
"ultimaker_petg_silver",
"ultimaker_petg_yellow",
"ultimaker_petg_transparent",
"ultimaker_petg_red_translucent",
"ultimaker_petg_blue_translucent",
"ultimaker_petg_green_translucent",
"ultimaker_petg_yellow_fluorescent",
"ultimaker_petg_red"
],
"firmware_file": "MarlinUltimaker-{baudrate}-dual.hex",
"firmware_hbk_file": "MarlinUltimaker-HBK-{baudrate}-dual.hex",
"first_start_actions": [
"UMOUpgradeSelection",
"BedLevel"
],
"has_machine_quality": true,
"quality_definition": "ultimaker_original",
"exclude_materials": ["generic_hips", "generic_petg", "generic_bam", "ultimaker_bam", "generic_pva", "ultimaker_pva", "generic_tough_pla", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "generic_cffcpe", "generic_cffpa", "generic_gffcpe", "generic_gffpa", "structur3d_dap100silicone", "ultimaker_petg_blue", "ultimaker_petg_grey", "ultimaker_petg_black", "ultimaker_petg_green", "ultimaker_petg_white", "ultimaker_petg_orange", "ultimaker_petg_silver", "ultimaker_petg_yellow", "ultimaker_petg_transparent", "ultimaker_petg_red_translucent", "ultimaker_petg_blue_translucent", "ultimaker_petg_green_translucent", "ultimaker_petg_yellow_fluorescent", "ultimaker_petg_red" ],
"has_materials": true,
"machine_extruder_trains":
{
"0": "ultimaker_original_dual_1st",
"1": "ultimaker_original_dual_2nd"
},
"firmware_file": "MarlinUltimaker-{baudrate}-dual.hex",
"firmware_hbk_file": "MarlinUltimaker-HBK-{baudrate}-dual.hex",
"first_start_actions": ["UMOUpgradeSelection", "BedLevel"],
"supported_actions": ["UMOUpgradeSelection", "BedLevel"]
"quality_definition": "ultimaker_original",
"supported_actions": [
"UMOUpgradeSelection",
"BedLevel"
],
"weight": 4
},
"overrides": {
"machine_name": { "default_value": "Ultimaker Original" },
"machine_width": {
"default_value": 205
},
"machine_height": {
"default_value": 200
},
"machine_depth": {
"default_value": 195
},
"machine_center_is_zero": {
"default_value": false
},
"overrides":
{
"gantry_height": { "value": "55" },
"machine_center_is_zero": { "default_value": false },
"machine_depth": { "default_value": 195 },
"machine_end_gcode": { "default_value": "M104 T0 S0 ;1st extruder heater off\nM104 T1 S0 ;2nd extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" },
"machine_extruder_count": { "default_value": 2 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_head_with_fans_polygon":
{
"default_value": [
[ -75, 35 ],
[ -75, -18 ],
[ 18, 35 ],
[ 18, -18 ]
[-75, 35],
[-75, -18],
[18, 35],
[18, -18]
]
},
"gantry_height": {
"value": "55"
},
"machine_use_extruder_offset_to_offset_coords": {
"default_value": true
},
"machine_gcode_flavor": {
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_start_gcode": {
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nT1 ;Switch to the 2nd extruder\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F200 E-{switch_extruder_retraction_amount}\nT0 ;Switch to the 1st extruder\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."
},
"machine_end_gcode": {
"default_value": "M104 T0 S0 ;1st extruder heater off\nM104 T1 S0 ;2nd extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning"
},
"machine_extruder_count": {
"default_value": 2
},
"prime_tower_position_x": {
"value": "195"
},
"prime_tower_position_y": {
"value": "149"
}
"machine_height": { "default_value": 200 },
"machine_name": { "default_value": "Ultimaker Original" },
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nT1 ;Switch to the 2nd extruder\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F200 E-{switch_extruder_retraction_amount}\nT0 ;Switch to the 1st extruder\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." },
"machine_use_extruder_offset_to_offset_coords": { "default_value": true },
"machine_width": { "default_value": 205 },
"prime_tower_position_x": { "value": "195" },
"prime_tower_position_y": { "value": "149" }
}
}
}

View File

@ -2,31 +2,25 @@
"version": 2,
"name": "Ultimaker Original+",
"inherits": "ultimaker_original",
"metadata": {
"metadata":
{
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"weight": 4,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"firmware_file": "MarlinUltimaker-UMOP-{baudrate}.hex",
"firmware_hbk_file": "MarlinUltimaker-UMOP-{baudrate}.hex",
"first_start_actions": [ "BedLevel" ],
"machine_extruder_trains": { "0": "ultimaker_original_plus_extruder_0" },
"platform_texture": "UltimakerPlusbackplate.png",
"quality_definition": "ultimaker_original",
"first_start_actions": ["BedLevel"],
"supported_actions": ["BedLevel"],
"machine_extruder_trains":
{
"0": "ultimaker_original_plus_extruder_0"
},
"firmware_file": "MarlinUltimaker-UMOP-{baudrate}.hex",
"firmware_hbk_file": "MarlinUltimaker-UMOP-{baudrate}.hex"
"supported_actions": [ "BedLevel" ],
"weight": 4
},
"overrides": {
"machine_name": { "default_value": "Ultimaker Original+" },
"machine_heated_bed": {
"default_value": true
},
"machine_max_feedrate_z": {
"default_value": 30
}
"overrides":
{
"machine_heated_bed": { "default_value": true },
"machine_max_feedrate_z": { "default_value": 30 },
"machine_name": { "default_value": "Ultimaker Original+" }
}
}
}

View File

@ -2,78 +2,53 @@
"version": 2,
"name": "Ultimaker S3",
"inherits": "ultimaker",
"metadata": {
"metadata":
{
"visible": true,
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"visible": true,
"file_formats": "application/x-ufp;text/x-gcode",
"platform": "ultimaker_s3_platform.obj",
"platform_texture": "UltimakerS3backplate.png",
"platform_offset": [0, 0, 0],
"bom_numbers": [213482, 213483],
"exclude_materials": [
"generic_hips",
"generic_petg",
"structur3d_dap100silicone"
],
"firmware_update_info":
{
"check_urls": [ "https://software.ultimaker.com/releases/firmware/213482/stable/um-update.swu.version" ],
"id": 213482,
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"has_machine_quality": true,
"has_materials": true,
"has_variant_buildplates": false,
"has_variants": true,
"exclude_materials": [ "generic_hips", "generic_petg", "structur3d_dap100silicone" ],
"preferred_variant_name": "AA 0.4",
"preferred_quality_type": "normal",
"variants_name": "Print core",
"nozzle_offsetting_for_disallowed_areas": false,
"machine_extruder_trains":
{
"0": "ultimaker_s3_extruder_left",
"1": "ultimaker_s3_extruder_right"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"nozzle_offsetting_for_disallowed_areas": false,
"platform_offset": [
0,
0,
0
],
"platform_texture": "UltimakerS3backplate.png",
"preferred_quality_type": "fast",
"preferred_variant_name": "AA 0.4",
"supported_actions": [ "DiscoverUM3Action" ],
"supports_usb_connection": false,
"supports_material_export": true,
"weight": -1,
"firmware_update_info": {
"id": 213482,
"check_urls": ["https://software.ultimaker.com/releases/firmware/213482/stable/um-update.swu.version"],
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"bom_numbers": [
213482, 213483
]
"supports_usb_connection": false,
"variants_name": "Print core",
"weight": -1
},
"overrides": {
"machine_name": { "default_value": "Ultimaker S3" },
"machine_width": { "default_value": 230 },
"machine_depth": { "default_value": 190 },
"machine_height": { "default_value": 200 },
"machine_heated_bed": { "default_value": true },
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
"machine_head_with_fans_polygon":
{
"default_value":
[
[ -41.4, -45.8 ],
[ -41.4, 36.0 ],
[ 63.3, 36.0 ],
[ 63.3, -45.8 ]
]
},
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_max_feedrate_x": { "default_value": 300 },
"machine_max_feedrate_y": { "default_value": 300 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_acceleration": { "default_value": 3000 },
"gantry_height": { "value": "55" },
"machine_extruder_count": { "default_value": 2 },
"extruder_prime_pos_abs": { "default_value": true },
"machine_start_gcode": { "default_value": "" },
"machine_end_gcode": { "default_value": "" },
"prime_blob_enable": { "enabled": true, "default_value": false },
"overrides":
{
"acceleration_enabled": { "value": true },
"speed_travel":
{
"maximum_value": "150",
"value": "150"
},
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 3500)" },
"acceleration_print": { "value": "3500" },
"acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 3500)" },
@ -85,30 +60,66 @@
"cool_fan_speed": { "value": "50" },
"cool_fan_speed_max": { "value": "100" },
"cool_min_speed": { "value": "5" },
"default_material_print_temperature": { "value": "200" },
"extruder_prime_pos_abs": { "default_value": true },
"gantry_height": { "value": "55" },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'triangles'" },
"infill_wipe_dist": { "value": "0" },
"jerk_enabled": { "value": "True" },
"layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" },
"layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" },
"machine_acceleration": { "default_value": 3000 },
"machine_depth": { "default_value": 190 },
"machine_end_gcode": { "default_value": "" },
"machine_extruder_count": { "default_value": 2 },
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-41.4, -45.8],
[-41.4, 36.0],
[63.3, 36.0],
[63.3, -45.8]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 200 },
"machine_max_feedrate_x": { "default_value": 300 },
"machine_max_feedrate_y": { "default_value": 300 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_min_cool_heat_time_window": { "value": "15" },
"default_material_print_temperature": { "value": "200" },
"machine_name": { "default_value": "Ultimaker S3" },
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
"machine_start_gcode": { "default_value": "" },
"machine_width": { "default_value": 230 },
"multiple_mesh_overlap": { "value": "0" },
"optimize_wall_printing_order": { "value": "True" },
"prime_blob_enable":
{
"default_value": false,
"enabled": true
},
"prime_tower_enable": { "value": "True" },
"retraction_amount": { "value": "6.5" },
"retraction_hop": { "value": "2" },
"retraction_hop_enabled": { "value": "extruders_enabled_count > 1" },
"retraction_hop_enabled": { "value": "extruders_enabled_count > 1" },
"retraction_hop_only_when_collides": { "value": "True" },
"retraction_min_travel": { "value": "5" },
"retraction_prime_speed": { "value": "15" },
"retraction_speed": {"value": "45" },
"retraction_speed": { "value": "45" },
"skin_overlap": { "value": "10" },
"speed_prime_tower": { "value": "speed_topbottom" },
"speed_print": { "value": "35" },
"speed_support": { "value": "speed_wall_0" },
"speed_support_interface": { "value": "speed_topbottom" },
"speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" },
"speed_travel":
{
"maximum_value": "150",
"value": "150"
},
"speed_wall": { "value": "math.ceil(speed_print * 30 / 35)" },
"speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 30)" },
"speed_wall_x": { "value": "speed_wall" },
@ -120,4 +131,4 @@
"wall_0_inset": { "value": "0" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }
}
}
}

View File

@ -2,80 +2,53 @@
"version": 2,
"name": "Ultimaker S5",
"inherits": "ultimaker",
"metadata": {
"metadata":
{
"visible": true,
"author": "Ultimaker",
"manufacturer": "Ultimaker B.V.",
"visible": true,
"file_formats": "application/x-ufp;text/x-gcode",
"platform": "ultimaker_s5_platform.obj",
"platform_texture": "UltimakerS5backplate.png",
"platform_offset": [0, -30, -10],
"bom_numbers": [
9051,
214475,
214476
],
"firmware_update_info":
{
"check_urls": [ "https://software.ultimaker.com/releases/firmware/9051/stable/um-update.swu.version" ],
"id": 9051,
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"has_machine_quality": true,
"has_materials": true,
"has_variant_buildplates": true,
"has_variants": true,
"preferred_variant_name": "AA 0.4",
"preferred_variant_buildplate_name": "Glass",
"preferred_quality_type": "normal",
"variants_name": "Print core",
"nozzle_offsetting_for_disallowed_areas": false,
"machine_extruder_trains":
{
"0": "ultimaker_s5_extruder_left",
"1": "ultimaker_s5_extruder_right"
},
"first_start_actions": [ "DiscoverUM3Action" ],
"nozzle_offsetting_for_disallowed_areas": false,
"platform_offset": [
0,
-30,
-10
],
"platform_texture": "UltimakerS5backplate.png",
"preferred_quality_type": "fast",
"preferred_variant_buildplate_name": "Glass",
"preferred_variant_name": "AA 0.4",
"supported_actions": [ "DiscoverUM3Action" ],
"supports_usb_connection": false,
"supports_network_connection": true,
"supports_material_export": true,
"weight": -2,
"firmware_update_info": {
"id": 9051,
"check_urls": ["https://software.ultimaker.com/releases/firmware/9051/stable/um-update.swu.version"],
"update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update"
},
"bom_numbers": [
9051, 214475, 214476
]
"supports_network_connection": true,
"supports_usb_connection": false,
"variants_name": "Print core",
"weight": -2
},
"overrides": {
"machine_name": { "default_value": "Ultimaker S5" },
"machine_width": { "default_value": 330 },
"machine_depth": { "default_value": 240 },
"machine_height": { "default_value": 300 },
"machine_heated_bed": { "default_value": true },
"machine_heated_build_volume": { "default_value": true },
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
"machine_head_with_fans_polygon":
{
"default_value":
[
[ -41.4, -45.8 ],
[ -41.4, 36.0 ],
[ 63.3, 36.0 ],
[ 63.3, -45.8 ]
]
},
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_max_feedrate_x": { "default_value": 300 },
"machine_max_feedrate_y": { "default_value": 300 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_acceleration": { "default_value": 3000 },
"gantry_height": { "value": "55" },
"machine_extruder_count": { "default_value": 2 },
"extruder_prime_pos_abs": { "default_value": true },
"machine_start_gcode": { "default_value": "" },
"machine_end_gcode": { "default_value": "" },
"prime_blob_enable": { "enabled": true, "default_value": false },
"speed_travel":
{
"maximum_value": "150",
"value": "150"
},
"overrides":
{
"acceleration_enabled": { "value": true },
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 3500)" },
"acceleration_print": { "value": "3500" },
@ -85,33 +58,72 @@
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1500 / 3500)" },
"acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" },
"brim_width": { "value": "3" },
"build_volume_temperature": { "maximum_value": 50 },
"cool_fan_speed": { "value": "50" },
"cool_fan_speed_max": { "value": "100" },
"cool_min_speed": { "value": "5" },
"default_material_print_temperature": { "value": "200" },
"extruder_prime_pos_abs": { "default_value": true },
"gantry_height": { "value": "55" },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'triangles'" },
"infill_wipe_dist": { "value": "0" },
"jerk_enabled": { "value": "True" },
"layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" },
"layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" },
"machine_acceleration": { "default_value": 3000 },
"machine_depth": { "default_value": 240 },
"machine_end_gcode": { "default_value": "" },
"machine_extruder_count": { "default_value": 2 },
"machine_gcode_flavor": { "default_value": "Griffin" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-41.4, -45.8],
[-41.4, 36.0],
[63.3, 36.0],
[63.3, -45.8]
]
},
"machine_heated_bed": { "default_value": true },
"machine_heated_build_volume": { "default_value": true },
"machine_height": { "default_value": 300 },
"machine_max_feedrate_x": { "default_value": 300 },
"machine_max_feedrate_y": { "default_value": 300 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_min_cool_heat_time_window": { "value": "15" },
"default_material_print_temperature": { "value": "200" },
"machine_name": { "default_value": "Ultimaker S5" },
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
"machine_start_gcode": { "default_value": "" },
"machine_width": { "default_value": 330 },
"multiple_mesh_overlap": { "value": "0" },
"optimize_wall_printing_order": { "value": "True" },
"prime_blob_enable":
{
"default_value": false,
"enabled": true
},
"prime_tower_enable": { "value": "True" },
"retraction_amount": { "value": "6.5" },
"retraction_combing": { "value": "'no_outer_surfaces'"},
"retraction_combing": { "value": "'no_outer_surfaces'" },
"retraction_hop": { "value": "2" },
"retraction_hop_enabled": { "value": "extruders_enabled_count > 1" },
"retraction_hop_enabled": { "value": "extruders_enabled_count > 1" },
"retraction_hop_only_when_collides": { "value": "True" },
"retraction_min_travel": { "value": "5" },
"retraction_prime_speed": { "value": "15" },
"retraction_speed": {"value": "45" },
"retraction_speed": { "value": "45" },
"skin_overlap": { "value": "10" },
"speed_prime_tower": { "value": "speed_topbottom" },
"speed_print": { "value": "35" },
"speed_support": { "value": "speed_wall_0" },
"speed_support_interface": { "value": "speed_topbottom" },
"speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" },
"speed_travel":
{
"maximum_value": "150",
"value": "150"
},
"speed_wall": { "value": "math.ceil(speed_print * 30 / 35)" },
"speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 30)" },
"speed_wall_x": { "value": "speed_wall" },
@ -121,8 +133,6 @@
"top_bottom_thickness": { "value": "1" },
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
"wall_0_inset": { "value": "0" },
"optimize_wall_printing_order": { "value": "True" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" },
"build_volume_temperature": { "maximum_value": 50 }
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }
}
}
}

View File

@ -1,112 +1,203 @@
{
"name": "VzBot Base",
"version": 2,
"name": "VzBot Base",
"inherits": "fdmprinter",
"metadata":
"metadata":
{
"visible": false,
"author": "Chris, ckvsoft.at",
"manufacturer": "VzBot",
"file_formats": "text/x-gcode",
"first_start_actions": ["MachineSettingsAction"],
"machine_extruder_trains": { "0": "vzbot_extruder_0" },
"first_start_actions": [ "MachineSettingsAction" ],
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"variants_name": "Nozzle Size",
"machine_extruder_trains": { "0": "vzbot_extruder_0" },
"preferred_material": "generic_abs",
"preferred_quality_type": "standard",
"preferred_variant_name": "0.4mm Nozzle",
"preferred_material": "generic_abs"
"variants_name": "Nozzle Size"
},
"overrides":
{
"machine_name": { "default_value": "VzBot" },
"machine_width": { "default_value": 330 },
"machine_depth": { "default_value": 330 },
"machine_height": { "default_value": 400 },
"gantry_height": { "value": 34 },
"machine_heated_bed": { "default_value": true },
"machine_max_acceleration_x": { "default_value": 15000 },
"machine_max_acceleration_y": { "default_value": 15000 },
"machine_max_acceleration_z": { "default_value": 2000 },
"machine_acceleration": { "default_value": 15000 },
"machine_max_jerk_xy": { "default_value": 20 },
"machine_max_jerk_z": { "default_value": 1 },
"machine_max_jerk_e": { "default_value": 60 },
"machine_steps_per_mm_x": { "default_value": 80 },
"machine_steps_per_mm_y": { "default_value": 80 },
"machine_steps_per_mm_z": { "default_value": 400 },
"machine_endstop_positive_direction_x": { "default_value": true },
"machine_endstop_positive_direction_y": { "default_value": true },
"machine_endstop_positive_direction_z": { "default_value": false },
"machine_feeder_wheel_diameter": { "default_value": 7.5 },
"machine_head_with_fans_polygon": { "default_value": [ [-35, 65], [-35, -50], [35, -50], [35, 65] ] },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_gcode_flavor": { "default_value": "Marlin" },
"machine_start_gcode": { "default_value": "start_print B={material_bed_temperature_layer_0} H={material_print_temperature_layer_0} C={build_volume_temperature}" },
"machine_end_gcode": { "default_value": "end_print" },
"adhesion_type": { "default_value": "skirt" },
"retraction_amount": { "default_value": 0.65 },
"skirt_brim_minimal_length": { "default_value": 550 },
"retraction_speed": { "default_value": 30, "maximum_value_warning": 130 },
"retraction_retract_speed": { "maximum_value_warning": 130 },
"retraction_prime_speed": { "value": "math.ceil(retraction_speed * 0.4)", "maximum_value_warning": 130 },
"retraction_hop_enabled": { "default_value": true },
"retraction_hop": { "default_value": 0.2 },
"retraction_combing": { "value": "'noskin'" },
"retraction_combing_max_distance": { "default_value": 10 },
"travel_avoid_other_parts": { "default_value": false },
"speed_print": { "value": 300, "maximum_value_warning": 1001 },
"speed_infill": { "maximum_value_warning": 1001 },
"speed_travel": { "value": 300, "maximum_value_warning": 1001 },
"speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)", "maximum_value_warning": 1001 },
"speed_layer_0": { "value": "math.ceil(speed_print * 0.25)", "maximum_value_warning": 1001 },
"speed_wall": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 },
"speed_wall_0": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 },
"speed_wall_x": { "value": "math.ceil(speed_print)", "maximum_value_warning": 1001 },
"speed_topbottom": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 },
"speed_roofing": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 },
"speed_slowdown_layers": { "default_value": 4 },
"roofing_layer_count": { "value": 1 },
"optimize_wall_printing_order": { "default_value": true },
"infill_enable_travel_optimization": { "default_value": true },
"minimum_polygon_circumference": { "default_value": 0.2 },
"wall_overhang_angle": { "default_value": 75 },
"wall_overhang_speed_factor": { "default_value": 50 },
"bridge_settings_enabled": { "default_value": true },
"bridge_wall_coast": { "default_value": 10 },
"bridge_fan_speed": { "default_value": 100 },
"bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" },
"bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" },
"alternate_extra_perimeter": { "default_value": true },
"cool_min_layer_time_fan_speed_max": { "default_value": 20 },
"cool_min_layer_time": { "default_value": 15 },
"cool_fan_speed_min": { "value": "cool_fan_speed" },
"cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" },
"cool_fan_full_layer": { "value": 4 },
"layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" },
"line_width": { "value": "machine_nozzle_size * 1.125" },
"wall_line_width": { "value": "machine_nozzle_size" },
"fill_outline_gaps": { "default_value": true },
"meshfix_maximum_resolution": { "default_value": 0.01 },
"infill_before_walls": { "default_value": false },
"zig_zaggify_infill": { "value": true },
"min_infill_area": { "default_value": 5.0 },
"acceleration_enabled": { "default_value": false },
"acceleration_print": { "default_value": 15000, "maximum_value_warning": 50000 },
"acceleration_wall_0": { "value": 15000, "maximum_value_warning": 50000 },
"acceleration_wall_x": { "value": 15000, "maximum_value_warning": 50000 },
"acceleration_layer_0": { "value": 15000, "maximum_value_warning": 50000 },
"acceleration_travel_layer_0": { "value": 15000, "maximum_value_warning": 50000 },
"acceleration_roofing": { "value": 15000, "maximum_value_warning": 50000 },
"acceleration_topbottom": { "value": 15000, "maximum_value_warning": 50000 },
"acceleration_travel": { "value": 20000, "maximum_value_warning": 50000 },
"acceleration_skirt_brim": { "value": 15000, "maximum_value_warning": 50000 },
"acceleration_print_layer_0": { "value": 15000, "maximum_value_warning": 50000 },
"jerk_enabled": { "default_value": false },
"jerk_wall_0": { "value": 10 },
"jerk_roofing": { "value": 10 }
"acceleration_enabled": { "default_value": true },
"acceleration_infill": { "maximum_value_warning": 50000 },
"acceleration_layer_0":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_print":
{
"default_value": 15000,
"maximum_value_warning": 50000
},
"acceleration_print_layer_0":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_roofing":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_skirt_brim":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_topbottom":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_travel":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_travel_layer_0":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_wall": { "maximum_value_warning": 50000 },
"acceleration_wall_0":
{
"maximum_value_warning": 50000,
"value": 15000
},
"acceleration_wall_x":
{
"maximum_value_warning": 50000,
"value": 15000
},
"adhesion_type": { "default_value": "skirt" },
"alternate_extra_perimeter": { "default_value": true },
"bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" },
"bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" },
"bridge_settings_enabled": { "default_value": true },
"bridge_wall_coast": { "default_value": 10 },
"cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" },
"cool_fan_full_layer": { "value": 4 },
"cool_min_layer_time_fan_speed_max": { "default_value": 20 },
"gantry_height": { "value": 34 },
"infill_before_walls": { "default_value": false },
"infill_enable_travel_optimization": { "default_value": true },
"infill_pattern": { "value": "'grid' if infill_sparse_density > 40 else 'cubic'" },
"infill_sparse_density": { "value": 35 },
"jerk_roofing": { "value": 10 },
"jerk_wall_0": { "value": 10 },
"layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" },
"line_width": { "value": "machine_nozzle_size * 1.125" },
"machine_acceleration": { "default_value": 15000 },
"machine_depth": { "default_value": 330 },
"machine_end_gcode": { "default_value": "end_print" },
"machine_endstop_positive_direction_x": { "default_value": true },
"machine_endstop_positive_direction_y": { "default_value": true },
"machine_endstop_positive_direction_z": { "default_value": false },
"machine_feeder_wheel_diameter": { "default_value": 7.5 },
"machine_gcode_flavor": { "default_value": "Marlin" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-35, 65],
[-35, -50],
[35, -50],
[35, 65]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 400 },
"machine_max_acceleration_x": { "default_value": 15000 },
"machine_max_acceleration_y": { "default_value": 15000 },
"machine_max_acceleration_z": { "default_value": 2000 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_max_jerk_e": { "default_value": 60 },
"machine_max_jerk_xy": { "default_value": 20 },
"machine_max_jerk_z": { "default_value": 1 },
"machine_name": { "default_value": "VzBot" },
"machine_start_gcode": { "default_value": "start_print B={material_bed_temperature_layer_0} H={material_print_temperature_layer_0} C={build_volume_temperature}" },
"machine_steps_per_mm_x": { "default_value": 80 },
"machine_steps_per_mm_y": { "default_value": 80 },
"machine_steps_per_mm_z": { "default_value": 400 },
"machine_width": { "default_value": 330 },
"meshfix_maximum_resolution": { "default_value": 0.01 },
"min_infill_area": { "default_value": 5.0 },
"minimum_polygon_circumference": { "default_value": 0.2 },
"optimize_wall_printing_order": { "default_value": true },
"retraction_amount": { "default_value": 0.65 },
"retraction_combing": { "value": "'noskin'" },
"retraction_combing_max_distance": { "default_value": 10 },
"retraction_hop": { "default_value": 0.2 },
"retraction_prime_speed":
{
"maximum_value_warning": 150,
"value": "math.ceil(retraction_speed * 0.4)"
},
"retraction_retract_speed": { "maximum_value_warning": 150 },
"retraction_speed":
{
"default_value": 45,
"maximum_value_warning": 150
},
"roofing_layer_count": { "value": 1 },
"skin_monotonic": { "default_value": true },
"skirt_brim_minimal_length": { "default_value": 550 },
"speed_infill": { "maximum_value_warning": 1001 },
"speed_layer_0":
{
"maximum_value_warning": 1001,
"value": "math.ceil(speed_print * 0.25)"
},
"speed_print":
{
"maximum_value_warning": 1001,
"value": 300
},
"speed_roofing":
{
"maximum_value_warning": 1001,
"value": "math.ceil(speed_print * 0.5)"
},
"speed_topbottom":
{
"maximum_value_warning": 1001,
"value": "math.ceil(speed_print * 0.5)"
},
"speed_travel":
{
"maximum_value_warning": 1001,
"value": 300
},
"speed_travel_layer_0":
{
"maximum_value_warning": 1001,
"value": "math.ceil(speed_travel * 0.4)"
},
"speed_wall":
{
"maximum_value_warning": 1001,
"value": "math.ceil(speed_print * 0.5)"
},
"speed_wall_0":
{
"maximum_value_warning": 1001,
"value": "math.ceil(speed_print * 0.5)"
},
"speed_wall_x":
{
"maximum_value_warning": 1001,
"value": "math.ceil(speed_print)"
},
"travel_avoid_other_parts": { "default_value": false },
"wall_line_width": { "value": "machine_nozzle_size" },
"wall_overhang_angle": { "default_value": 75 },
"wall_overhang_speed_factor": { "default_value": 50 },
"xy_offset_layer_0": { "value": 0.3 },
"z_seam_type": { "value": "'back'" },
"zig_zaggify_infill": { "value": true }
}
}
}

View File

@ -1,19 +1,19 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A20M",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0,
"maximum_value": "1"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}
{
"version": 2,
"name": "E0",
"inherits": "fdmextruder",
"metadata":
{
"machine": "Geeetech_Base_Dual_Extruder",
"position": "0"
},
"overrides":
{
"extruder_nr":
{
"default_value": 0,
"maximum_value": "1"
},
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +1,19 @@
{
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A10M",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1,
"maximum_value": "1"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}
{
"version": 2,
"name": "E1",
"inherits": "fdmextruder",
"metadata":
{
"machine": "Geeetech_Base_Dual_Extruder",
"position": "1"
},
"overrides":
{
"extruder_nr":
{
"default_value": 1,
"maximum_value": "1"
},
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +1,19 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A10T",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0,
"maximum_value": "2"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}
{
"version": 2,
"name": "E0",
"inherits": "fdmextruder",
"metadata":
{
"machine": "Geeetech_Base_Multi_Extruder",
"position": "0"
},
"overrides":
{
"extruder_nr":
{
"default_value": 0,
"maximum_value": "2"
},
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +1,19 @@
{
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A10T",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1,
"maximum_value": "2"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}
{
"version": 2,
"name": "E1",
"inherits": "fdmextruder",
"metadata":
{
"machine": "Geeetech_Base_Multi_Extruder",
"position": "1"
},
"overrides":
{
"extruder_nr":
{
"default_value": 1,
"maximum_value": "2"
},
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +1,19 @@
{
"version": 2,
"name": "Extruder 3",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A10T",
"position": "2"
},
"overrides": {
"extruder_nr": {
"default_value": 2,
"maximum_value": "2"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}
{
"version": 2,
"name": "E2",
"inherits": "fdmextruder",
"metadata":
{
"machine": "Geeetech_Base_Multi_Extruder",
"position": "2"
},
"overrides":
{
"extruder_nr":
{
"default_value": 2,
"maximum_value": "2"
},
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -2,14 +2,14 @@
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_a30",
"metadata":
{
"machine": "Geeetech_Base_Single_Extruder",
"position": "0"
},
"overrides": {
"overrides":
{
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}
}

View File

@ -0,0 +1,16 @@
{
"version": 2,
"name": "Extruder",
"inherits": "fdmextruder",
"metadata":
{
"machine": "fablabbcn_pasteprinter",
"position": "0"
},
"overrides":
{
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 3.0 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +0,0 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A10M",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0,
"maximum_value": "1"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,17 +0,0 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A10",
"position": "0"
},
"overrides": {
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +0,0 @@
{
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A20M",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1,
"maximum_value": "1"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +0,0 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A20T",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0,
"maximum_value": "2"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +0,0 @@
{
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A20T",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1,
"maximum_value": "2"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,19 +0,0 @@
{
"version": 2,
"name": "Extruder 3",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A20T",
"position": "2"
},
"overrides": {
"extruder_nr": {
"default_value": 2,
"maximum_value": "2"
},
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,16 +0,0 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_A20",
"position": "0"
},
"overrides": {
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,17 +0,0 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "geeetech_Mizar_S",
"position": "0"
},
"overrides": {
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View File

@ -1,4 +1,4 @@
// Copyright (c) 2022 Ultimaker B.V.
// Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.15
@ -6,8 +6,8 @@ import QtQuick.Controls 2.2
import QtQuick.Window 2.1
import QtQuick.Layouts 1.1
import UM 1.5 as UM
import Cura 1.1 as Cura
import UM 1.7 as UM
import Cura 1.7 as Cura
/*
@ -28,8 +28,11 @@ UM.Dialog
// however with the current implementation of the dialog this is not possible, so instead we calculate
// the size of the dialog ourselves.
// Ugly workaround for windows having overlapping elements due to incorrect dialog width
minimumWidth: content.width + (Qt.platform.os == "windows" ? 4 * margin : 2 * margin)
minimumHeight: content.height + footer.height + (Qt.platform.os == "windows" ? 5 * margin : 3 * margin)
minimumWidth: content.width + (Qt.platform.os === "windows" ? 4 * margin : 2 * margin)
minimumHeight: {
const footerHeight = Math.max(okButton.height, cancelButton.height);
return content.height + footerHeight + (Qt.platform.os === "windows" ? 5 * margin : 3 * margin);
}
property alias color: colorInput.text
property var swatchColors: [
@ -119,7 +122,7 @@ UM.Dialog
text = `#${text}`;
}
}
validator: RegularExpressionValidator { regularExpression: /^#([a-fA-F0-9]{0,6})$/ }
validator: UM.HexColorValidator {}
}
Rectangle
@ -136,10 +139,12 @@ UM.Dialog
rightButtons:
[
Cura.TertiaryButton {
id: cancelButton
text: catalog.i18nc("@action:button", "Cancel")
onClicked: base.close()
},
Cura.PrimaryButton {
id: okButton
text: catalog.i18nc("@action:button", "OK")
onClicked: base.accept()
}

View File

@ -496,10 +496,7 @@ UM.MainWindow
target: Cura.Actions.addProfile
function onTriggered()
{
preferences.show();
preferences.setPage(4);
// Create a new profile after a very short delay so the preference page has time to initiate
createProfileTimer.start();
createNewQualityDialog.visible = true;
}
}
@ -547,15 +544,6 @@ UM.MainWindow
}
}
Timer
{
id: createProfileTimer
repeat: false
interval: 1
onTriggered: preferences.getCurrentItem().createProfile()
}
// BlurSettings is a way to force the focus away from any of the setting items.
// We need to do this in order to keep the bindings intact.
Connections
@ -816,11 +804,16 @@ UM.MainWindow
Connections
{
target: CuraApplication
function onShowDiscardOrKeepProfileChanges()
function onShowCompareAndSaveProfileChanges(profileState)
{
discardOrKeepProfileChangesDialogLoader.sourceComponent = discardOrKeepProfileChangesDialogComponent
discardOrKeepProfileChangesDialogLoader.item.buttonState = profileState
discardOrKeepProfileChangesDialogLoader.item.show()
}
function onShowDiscardOrKeepProfileChanges()
{
onShowCompareAndSaveProfileChanges(DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep)
}
}
Cura.WizardDialog
@ -885,6 +878,49 @@ UM.MainWindow
}
}
Cura.RenameDialog
{
id: createNewQualityDialog
title: catalog.i18nc("@title:window", "Save Custom Profile")
objectPlaceholder: catalog.i18nc("@textfield:placeholder", "New Custom Profile")
explanation: catalog.i18nc("@info", "Custom profile name:")
extraInfo:
[
UM.ColorImage
{
width: UM.Theme.getSize("message_type_icon").width
height: UM.Theme.getSize("message_type_icon").height
source: UM.Theme.getIcon("Information")
color: UM.Theme.getColor("text")
},
Column
{
UM.Label
{
text: catalog.i18nc
(
"@label %i will be replaced with a profile name",
"<b>Only user changed settings will be saved in the custom profile.</b><br/>" +
"For materials that support it, the new custom profile will inherit properties from <b>%1</b>."
).arg(Cura.MachineManager.activeQualityOrQualityChangesName)
wrapMode: Text.WordWrap
width: parent.parent.width - 2 * UM.Theme.getSize("message_type_icon").width
}
Cura.TertiaryButton
{
text: catalog.i18nc("@action:button", "Learn more about Cura print profiles")
iconSource: UM.Theme.getIcon("LinkExternal")
isIconOnRightSide: true
leftPadding: 0
rightPadding: 0
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/s/article/1667337576882")
}
}
]
okButtonText: catalog.i18nc("@button", "Save new profile")
onAccepted: CuraApplication.getQualityManagementModel().createQualityChanges(newName, true);
}
/**
* Function to check whether a QML object has a certain type.
* Taken from StackOverflow: https://stackoverflow.com/a/28384228 and

View File

@ -12,8 +12,13 @@ UM.Dialog
id: base
title: catalog.i18nc("@title:window", "Discard or Keep changes")
onAccepted: CuraApplication.discardOrKeepProfileChangesClosed("discard")
onRejected: CuraApplication.discardOrKeepProfileChangesClosed("keep")
enum ButtonsType { DiscardOrKeep, SaveFromBuiltIn, SaveFromCustom}
property int buttonState: DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep
onAccepted: buttonState == DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep ?
CuraApplication.discardOrKeepProfileChangesClosed("discard") : Cura.Actions.addProfile.trigger()
onRejected: buttonState == DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep ?
CuraApplication.discardOrKeepProfileChangesClosed("keep") : Cura.Actions.updateProfile.trigger()
minimumWidth: UM.Theme.getSize("popup_dialog").width
minimumHeight: UM.Theme.getSize("popup_dialog").height
@ -98,9 +103,12 @@ UM.Dialog
buttonSpacing: UM.Theme.getSize("thin_margin").width
leftButtons: [
leftButtons:
[
Cura.ComboBox
{
visible: buttonState == DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep
implicitHeight: UM.Theme.getSize("combobox").height
implicitWidth: UM.Theme.getSize("combobox").width
@ -146,12 +154,28 @@ UM.Dialog
id: discardButton
text: catalog.i18nc("@action:button", "Discard changes")
onClicked: base.accept()
visible: buttonState == DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep
},
Cura.SecondaryButton
{
id: keepButton
text: catalog.i18nc("@action:button", "Keep changes")
onClicked: base.reject()
visible: buttonState == DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep
},
Cura.SecondaryButton
{
id: overwriteButton
text: catalog.i18nc("@action:button", "Save as new custom profile")
visible: buttonState != DiscardOrKeepProfileChangesDialog.ButtonsType.DiscardOrKeep
onClicked: base.accept()
},
Cura.PrimaryButton
{
id: saveButton
text: catalog.i18nc("@action:button", "Save changes")
visible: buttonState == DiscardOrKeepProfileChangesDialog.ButtonsType.SaveFromCustom
onClicked: base.reject()
}
]
}

View File

@ -15,17 +15,23 @@ UM.Dialog
buttonSpacing: UM.Theme.getSize("default_margin").width
property string object: ""
property string objectPlaceholder: ""
property alias newName: nameField.text
property bool validName: true
property string validationError
property string dialogTitle: catalog.i18nc("@title:window", "Rename")
property string explanation: catalog.i18nc("@info", "Please provide a new name.")
property string okButtonText: catalog.i18nc("@action:button", "OK")
// Extra Information for the user about the current rename can go here, can be left alone if not needed.
// For example; An icon and a text-field and a tertiary button providing a link.
property list<Item> extraInfo
title: dialogTitle
backgroundColor: UM.Theme.getColor("main_background")
minimumWidth: UM.Theme.getSize("small_popup_dialog").width
minimumHeight: UM.Theme.getSize("small_popup_dialog").height
minimumHeight: UM.Theme.getSize("small_popup_dialog").height + extraInfoHolder.height
width: minimumWidth
height: minimumHeight
@ -55,11 +61,33 @@ UM.Dialog
id: nameField
width: parent.width
text: base.object
placeholderText: base.objectPlaceholder
placeholderTextColor: UM.Theme.getColor("text_field_text_disabled")
maximumLength: 40
selectByMouse: true
onTextChanged: base.textChanged(text)
}
// spacer
Item
{
height: UM.Theme.getSize("wide_margin").height
width: height
}
Row
{
id: extraInfoHolder
anchors
{
left: parent.left
right: parent.right
margins: UM.Theme.getSize("default_margin").height
}
spacing: UM.Theme.getSize("default_margin").height
children: extraInfo
}
UM.Label
{
visible: !base.validName
@ -67,20 +95,23 @@ UM.Dialog
}
}
rightButtons: [
Cura.SecondaryButton
leftButtons:
[
Cura.TertiaryButton
{
id: cancelButton
text: catalog.i18nc("@action:button","Cancel")
onClicked: base.reject()
},
}
]
rightButtons:
[
Cura.PrimaryButton
{
id: okButton
text: catalog.i18nc("@action:button", "OK")
text: base.okButtonText
onClicked: base.accept()
enabled: base.validName
}
]
}

View File

@ -12,17 +12,14 @@ UM.ToolbarButton
id: base
property var extruder
text: catalog.i18ncp("@label %1 is filled in with the name of an extruder", "Print Selected Model with %1", "Print Selected Models with %1", UM.Selection.selectionCount).arg(extruder.name)
checked: Cura.ExtruderManager.selectedObjectExtruders.indexOf(extruder.id) != -1
enabled: UM.Selection.hasSelection && extruder.stack.isEnabled
property var extruderNumberFont: UM.Theme.getFont("small_emphasis")
toolItem: ExtruderIcon
{
materialColor: extruder.color
extruderEnabled: extruder.stack.isEnabled
iconVariant: "default"
font: extruderNumberFont
property int index: extruder.index
}

View File

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V.
// Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.11
@ -12,8 +12,9 @@ Item
property color materialColor
property alias textColor: extruderNumberText.color
property bool extruderEnabled: true
property var iconSize: UM.Theme.getSize("extruder_icon").width
property int iconSize: UM.Theme.getSize("extruder_icon").width
property string iconVariant: "medium"
property alias font: extruderNumberText.font
implicitWidth: iconSize
implicitHeight: iconSize
@ -35,7 +36,6 @@ Item
}
UM.ColorImage
{
id: mainIcon
anchors.fill: parent
width: iconSize
height: iconSize
@ -47,12 +47,14 @@ Item
UM.Label
{
id: extruderNumberText
anchors.centerIn: parent
text: index + 1
font: UM.Theme.getFont("small_emphasis")
width: contentWidth
height: contentHeight
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: parent.right
horizontalAlignment: Text.AlignHCenter
text: (index + 1).toString()
font: UM.Theme.getFont("small_emphasis")
}
}
}

View File

@ -68,18 +68,27 @@ UM.TooltipArea
function updateModel()
{
clear()
// Options come in as a string-representation of an OrderedDict
if(propertyProvider.properties.options)
if(!propertyProvider.properties.options)
{
var options = propertyProvider.properties.options.match(/^OrderedDict\(\[\((.*)\)\]\)$/);
if(options)
return
}
if (typeof propertyProvider.properties["options"] === "string")
{
return
}
for (var i = 0; i < propertyProvider.properties["options"].keys().length; i++)
{
var key = propertyProvider.properties["options"].keys()[i]
var value = propertyProvider.properties["options"][key]
append({ text: value, code: key })
if (propertyProvider.properties.value === key)
{
options = options[1].split("), (");
for(var i = 0; i < options.length; i++)
{
var option = options[i].substring(1, options[i].length - 1).split("', '");
append({ text: option[1], value: option[0] });
}
comboBox.currentIndex = i
}
}
}
@ -123,7 +132,7 @@ UM.TooltipArea
onActivated:
{
var newValue = model.get(index).value
if (propertyProvider.properties.value != newValue)
if (propertyProvider.properties.value !== newValue && newValue !== undefined)
{
if (setValueFunction !== null)
{

View File

@ -59,7 +59,7 @@ UM.TooltipArea
UM.SettingPropertyProvider
{
id: propertyProvider
watchedProperties: [ "value", "description" ]
watchedProperties: [ "value", "description", "validationState" ]
}
UM.Label

View File

@ -52,8 +52,13 @@ Item
id: intentSelection
onClicked: menu.opened ? menu.close() : menu.open()
anchors.right: parent.right
width: UM.Theme.getSize("print_setup_big_item").width
// Anchoring to the right makes much more sense here, but for some reason this component compresses from the right
// and then expands from the left afterwards. This pushes it left by profileWarningReset.width
// The solution is to anchor from the other direction so this does not happen.
anchors.left: parent.left
// This leftMargin gives us the same spacing as anchoring to the right on profileWarningReset
anchors.leftMargin: parent.width - UM.Theme.getSize("print_setup_big_item").width
width: profileWarningReset.visible ? UM.Theme.getSize("print_setup_big_item").width - profileWarningReset.width - UM.Theme.getSize("default_margin").width : UM.Theme.getSize("print_setup_big_item").width
height: textLabel.contentHeight + 2 * UM.Theme.getSize("narrow_margin").height
hoverEnabled: true
@ -152,6 +157,15 @@ Item
}
}
ProfileWarningReset
{
id: profileWarningReset
width: childrenRect.width
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
fullWarning: false
}
QualitiesWithIntentMenu
{
id: menu

View File

@ -223,58 +223,6 @@ Popup
color: borderColor
}
MenuButton
{
labelText: Cura.Actions.addProfile.text
anchors.left: parent.left
anchors.right: parent.right
enabled: Cura.Actions.addProfile.enabled
onClicked:
{
Cura.Actions.addProfile.trigger()
popup.visible = false
}
}
MenuButton
{
labelText: Cura.Actions.updateProfile.text
anchors.left: parent.left
anchors.right: parent.right
enabled: Cura.Actions.updateProfile.enabled
onClicked:
{
popup.visible = false
Cura.Actions.updateProfile.trigger()
}
}
MenuButton
{
text: catalog.i18nc("@action:button", "Discard current changes")
anchors.left: parent.left
anchors.right: parent.right
enabled: Cura.MachineManager.hasUserSettings
onClicked:
{
popup.visible = false
Cura.ContainerManager.clearUserContainers()
}
}
Rectangle
{
height: UM.Theme.getSize("default_lining").width
anchors.left: parent.left
anchors.right: parent.right
color: borderColor
}
MenuButton
{
id: manageProfilesButton
@ -285,18 +233,19 @@ Popup
right: parent.right
}
height: textLabel.contentHeight + 2 * UM.Theme.getSize("narrow_margin").height
height: textLabel.contentHeight + UM.Theme.getSize("default_margin").height
contentItem: Item
{
width: parent.width
height: childrenRect.height
height: parent.height
UM.Label
{
id: textLabel
text: manageProfilesButton.text
height: contentHeight
anchors.verticalCenter: parent.verticalCenter
}
UM.Label
{
@ -304,6 +253,7 @@ Popup
text: Cura.Actions.manageProfiles.shortcut
color: UM.Theme.getColor("text_lighter")
height: contentHeight
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
}
@ -318,7 +268,7 @@ Popup
Item
{
width: 2
height: UM.Theme.getSize("default_radius").width
height: UM.Theme.getSize("default_radius").width
}
}
}

View File

@ -67,6 +67,16 @@ Item
top: parent.top
}
visible: currentModeIndex == PrintSetupSelectorContents.Mode.Recommended
height: {
const height = base.height - (customPrintSetup.mapToItem(null, 0, 0).y + buttonRow.height + UM.Theme.getSize("default_margin").height);
const maxHeight = UM.Preferences.getValue("view/settings_list_height");
return Math.min(implicitHeight, height, maxHeight);
}
function onModeChanged()
{
currentModeIndex = PrintSetupSelectorContents.Mode.Custom;
}
}
CustomPrintSetup
@ -116,13 +126,21 @@ Item
width: parent.width
height: UM.Theme.getSize("default_lining").height
color: UM.Theme.getColor("lining")
visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom
}
Item
{
id: buttonRow
property real padding: UM.Theme.getSize("default_margin").width
height: recommendedButton.height + 2 * padding + (draggableArea.visible ? draggableArea.height : 0)
height:
{
if (currentModeIndex == PrintSetupSelectorContents.Mode.Custom)
{
return recommendedButton.height + 2 * padding + (draggableArea.visible ? draggableArea.height : 0)
}
return 0
}
anchors
{
@ -145,25 +163,6 @@ Item
onClicked: currentModeIndex = PrintSetupSelectorContents.Mode.Recommended
}
Cura.SecondaryButton
{
id: customSettingsButton
anchors.top: parent.top
anchors.right: parent.right
anchors.margins: UM.Theme.getSize("default_margin").width
leftPadding: UM.Theme.getSize("default_margin").width
rightPadding: UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@button", "Custom")
iconSource: UM.Theme.getIcon("ChevronSingleRight")
isIconOnRightSide: true
visible: currentModeIndex == PrintSetupSelectorContents.Mode.Recommended
onClicked:
{
currentModeIndex = PrintSetupSelectorContents.Mode.Custom
updateDragPosition();
}
}
//Invisible area at the bottom with which you can resize the panel.
MouseArea
{

View File

@ -0,0 +1,181 @@
// Copyright (C) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
import UM 1.6 as UM
import Cura 1.6 as Cura
import "../Dialogs"
Item
{
property bool fullWarning: true // <- Can you see the warning icon and the text, or is it just the buttons?
height: visible ? UM.Theme.getSize("action_button_icon").height : 0
width: visible ? childrenRect.width: 0
visible: Cura.MachineManager.hasUserSettings || (fullWarning && Cura.MachineManager.hasCustomQuality)
Rectangle
{
id: warningIcon
visible: fullWarning
color: UM.Theme.getColor("warning")
height: UM.Theme.getSize("action_button_icon").height
width: visible ? height : 0
radius: width
anchors
{
left: parent.left
verticalCenter: parent.verticalCenter
}
UM.ColorImage
{
id: warningIconImage
height: UM.Theme.getSize("action_button_icon").height
width: height
source: UM.Theme.getIcon("Warning", "low")
}
}
UM.Label
{
id: warning
visible: fullWarning
width: visible ? parent.width - warningIcon.width - (compareAndSaveButton.width + resetToDefaultQualityButton.width) : 0
anchors
{
left: warningIcon.right
verticalCenter: parent.verticalCenter
leftMargin: visible ? UM.Theme.getSize("thin_margin").width : 0
}
wrapMode: Text.WordWrap
states: [
State
{
name: "settings changed and custom quality"
when: Cura.MachineManager.hasUserSettings && Cura.MachineManager.hasCustomQuality
PropertyChanges
{
target: warning
text: {
var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
return catalog.i18nc("@info, %1 is the name of the custom profile", "<b>%1</b> custom profile is active and you overwrote some settings.").arg(profile_name)
}
}
},
State
{
name: "custom quality"
when: Cura.MachineManager.hasCustomQuality
PropertyChanges
{
target: warning
text: {
var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
return catalog.i18nc("@info, %1 is the name of the custom profile", "<b>%1</b> custom profile is overriding some settings.").arg(profile_name)
}
}
},
State
{
name: "recommended settings changed"
when: Cura.MachineManager.hasUserSettings
PropertyChanges
{
target: warning
text:
{
var profile_name = Cura.MachineManager.activeQualityOrQualityChangesName;
return catalog.i18nc("@info %1 is the name of a profile", "Recommended settings (for <b>%1</b>) were altered.").arg(profile_name);
}
}
},
State
{
name: "custom settings changed"
when: Cura.SimpleModeSettingsManager.isProfileCustomized
PropertyChanges
{
target: warning
text:
{
var profile_name = Cura.MachineManager.activeQualityOrQualityChangesName;
return catalog.i18nc("@info %1 is the name of a profile", "Some setting-values defined in <b>%1</b> were overridden.").arg(profile_name);
}
}
}
]
}
UM.SimpleButton
{
id: resetToDefaultQualityButton
height: UM.Theme.getSize("action_button_icon").height
width: visible ? height : 0
iconSource: UM.Theme.getIcon("ArrowReset")
anchors
{
right: buttonsSpacer.left
verticalCenter: parent.verticalCenter
}
visible: enabled
color: enabled ? UM.Theme.getColor("accent_1") : UM.Theme.getColor("disabled")
hoverColor: UM.Theme.getColor("primary_hover")
enabled: (fullWarning && Cura.MachineManager.hasCustomQuality) || Cura.MachineManager.hasUserSettings
onClicked: Cura.MachineManager.resetToUseDefaultQuality()
UM.ToolTip
{
visible: parent.hovered
y: parent.y + parent.height + UM.Theme.getSize("default_margin").height
targetPoint: Qt.point(parent.x, Math.round(parent.y + parent.height / 2))
tooltipText: catalog.i18nc("@info", "Reset to defaults.")
}
}
// Spacer
Item
{
id: buttonsSpacer
width: compareAndSaveButton.visible ? UM.Theme.getSize("default_margin").width : 0
anchors.right: compareAndSaveButton.left
}
UM.SimpleButton
{
id: compareAndSaveButton
height: UM.Theme.getSize("action_button_icon").height
width: visible ? height : 0
iconSource: UM.Theme.getIcon("Save")
anchors
{
right: parent.right
verticalCenter: parent.verticalCenter
}
visible: enabled
color: enabled ? UM.Theme.getColor("accent_1") : UM.Theme.getColor("disabled")
hoverColor: UM.Theme.getColor("primary_hover")
enabled: Cura.MachineManager.hasUserSettings
onClicked: CuraApplication.showCompareAndSaveProfileChanges
(
Cura.MachineManager.hasCustomQuality ?
DiscardOrKeepProfileChangesDialog.ButtonsType.SaveFromCustom :
DiscardOrKeepProfileChangesDialog.ButtonsType.SaveFromBuiltIn
)
UM.ToolTip
{
visible: parent.hovered
y: parent.y + parent.height + UM.Theme.getSize("default_margin").height
targetPoint: Qt.point(parent.x, Math.round(parent.y + parent.height / 2))
tooltipText: catalog.i18nc("@info", "Compare and save.")
}
}
}

View File

@ -1,106 +0,0 @@
import QtQuick 2.10
import UM 1.6 as UM
import Cura 1.6 as Cura
Item
{
height: visible ? UM.Theme.getSize("action_button_icon").height : 0
visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.MachineManager.hasCustomQuality
Rectangle
{
id: warningIcon
color: UM.Theme.getColor("um_yellow_5")
height: UM.Theme.getSize("action_button_icon").height
width: height
radius: width
anchors
{
left: parent.left
verticalCenter: parent.verticalCenter
}
UM.ColorImage
{
height: UM.Theme.getSize("action_button_icon").height
width: height
source: UM.Theme.getIcon("Warning", "low")
}
}
UM.Label
{
id: warning
width: parent.width - warningIcon.width - resetToDefaultQualityButton.width
anchors
{
left: warningIcon.right
verticalCenter: parent.verticalCenter
leftMargin: UM.Theme.getSize("thin_margin").width
}
wrapMode: Text.WordWrap
states: [
State
{
name: "settings changed and custom quality"
when: Cura.SimpleModeSettingsManager.isProfileCustomized && Cura.MachineManager.hasCustomQuality
PropertyChanges
{
target: warning
text: {
var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
return catalog.i18nc("@info, %1 is the name of the custom profile", "<b>%1</b> custom profile is active and you overwrote some settings.").arg(profile_name)
}
}
},
State
{
name: "custom quality"
when: Cura.MachineManager.hasCustomQuality
PropertyChanges
{
target: warning
text: {
var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
return catalog.i18nc("@info, %1 is the name of the custom profile", "<b>%1</b> custom profile is overriding some settings.").arg(profile_name)
}
}
},
State
{
name: "settings changed"
when: Cura.SimpleModeSettingsManager.isProfileCustomized
PropertyChanges
{
target: warning
text: catalog.i18nc("@info", "Some settings were changed.")
}
}
]
}
UM.SimpleButton
{
id: resetToDefaultQualityButton
height: UM.Theme.getSize("action_button_icon").height
width: height
iconSource: UM.Theme.getIcon("ArrowReset")
anchors
{
right: parent.right
verticalCenter: parent.verticalCenter
}
color: UM.Theme.getColor("accent_1")
onClicked:
{
Cura.MachineManager.resetToUseDefaultQuality()
}
}
}

View File

@ -1,89 +1,37 @@
// Copyright (c) 2018 Ultimaker B.V.
// Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
import QtQuick.Layouts 1.3
import UM 1.5 as UM
import Cura 1.0 as Cura
import Cura 1.7 as Cura
//
// Adhesion
//
Item
RecommendedSettingSection
{
id: enableAdhesionRow
height: enableAdhesionContainer.height
property real labelColumnWidth: Math.round(width / 3)
title: catalog.i18nc("@label", "Adhesion")
icon: UM.Theme.getIcon("Adhesion")
enableSectionSwitchVisible: platformAdhesionType.properties.enabled === "True"
enableSectionSwitchChecked: platformAdhesionType.properties.value !== "skirt" && platformAdhesionType.properties.value !== "none"
enableSectionSwitchEnabled: recommendedPrintSetup.settingsEnabled
tooltipText: catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")
property var curaRecommendedMode: Cura.RecommendedMode {}
Cura.IconWithText
property UM.SettingPropertyProvider platformAdhesionType: UM.SettingPropertyProvider
{
id: enableAdhesionRowTitle
anchors.top: parent.top
anchors.left: parent.left
source: UM.Theme.getIcon("Adhesion")
text: catalog.i18nc("@label", "Adhesion")
font: UM.Theme.getFont("medium")
width: labelColumnWidth
iconSize: UM.Theme.getSize("medium_button_icon").width
}
Item
{
id: enableAdhesionContainer
height: enableAdhesionCheckBox.height
anchors
{
left: enableAdhesionRowTitle.right
right: parent.right
verticalCenter: enableAdhesionRowTitle.verticalCenter
}
UM.CheckBox
{
id: enableAdhesionCheckBox
anchors.verticalCenter: parent.verticalCenter
//: Setting enable printing build-plate adhesion helper checkbox
enabled: recommendedPrintSetup.settingsEnabled
visible: platformAdhesionType.properties.enabled == "True"
checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none"
MouseArea
{
id: adhesionMouseArea
anchors.fill: parent
hoverEnabled: true
// propagateComposedEvents used on adhesionTooltipMouseArea does not work with Controls Components.
// It only works with other MouseAreas, so this is required
onClicked: curaRecommendedMode.setAdhesion(!parent.checked)
}
}
}
MouseArea
{
id: adhesionTooltipMouseArea
anchors.fill: parent
propagateComposedEvents: true
hoverEnabled: true
onEntered:base.showTooltip(enableAdhesionCheckBox, Qt.point(-enableAdhesionContainer.x - UM.Theme.getSize("thick_margin").width, 0),
catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards."));
onExited: base.hideTooltip()
}
UM.SettingPropertyProvider
{
id: platformAdhesionType
containerStack: Cura.MachineManager.activeMachine
removeUnusedValue: false //Doesn't work with settings that are resolved.
key: "adhesion_type"
watchedProperties: [ "value", "resolve", "enabled" ]
storeIndex: 0
}
function onEnableSectionChanged(state)
{
curaRecommendedMode.setAdhesion(state)
}
}

View File

@ -1,277 +0,0 @@
// Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
import QtQuick.Controls 2.15
import UM 1.5 as UM
import Cura 1.0 as Cura
//
// Infill
//
Item
{
id: infillRow
height: childrenRect.height
property real labelColumnWidth: Math.round(width / 3)
// Create a binding to update the icon when the infill density changes
Binding
{
target: infillRowTitle
property: "source"
value:
{
var density = parseInt(infillDensity.properties.value)
if (parseInt(infillSteps.properties.value) != 0)
{
return UM.Theme.getIcon("InfillGradual")
}
if (density <= 0)
{
return UM.Theme.getIcon("Infill0")
}
if (density < 40)
{
return UM.Theme.getIcon("Infill3")
}
if (density < 90)
{
return UM.Theme.getIcon("Infill2")
}
return UM.Theme.getIcon("Infill100")
}
}
// We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider
Binding
{
target: infillSlider
property: "value"
value: {
// The infill slider has a max value of 100. When it is given a value > 100 onValueChanged updates the setting to be 100.
// When changing to an intent with infillDensity > 100, it would always be clamped to 100.
// This will force the slider to ignore the first onValueChanged for values > 100 so higher values can be set.
var density = parseInt(infillDensity.properties.value)
if (density > 100) {
infillSlider.ignoreValueChange = true
}
return density
}
}
// Here are the elements that are shown in the left column
Cura.IconWithText
{
id: infillRowTitle
anchors.top: parent.top
anchors.left: parent.left
source: UM.Theme.getIcon("Infill1")
text: catalog.i18nc("@label", "Infill") + " (%)"
font: UM.Theme.getFont("medium")
width: labelColumnWidth
iconSize: UM.Theme.getSize("medium_button_icon").width
tooltipText: catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")
}
Item
{
id: infillSliderContainer
height: childrenRect.height
anchors
{
left: infillRowTitle.right
right: parent.right
verticalCenter: infillRowTitle.verticalCenter
}
Slider
{
id: infillSlider
property var ignoreValueChange: false
width: parent.width
height: UM.Theme.getSize("print_setup_slider_handle").height // The handle is the widest element of the slider
from: 0
to: 100
stepSize: 1
// disable slider when gradual support is enabled
enabled: parseInt(infillSteps.properties.value) == 0
// set initial value from stack
value: parseInt(infillDensity.properties.value)
//Draw line
background: Rectangle
{
id: backgroundLine
height: UM.Theme.getSize("print_setup_slider_groove").height
width: parent.width - UM.Theme.getSize("print_setup_slider_handle").width
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
Repeater
{
id: repeater
anchors.fill: parent
model: infillSlider.to / infillSlider.stepSize + 1
Rectangle
{
color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
implicitWidth: UM.Theme.getSize("print_setup_slider_tickmarks").width
implicitHeight: UM.Theme.getSize("print_setup_slider_tickmarks").height
anchors.verticalCenter: parent.verticalCenter
// Do not use Math.round otherwise the tickmarks won't be aligned
// (space between steps) * index of step
x: (backgroundLine.width / (repeater.count - 1)) * index
radius: Math.round(implicitWidth / 2)
visible: (index % 10) == 0 // Only show steps of 10%
UM.Label
{
text: index
visible: (index % 20) == 0 // Only show steps of 20%
anchors.horizontalCenter: parent.horizontalCenter
y: UM.Theme.getSize("thin_margin").height
color: UM.Theme.getColor("quality_slider_available")
}
}
}
}
handle: Rectangle
{
id: handleButton
x: infillSlider.leftPadding + infillSlider.visualPosition * (infillSlider.availableWidth - width)
y: infillSlider.topPadding + infillSlider.availableHeight / 2 - height / 2
color: infillSlider.enabled ? UM.Theme.getColor("primary") : UM.Theme.getColor("quality_slider_unavailable")
implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width
implicitHeight: implicitWidth
radius: Math.round(implicitWidth / 2)
border.color: UM.Theme.getColor("slider_groove_fill")
border.width: UM.Theme.getSize("default_lining").height
}
Connections
{
target: infillSlider
function onValueChanged()
{
if (infillSlider.ignoreValueChange)
{
infillSlider.ignoreValueChange = false
return
}
// Don't update if the setting value, if the slider has the same value
if (parseInt(infillDensity.properties.value) == infillSlider.value)
{
return
}
// Round the slider value to the nearest multiple of 10 (simulate step size of 10)
var roundedSliderValue = Math.round(infillSlider.value / 10) * 10
// Update the slider value to represent the rounded value
infillSlider.value = roundedSliderValue
// Update value only if the Recommended mode is Active,
// Otherwise if I change the value in the Custom mode the Recommended view will try to repeat
// same operation
const active_mode = UM.Preferences.getValue("cura/active_mode")
if (visible // Workaround: 'visible' is checked because on startup in Windows it spuriously gets an 'onValueChanged' with value '0' if this isn't checked.
&& (active_mode == 0 || active_mode == "simple"))
{
Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue)
Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance")
}
}
}
}
}
// Gradual Support Infill Checkbox
UM.CheckBox
{
id: enableGradualInfillCheckBox
property alias _hovered: enableGradualInfillMouseArea.containsMouse
anchors.top: infillSliderContainer.bottom
anchors.topMargin: UM.Theme.getSize("wide_margin").height
anchors.left: infillSliderContainer.left
text: catalog.i18nc("@label", "Gradual infill")
enabled: recommendedPrintSetup.settingsEnabled
visible: infillSteps.properties.enabled == "True"
checked: parseInt(infillSteps.properties.value) > 0
MouseArea
{
id: enableGradualInfillMouseArea
anchors.fill: parent
hoverEnabled: true
enabled: true
property var previousInfillDensity: parseInt(infillDensity.properties.value)
onClicked:
{
// Set to 90% only when enabling gradual infill
var newInfillDensity;
if (parseInt(infillSteps.properties.value) == 0)
{
previousInfillDensity = parseInt(infillDensity.properties.value)
newInfillDensity = 90
} else {
newInfillDensity = previousInfillDensity
}
Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity))
var infill_steps_value = 0
if (parseInt(infillSteps.properties.value) == 0)
{
infill_steps_value = 5
}
Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value)
}
onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillSliderContainer.x - UM.Theme.getSize("thick_margin").width, 0),
catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top."))
onExited: base.hideTooltip()
}
}
UM.SettingPropertyProvider
{
id: infillDensity
containerStackId: Cura.MachineManager.activeStackId
key: "infill_sparse_density"
watchedProperties: [ "value" ]
storeIndex: 0
}
UM.SettingPropertyProvider
{
id: infillSteps
containerStackId: Cura.MachineManager.activeStackId
key: "gradual_infill_steps"
watchedProperties: ["value", "enabled"]
storeIndex: 0
}
}

View File

@ -1,32 +1,42 @@
//Copyright (c) 2022 Ultimaker B.V.
// Copyright (c) 2022 UltiMaker
//Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.1
import UM 1.6 as UM
import Cura 1.6 as Cura
import ".."
Item
ScrollView
{
id: recommendedPrintSetup
height: childrenRect.height + 2 * padding
implicitHeight: settingsColumn.height + 2 * padding
property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1
property real padding: UM.Theme.getSize("default_margin").width
ColumnLayout
{
spacing: UM.Theme.getSize("default_margin").height
padding: UM.Theme.getSize("default_margin").width
function onModeChanged() {}
ScrollBar.vertical: UM.ScrollBar {
id: scroll
anchors
{
left: parent.left
right: parent.right
top: parent.top
margins: parent.padding
right: parent.right
bottom: parent.bottom
}
}
Column
{
id: settingsColumn
spacing: UM.Theme.getSize("default_margin").height
width: recommendedPrintSetup.width - 2 * recommendedPrintSetup.padding - (scroll.visible ? scroll.width : 0)
// TODO
property real firstColumnWidth: Math.round(width / 3)
@ -46,7 +56,6 @@ Item
RecommendedResolutionSelector
{
id: recommendedResolutionSelector
Layout.fillWidth: true
width: parent.width
}
@ -54,55 +63,72 @@ Item
{
width: parent.width
visible: !recommendedResolutionSelector.visible
Layout.fillWidth: true
}
Item { height: UM.Theme.getSize("default_margin").height } // Spacer
ProfileWarningReset
{
width: parent.width
Layout.fillWidth: true
Layout.topMargin: UM.Theme.getSize("default_margin").height
Layout.bottomMargin: UM.Theme.getSize("thin_margin").height
}
Item { height: UM.Theme.getSize("thin_margin").height + UM.Theme.getSize("narrow_margin").height} // Spacer
//Line between the sections.
Rectangle
{
width: parent.width
height: UM.Theme.getSize("default_lining").height
Layout.topMargin: UM.Theme.getSize("narrow_margin").height
Layout.bottomMargin: UM.Theme.getSize("narrow_margin").height
Layout.fillWidth: true
color: UM.Theme.getColor("lining")
}
UM.Label
{
text: catalog.i18nc("@label", "Print settings")
font: UM.Theme.getFont("medium")
}
Item { height: UM.Theme.getSize("narrow_margin").height } //Spacer
RecommendedInfillDensitySelector
Column
{
id: settingColumn
width: parent.width
labelColumnWidth: parent.firstColumnWidth
Layout.fillWidth: true
Layout.rightMargin: UM.Theme.getSize("default_margin").width
}
spacing: UM.Theme.getSize("thin_margin").height
RecommendedSupportSelector
{
width: parent.width
labelColumnWidth: parent.firstColumnWidth
Layout.fillWidth: true
}
Item
{
id: recommendedPrintSettingsHeader
height: childrenRect.height
width: parent.width
UM.Label
{
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
text: catalog.i18nc("@label", "Recommended print settings")
font: UM.Theme.getFont("medium")
}
RecommendedAdhesionSelector
{
width: parent.width
labelColumnWidth: parent.firstColumnWidth
Layout.fillWidth: true
Cura.SecondaryButton
{
id: customSettingsButton
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
text: catalog.i18nc("@button", "Show Custom")
textFont: UM.Theme.getFont("medium_bold")
outlineColor: "transparent"
onClicked: onModeChanged()
}
}
RecommendedStrengthSelector
{
width: parent.width
}
RecommendedSupportSelector
{
width: parent.width
}
RecommendedAdhesionSelector
{
width: parent.width
}
}
}

View File

@ -0,0 +1,90 @@
// Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 2.10
import UM 1.5 as UM
import Cura 1.7 as Cura
Item
{
id: settingItem
width: parent.width
Layout.minimumHeight: UM.Theme.getSize("section_header").height
Layout.fillWidth: true
property alias settingControl: settingContainer.children
property alias settingName: settingLabel.text
property string tooltipText: ""
property bool isCompressed: false
UM.Label
{
id: settingLabel
width: leftColumnWidth
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
// These numbers come from the IconWithText in RecommendedSettingSection
anchors.leftMargin: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width
}
MouseArea
{
id: tooltipArea
anchors.fill: settingLabel
propagateComposedEvents: true
hoverEnabled: true
onEntered: base.showTooltip(parent, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), tooltipText)
onExited: base.hideTooltip()
}
Item
{
id: settingContainer
height: childrenRect.height
anchors.left: settingLabel.right
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
}
states:
[
State
{
name: "sectionClosed" // Section is hidden when the switch in parent is off
when: isCompressed
PropertyChanges
{
target: settingItem;
opacity: 0
height: 0
implicitHeight: 0
Layout.preferredHeight: 0
Layout.minimumHeight: 0
enabled: false // Components can still be clickable with height 0 so they need to be disabled as well.
}
},
State
{
// All values are default. This state is only here for the animation.
name: "sectionOpened"
when: !isCompressed
}
]
transitions: Transition
{
from: "sectionOpened"; to: "sectionClosed"
reversible: true
ParallelAnimation
{
// Animate section compressing as it closes
NumberAnimation { property: "Layout.minimumHeight"; duration: 100; }
// Animate section dissapearring as it closes
NumberAnimation { property: "opacity"; duration: 100; }
}
}
}

View File

@ -0,0 +1,129 @@
// Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 2.10
import UM 1.7 as UM
import Cura 1.7 as Cura
Item
{
id: settingSection
property alias title: sectionTitle.text
property alias icon: sectionTitle.source
property alias enableSectionSwitchVisible: enableSectionSwitch.visible
property alias enableSectionSwitchChecked: enableSectionSwitch.checked
property alias enableSectionSwitchEnabled: enableSectionSwitch.enabled
property string tooltipText: ""
property var enableSectionClicked: { return }
property int leftColumnWidth: Math.floor(width * 0.35)
property bool isCompressed: false
property alias contents: settingColumn.children
function onEnableSectionChanged(state) {}
height: childrenRect.height
Item
{
id: sectionHeader
anchors.top: parent.top
anchors.right: parent.right
anchors.left: parent.left
height: UM.Theme.getSize("section_header").height
Cura.IconWithText
{
id: sectionTitle
width: leftColumnWidth
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
source: UM.Theme.getIcon("PrintQuality")
spacing: UM.Theme.getSize("default_margin").width
iconSize: UM.Theme.getSize("medium_button_icon").width
iconColor: UM.Theme.getColor("text")
font: UM.Theme.getFont("medium_bold")
}
MouseArea
{
id: tooltipArea
anchors.fill: sectionTitle
propagateComposedEvents: true
hoverEnabled: true
onEntered: base.showTooltip(parent, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), tooltipText)
onExited: base.hideTooltip()
}
}
UM.Switch
{
id: enableSectionSwitch
anchors.left: parent.left
// These numbers come from the IconWithText in RecommendedSettingSection.
anchors.leftMargin: leftColumnWidth + UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width
anchors.verticalCenter: sectionHeader.verticalCenter
visible: false
// This delay forces the setting change to happen after the setting section open/close animation. This is so the animation is smooth.
Timer
{
id: updateTimer
interval: 500 // This interval is set long enough so you can spam click the button on/off without lag.
repeat: false
onTriggered: onEnableSectionChanged(enableSectionSwitch.checked)
}
onClicked: updateTimer.restart()
}
ColumnLayout
{
id: settingColumn
width: parent.width
spacing: UM.Theme.getSize("thin_margin").height
anchors.left: parent.left
anchors.right: parent.right
anchors.top: sectionHeader.bottom
anchors.topMargin: UM.Theme.getSize("narrow_margin").height
}
states:
[
State
{
name: "settingListClosed"
when: !enableSectionSwitchChecked && enableSectionSwitchEnabled
PropertyChanges
{
target: settingSection
isCompressed: true
implicitHeight: 0
}
PropertyChanges
{
target: settingColumn
spacing: 0
}
},
State
{
// Use default properties. This is only here for the animation.
name: "settingListOpened"
when: enableSectionSwitchChecked && enableSectionSwitchEnabled
}
]
// Animate section closing
transitions: Transition
{
from: "settingListOpened"; to: "settingListClosed"
reversible: true
// Animate section compressing as it closes
NumberAnimation { property: "implicitHeight"; duration: 100; }
}
}

View File

@ -0,0 +1,105 @@
// Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
import QtQuick.Controls 2.15
import QtQuick.Layouts 2.10
import UM 1.7 as UM
import Cura 1.7 as Cura
RecommendedSettingSection
{
id: strengthSection
title: catalog.i18nc("@label", "Strength")
icon: UM.Theme.getIcon("Hammer")
enableSectionSwitchVisible: false
enableSectionSwitchEnabled: false
tooltipText: catalog.i18nc("@label", "The following settings define the strength of your part.")
UM.SettingPropertyProvider
{
id: infillSteps
containerStackId: Cura.MachineManager.activeStackId
key: "gradual_infill_steps"
watchedProperties: ["value", "enabled"]
storeIndex: 0
}
contents: [
RecommendedSettingItem
{
settingName: catalog.i18nc("infill_sparse_density description", "Infill Density")
tooltipText: catalog.i18nc("@label", "Adjusts the density of infill of the print.")
settingControl: Cura.SingleSettingSlider
{
height: UM.Theme.getSize("combobox").height
width: parent.width
settingName: "infill_sparse_density"
updateAllExtruders: true
// disable slider when gradual support is enabled
enabled: parseInt(infillSteps.properties.value) === 0
function updateSetting(value)
{
Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", value)
Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance")
}
}
},
RecommendedSettingItem
{
settingName: catalog.i18nc("@action:label", "Infill Pattern")
tooltipText: catalog.i18nc("@label",
"The pattern of the infill material of the print:\n\nFor quick prints of non functional model choose line, zig zag or lighting infill.\n\nFor functional part not subjected to a lot of stress we reccomend grid or triangle or tri hexagon.\n\nFor functional 3D prints which require high strenght in multiple directions use cubic, cubic subdivision, quarter cubic, octet, and gyroid.")
settingControl: Cura.SingleSettingComboBox
{
width: parent.width
settingName: "infill_pattern"
updateAllExtruders: true
}
},
RecommendedSettingItem
{
settingName: catalog.i18nc("@action:label", "Shell Thickness")
tooltipText: catalog.i18nc("@label", "Defines the tickness of your part side walls, roof and floor.")
settingControl: RowLayout
{
anchors.fill: parent
spacing: UM.Theme.getSize("default_margin").width
UM.ComponentWithIcon
{
Layout.fillWidth: true
source: UM.Theme.getIcon("PrintWalls")
Cura.SingleSettingTextField
{
width: parent.width
settingName: "wall_thickness"
updateAllExtruders: true
validator: UM.FloatValidator {}
unitText: catalog.i18nc("@label", "mm")
}
}
UM.ComponentWithIcon
{
Layout.fillWidth: true
source: UM.Theme.getIcon("PrintTopBottom")
Cura.SingleSettingTextField
{
width: parent.width
settingName: "top_bottom_thickness"
updateAllExtruders: true
validator: UM.FloatValidator {}
unitText: catalog.i18nc("@label", "mm")
}
}
}
}
]
}

View File

@ -1,307 +1,31 @@
// Copyright (c) 2022 Ultimaker B.V.
// Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import UM 1.5 as UM
import Cura 1.0 as Cura
import Cura 1.7 as Cura
//
// Enable support
//
Item
RecommendedSettingSection
{
id: enableSupportRow
height: UM.Theme.getSize("print_setup_big_item").height
property real labelColumnWidth: Math.round(width / 3)
title: catalog.i18nc("@label", "Support")
icon: UM.Theme.getIcon("Support")
enableSectionSwitchVisible: supportEnabled.properties.enabled == "True"
enableSectionSwitchChecked: supportEnabled.properties.value == "True"
enableSectionSwitchEnabled: recommendedPrintSetup.settingsEnabled
tooltipText: catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, these parts would collapse during printing.")
Item
function onEnableSectionChanged(state)
{
id: enableSupportContainer
width: labelColumnWidth + enableSupportCheckBox.width
anchors
{
left: parent.left
top: parent.top
bottom: parent.bottom
rightMargin: UM.Theme.getSize("thick_margin").width
}
Cura.IconWithText
{
id: enableSupportRowTitle
anchors.left: parent.left
visible: enableSupportCheckBox.visible
source: UM.Theme.getIcon("Support")
text: catalog.i18nc("@label", "Support")
font: UM.Theme.getFont("medium")
width: labelColumnWidth
iconSize: UM.Theme.getSize("medium_button_icon").width
tooltipText: catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")
}
UM.CheckBox
{
id: enableSupportCheckBox
anchors.verticalCenter: parent.verticalCenter
anchors.left: enableSupportRowTitle.right
property alias _hovered: enableSupportMouseArea.containsMouse
enabled: recommendedPrintSetup.settingsEnabled
visible: supportEnabled.properties.enabled == "True"
checked: supportEnabled.properties.value == "True"
MouseArea
{
id: enableSupportMouseArea
anchors.fill: parent
hoverEnabled: true
// propagateComposedEvents used on supportToolTipMouseArea does not work with Controls Components.
// It only works with other MouseAreas, so this is required
onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True")
}
}
MouseArea
{
id: supportToolTipMouseArea
anchors.fill: parent
propagateComposedEvents: true
hoverEnabled: true
onEntered: base.showTooltip(enableSupportContainer, Qt.point(-enableSupportContainer.x - UM.Theme.getSize("thick_margin").width, 0),
catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing."))
onExited: base.hideTooltip()
}
supportEnabled.setPropertyValue("value", state)
}
ComboBox
{
id: supportExtruderCombobox
height: UM.Theme.getSize("print_setup_big_item").height
anchors
{
left: enableSupportContainer.right
right: parent.right
leftMargin: UM.Theme.getSize("default_margin").width
rightMargin: UM.Theme.getSize("thick_margin").width
verticalCenter: parent.verticalCenter
}
enabled: recommendedPrintSetup.settingsEnabled
visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1)
textRole: "name" // this solves that the combobox isn't populated in the first time Cura is started
model: extruderModel
// knowing the extruder position, try to find the item index in the model
function getIndexByPosition(position)
{
var itemIndex = -1 // if position is not found, return -1
for (var item_index in model.items)
{
var item = model.getItem(item_index)
if (item.index == position)
{
itemIndex = item_index
break
}
}
return itemIndex
}
onActivated:
{
if (model.getItem(index).enabled)
{
forceActiveFocus();
supportExtruderNr.setPropertyValue("value", model.getItem(index).index);
} else
{
currentIndex = supportExtruderNr.properties.value; // keep the old value
}
}
currentIndex: (supportExtruderNr.properties.value !== undefined) ? supportExtruderNr.properties.value : 0
property string color: "#fff"
Connections
{
target: extruderModel
function onModelChanged()
{
var maybeColor = supportExtruderCombobox.model.getItem(supportExtruderCombobox.currentIndex).color
if (maybeColor)
{
supportExtruderCombobox.color = maybeColor
}
}
}
onCurrentIndexChanged:
{
var maybeColor = supportExtruderCombobox.model.getItem(supportExtruderCombobox.currentIndex).color
if(maybeColor)
{
supportExtruderCombobox.color = maybeColor
}
}
Binding
{
target: supportExtruderCombobox
property: "currentIndex"
value: supportExtruderCombobox.getIndexByPosition(supportExtruderNr.properties.value)
// Sometimes when the value is already changed, the model is still being built.
// The when clause ensures that the current index is not updated when this happens.
when: supportExtruderCombobox.model.count > 0
}
indicator: UM.ColorImage
{
id: downArrow
x: supportExtruderCombobox.width - width - supportExtruderCombobox.rightPadding
y: supportExtruderCombobox.topPadding + Math.round((supportExtruderCombobox.availableHeight - height) / 2)
source: UM.Theme.getIcon("ChevronSingleDown")
width: UM.Theme.getSize("standard_arrow").width
height: UM.Theme.getSize("standard_arrow").height
color: UM.Theme.getColor("setting_control_button")
}
background: Rectangle
{
color:
{
if (!enabled)
{
return UM.Theme.getColor("setting_control_disabled")
}
if (supportExtruderCombobox.hovered || base.activeFocus)
{
return UM.Theme.getColor("setting_control_highlight")
}
return UM.Theme.getColor("setting_control")
}
radius: UM.Theme.getSize("setting_control_radius").width
border.width: UM.Theme.getSize("default_lining").width
border.color:
{
if (!enabled)
{
return UM.Theme.getColor("setting_control_disabled_border")
}
if (supportExtruderCombobox.hovered || supportExtruderCombobox.activeFocus)
{
return UM.Theme.getColor("setting_control_border_highlight")
}
return UM.Theme.getColor("setting_control_border")
}
}
contentItem: UM.Label
{
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
anchors.right: downArrow.left
rightPadding: swatch.width + UM.Theme.getSize("setting_unit_margin").width
text: supportExtruderCombobox.currentText
textFormat: Text.PlainText
color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
elide: Text.ElideLeft
background: Rectangle
{
id: swatch
height: Math.round(parent.height / 2)
width: height
radius: Math.round(width / 2)
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: UM.Theme.getSize("thin_margin").width
color: supportExtruderCombobox.color
}
}
popup: Popup
{
y: supportExtruderCombobox.height - UM.Theme.getSize("default_lining").height
width: supportExtruderCombobox.width
implicitHeight: contentItem.implicitHeight + 2 * UM.Theme.getSize("default_lining").width
padding: UM.Theme.getSize("default_lining").width
contentItem: ListView
{
implicitHeight: contentHeight
ScrollBar.vertical: UM.ScrollBar {}
clip: true
model: supportExtruderCombobox.popup.visible ? supportExtruderCombobox.delegateModel : null
currentIndex: supportExtruderCombobox.highlightedIndex
}
background: Rectangle
{
color: UM.Theme.getColor("setting_control")
border.color: UM.Theme.getColor("setting_control_border")
}
}
delegate: ItemDelegate
{
width: supportExtruderCombobox.width - 2 * UM.Theme.getSize("default_lining").width
height: supportExtruderCombobox.height
highlighted: supportExtruderCombobox.highlightedIndex == index
contentItem: UM.Label
{
anchors.fill: parent
anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
anchors.rightMargin: UM.Theme.getSize("setting_unit_margin").width
text: model.name
color: model.enabled ? UM.Theme.getColor("setting_control_text"): UM.Theme.getColor("action_button_disabled_text")
elide: Text.ElideRight
rightPadding: swatch.width + UM.Theme.getSize("setting_unit_margin").width
background: Rectangle
{
id: swatch
height: Math.round(parent.height / 2)
width: height
radius: Math.round(width / 2)
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: UM.Theme.getSize("thin_margin").width
color: supportExtruderCombobox.model.getItem(index).color
}
}
background: Rectangle
{
color: parent.highlighted ? UM.Theme.getColor("setting_control_highlight") : "transparent"
border.color: parent.highlighted ? UM.Theme.getColor("setting_control_border_highlight") : "transparent"
}
}
}
property var extruderModel: CuraApplication.getExtrudersModel()
UM.SettingPropertyProvider
property UM.SettingPropertyProvider supportEnabled: UM.SettingPropertyProvider
{
id: supportEnabled
containerStack: Cura.MachineManager.activeMachine
@ -310,21 +34,45 @@ Item
storeIndex: 0
}
UM.SettingPropertyProvider
{
id: supportExtruderNr
containerStack: Cura.MachineManager.activeMachine
key: "support_extruder_nr"
watchedProperties: [ "value" ]
storeIndex: 0
}
contents: [
RecommendedSettingItem
{
settingName: catalog.i18nc("@action:label", "Support Type")
tooltipText: catalog.i18nc("@label", "Chooses between the techniques available to generate support. \n\n\"Normal\" support creates a support structure directly below the overhanging parts and drops those areas straight down. \n\n\"Tree\" support creates branches towards the overhanging areas that support the model on the tips of those branches, and allows the branches to crawl around the model to support it from the build plate as much as possible.")
isCompressed: enableSupportRow.isCompressed
UM.SettingPropertyProvider
{
id: machineExtruderCount
containerStack: Cura.MachineManager.activeMachine
key: "machine_extruder_count"
watchedProperties: ["value"]
storeIndex: 0
}
settingControl: Cura.SingleSettingComboBox
{
width: parent.width
settingName: "support_structure"
}
},
RecommendedSettingItem
{
Layout.preferredHeight: childrenRect.height
settingName: catalog.i18nc("@action:label", "Print with")
tooltipText: catalog.i18nc("@label", "The extruder train to use for printing the support. This is used in multi-extrusion.")
// Hide this component when there is only one extruder
enabled: Cura.ExtruderManager.enabledExtruderCount > 1
visible: Cura.ExtruderManager.enabledExtruderCount > 1
isCompressed: enableSupportRow.isCompressed || Cura.ExtruderManager.enabledExtruderCount <= 1
settingControl: Cura.SingleSettingExtruderSelectorBar
{
extruderSettingName: "support_extruder_nr"
}
},
RecommendedSettingItem
{
settingName: catalog.i18nc("@action:label", "Placement")
tooltipText: catalog.i18nc("support_type description", "Adjusts the placement of the support structures. The placement can be set to touching build plate or everywhere. When set to everywhere the support structures will also be printed on the model.")
isCompressed: enableSupportRow.isCompressed
settingControl: Cura.SingleSettingComboBox
{
width: parent.width
settingName: "support_type"
}
}
]
}

View File

@ -11,7 +11,7 @@ UM.PointingRectangle
id: base
property real sourceWidth: 0
width: UM.Theme.getSize("tooltip").width
height: textScroll.height + UM.Theme.getSize("tooltip_margins").height * 2
height: textScroll.height + UM.Theme.getSize("tooltip_margins").height
color: UM.Theme.getColor("tooltip")
arrowSize: UM.Theme.getSize("default_arrow").width

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