Merge branch '2.1'

Conflicts:
	plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py
	plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py
	plugins/USBPrinting/PrinterConnection.py
	resources/machines/fdmprinter.json
	resources/profiles/ultimaker2+/abs_0.4_high.curaprofile
This commit is contained in:
Ghostkeeper 2016-03-17 15:24:00 +01:00
commit de9a66e1f4
47 changed files with 248 additions and 154 deletions

View file

@ -47,25 +47,41 @@ if(NOT ${URANIUM_SCRIPTS_DIR} STREQUAL "")
add_custom_command(TARGET translations POST_BUILD COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/resources/i18n/${lang}/LC_MESSAGES/ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ARGS ${po_file} -o ${mo_file} -f)
endforeach()
endforeach()
install(DIRECTORY ${CMAKE_BINARY_DIR}/resources DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
install(DIRECTORY ${CMAKE_BINARY_DIR}/resources
DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
endif()
endif()
find_package(PythonInterp 3.4.0 REQUIRED)
install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
install(DIRECTORY plugins DESTINATION lib/cura)
install(FILES cura_app.py DESTINATION ${CMAKE_INSTALL_BINDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(DIRECTORY resources
DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
install(DIRECTORY plugins
DESTINATION lib/cura)
if(NOT APPLE AND NOT WIN32)
install(DIRECTORY cura DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages/cura)
install(FILES cura.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES cura_app.py
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
RENAME cura)
install(DIRECTORY cura
DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages
FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages/cura)
install(FILES cura.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES cura.sharedmimeinfo
DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/
RENAME cura.xml )
else()
install(DIRECTORY cura DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/cura)
install(FILES cura_app.py
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(DIRECTORY cura
DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages
FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/cura)
endif()
include(CPackConfig.cmake)

View file

@ -1,12 +1,12 @@
[Desktop Entry]
Version=15.06.01
Version=1
Name=Cura
Name[de]=Cura
GenericName=3D Printing Software
GenericName[de]=3D-Druck-Software
Comment=
Exec=/usr/bin/cura_app.py %f
TryExec=/usr/bin/cura_app.py %f
Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great.
Exec=/usr/bin/cura %F
TryExec=/usr/bin/cura
Icon=/usr/share/cura/resources/images/cura-icon.png
Terminal=false
Type=Application

View file

@ -89,8 +89,6 @@ class PlatformPhysics:
job.start()
node.callDecoration("setConvexHullJob", job)
elif Selection.isSelected(node):
pass
elif Preferences.getInstance().getValue("physics/automatic_push_free"):
# Check for collisions between convex hulls
for other_node in BreadthFirstIterator(root):

View file

@ -157,6 +157,7 @@ class CuraEngineBackend(Backend):
self._process = None
except: # terminating a process that is already terminating causes an exception, silently ignore this.
pass
Logger.log("d", "Engine process is killed")
def _onStartSliceCompleted(self, job):
if job.getError() or job.getResult() != True:

View file

@ -105,7 +105,7 @@ class StartSliceJob(Job):
Logger.log("d", "Sending data to engine for slicing.")
self._socket.sendMessage(slice_message)
Logger.log("d", "Sending data to engine is completed")
self.setResult(True)
def _expandGcodeTokens(self, key, value, settings):

View file

@ -8,7 +8,6 @@
"layer_height": "layer_height",
"layer_height_0": "bottom_thickness",
"wall_thickness": "wall_thickness",
"top_bottom_thickness": "solid_layer_thickness",
"top_thickness": "0 if (solid_top == \"False\") else solid_layer_thickness",
"bottom_thickness": "0 if (solid_bottom == \"False\") else solid_layer_thickness",
"infill_sparse_density": "fill_density",

View file

@ -237,7 +237,7 @@ Item {
delegate: ToolButton {
id: button;
x: model.depth * UM.Theme.getSize("default_margin").width;
x: model.visible_depth * UM.Theme.getSize("default_margin").width;
text: model.name;
tooltip: model.description;
visible: !model.global_only

View file

@ -25,6 +25,7 @@ class RemovableDriveOutputDevice(OutputDevice):
self._writing = False
def requestWrite(self, node, file_name = None, filter_by_machine = False):
filter_by_machine = True # This plugin is indended to be used by machine (regardless of what it was told to do)
if self._writing:
raise OutputDeviceError.DeviceBusyError()

View file

@ -6,9 +6,10 @@ import time
from UM.Message import Message
from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin
from UM.Logger import Logger
from . import RemovableDriveOutputDevice
from UM.Logger import Logger
from UM.i18n import i18nCatalog
catalog = i18nCatalog("cura")
@ -37,11 +38,14 @@ class RemovableDrivePlugin(OutputDevicePlugin):
def ejectDevice(self, device):
try:
Logger.log("i", "Attempting to eject the device")
result = self.performEjectDevice(device)
except Exception as e:
Logger.log("e", "Ejection failed due to: %s" % str(e))
result = False
if result:
Logger.log("i", "Succesfully ejected the device")
message = Message(catalog.i18nc("@info:status", "Ejected {0}. You can now safely remove the drive.").format(device.getName()))
message.show()
else:

View file

@ -10,6 +10,9 @@ from . import RemovableDrivePlugin
import string
import ctypes
from UM.i18n import i18nCatalog
catalog = i18nCatalog("cura")
# WinAPI Constants that we need
# Hardcoded here due to stupid WinDLL stuff that does not give us access to these values.
DRIVE_REMOVABLE = 2 # [CodeStyle: Windows Enum value]
@ -24,6 +27,21 @@ IOCTL_STORAGE_EJECT_MEDIA = 2967560 # [CodeStyle: Windows Enum value]
OPEN_EXISTING = 3 # [CodeStyle: Windows Enum value]
# Setup the DeviceIoControl function arguments and return type.
# See ctypes documentation for details on how to call C functions from python, and why this is important.
windll.kernel32.DeviceIoControl.argtypes = [
wintypes.HANDLE, # _In_ HANDLE hDevice
wintypes.DWORD, # _In_ DWORD dwIoControlCode
wintypes.LPVOID, # _In_opt_ LPVOID lpInBuffer
wintypes.DWORD, # _In_ DWORD nInBufferSize
wintypes.LPVOID, # _Out_opt_ LPVOID lpOutBuffer
wintypes.DWORD, # _In_ DWORD nOutBufferSize
ctypes.POINTER(wintypes.DWORD), # _Out_opt_ LPDWORD lpBytesReturned
wintypes.LPVOID # _Inout_opt_ LPOVERLAPPED lpOverlapped
]
windll.kernel32.DeviceIoControl.restype = wintypes.BOOL
## Removable drive support for windows
class WindowsRemovableDrivePlugin(RemovableDrivePlugin.RemovableDrivePlugin):
def checkRemovableDrives(self):
@ -75,16 +93,31 @@ class WindowsRemovableDrivePlugin(RemovableDrivePlugin.RemovableDrivePlugin):
handle = ctypes.windll.kernel32.CreateFileA("\\\\.\\{0}".format(device.getId()[:-1]).encode("ascii"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, None, OPEN_EXISTING, 0, None )
if handle == -1:
print(ctypes.windll.kernel32.GetLastError())
return
# ctypes.WinError sets up an GetLastError API call for windows as an Python OSError exception.
# So we use this to raise the error to our caller.
raise ctypes.WinError()
# The DeviceIoControl requires a bytes_returned pointer to be a valid pointer.
# So create a ctypes DWORD to reference. (Without this pointer the DeviceIoControl function will crash with an access violation after doing its job.
bytes_returned = wintypes.DWORD(0)
error = None
result = None
# Then, try and tell it to eject
if not ctypes.windll.kernel32.DeviceIoControl(handle, IOCTL_STORAGE_EJECT_MEDIA, None, None, None, None, None, None):
result = False
else:
result = True
return_code = windll.kernel32.DeviceIoControl(handle, IOCTL_STORAGE_EJECT_MEDIA, None, 0, None, 0, ctypes.pointer(bytes_returned), None)
# DeviceIoControl with IOCTL_STORAGE_EJECT_MEDIA return 0 on error.
if return_code == 0:
# ctypes.WinError sets up an GetLastError API call for windows as an Python OSError exception.
# So we use this to raise the error to our caller.
error = ctypes.WinError()
# Do not raise an error here yet, so we can properly close the handle.
# Finally, close the handle
ctypes.windll.kernel32.CloseHandle(handle)
return result
windll.kernel32.CloseHandle(handle)
# If an error happened in the DeviceIoControl, raise it now.
if error:
raise error
# Return success
return True

View file

@ -366,15 +366,33 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
Logger.log("d", "Setting bed temperature to %s", temperature)
self._sendCommand("M140 S%s" % temperature)
@pyqtSlot()
def setMoveToRelative(self):
self._sendCommand("G91")
@pyqtSlot()
def setMoveToAbsolute(self):
self._sendCommand("G90")
@pyqtSlot("long", "long","long")
def moveHead(self, x, y, z):
Logger.log("d","Moving head to %s, %s , %s", x, y, z)
self._sendCommand("G0 X%s Y%s Z%s"%(x,y,z))
self._sendCommand("G0 X%s Y%s Z%s F3000" % (x, y, z))
@pyqtSlot("long", "long","long")
def moveHeadRelative(self, x, y, z):
self.setMoveToRelative()
self.moveHead(x,y,z)
self.setMoveToAbsolute()
@pyqtSlot()
def homeHead(self):
self._sendCommand("G28")
@pyqtSlot()
def homeBed(self):
self._sendCommand("G28 Z")
## Directly send the command, withouth checking connection state (eg; printing).
# \param cmd string with g-code
def _sendCommand(self, cmd):
@ -466,7 +484,7 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
self._bed_temperature = temperature
self.bedTemperatureChanged.emit()
def requestWrite(self, node, file_name = None):
def requestWrite(self, node, file_name = None, filter_by_machine = False):
self.showControlInterface()
def _setEndstopState(self, endstop_key, value):

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: Cura 2.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-18 11:54+0100\n"
"PO-Revision-Date: 2016-02-07 16:01+0100\n"
"PO-Revision-Date: 2016-03-09 15:28+0100\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Thomas Karl Pietrowski <thopiekar@googlemail.com>\n"
"Language-Team: \n"
"X-Generator: Poedit 1.8.4\n"
"X-Generator: Poedit 1.8.7.1\n"
#: /home/tamara/2.1/Cura/cura/CrashHandler.py:26
msgctxt "@title:window"
@ -249,7 +249,7 @@ msgstr "Über USB drucken"
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:37
msgctxt "@info:tooltip"
msgid "Print with USB"
msgstr "Über USB drucken"
msgstr "Drucken über USB"
#: /home/tamara/2.1/Cura/plugins/USBPrinting/__init__.py:13
msgctxt "@label"

View file

@ -350,6 +350,7 @@
"min_value_warning": "0.2",
"max_value_warning": "5",
"visible": false,
"enabled": "False",
"children": {
"wall_thickness": {
"label": "Wall Thickness",
@ -357,8 +358,8 @@
"unit": "mm",
"default": 0.8,
"min_value": "0",
"min_value_warning": "0.2",
"max_value_warning": "5",
"min_value_warning": "line_width",
"max_value_warning": "5 * line_width",
"type": "float",
"visible": true,
"children": {
@ -449,12 +450,22 @@
}
}
},
"alternate_extra_perimeter": {
"label": "Alternate Extra Wall",
"description": "Make an extra wall at every second layer, so that infill will be caught between an extra wall above and one below. This results in a better cohesion between infill and walls, but might have an impact on the surface quality.",
"type": "boolean",
"default": false,
"visible": false,
"inherit": false
},
"remove_overlapping_walls_enabled": {
"label": "Remove Overlapping Wall Parts",
"description": "Remove parts of a wall which share an overlap which would result in overextrusion in some places. These overlaps occur in thin pieces in a model and sharp corners.",
"type": "boolean",
"default": false,
"visible": false,
"enabled": "False",
"children": {
"remove_overlapping_walls_0_enabled": {
"label": "Remove Overlapping Outer Wall Parts",
@ -462,7 +473,8 @@
"type": "boolean",
"default": false,
"visible": false,
"inherit": true
"inherit": true,
"enabled": "False"
},
"remove_overlapping_walls_x_enabled": {
"label": "Remove Overlapping Other Wall Parts",
@ -676,6 +688,8 @@
"default": 150,
"min_value": "0",
"max_value_warning": "260",
"enabled": "False",
"enabled_before_removal": "material_flow_dependent_temperature",
"global_only": true
},
"material_extrusion_cool_down_speed": {
@ -687,7 +701,8 @@
"min_value": "0",
"max_value_warning": "10.0",
"global_only": "True",
"enabled": "material_flow_dependent_temperature or machine_extruder_count > 1",
"enabled": "False",
"enabled_before_removal": "material_flow_dependent_temperature or machine_extruder_count > 1",
"visible": false
},
"material_bed_temperature": {
@ -1015,8 +1030,8 @@
"default": true,
"visible": false,
"enabled": "retraction_combing",
"global_only": "True",
"children": {
"global_only": "True"
},
"travel_avoid_distance": {
"label": "Avoid Distance",
"description": "The distance to stay clear of parts which are avoided during travel.",
@ -1027,10 +1042,8 @@
"max_value_warning": "machine_nozzle_tip_outer_diameter * 5",
"visible": false,
"inherit": false,
"enabled": "retraction_combing",
"enabled": "retraction_combing and travel_avoid_other_parts",
"global_only": "True"
}
}
},
"coasting_enable": {
"label": "Enable Coasting",
@ -1090,8 +1103,8 @@
"description": "Enable the cooling fan during the print. The extra cooling from the cooling fan helps parts with small cross sections that print each layer quickly.",
"type": "boolean",
"default": true,
"global_only": "True",
"children": {
"global_only": "True"
},
"cool_fan_speed": {
"label": "Fan Speed",
"description": "Fan speed used for the print cooling fan on the printer head.",
@ -1101,7 +1114,8 @@
"max_value": "100",
"default": 100,
"visible": false,
"inherit_function": "100.0 if parent_value else 0.0",
"inherit_function": "100.0 if cool_fan_enabled else 0.0",
"enabled": "cool_fan_enabled",
"global_only": "True",
"children": {
"cool_fan_speed_min": {
@ -1110,10 +1124,10 @@
"unit": "%",
"type": "float",
"min_value": "0",
"max_value": "min(100, cool_fan_speed_max)",
"inherit_function": "parent_value",
"max_value": "100",
"default": 100,
"visible": false,
"enabled": "cool_fan_enabled",
"global_only": "True"
},
"cool_fan_speed_max": {
@ -1121,16 +1135,14 @@
"description": "Normally the fan runs at the minimum fan speed. If the layer is slowed down due to minimum layer time, the fan speed adjusts between minimum and maximum fan speed.",
"unit": "%",
"type": "float",
"min_value": "max(0, cool_fan_speed_min)",
"min_value": "0",
"max_value": "100",
"inherit": false,
"default": 100,
"visible": false,
"enabled": "cool_fan_enabled",
"global_only": "True"
}
}
}
}
},
"cool_fan_full_at_height": {
"label": "Fan Full on at Height",
@ -1480,8 +1492,8 @@
"min_value_warning": "support_minimal_diameter",
"max_value_warning": "10",
"visible": false,
"enabled": "support_enable and support_use_towers",
"children": {
"enabled": "support_enable and support_use_towers"
},
"support_minimal_diameter": {
"label": "Minimum Diameter",
"description": "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower.",
@ -1494,8 +1506,6 @@
"inherit": true,
"visible": false,
"enabled": "support_enable and support_use_towers"
}
}
},
"support_tower_roof_angle": {
"label": "Tower Roof Angle",
@ -1576,6 +1586,7 @@
"raft": "Raft"
},
"default": "skirt",
"inherit_function": "\"skirt\" if machine_heated_bed else \"brim\"",
"global_only": "True"
},
"skirt_line_count": {

View file

@ -40,8 +40,8 @@
"machine_settings": {
"machine_start_gcode" : { "default": "" },
"machine_end_gcode" : { "default": "" },
"machine_width": { "default": 230 },
"machine_depth": { "default": 225 },
"machine_width": { "default": 223 },
"machine_depth": { "default": 223 },
"machine_height": { "default": 205 },
"machine_heated_bed": { "default": true },

View file

@ -5,8 +5,5 @@ name = PLA
[settings]
material_bed_temperature = 60
platform_adhesion = skirt
material_flow = 100
material_print_temperature = 210
cool_fan_speed = 100
cool_fan_speed_max = 100

View file

@ -19,7 +19,6 @@ speed_print = 20
cool_min_speed = 25
line_width = 0.22
infill_sparse_density = 22
machine_nozzle_size = 0.22
speed_wall_0 = 20
cool_min_layer_time = 2
cool_lift_head = True

View file

@ -19,7 +19,6 @@ cool_min_layer_time = 3
cool_min_speed = 20
line_width = 0.35
infill_sparse_density = 18
machine_nozzle_size = 0.35
speed_travel = 150
speed_wall_0 = 30
adhesion_type = brim

View file

@ -19,7 +19,6 @@ adhesion_type = brim
cool_min_speed = 20
line_width = 0.35
infill_sparse_density = 22
machine_nozzle_size = 0.35
speed_wall_0 = 20
cool_min_layer_time = 3
cool_lift_head = True

View file

@ -16,7 +16,6 @@ speed_topbottom = 20
cool_min_layer_time = 3
cool_min_speed = 20
line_width = 0.35
machine_nozzle_size = 0.35
speed_wall_0 = 20
adhesion_type = brim
cool_lift_head = True

View file

@ -18,7 +18,6 @@ speed_topbottom = 20
adhesion_type = brim
cool_min_speed = 20
line_width = 0.53
machine_nozzle_size = 0.53
speed_wall_0 = 20
cool_min_layer_time = 3
cool_lift_head = True

View file

@ -18,7 +18,6 @@ speed_topbottom = 20
adhesion_type = brim
cool_min_speed = 15
line_width = 0.7
machine_nozzle_size = 0.7
speed_wall_0 = 20
cool_min_layer_time = 3
cool_lift_head = True

View file

@ -19,7 +19,6 @@ cool_min_layer_time = 2
speed_print = 20
line_width = 0.22
infill_sparse_density = 22
machine_nozzle_size = 0.22
speed_wall_0 = 20
adhesion_type = brim
cool_lift_head = True

View file

@ -20,7 +20,6 @@ speed_topbottom = 20
speed_travel = 150
line_width = 0.35
infill_sparse_density = 18
machine_nozzle_size = 0.35
speed_wall_0 = 30
adhesion_type = brim
cool_lift_head = True

View file

@ -18,7 +18,6 @@ speed_topbottom = 20
adhesion_type = brim
line_width = 0.35
infill_sparse_density = 22
machine_nozzle_size = 0.35
speed_wall_0 = 20
cool_min_layer_time = 3
cool_lift_head = True

View file

@ -15,7 +15,6 @@ speed_infill = 45
speed_topbottom = 20
cool_min_layer_time = 3
line_width = 0.35
machine_nozzle_size = 0.35
speed_wall_0 = 20
adhesion_type = brim
cool_lift_head = True

View file

@ -18,7 +18,6 @@ speed_topbottom = 20
cool_min_layer_time = 3
speed_print = 20
line_width = 0.53
machine_nozzle_size = 0.53
speed_wall_0 = 20
adhesion_type = brim
cool_lift_head = True

View file

@ -18,7 +18,6 @@ speed_topbottom = 20
cool_min_layer_time = 3
speed_print = 20
line_width = 0.7
machine_nozzle_size = 0.7
speed_wall_0 = 20
adhesion_type = brim
cool_lift_head = True

View file

@ -7,7 +7,7 @@ material = PLA
weight = -2
[settings]
machine_nozzle_size = 0.22
line_width = 0.22
layer_height = 0.06
layer_height_0 = 0.15
shell_thickness = 0.88
@ -18,7 +18,6 @@ infill_wipe_dist = 0.1
retraction_amount = 6
retraction_min_travel = 0.5
retraction_count_max = 30
retraction_extrusion_window = 6
speed_infill = 30
speed_wall_0 = 20
speed_wall_x = 25

View file

@ -7,7 +7,7 @@ material = PLA
weight = -1
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.15
layer_height_0 = 0.26
shell_thickness = 0.7
@ -18,7 +18,6 @@ infill_wipe_dist = 0.2
retraction_amount = 5.5
retraction_min_travel = 0.5
retraction_count_max = 30
retraction_extrusion_window = 6
speed_infill = 60
speed_wall_0 = 40
speed_wall_x = 50

View file

@ -7,7 +7,7 @@ material = PLA
weight = -3
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.06
layer_height_0 = 0.26
shell_thickness = 1.05
@ -18,7 +18,6 @@ infill_wipe_dist = 0.18
retraction_amount = 5.5
retraction_min_travel = 0.5
retraction_count_max = 30
retraction_extrusion_window = 6
speed_infill = 50
speed_wall_0 = 30
speed_wall_x = 40

View file

@ -7,7 +7,7 @@ material = PLA
weight = -2
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.1
layer_height_0 = 0.26
shell_thickness = 1.05
@ -18,7 +18,6 @@ infill_wipe_dist = 0.2
retraction_amount = 5.5
retraction_min_travel = 0.5
retraction_count_max = 30
retraction_extrusion_window = 6
speed_infill = 50
speed_wall_0 = 30
speed_wall_x = 40

View file

@ -7,7 +7,7 @@ material = PLA
weight = -4
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.04
layer_height_0 = 0.26
shell_thickness = 1.4

View file

@ -7,7 +7,7 @@ material = PLA
weight = -2
[settings]
machine_nozzle_size = 0.53
line_width = 0.53
layer_height = 0.15
layer_height_0 = 0.4
shell_thickness = 1.59
@ -18,7 +18,6 @@ infill_wipe_dist = 0.3
retraction_amount = 6
retraction_min_travel = 0.5
retraction_count_max = 30
retraction_extrusion_window = 6
speed_infill = 55
speed_wall_0 = 25
speed_wall_x = 40

View file

@ -7,7 +7,7 @@ material = PLA
weight = -2
[settings]
machine_nozzle_size = 0.7
line_width = 0.7
layer_height = 0.2
layer_height_0 = 0.5
shell_thickness = 2.1
@ -18,7 +18,6 @@ infill_wipe_dist = 0.4
retraction_amount = 6
retraction_min_travel = 0.5
retraction_count_max = 30
retraction_extrusion_window = 6
speed_infill = 40
speed_wall_0 = 20
speed_wall_x = 30

View file

@ -6,7 +6,7 @@ machine_variant = 0.25 mm
weight = -2
[settings]
machine_nozzle_size = 0.22
line_width = 0.22
layer_height = 0.06
layer_height_0 = 0.15
shell_thickness = 0.88

View file

@ -6,7 +6,7 @@ machine_variant = 0.4 mm
weight = -1
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.15
layer_height_0 = 0.26
shell_thickness = 0.7

View file

@ -6,7 +6,7 @@ machine_variant = 0.4 mm
weight = -3
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.06
layer_height_0 = 0.26
shell_thickness = 1.05

View file

@ -6,7 +6,7 @@ machine_variant = 0.4 mm
weight = -2
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.1
layer_height_0 = 0.26
shell_thickness = 1.05

View file

@ -6,7 +6,7 @@ machine_variant = 0.4 mm
weight = -4
[settings]
machine_nozzle_size = 0.35
line_width = 0.35
layer_height = 0.04
layer_height_0 = 0.26
shell_thickness = 1.4

View file

@ -6,7 +6,7 @@ machine_variant = 0.6 mm
weight = -2
[settings]
machine_nozzle_size = 0.53
line_width = 0.53
layer_height = 0.15
layer_height_0 = 0.4
shell_thickness = 1.59

View file

@ -6,7 +6,7 @@ machine_variant = 0.8 mm
weight = -2
[settings]
machine_nozzle_size = 0.7
line_width = 0.7
layer_height = 0.2
layer_height_0 = 0.5
shell_thickness = 2.1

View file

@ -124,17 +124,14 @@ Rectangle {
anchors.right: printJobPencilIcon.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width/2
height: UM.Theme.getSize("jobspecs_line").height
width: __contentWidth + UM.Theme.getSize("default_margin").width
width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50)
maximumLength: 120
property int unremovableSpacing: 5
text: ''
horizontalAlignment: TextInput.AlignRight
onTextChanged: {
if(text != ''){
//Prevent that jobname is set to an empty string
Printer.setJobName(text)
}
}
onEditingFinished: {
if (printJobTextfield.text != ''){
printJobTextfield.focus = false
@ -161,7 +158,7 @@ Rectangle {
anchors.right: parent.right
height: UM.Theme.getSize("jobspecs_line").height
verticalAlignment: Text.AlignVCenter
font: UM.Theme.getFont("small")
font: UM.Theme.getFont("small_bold")
color: UM.Theme.getColor("text_subtext")
text: Printer.getSceneBoundingBoxString
}
@ -193,7 +190,7 @@ Rectangle {
anchors.right: lengthIcon.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: parent.verticalCenter
font: UM.Theme.getFont("small")
font: UM.Theme.getFont("small_bold")
color: UM.Theme.getColor("text_subtext")
text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short)
}
@ -213,7 +210,7 @@ Rectangle {
id: lengthSpec
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
font: UM.Theme.getFont("small")
font: UM.Theme.getFont("small_bold")
color: UM.Theme.getColor("text_subtext")
text: base.printMaterialAmount <= 0 ? catalog.i18nc("@label", "0.0 m") : catalog.i18nc("@label", "%1 m").arg(base.printMaterialAmount)
}

View file

@ -19,7 +19,12 @@ Item
property int platform_height: UM.MachineManager.getSettingValue("machine_depth")
anchors.fill: parent;
property variant printer_connection: UM.USBPrinterManager.connectedPrinterList.getItem(0).printer
Component.onCompleted: printer_connection.homeHead()
Component.onCompleted:
{
printer_connection.homeBed()
printer_connection.moveHeadRelative(0, 0, 3)
printer_connection.homeHead()
}
UM.I18nCatalog { id: catalog; name:"cura"}
property variant wizard: null;
@ -79,15 +84,23 @@ Item
{
if(wizardPage.leveling_state == 0)
{
printer_connection.moveHead(platform_width, 0 ,0)
printer_connection.moveHeadRelative(0, 0, 3)
printer_connection.homeHead()
printer_connection.moveHeadRelative(0, 0, 3)
printer_connection.moveHeadRelative(platform_width - 10, 0, 0)
printer_connection.moveHeadRelative(0, 0, -3)
}
if(wizardPage.leveling_state == 1)
{
printer_connection.moveHead(platform_width/2, platform_height, 0)
printer_connection.moveHeadRelative(0, 0, 3)
printer_connection.moveHeadRelative(-platform_width/2, platform_height - 10, 0)
printer_connection.moveHeadRelative(0, 0, -3)
}
if(wizardPage.leveling_state == 2)
{
printer_connection.moveHead(0, 0, 0)
printer_connection.moveHeadRelative(0, 0, 3)
printer_connection.moveHeadRelative(-platform_width/2 + 10, -(platform_height + 10), 0)
printer_connection.moveHeadRelative(0, 0, -3)
}
wizardPage.leveling_state++
if (wizardPage.leveling_state >= 3){

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="1792px" height="1792px" viewBox="0 0 1792 1792" enable-background="new 0 0 1792 1792" xml:space="preserve">
<path d="M896,2.071c162.18,0,311.75,39.963,448.71,119.889c136.961,79.926,245.403,188.37,325.33,325.33
C1749.966,584.25,1789.929,733.82,1789.929,896s-39.963,311.749-119.889,448.71c-79.927,136.961-188.369,245.403-325.33,325.33
c-136.96,79.926-286.53,119.889-448.71,119.889c-162.179,0-311.75-39.963-448.71-119.889
c-136.96-79.927-245.404-188.369-325.33-325.33C42.035,1207.749,2.071,1058.18,2.071,896S42.035,584.25,121.96,447.29
c79.926-136.96,188.369-245.404,325.33-325.33C584.25,42.034,733.821,2.071,896,2.071z M1044.988,1453.541v-221.154
c0-10.863-3.492-19.981-10.476-27.353c-6.984-7.372-15.52-11.058-25.607-11.058H785.423c-10.088,0-19.011,3.879-26.771,11.64
c-7.76,7.76-11.64,16.683-11.64,26.771v221.154c0,10.089,3.88,19.012,11.64,26.771c7.76,7.761,16.684,11.64,26.771,11.64h223.482
c10.088,0,18.623-3.686,25.607-11.058C1041.496,1473.523,1044.988,1464.404,1044.988,1453.541z M1042.66,1053.136l20.951-722.825
c0-9.312-3.879-16.295-11.64-20.951c-7.76-6.208-17.071-9.312-27.935-9.312H767.963c-10.863,0-20.175,3.104-27.935,9.312
c-7.76,4.656-11.64,11.64-11.64,20.951l19.788,722.825c0,7.761,3.879,14.55,11.64,20.369c7.76,5.82,17.072,8.73,27.936,8.73h215.334
c10.863,0,19.982-2.91,27.354-8.73C1037.81,1067.686,1041.884,1060.896,1042.66,1053.136z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1 @@
<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1024 1375v-190q0-14-9.5-23.5t-22.5-9.5h-192q-13 0-22.5 9.5t-9.5 23.5v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11h-220q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17h-1536q-34 0-63.5-17t-46.5-46q-37-63-2-126l768-1408q17-31 47-49t65-18 65 18 47 49z"/></svg>

After

Width:  |  Height:  |  Size: 488 B

View file

@ -18,6 +18,12 @@
"size": 1.0,
"family": "Open Sans"
},
"small_bold":
{
"size": 1.0,
"family": "Open Sans",
"bold": true
},
"very_small": {
"size": 0.75,
"family": "Open Sans"
@ -68,7 +74,7 @@
"text_hover": [70, 84, 113, 255],
"text_pressed": [12, 169, 227, 255],
"text_white": [255, 255, 255, 255],
"text_subtext": [127, 127, 127, 255],
"text_subtext": [100, 100, 100, 255],
"error": [255, 140, 0, 255],
"sidebar_header_bar": [24, 41, 77, 255],