Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Profile improvements Method #17197

Closed
wants to merge 57 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
76c6de6
Created profile for Neptune 4 Pro
Ev1dentFir3 Aug 29, 2023
6aeb59e
Refactor object reload to handle 3mf files
pietchaki Aug 29, 2023
1ec0896
Fix: elegoo_neptune_4pro.def.json
Ev1dentFir3 Aug 30, 2023
7494c8a
Add missing variants
fuji97 Sep 25, 2023
af3562a
Fix Elegoo Neptune 4 Pro 0.20 variant name
fuji97 Sep 25, 2023
6d0e0f2
Add support for ELEGOO Neptune 4
mastercaution Sep 26, 2023
f8ea666
EN4 Improve print time estimation
mastercaution Sep 28, 2023
952a704
EN4 tune visual profiles
mastercaution Sep 28, 2023
7bc22a0
EN4 fine-tune profiles
mastercaution Sep 29, 2023
7b6827e
EN4 definition inherits elegoo_base
mastercaution Sep 30, 2023
ab3d44d
EN4 Fix print one at a time
mastercaution Sep 30, 2023
2074bf4
EN4 Remove obsolete extruder defintion
mastercaution Sep 30, 2023
aa9bdaa
EN4 Add Neptune 4 Pro definition
mastercaution Sep 30, 2023
4aafc04
EN4 Fix missing extruder error
mastercaution Oct 1, 2023
e515537
EN4 Add materials generic ABS, ASA, PETG, TPU
mastercaution Oct 1, 2023
d73b5cb
EN4 Run printer-linter
mastercaution Oct 3, 2023
39a3a73
Revert old definitions
fuji97 Oct 4, 2023
1d0784f
Merge remote-tracking branch 'origin/mastercaution/elegoo_neptune_4_s…
fuji97 Oct 4, 2023
05facee
EN4 Remove redundancies in definition
mastercaution Oct 4, 2023
59c5856
EN4 Fix directory names for `clang-tidy`
mastercaution Oct 5, 2023
2d3219f
Merge remote-tracking branch 'origin/mastercaution/elegoo_neptune_4_s…
fuji97 Oct 8, 2023
ae50a04
EN4 Remove ineffective default values
mastercaution Oct 9, 2023
2fb3b44
Merge remote-tracking branch 'origin/mastercaution/elegoo_neptune_4_s…
fuji97 Oct 9, 2023
93f2171
Merge branch 'main' into object-reload-refactor
pietchaki Oct 13, 2023
cf78ae0
Method printers method, methodx, methodxl read from cloud
saumyaj3 Oct 26, 2023
37e2364
fix for functions
saumyaj3 Oct 27, 2023
3dd4ef7
printer firmware version is major and minor in case of makerbot
saumyaj3 Oct 27, 2023
9754940
Merge branch 'main' into definitions/neptune4pro
saumyaj3 Oct 27, 2023
1cc7ce7
Message to show user when cloud printer is not available
saumyaj3 Oct 27, 2023
a247e81
Merge branch 'main' into CURA-11138-makerbot-cloud-printing
saumyaj3 Oct 30, 2023
3bfc0af
For makerbot files upload in cloud
saumyaj3 Oct 30, 2023
b3bbb88
Merge branch 'main' into CURA-11138-makerbot-cloud-printing
saumyaj3 Oct 30, 2023
c2e2511
Makerbot machine firmware version set to min of 2.700
saumyaj3 Oct 30, 2023
39ec9c9
printertype Parsing function made static
saumyaj3 Oct 30, 2023
1a139f4
parsing method printer nozzles
saumyaj3 Oct 30, 2023
ce132e4
Function name changed to make it a bit generic
saumyaj3 Oct 31, 2023
75feb5a
Don't create abstract printers if visibility is set to false
casperlamboo Oct 31, 2023
0c3f71e
Merge branch 'main' into CURA-11138-makerbot-cloud-printing
saumyaj3 Oct 31, 2023
3e50cee
Bump to 5.7.0-alpha
jellespijker Oct 31, 2023
02326cf
Merge branch '5.6'
jellespijker Oct 31, 2023
fc3985e
Merge branch '5.6'
jellespijker Nov 1, 2023
56e4f3f
Update scheduled event conditions in installers.yml
jellespijker Nov 1, 2023
91d08a2
Merge branch 'main' into CURA-11138-makerbot-cloud-printing
saumyaj3 Nov 1, 2023
8f35c60
Update daily schedule and conditional logic in installers workflow
jellespijker Nov 1, 2023
7ce91f5
material translation, saving to .makerbot on cloud by default when Me…
saumyaj3 Nov 1, 2023
40d91a7
material translation, saving to .makerbot on cloud by default when Me…
saumyaj3 Nov 1, 2023
08ebf31
Merge branch 'main' into CURA-11138-makerbot-cloud-printing
saumyaj3 Nov 1, 2023
3029e30
Merge branch 'main' into definitions/neptune4pro
saumyaj3 Nov 1, 2023
2a81d57
Refactor GitHub actions workflow and improve environment handling
jellespijker Nov 1, 2023
f31980d
Merge branch 'main' into object-reload-refactor
saumyaj3 Nov 1, 2023
82d0bf4
Merge pull request #17149 from Ultimaker/CURA-11138-makerbot-cloud-pr…
rburema Nov 1, 2023
fb3ab93
Merge branch 'main' into definitions/neptune4pro
saumyaj3 Nov 1, 2023
3561b12
Merge pull request #16819 from fuji97/definitions/neptune4pro
saumyaj3 Nov 1, 2023
3121766
Merge pull request #16610 from pietchaki/object-reload-refactor
saumyaj3 Nov 1, 2023
1292432
Merge branch '5.6'
casperlamboo Nov 2, 2023
107c9b7
Merge branch '5.6'
wawanbreton Nov 3, 2023
572d025
- Disable fan for RapidRinse
pkuiper-ultimaker Nov 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 47 additions & 36 deletions .github/workflows/installers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,23 @@ on:
type: boolean

