mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-16 13:45:54 +08:00
Merge remote-tracking branch 'origin/main' into CURA-11830_smart_seam_unretract
This commit is contained in:
commit
2e1ab0201b
40
.github/workflows/conan-package-resources.yml
vendored
Normal file
40
.github/workflows/conan-package-resources.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
name: conan-package-resources
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.github/workflows/conan-package-resources.yml'
|
||||
- 'resources/definitions/**'
|
||||
- 'resources/extruders/**'
|
||||
- 'resources/images/**'
|
||||
- 'resources/intent/**'
|
||||
- 'resources/meshes/**'
|
||||
- 'resources/quality/**'
|
||||
- 'resources/variants/**'
|
||||
- 'resources/conanfile.py'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'CURA-*'
|
||||
- 'PP-*'
|
||||
- 'NP-*'
|
||||
- '[0-9].[0-9]*'
|
||||
- '[0-9].[0-9][0-9]*'
|
||||
|
||||
env:
|
||||
CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }}
|
||||
CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }}
|
||||
|
||||
jobs:
|
||||
conan-recipe-version:
|
||||
uses: ultimaker/cura-workflows/.github/workflows/conan-recipe-version.yml@main
|
||||
with:
|
||||
project_name: cura_resources
|
||||
|
||||
conan-package-export:
|
||||
needs: [ conan-recipe-version ]
|
||||
uses: ultimaker/cura-workflows/.github/workflows/conan-recipe-export.yml@main
|
||||
with:
|
||||
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||
recipe_id_latest: ${{ needs.conan-recipe-version.outputs.recipe_id_latest }}
|
||||
conan_recipe_root: "./resources/"
|
||||
secrets: inherit
|
13
.github/workflows/conan-package.yml
vendored
13
.github/workflows/conan-package.yml
vendored
@ -4,12 +4,20 @@ on:
|
||||
push:
|
||||
paths:
|
||||
- 'plugins/**'
|
||||
- 'resources/**'
|
||||
- 'cura/**'
|
||||
- 'resources/bundled_packages/**'
|
||||
- 'resources/i18n/**'
|
||||
- 'resources/qml/**'
|
||||
- 'resources/setting_visibility/**'
|
||||
- 'resources/shaders/**'
|
||||
- 'resources/texts/**'
|
||||
- 'resources/themes/**'
|
||||
- 'resources/public_key.pem'
|
||||
- 'resources/README_resources.txt'
|
||||
- 'icons/**'
|
||||
- 'tests/**'
|
||||
- 'packaging/**'
|
||||
- '.github/workflows/conan-*.yml'
|
||||
- '.github/workflows/conan-package.yml'
|
||||
- '.github/workflows/notify.yml'
|
||||
- '.github/workflows/requirements-runner.txt'
|
||||
- 'requirements*.txt'
|
||||
@ -20,6 +28,7 @@ on:
|
||||
- 'main'
|
||||
- 'CURA-*'
|
||||
- 'PP-*'
|
||||
- 'NP-*'
|
||||
- '[0-9].[0-9]*'
|
||||
- '[0-9].[0-9][0-9]*'
|
||||
|
||||
|
@ -5,6 +5,9 @@ on:
|
||||
path:
|
||||
- "resources/**"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
printer-linter-diagnose:
|
||||
name: Printer linter PR diagnose
|
||||
|
3
.github/workflows/printer-linter-pr-post.yml
vendored
3
.github/workflows/printer-linter-pr-post.yml
vendored
@ -5,6 +5,9 @@ on:
|
||||
workflows: ["printer-linter-pr-diagnose"]
|
||||
types: [completed]
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
clang-tidy-results:
|
||||
# Trigger the job only if the previous (insecure) workflow completed successfully
|
||||
|
@ -1,5 +1,6 @@
|
||||
version: "5.8.0-alpha.0"
|
||||
requirements:
|
||||
- "cura_resources/(latest)@ultimaker/testing"
|
||||
- "uranium/(latest)@ultimaker/testing"
|
||||
- "curaengine/(latest)@ultimaker/testing"
|
||||
- "cura_binary_data/(latest)@ultimaker/testing"
|
||||
@ -54,6 +55,10 @@ pyinstaller:
|
||||
package: "cura"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
cura_shared_resources:
|
||||
package: "cura_resources"
|
||||
src: "res"
|
||||
dst: "share/cura/resources"
|
||||
cura_private_data:
|
||||
package: "cura_private_data"
|
||||
src: "res"
|
||||
|
12
conanfile.py
12
conanfile.py
@ -468,6 +468,12 @@ class CuraConan(ConanFile):
|
||||
copy(self, "*", os.path.join(self.package_folder, self.cpp_info.resdirs[0]), str(self._share_dir.joinpath("cura", "resources")), keep_path = True)
|
||||
copy(self, "*", os.path.join(self.package_folder, self.cpp_info.resdirs[1]), str(self._share_dir.joinpath("cura", "plugins")), keep_path = True)
|
||||
|
||||
# Copy the cura_resources resources from the package
|
||||
rm(self, "conanfile.py", os.path.join(self.package_folder, self.cpp.package.resdirs[0]))
|
||||
cura_resources = self.dependencies["cura_resources"].cpp_info
|
||||
for res_dir in cura_resources.resdirs:
|
||||
copy(self, "*", res_dir, str(self._share_dir.joinpath("cura", "resources", Path(res_dir).name)), keep_path = True)
|
||||
|
||||
# Copy resources of Uranium (keep folder structure)
|
||||
uranium = self.dependencies["uranium"].cpp_info
|
||||
copy(self, "*", uranium.resdirs[0], str(self._share_dir.joinpath("uranium", "resources")), keep_path = True)
|
||||
@ -519,6 +525,12 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV
|
||||
# Remove the fdm_materials from the package
|
||||
rmdir(self, os.path.join(self.package_folder, self.cpp.package.resdirs[0], "materials"))
|
||||
|
||||
# Remove the cura_resources resources from the package
|
||||
rm(self, "conanfile.py", os.path.join(self.package_folder, self.cpp.package.resdirs[0]))
|
||||
cura_resources = self.dependencies["cura_resources"].cpp_info
|
||||
for res_dir in cura_resources.resdirs:
|
||||
rmdir(self, os.path.join(self.package_folder, self.cpp.package.resdirs[0], Path(res_dir).name))
|
||||
|
||||
def package_info(self):
|
||||
self.user_info.pip_requirements = "requirements.txt"
|
||||
self.user_info.pip_requirements_git = "requirements-ultimaker.txt"
|
||||
|
@ -422,7 +422,8 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice):
|
||||
_PRINTER_TYPE_NAME = {
|
||||
"fire_e": "ultimaker_method",
|
||||
"lava_f": "ultimaker_methodx",
|
||||
"magma_10": "ultimaker_methodxl"
|
||||
"magma_10": "ultimaker_methodxl",
|
||||
"sketch": "ultimaker_sketch"
|
||||
}
|
||||
if printer_type in _PRINTER_TYPE_NAME:
|
||||
return _PRINTER_TYPE_NAME[printer_type]
|
||||
|
@ -1,9 +1,8 @@
|
||||
# Copyright (c) 2023 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from io import StringIO, BufferedIOBase
|
||||
import json
|
||||
from typing import cast, List, Optional, Dict
|
||||
from typing import cast, List, Optional, Dict, Tuple
|
||||
from zipfile import BadZipFile, ZipFile, ZIP_DEFLATED
|
||||
import pyDulcificum as du
|
||||
|
||||
@ -39,16 +38,27 @@ class MakerbotWriter(MeshWriter):
|
||||
suffixes=["makerbot"]
|
||||
)
|
||||
)
|
||||
MimeTypeDatabase.addMimeType(
|
||||
MimeType(
|
||||
name="application/x-makerbot-sketch",
|
||||
comment="Makerbot Toolpath Package",
|
||||
suffixes=["makerbot"]
|
||||
)
|
||||
)
|
||||
|
||||
_PNG_FORMATS = [
|
||||
_PNG_FORMAT = [
|
||||
{"prefix": "isometric_thumbnail", "width": 120, "height": 120},
|
||||
{"prefix": "isometric_thumbnail", "width": 320, "height": 320},
|
||||
{"prefix": "isometric_thumbnail", "width": 640, "height": 640},
|
||||
{"prefix": "thumbnail", "width": 90, "height": 90},
|
||||
]
|
||||
|
||||
_PNG_FORMAT_METHOD = [
|
||||
{"prefix": "thumbnail", "width": 140, "height": 106},
|
||||
{"prefix": "thumbnail", "width": 212, "height": 300},
|
||||
{"prefix": "thumbnail", "width": 960, "height": 1460},
|
||||
{"prefix": "thumbnail", "width": 90, "height": 90},
|
||||
]
|
||||
|
||||
_META_VERSION = "3.0.0"
|
||||
|
||||
# must be called from the main thread because of OpenGL
|
||||
@ -74,6 +84,7 @@ class MakerbotWriter(MeshWriter):
|
||||
return None
|
||||
|
||||
def write(self, stream: BufferedIOBase, nodes: List[SceneNode], mode=MeshWriter.OutputMode.BinaryMode) -> bool:
|
||||
metadata, file_format = self._getMeta(nodes)
|
||||
if mode != MeshWriter.OutputMode.BinaryMode:
|
||||
Logger.log("e", "MakerbotWriter does not support text mode.")
|
||||
self.setInformation(catalog.i18nc("@error:not supported", "MakerbotWriter does not support text mode."))
|
||||
@ -92,14 +103,20 @@ class MakerbotWriter(MeshWriter):
|
||||
|
||||
gcode_text_io = StringIO()
|
||||
success = gcode_writer.write(gcode_text_io, None)
|
||||
|
||||
filename, filedata = "", ""
|
||||
# Writing the g-code failed. Then I can also not write the gzipped g-code.
|
||||
if not success:
|
||||
self.setInformation(gcode_writer.getInformation())
|
||||
return False
|
||||
|
||||
json_toolpaths = du.gcode_2_miracle_jtp(gcode_text_io.getvalue())
|
||||
metadata = self._getMeta(nodes)
|
||||
match file_format:
|
||||
case "application/x-makerbot-sketch":
|
||||
filename, filedata = "print.gcode", gcode_text_io.getvalue()
|
||||
self._PNG_FORMATS = self._PNG_FORMAT
|
||||
case "application/x-makerbot":
|
||||
filename, filedata = "print.jsontoolpath", du.gcode_2_miracle_jtp(gcode_text_io.getvalue())
|
||||
self._PNG_FORMATS = self._PNG_FORMAT + self._PNG_FORMAT_METHOD
|
||||
case _:
|
||||
raise Exception("Unsupported Mime type")
|
||||
|
||||
png_files = []
|
||||
for png_format in self._PNG_FORMATS:
|
||||
@ -116,7 +133,7 @@ class MakerbotWriter(MeshWriter):
|
||||
try:
|
||||
with ZipFile(stream, "w", compression=ZIP_DEFLATED) as zip_stream:
|
||||
zip_stream.writestr("meta.json", json.dumps(metadata, indent=4))
|
||||
zip_stream.writestr("print.jsontoolpath", json_toolpaths)
|
||||
zip_stream.writestr(filename, filedata)
|
||||
for png_file in png_files:
|
||||
file, data = png_file["file"], png_file["data"]
|
||||
zip_stream.writestr(file, data)
|
||||
@ -127,7 +144,7 @@ class MakerbotWriter(MeshWriter):
|
||||
|
||||
return True
|
||||
|
||||
def _getMeta(self, root_nodes: List[SceneNode]) -> Dict[str, any]:
|
||||
def _getMeta(self, root_nodes: List[SceneNode]) -> Tuple[Dict[str, any], str]:
|
||||
application = CuraApplication.getInstance()
|
||||
machine_manager = application.getMachineManager()
|
||||
global_stack = machine_manager.activeMachine
|
||||
@ -143,7 +160,9 @@ class MakerbotWriter(MeshWriter):
|
||||
nodes.append(node)
|
||||
|
||||
meta = dict()
|
||||
|
||||
# This is a bit of a "hack", the mime type should be passed through with the export writer but
|
||||
# since this is not the case we get the mime type from the global stack instead
|
||||
file_format = global_stack.definition.getMetaDataEntry("file_formats")
|
||||
meta["bot_type"] = global_stack.definition.getMetaDataEntry("reference_machine_id")
|
||||
|
||||
bounds: Optional[AxisAlignedBox] = None
|
||||
@ -155,7 +174,8 @@ class MakerbotWriter(MeshWriter):
|
||||
bounds = node_bounds
|
||||
else:
|
||||
bounds = bounds + node_bounds
|
||||
|
||||
if file_format == "application/x-makerbot-sketch":
|
||||
bounds = None
|
||||
if bounds is not None:
|
||||
meta["bounding_box"] = {
|
||||
"x_min": bounds.left,
|
||||
@ -196,7 +216,7 @@ class MakerbotWriter(MeshWriter):
|
||||
meta["extruder_temperature"] = materials_temps[0]
|
||||
meta["extruder_temperatures"] = materials_temps
|
||||
|
||||
meta["model_counts"] = [{"count": 1, "name": node.getName()} for node in nodes]
|
||||
meta["model_counts"] = [{"count": len(nodes), "name": "instance0"}]
|
||||
|
||||
tool_types = [extruder.variant.getMetaDataEntry("reference_extruder_id") for extruder in extruders]
|
||||
meta["tool_type"] = tool_types[0]
|
||||
@ -205,12 +225,11 @@ class MakerbotWriter(MeshWriter):
|
||||
meta["version"] = MakerbotWriter._META_VERSION
|
||||
|
||||
meta["preferences"] = dict()
|
||||
for node in nodes:
|
||||
bounds = node.getBoundingBox()
|
||||
meta["preferences"][str(node.getName())] = {
|
||||
"machineBounds": [bounds.right, bounds.back, bounds.left, bounds.front] if bounds is not None else None,
|
||||
"printMode": CuraApplication.getInstance().getIntentManager().currentIntentCategory,
|
||||
}
|
||||
bounds = application.getBuildVolume().getBoundingBox()
|
||||
meta["preferences"]["instance0"] = {
|
||||
"machineBounds": [bounds.right, bounds.back, bounds.left, bounds.front] if bounds is not None else None,
|
||||
"printMode": CuraApplication.getInstance().getIntentManager().currentIntentCategory,
|
||||
}
|
||||
|
||||
meta["miracle_config"] = {"gaggles": {str(node.getName()): {} for node in nodes}}
|
||||
|
||||
@ -245,7 +264,7 @@ class MakerbotWriter(MeshWriter):
|
||||
# platform_temperature
|
||||
# total_commands
|
||||
|
||||
return meta
|
||||
return meta, file_format
|
||||
|
||||
|
||||
def meterToMillimeter(value: float) -> float:
|
||||
|
@ -11,14 +11,23 @@ catalog = i18nCatalog("cura")
|
||||
def getMetaData():
|
||||
file_extension = "makerbot"
|
||||
return {
|
||||
"mesh_writer": {
|
||||
"output": [{
|
||||
"extension": file_extension,
|
||||
"description": catalog.i18nc("@item:inlistbox", "Makerbot Printfile"),
|
||||
"mime_type": "application/x-makerbot",
|
||||
"mode": MakerbotWriter.MakerbotWriter.OutputMode.BinaryMode,
|
||||
}],
|
||||
}
|
||||
"mesh_writer":
|
||||
{
|
||||
"output": [
|
||||
{
|
||||
"extension": file_extension,
|
||||
"description": catalog.i18nc("@item:inlistbox", "Makerbot Printfile"),
|
||||
"mime_type": "application/x-makerbot",
|
||||
"mode": MakerbotWriter.MakerbotWriter.OutputMode.BinaryMode,
|
||||
},
|
||||
{
|
||||
"extension": file_extension,
|
||||
"description": catalog.i18nc("@item:inlistbox", "Makerbot Sketch Printfile"),
|
||||
"mime_type": "application/x-makerbot-sketch",
|
||||
"mode": MakerbotWriter.MakerbotWriter.OutputMode.BinaryMode,
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
BIN
plugins/UM3NetworkPrinting/resources/png/MakerBot Sketch.png
Normal file
BIN
plugins/UM3NetworkPrinting/resources/png/MakerBot Sketch.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 185 KiB |
@ -331,7 +331,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
|
||||
return False
|
||||
|
||||
[printer, *_] = self._printers
|
||||
return printer.type in ("MakerBot Method X", "MakerBot Method XL")
|
||||
return printer.type in ("MakerBot Method X", "MakerBot Method XL", "MakerBot Sketch")
|
||||
|
||||
@pyqtProperty(bool, notify=_cloudClusterPrintersChanged)
|
||||
def supportsPrintJobActions(self) -> bool:
|
||||
|
@ -2,5 +2,6 @@
|
||||
"ultimaker_method": "MakerBot Method",
|
||||
"ultimaker_methodx": "MakerBot Method X",
|
||||
"ultimaker_methodxl": "MakerBot Method XL",
|
||||
"ultimaker_factor4": "Ultimaker Factor 4"
|
||||
"ultimaker_factor4": "Ultimaker Factor 4",
|
||||
"ultimaker_sketch": "MakerBot Sketch"
|
||||
}
|
||||
|
64
resources/conanfile.py
Normal file
64
resources/conanfile.py
Normal file
@ -0,0 +1,64 @@
|
||||
import os
|
||||
|
||||
from conan import ConanFile
|
||||
from conan.tools.files import copy, update_conandata
|
||||
from conan.tools.scm import Version
|
||||
from conan.errors import ConanInvalidConfiguration
|
||||
|
||||
required_conan_version = ">=1.58.0 <2.0.0"
|
||||
|
||||
|
||||
class CuraResource(ConanFile):
|
||||
name = "cura_resources"
|
||||
license = ""
|
||||
author = "UltiMaker"
|
||||
url = "https://github.com/Ultimaker/cura"
|
||||
description = "Cura Resources"
|
||||
topics = ("conan", "cura")
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
no_copy_source = True
|
||||
|
||||
|
||||
@property
|
||||
def _shared_resources(self):
|
||||
return ["definitions", "extruders", "images", "intent", "meshes", "quality", "variants"]
|
||||
|
||||
def set_version(self):
|
||||
if not self.version:
|
||||
self.version = self.conan_data["version"]
|
||||
|
||||
def export(self):
|
||||
copy(self, pattern="conandata.yml", src=os.path.join(self.recipe_folder, ".."), dst=self.export_folder,
|
||||
keep_path=False)
|
||||
copy(self, pattern="LICENSE*", src=os.path.join(self.recipe_folder, ".."), dst=self.export_folder,
|
||||
keep_path=False)
|
||||
update_conandata(self, {"version": self.version})
|
||||
|
||||
def export_sources(self):
|
||||
for shared_resources in self._shared_resources:
|
||||
copy(self, pattern="*", src=os.path.join(self.recipe_folder, shared_resources),
|
||||
dst=os.path.join(self.export_sources_folder, shared_resources))
|
||||
|
||||
def validate(self):
|
||||
if Version(self.version) <= Version("4"):
|
||||
raise ConanInvalidConfiguration("Only versions 5+ are support")
|
||||
|
||||
def layout(self):
|
||||
self.cpp.source.resdirs = self._shared_resources
|
||||
self.cpp.package.resdirs = [f"res/{res}" for res in self._shared_resources]
|
||||
|
||||
def package(self):
|
||||
copy(self, "*", os.path.join(self.export_sources_folder),
|
||||
os.path.join(self.package_folder, "res"))
|
||||
|
||||
def package_info(self):
|
||||
self.cpp_info.includedirs = []
|
||||
self.runenv_info.append_path("CURA_RESOURCES", os.path.join(self.package_folder, "res"))
|
||||
self.runenv_info.append_path("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "definitions"))
|
||||
self.runenv_info.append_path("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "extruders"))
|
||||
self.env_info.CURA_RESOURCES.append(os.path.join(self.package_folder, "res"))
|
||||
self.env_info.CURA_ENGINE_SEARCH_PATH.append(os.path.join(self.package_folder, "res", "definitions"))
|
||||
self.env_info.CURA_ENGINE_SEARCH_PATH.append(os.path.join(self.package_folder, "res", "definitions"))
|
||||
|
||||
def package_id(self):
|
||||
self.info.clear()
|
@ -6868,7 +6868,7 @@
|
||||
"label": "Prime Tower Type",
|
||||
"description": "<html>How to generate the prime tower:<ul><li><b>Normal:</b> create a bucket in which secondary materials are primed</li><li><b>Interleaved:</b> create a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other</li></ul></html>",
|
||||
"type": "enum",
|
||||
"value": "'interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal'",
|
||||
"resolve": "'interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal'",
|
||||
"options":
|
||||
{
|
||||
"normal": "Normal",
|
||||
|
259
resources/definitions/ultimaker_sketch.def.json
Normal file
259
resources/definitions/ultimaker_sketch.def.json
Normal file
@ -0,0 +1,259 @@
|
||||
{
|
||||
"version": 2,
|
||||
"name": "UltiMaker Sketch",
|
||||
"inherits": "ultimaker",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Ultimaker",
|
||||
"manufacturer": "Ultimaker B.V.",
|
||||
"file_formats": "application/x-makerbot-sketch",
|
||||
"platform": "ultimaker_sketch_platform.obj",
|
||||
"exclude_materials": [
|
||||
"dsm_175_novamidid1030cf",
|
||||
"Essentium_175_UltrafuseZPCTG",
|
||||
"imade3d_petg_175",
|
||||
"imade3d_pla_175",
|
||||
"imade3d_petg_green",
|
||||
"imade3d_pla_green",
|
||||
"imade3d_petg_pink",
|
||||
"imade3d_pla_pink",
|
||||
"chromatik_pla",
|
||||
"3D-Fuel_PLA_PRO_Black",
|
||||
"3D-Fuel_PLA_SnapSupport",
|
||||
"bestfilament_abs_skyblue",
|
||||
"bestfilament_petg_orange",
|
||||
"bestfilament_pla_green",
|
||||
"dsm_arnitel2045_175",
|
||||
"dsm_novamid1070_175",
|
||||
"emotiontech_abs",
|
||||
"emotiontech_absx",
|
||||
"emotiontech_acetate",
|
||||
"emotiontech_asax",
|
||||
"emotiontech_bvoh",
|
||||
"emotiontech_copa",
|
||||
"emotiontech_hips",
|
||||
"emotiontech_nylon_1030",
|
||||
"emotiontech_nylon_1030cf",
|
||||
"emotiontech_nylon_1070",
|
||||
"emotiontech_pc",
|
||||
"emotiontech_pekk",
|
||||
"emotiontech_petg",
|
||||
"emotiontech_pla",
|
||||
"emotiontech_pla_hr_870",
|
||||
"emotiontech_pva-m",
|
||||
"emotiontech_pva-s",
|
||||
"emotiontech_tpu98a",
|
||||
"eryone_petg",
|
||||
"eryone_pla",
|
||||
"eryone_pla_glow",
|
||||
"eryone_pla_matte",
|
||||
"eryone_pla_wood",
|
||||
"eryone_tpu",
|
||||
"eSUN_PETG_Black",
|
||||
"eSUN_PETG_Grey",
|
||||
"eSUN_PETG_Purple",
|
||||
"eSUN_PLA_PRO_Black",
|
||||
"eSUN_PLA_PRO_Grey",
|
||||
"eSUN_PLA_PRO_Purple",
|
||||
"eSUN_PLA_PRO_White",
|
||||
"Extrudr_GreenTECPro_Anthracite_175",
|
||||
"Extrudr_GreenTECPro_Black_175",
|
||||
"Extrudr_GreenTECPro_Blue_175",
|
||||
"Extrudr_GreenTECPro_Nature_175",
|
||||
"Extrudr_GreenTECPro_Red_175",
|
||||
"Extrudr_GreenTECPro_Silver_175",
|
||||
"Extrudr_GreenTECPro_White_175",
|
||||
"fabtotum_abs",
|
||||
"fabtotum_nylon",
|
||||
"fabtotum_pla",
|
||||
"fabtotum_tpu",
|
||||
"fdplast_abs_tomato",
|
||||
"fdplast_petg_gray",
|
||||
"fdplast_pla_olive",
|
||||
"filo3d_pla",
|
||||
"filo3d_pla_green",
|
||||
"filo3d_pla_red",
|
||||
"generic_asa_175",
|
||||
"generic_abs_175",
|
||||
"generic_absr_175",
|
||||
"generic_bvoh_175",
|
||||
"generic_cpe_175",
|
||||
"generic_cffpa_175",
|
||||
"generic_hips_175",
|
||||
"generic_nylon_175",
|
||||
"generic_pc_175",
|
||||
"generic_petg_175",
|
||||
"generic_pva_175",
|
||||
"generic_rapidrinse_175",
|
||||
"generic_sr30_175",
|
||||
"generic_tpu_175",
|
||||
"goofoo_abs",
|
||||
"goofoo_asa",
|
||||
"goofoo_bronze_pla",
|
||||
"goofoo_emarble_pla",
|
||||
"goofoo_esilk_pla",
|
||||
"goofoo_hips",
|
||||
"goofoo_pa",
|
||||
"goofoo_pa_cf",
|
||||
"goofoo_pc",
|
||||
"goofoo_peek",
|
||||
"goofoo_petg",
|
||||
"goofoo_pla",
|
||||
"goofoo_pva",
|
||||
"goofoo_tpe_83a",
|
||||
"goofoo_tpu_87a",
|
||||
"goofoo_tpu_95a",
|
||||
"goofoo_wood_pla",
|
||||
"ideagen3D_ToughPLA",
|
||||
"imade3d_petg_175",
|
||||
"imade3d_pla_175",
|
||||
"innofill_innoflex60_175",
|
||||
"layer_one_black_pla",
|
||||
"layer_one_dark_gray_pla",
|
||||
"layer_one_white_pla",
|
||||
"leapfrog_abs_natural",
|
||||
"leapfrog_epla_natural",
|
||||
"leapfrog_pva_natural",
|
||||
"polyflex_pla",
|
||||
"polymax_pla",
|
||||
"polyplus_pla",
|
||||
"polywood_pla",
|
||||
"redd_abs",
|
||||
"redd_asa",
|
||||
"redd_hips",
|
||||
"redd_nylon",
|
||||
"redd_petg",
|
||||
"redd_pla",
|
||||
"redd_tpe",
|
||||
"tizyx_abs",
|
||||
"tizyx_flex",
|
||||
"tizyx_petg",
|
||||
"tizyx_pla",
|
||||
"tizyx_pla_bois",
|
||||
"tizyx_pva",
|
||||
"verbatim_bvoh_175",
|
||||
"Vertex_Delta_ABS",
|
||||
"Vertex_Delta_PET",
|
||||
"Vertex_Delta_PLA",
|
||||
"Vertex_Delta_PLA_Glitter",
|
||||
"Vertex_Delta_PLA_Mat",
|
||||
"Vertex_Delta_PLA_Satin",
|
||||
"Vertex_Delta_PLA_Wood",
|
||||
"Vertex_Delta_TPU",
|
||||
"volumic_abs_ultra",
|
||||
"volumic_arma_ultra",
|
||||
"volumic_asa_ultra",
|
||||
"volumic_br80_ultra",
|
||||
"volumic_bumper_ultra",
|
||||
"volumic_cu80_ultra",
|
||||
"volumic_flex93_ultra",
|
||||
"volumic_medical_ultra",
|
||||
"volumic_nylon_ultra",
|
||||
"volumic_pekk_carbone",
|
||||
"volumic_petgcarbone_ultra",
|
||||
"volumic_petg_ultra",
|
||||
"volumic_pla_ultra",
|
||||
"volumic_pp_ultra",
|
||||
"volumic_strong_ultra",
|
||||
"volumic_support_ultra",
|
||||
"xyzprinting_abs",
|
||||
"xyzprinting_antibact_pla",
|
||||
"xyzprinting_carbon_fiber",
|
||||
"xyzprinting_colorinkjet_pla",
|
||||
"xyzprinting_flexible",
|
||||
"xyzprinting_metallic_pla",
|
||||
"xyzprinting_nylon",
|
||||
"xyzprinting_pahtcf15",
|
||||
"xyzprinting_pc",
|
||||
"xyzprinting_petcf15",
|
||||
"xyzprinting_petg",
|
||||
"xyzprinting_pla",
|
||||
"xyzprinting_ppgf30",
|
||||
"xyzprinting_tough_pla",
|
||||
"xyzprinting_tpu",
|
||||
"zyyx_pro_flex",
|
||||
"zyyx_pro_pla",
|
||||
"octofiber_pla",
|
||||
"fiberlogy_hd_pla"
|
||||
],
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"has_variants": false,
|
||||
"machine_extruder_trains": { "0": "ultimaker_sketch_extruder" },
|
||||
"platform_offset": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"platform_texture": "MakerbotSketch.png",
|
||||
"preferred_quality_type": "draft",
|
||||
"preferred_variant_name": "0.4mm",
|
||||
"reference_machine_id": "sketch",
|
||||
"supports_network_connection": true,
|
||||
"supports_usb_connection": false,
|
||||
"variant_definition": "ultimaker_sketch",
|
||||
"variants_name": "Extruder",
|
||||
"weight": -1
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"acceleration_enabled": { "value": false },
|
||||
"adhesion_type": { "value": "'raft'" },
|
||||
"brim_width": { "value": "3" },
|
||||
"cool_fan_speed": { "value": "100" },
|
||||
"extruder_prime_pos_abs": { "default_value": true },
|
||||
"gantry_height": { "value": "60" },
|
||||
"infill_overlap": { "value": 15 },
|
||||
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'triangles'" },
|
||||
"infill_sparse_density": { "value": 15 },
|
||||
"jerk_enabled": { "value": false },
|
||||
"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_center_is_zero": { "default_value": true },
|
||||
"machine_depth": { "default_value": 150 },
|
||||
"machine_end_gcode": { "default_value": "M107; Disable Fan; \n; End of print; \n; End GCode\nM104 S0 T0; Set Toolhead Temp to 0\nM140 S0 T0; Set Platform Temp to 0\nG162 Z F1800; Move to max axes position\nG28 X Y; Home\nM652; Turn off back fan\nM132 X Y Z A B; Set Home Position\nG91; Use Relative Positioning\nM18; Disable Axes\n\n" },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_gcode_flavor": { "default_value": "Griffin" },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_height": { "default_value": 150 },
|
||||
"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" },
|
||||
"machine_name": { "default_value": "UltiMaker Sketch" },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
|
||||
"machine_start_gcode": { "default_value": "M140 S50 T0; Set Platform Temp\nM104 S220 T0; Set Extruder Temp\nG90; Use Absolute Positioning\nG28; Home\nM132 X Y Z A B; Set Current Position to Home\nG161 X Y F3300; Move to min axes positions\nM7 T0; Wait For Platform to Heat\nM6 T0; Wait For Extruders to Heat\nM651; Turn on back fan\nM907 X100 Y100 Z40 A80 B20; Set Stepper Currents\nM106; Enable Cooling Fan\n; Purge Line\nG92 E0; Reset Extruder Axis Position\nG1 X-26.18 Y-75.90 Z0.200 F420\nG1 X26.18 Y-75.90 E10\nG92 E0; Reset Extruder Axis Position\n; Start GCode\n" },
|
||||
"machine_width": { "default_value": 150 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"material_flow": { "default_value": 109 },
|
||||
"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'"
|
||||
},
|
||||
"raft_margin": { "value": "5" },
|
||||
"retraction_amount": { "value": "5.5" },
|
||||
"retraction_prime_speed": { "value": "15" },
|
||||
"retraction_speed": { "value": "25" },
|
||||
"speed_print": { "value": 60 },
|
||||
"speed_support": { "value": "0.7 * speed_print" },
|
||||
"speed_support_interface": { "value": "speed_topbottom" },
|
||||
"speed_topbottom": { "value": "0.7 * speed_print" },
|
||||
"speed_travel": { "value": 80 },
|
||||
"speed_wall": { "value": "0.7 * speed_print" },
|
||||
"speed_wall_0": { "value": "0.5 * speed_print " },
|
||||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"speed_z_hop": { "value": 7 },
|
||||
"support_angle": { "value": "45" },
|
||||
"top_bottom_thickness": { "value": "4 * layer_height" },
|
||||
"travel_avoid_distance": { "value": "machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
||||
"wall_0_inset": { "value": "0" },
|
||||
"wall_thickness": { "value": "2 * machine_nozzle_size" },
|
||||
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }
|
||||
}
|
||||
}
|
22
resources/extruders/ultimaker_sketch_extruder.def.json
Normal file
22
resources/extruders/ultimaker_sketch_extruder.def.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"version": 2,
|
||||
"name": "Extruder",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "ultimaker_sketch",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 0,
|
||||
"maximum_value": "1"
|
||||
},
|
||||
"machine_nozzle_offset_x": { "default_value": 0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
BIN
resources/images/MakerbotSketch.png
Normal file
BIN
resources/images/MakerbotSketch.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
12393
resources/meshes/ultimaker_sketch_platform.obj
Normal file
12393
resources/meshes/ultimaker_sketch_platform.obj
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,15 @@
|
||||
[general]
|
||||
definition = ultimaker_factor4
|
||||
name = Normal
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
global_quality = True
|
||||
quality_type = fast
|
||||
setting_version = 23
|
||||
type = quality
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
layer_height = =round(0.15 * material_shrinkage_percentage_z / 100, 5)
|
||||
|
@ -0,0 +1,14 @@
|
||||
[general]
|
||||
definition = ultimaker_sketch
|
||||
name = Fast
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
material = generic_pla_175
|
||||
quality_type = draft
|
||||
setting_version = 23
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
|
@ -0,0 +1,14 @@
|
||||
[general]
|
||||
definition = ultimaker_sketch
|
||||
name = Fast
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
material = generic_tough_pla_175
|
||||
quality_type = draft
|
||||
setting_version = 23
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
|
@ -0,0 +1,15 @@
|
||||
[general]
|
||||
definition = ultimaker_sketch
|
||||
name = Fast
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
global_quality = True
|
||||
quality_type = draft
|
||||
setting_version = 23
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.2
|
||||
|
15
resources/variants/ultimaker_sketch_0.4mm.inst.cfg
Normal file
15
resources/variants/ultimaker_sketch_0.4mm.inst.cfg
Normal file
@ -0,0 +1,15 @@
|
||||
[general]
|
||||
definition = ultimaker_sketch
|
||||
name = 0.4mm
|
||||
version = 4
|
||||
|
||||
[metadata]
|
||||
hardware_type = nozzle
|
||||
reference_extruder_id = sketch_extruder
|
||||
setting_version = 23
|
||||
type = variant
|
||||
|
||||
[values]
|
||||
machine_nozzle_id = 0.4mm
|
||||
machine_nozzle_size = 0.4
|
||||
|
Loading…
x
Reference in New Issue
Block a user