schedule:
# Daily at 4:15 CET (main-branch) and 9:15 CET (release-branch)
- cron: '15 2 * * *'
- cron: '15 8 * * *'
# Daily at 4:15 CET (main-branch) and 5:15 CET (release-branch)
- cron: '15 3 * * *'
- cron: '15 4 * * *'

env:
CURA_CONAN_VERSION: ${{ inputs.cura_conan_version || 'cura/latest@ultimaker/testing' }}
CONAN_ARGS: ${{ inputs.conan_args || '' }}
ENTERPRISE: ${{ inputs.enterprise || false }}
STAGING: ${{ inputs.staging || false }}
LATEST_RELEASE: '5.6'
LATEST_RELEASE_SCHEDULE_HOUR: 4

jobs:
default-values:
default_values:
runs-on: ubuntu-latest
outputs:
cura_conan_version: ${{ steps.default.outputs.cura_conan_version }}
release_tag: ${{ steps.default.outputs.release_tag }}

steps:
- name: Output default values
Expand All @@ -54,17 +56,15 @@ jobs:
run: |
import os
import datetime
cura_conan_version = "cura/latest@ultimaker/testing"
release_tag = "nightly"

# Get current UTC time
now = datetime.datetime.utcnow()

# Check if current hour is 8
if now.hour == 8:
cura_conan_version = "cura/latest@ultimaker/stable"
release_tag = "nightly-5.6"


if "${{ github.event_name }}" != "schedule":
cura_conan_version = "${{ github.event.inputs.cura_conan_version }}"
else:
now = datetime.datetime.now()
cura_conan_version = "cura/latest@ultimaker/stable" if now.hour == int(os.environ['LATEST_RELEASE_SCHEDULE_HOUR']) else "cura/latest@ultimaker/testing"

release_tag = f"nightly-{os.environ['LATEST_RELEASE']}" if "/stable" in cura_conan_version else "nightly"

# Set cura_conan_version environment variable
output_env = os.environ["GITHUB_OUTPUT"]
content = ""
Expand All @@ -76,11 +76,22 @@ jobs:
f.writelines(f"cura_conan_version={cura_conan_version}\n")
f.writelines(f"release_tag={release_tag}\n")

summary_env = os.environ["GITHUB_STEP_SUMMARY"]
content = ""
if os.path.exists(summary_env):
with open(summary_env, "r") as f:
content = f.read()

with open(summary_env, "w") as f:
f.write(content)
f.writelines(f"# cura_conan_version = {cura_conan_version}\n")
f.writelines(f"# release_tag = {release_tag}\n")

windows-installer:
uses: ./.github/workflows/windows.yml
needs: [ default-values ]
needs: [ default_values ]
with:
cura_conan_version: ${{ needs.default-values.outputs.cura_conan_version }}
cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }}
conan_args: ${{ github.event.inputs.conan_args }}
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
staging: ${{ github.event.inputs.staging == 'true' }}
Expand All @@ -90,9 +101,9 @@ jobs:

linux-installer:
uses: ./.github/workflows/linux.yml
needs: [ default-values ]
needs: [ default_values ]
with:
cura_conan_version: ${{ needs.default-values.outputs.cura_conan_version }}
cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }}
conan_args: ${{ github.event.inputs.conan_args }}
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
staging: ${{ github.event.inputs.staging == 'true' }}
Expand All @@ -102,9 +113,9 @@ jobs:

macos-installer:
uses: ./.github/workflows/macos.yml
needs: [ default-values ]
needs: [ default_values ]
with:
cura_conan_version: ${{ needs.default-values.outputs.cura_conan_version }}
cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }}
conan_args: ${{ github.event.inputs.conan_args }}
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
staging: ${{ github.event.inputs.staging == 'true' }}
Expand All @@ -114,9 +125,9 @@ jobs:

macos-arm-installer:
uses: ./.github/workflows/macos.yml
needs: [ default-values ]
needs: [ default_values ]
with:
cura_conan_version: ${{ needs.default-values.outputs.cura_conan_version }}
cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }}
conan_args: ${{ github.event.inputs.conan_args }}
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
staging: ${{ github.event.inputs.staging == 'true' }}
Expand All @@ -128,7 +139,7 @@ jobs:
update-nightly-release:
if: ${{ inputs.nightly || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
needs: [ windows-installer, linux-installer, macos-installer, macos-arm-installer ]
needs: [ default_values, windows-installer, linux-installer, macos-installer, macos-arm-installer ]
steps:
- name: Checkout
uses: actions/checkout@v3
Expand Down Expand Up @@ -196,8 +207,8 @@ jobs:

- name: Update nightly release for Linux
run: |
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage --clobber
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage.asc --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage.asc --clobber
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -220,8 +231,8 @@ jobs:

- name: Update nightly release for Windows
run: |
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.msi --clobber
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.exe --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.msi --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.exe --clobber
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -244,8 +255,8 @@ jobs:

- name: Update nightly release for MacOS (X64)
run: |
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.dmg --clobber
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.pkg --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.dmg --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.pkg --clobber
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -268,8 +279,8 @@ jobs:

- name: Update nightly release for MacOS (ARM-64)
run: |
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.dmg --clobber
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.pkg --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.dmg --clobber
gh release upload ${{ needs.default_values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.pkg --clobber
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -283,17 +294,17 @@ jobs:
with open(".github/workflows/release-notes.md.jinja", "r") as f:
release_notes = Template(f.read())

current_nightly_beta = "${{ needs.default-values.outputs.release_tag }}".split("nightly-")[-1]
current_nightly_beta = "${{ needs.default_values.outputs.release_tag }}".split("nightly-")[-1]
with open("release-notes.md", "w") as f:
f.write(release_notes.render(
timestamp=${{ steps.filename.outputs.NIGHTLY_TIME }},
branch="" if ${{ needs.default-values.outputs.release_tag == 'nightly' }} else current_nightly_beta,
branch="" if ${{ needs.default_values.outputs.release_tag == 'nightly' }} else current_nightly_beta,
branch_specific="" if os.getenv("GITHUB_REF") == "refs/heads/main" else f"?branch={current_nightly_beta}",
))

- name: Update nightly release description (with date)
if: always()
run: |
gh release edit ${{ needs.default-values.outputs.release_tag }} --title "${{ steps.filename.outputs.NIGHTLY_NAME }}" --notes-file release-notes.md
gh release edit ${{ needs.default_values.outputs.release_tag }} --title "${{ steps.filename.outputs.NIGHTLY_NAME }}" --notes-file release-notes.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4 changes: 2 additions & 2 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class CuraConan(ConanFile):

def set_version(self):
if not self.version:
self.version = "5.6.0-beta.1"
self.version = "5.7.0-alpha"

@property
def _pycharm_targets(self):
Expand Down Expand Up @@ -301,7 +301,7 @@ def requirements(self):
self.requires("zlib/1.2.13")
self.requires("pyarcus/5.3.0")
self.requires("dulcificum/(latest)@ultimaker/stable")
self.requires("curaengine/(latest)@ultimaker/stable")
self.requires("curaengine/(latest)@ultimaker/testing")
self.requires("pysavitar/5.3.0")
self.requires("pynest2d/5.3.0")
self.requires("curaengine_plugin_gradual_flow/0.1.0")
Expand Down
67 changes: 42 additions & 25 deletions cura/CuraApplication.py
Original file line number Diff line number Diff line change
Expand Up @@ -1555,15 +1555,14 @@ def reloadAll(self) -> None:
Logger.log("w", "Unable to reload data because we don't have a filename.")

for file_name, nodes in objects_in_filename.items():
for node in nodes:
file_path = os.path.normpath(os.path.dirname(file_name))
job = ReadMeshJob(file_name, add_to_recent_files = file_path != tempfile.gettempdir()) # Don't add temp files to the recent files list
job._node = node # type: ignore
job.finished.connect(self._reloadMeshFinished)
if has_merged_nodes:
job.finished.connect(self.updateOriginOfMergedMeshes)

job.start()
file_path = os.path.normpath(os.path.dirname(file_name))
job = ReadMeshJob(file_name,
add_to_recent_files=file_path != tempfile.gettempdir()) # Don't add temp files to the recent files list
job._nodes = nodes # type: ignore
job.finished.connect(self._reloadMeshFinished)
if has_merged_nodes:
job.finished.connect(self.updateOriginOfMergedMeshes)
job.start()

@pyqtSlot("QStringList")
def setExpandedCategories(self, categories: List[str]) -> None:
Expand Down Expand Up @@ -1735,9 +1734,10 @@ def _onActiveMachineChanged(self):

def _reloadMeshFinished(self, job) -> None:
"""
Function called whenever a ReadMeshJob finishes in the background. It reloads a specific node object in the
Function called when ReadMeshJob finishes reloading a file in the background, then update node objects in the
scene from its source file. The function gets all the nodes that exist in the file through the job result, and
then finds the scene node that it wants to refresh by its object id. Each job refreshes only one node.
then finds the scene nodes that need to be refreshed by their name. Each job refreshes all nodes of a file.
Nodes that are not present in the updated file are kept in the scene.

:param job: The :py:class:`Uranium.UM.ReadMeshJob.ReadMeshJob` running in the background that reads all the
meshes in a file
Expand All @@ -1747,21 +1747,37 @@ def _reloadMeshFinished(self, job) -> None:
if len(job_result) == 0:
Logger.log("e", "Reloading the mesh failed.")
return
object_found = False
mesh_data = None
renamed_nodes = {} # type: Dict[str, int]
# Find the node to be refreshed based on its id
for job_result_node in job_result:
if job_result_node.getId() == job._node.getId():
mesh_data = job_result_node.getMeshData()
object_found = True
break
if not object_found:
Logger.warning("The object with id {} no longer exists! Keeping the old version in the scene.".format(job_result_node.getId()))
return
if not mesh_data:
Logger.log("w", "Could not find a mesh in reloaded node.")
return
job._node.setMeshData(mesh_data)
mesh_data = job_result_node.getMeshData()
if not mesh_data:
Logger.log("w", "Could not find a mesh in reloaded node.")
continue

# Solves issues with object naming
result_node_name = job_result_node.getName()
if not result_node_name:
result_node_name = os.path.basename(mesh_data.getFileName())
if result_node_name in renamed_nodes: # objects may get renamed by ObjectsModel._renameNodes() when loaded
renamed_nodes[result_node_name] += 1
result_node_name = "{0}({1})".format(result_node_name, renamed_nodes[result_node_name])
else:
renamed_nodes[job_result_node.getName()] = 0

# Find the matching scene node to replace
scene_node = None
for replaced_node in job._nodes:
if replaced_node.getName() == result_node_name:
scene_node = replaced_node
break

if scene_node:
scene_node.setMeshData(mesh_data)
else:
# Current node is a new one in the file, or it's name has changed
# TODO: Load this mesh into the scene. Also alter the "_reloadJobFinished" action in UM.Scene
Logger.log("w", "Could not find matching node for object '{0}' in the scene.".format(result_node_name))

def _openFile(self, filename):
self.readLocalFile(QUrl.fromLocalFile(filename))
Expand Down Expand Up @@ -1948,7 +1964,8 @@ def _readMeshFinished(self, job):
node.scale(original_node.getScale())

node.setSelectable(True)
node.setName(os.path.basename(file_name))
if not node.getName():
node.setName(os.path.basename(file_name))
self.getBuildVolume().checkBoundsAndUpdate(node)

is_non_sliceable = "." + file_extension in self._non_sliceable_extensions
Expand Down
3 changes: 3 additions & 0 deletions cura/Machines/Models/CompatibleMachineModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ def _makeMaterial(brand, name, color):
for output_device in machine_manager.printerOutputDevices:
for printer in output_device.printers:
extruder_configs = dict()
# If the printer name already exist in the queue skip it
if printer.name in [item["name"] for item in self.items]:
continue

# initialize & add current active material:
for extruder in printer.extruders:
Expand Down
15 changes: 14 additions & 1 deletion cura/PrinterOutput/Models/ExtruderConfigurationModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,22 @@ def material(self) -> Optional[MaterialOutputModel]:

def setHotendID(self, hotend_id: Optional[str]) -> None:
if self._hotend_id != hotend_id:
self._hotend_id = hotend_id
self._hotend_id = ExtruderConfigurationModel.applyNameMappingHotend(hotend_id)
self.extruderConfigurationChanged.emit()

@staticmethod
def applyNameMappingHotend(hotendId) -> str:
_EXTRUDER_NAME_MAP = {
"mk14_hot":"1XA",
"mk14_hot_s":"2XA",
"mk14_c":"1C",
"mk14":"1A",
"mk14_s":"2A"
}
if hotendId in _EXTRUDER_NAME_MAP:
return _EXTRUDER_NAME_MAP[hotendId]
return hotendId

@pyqtProperty(str, fset = setHotendID, notify = extruderConfigurationChanged)
def hotendID(self) -> Optional[str]:
return self._hotend_id
Expand Down
32 changes: 31 additions & 1 deletion cura/PrinterOutput/Models/MaterialOutputModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
class MaterialOutputModel(QObject):
def __init__(self, guid: Optional[str], type: str, color: str, brand: str, name: str, parent = None) -> None:
super().__init__(parent)
self._guid = guid

name, guid = MaterialOutputModel.getMaterialFromDefinition(guid,type, brand, name)
self._guid =guid
self._type = type
self._color = color
self._brand = brand
Expand All @@ -19,6 +21,34 @@ def __init__(self, guid: Optional[str], type: str, color: str, brand: str, name:
def guid(self) -> str:
return self._guid if self._guid else ""

@staticmethod
def getMaterialFromDefinition(guid, type, brand, name):

_MATERIAL_MAP = { "abs" :{"name" :"abs_175" ,"guid": "2780b345-577b-4a24-a2c5-12e6aad3e690"},
"abs-wss1" :{"name" :"absr_175" ,"guid": "88c8919c-6a09-471a-b7b6-e801263d862d"},
"asa" :{"name" :"asa_175" ,"guid": "416eead4-0d8e-4f0b-8bfc-a91a519befa5"},
"nylon-cf" :{"name" :"cffpa_175" ,"guid": "85bbae0e-938d-46fb-989f-c9b3689dc4f0"},
"nylon" :{"name" :"nylon_175" ,"guid": "283d439a-3490-4481-920c-c51d8cdecf9c"},
"pc" :{"name" :"pc_175" ,"guid": "62414577-94d1-490d-b1e4-7ef3ec40db02"},
"petg" :{"name" :"petg_175" ,"guid": "69386c85-5b6c-421a-bec5-aeb1fb33f060"},
"pla" :{"name" :"pla_175" ,"guid": "0ff92885-617b-4144-a03c-9989872454bc"},
"pva" :{"name" :"pva_175" ,"guid": "a4255da2-cb2a-4042-be49-4a83957a2f9a"},
"wss1" :{"name" :"rapidrinse_175","guid": "a140ef8f-4f26-4e73-abe0-cfc29d6d1024"},
"sr30" :{"name" :"sr30_175" ,"guid": "77873465-83a9-4283-bc44-4e542b8eb3eb"},
"im-pla" :{"name" :"tough_pla_175" ,"guid": "96fca5d9-0371-4516-9e96-8e8182677f3c"},
"bvoh" :{"name" :"bvoh_175" ,"guid": "923e604c-8432-4b09-96aa-9bbbd42207f4"},
"cpe" :{"name" :"cpe_175" ,"guid": "da1872c1-b991-4795-80ad-bdac0f131726"},
"hips" :{"name" :"hips_175" ,"guid": "a468d86a-220c-47eb-99a5-bbb47e514eb0"},
"tpu" :{"name" :"tpu_175" ,"guid": "19baa6a9-94ff-478b-b4a1-8157b74358d2"}
}


if guid is None and brand is not "empty" and type in _MATERIAL_MAP:
name = _MATERIAL_MAP[type]["name"]
guid = _MATERIAL_MAP[type]["guid"]
return name, guid


@pyqtProperty(str, constant = True)
def type(self) -> str:
return self._type
Expand Down
Loading
Loading