This commit is contained in:
Andreea Scorojitu 2017-11-15 13:40:56 +01:00
commit 9bcc4da4a1
15 changed files with 514 additions and 56 deletions

View File

@ -719,8 +719,8 @@ class CuraApplication(QtApplication):
if run_headless or self._engine.rootObjects:
self.closeSplash()
for file in self.getCommandLineOption("file", []):
self._openFile(file)
for file_name in self.getCommandLineOption("file", []):
self._openFile(file_name)
for file_name in self._open_file_queue: #Open all the files that were queued up while plug-ins were loading.
self._openFile(file_name)

57
cura/PreviewPass.py Normal file
View File

@ -0,0 +1,57 @@
# Copyright (c) 2017 Ultimaker B.V.
# Uranium is released under the terms of the LGPLv3 or higher.
from UM.Application import Application
from UM.Resources import Resources
from UM.View.RenderPass import RenderPass
from UM.View.GL.OpenGL import OpenGL
from UM.View.RenderBatch import RenderBatch
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
from typing import Optional
MYPY = False
if MYPY:
from UM.Scene.Camera import Camera
## A render pass subclass that renders slicable objects with default parameters.
# It uses the active camera by default, but it can be overridden to use a different camera.
#
# This is useful to get a preview image of a scene taken from a different location as the active camera.
class PreviewPass(RenderPass):
def __init__(self, width: int, height: int):
super().__init__("preview", width, height, 0)
self._camera = None # type: Optional[Camera]
self._renderer = Application.getInstance().getRenderer()
self._shader = None
self._scene = Application.getInstance().getController().getScene()
# Set the camera to be used by this render pass
# if it's None, the active camera is used
def setCamera(self, camera: Optional["Camera"]):
self._camera = camera
def render(self) -> None:
if not self._shader:
self._shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "object.shader"))
# Create a new batch to be rendered
batch = RenderBatch(self._shader)
# Fill up the batch with objects that can be sliced. `
for node in DepthFirstIterator(self._scene.getRoot()):
if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible():
batch.addItem(node.getWorldTransformation(), node.getMeshData())
self.bind()
if self._camera is None:
batch.render(Application.getInstance().getController().getScene().getActiveCamera())
else:
batch.render(self._camera)
self.release()

View File

@ -4,8 +4,6 @@
from . import RemovableDrivePlugin
from UM.Logger import Logger
import subprocess
import os
@ -15,12 +13,12 @@ import plistlib
class OSXRemovableDrivePlugin(RemovableDrivePlugin.RemovableDrivePlugin):
def checkRemovableDrives(self):
drives = {}
p = subprocess.Popen(["system_profiler", "SPUSBDataType", "-xml"], stdout = subprocess.PIPE)
p = subprocess.Popen(["system_profiler", "SPUSBDataType", "-xml"], stdout = subprocess.PIPE, stderr = subprocess.PIPE)
plist = plistlib.loads(p.communicate()[0])
result = self._recursiveSearch(plist, "removable_media")
p = subprocess.Popen(["system_profiler", "SPCardReaderDataType", "-xml"], stdout=subprocess.PIPE)
p = subprocess.Popen(["system_profiler", "SPCardReaderDataType", "-xml"], stdout=subprocess.PIPE, stderr = subprocess.PIPE)
plist = plistlib.loads(p.communicate()[0])
result.extend(self._recursiveSearch(plist, "removable_media"))

View File

@ -4132,30 +4132,6 @@
"settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr"
},
"z_offset_layer_0":
{
"label": "Initial Layer Z Offset",
"description": "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly.",
"unit": "mm",
"type": "float",
"default_value": 0,
"minimum_value_warning": "0",
"maximum_value_warning": "layer_height_0",
"enabled": "resolveOrValue('adhesion_type') != 'raft'",
"settable_per_mesh": false,
"settable_per_extruder": false
},
"z_offset_taper_layers":
{
"label": "Z Offset Taper Layers",
"description": "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print.",
"type": "int",
"default_value": 0,
"minimum_value": "0",
"enabled": "resolveOrValue('adhesion_type') != 'raft' and z_offset_layer_0 != 0",
"settable_per_mesh": false,
"settable_per_extruder": false
},
"raft_margin":
{
"label": "Raft Extra Margin",
@ -5099,7 +5075,8 @@
"default_value": false,
"settable_per_mesh": true
},
"support_skip_some_zags": {
"support_skip_some_zags":
{
"label": "Break Up Support In Chunks",
"description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.",
"type": "bool",
@ -5107,35 +5084,36 @@
"enabled": "support_enable and (support_pattern == 'zigzag')",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"support_skip_zag_per_mm":
{
"label": "Support Chunk Size",
"description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.",
"type": "float",
"unit": "mm",
"default_value": 20,
"minimum_value": "0",
"minimum_value_warning": "support_line_distance",
"enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false,
"settable_per_extruder": true,
"children": {
"support_skip_zag_per_mm": {
"label": "Support Chunk Size",
"description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.",
"type": "float",
"unit": "mm",
"default_value": 20,
"minimum_value": "0",
"minimum_value_warning": "support_line_distance",
"children":
{
"support_zag_skip_count":
{
"label": "Support Chunk Line Count",
"description": "Skip one in every N connection lines to make the support structure easier to break away.",
"type": "int",
"default_value": 5,
"value": "round(support_skip_zag_per_mm / support_line_distance)",
"minimum_value": "1",
"minimum_value_warning": "3",
"enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false,
"settable_per_extruder": true,
"children": {
"support_zag_skip_count": {
"label": "Support Chunk Line Count",
"description": "Skip one in every N connection lines to make the support structure easier to break away.",
"type": "int",
"default_value": 5,
"value": "round(support_skip_zag_per_mm / support_line_distance)",
"minimum_value": "1",
"minimum_value_warning": "3",
"enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false,
"settable_per_extruder": true
}
}
"settable_per_extruder": true
}
}
},

View File

@ -0,0 +1,24 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_abs_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
cool_fan_speed = 40
infill_overlap = 15
material_final_print_temperature = =material_print_temperature - 5
prime_tower_enable = True
prime_tower_purge_volume = 0.6
prime_tower_size = 12
prime_tower_wall_thickness = 0.9
retraction_prime_speed = 25
speed_topbottom = =math.ceil(speed_print * 30 / 55)
wall_thickness = 0.92

View File

@ -0,0 +1,22 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_cpe_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
prime_tower_size = 12
prime_tower_wall_thickness = 0.9
retraction_extrusion_window = 0.5
speed_infill = 40
speed_topbottom = =math.ceil(speed_print * 30 / 55)
top_bottom_thickness = 0.8
wall_thickness = 0.92

View File

@ -0,0 +1,37 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_nylon_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
cool_min_layer_time_fan_speed_max = 20
cool_min_speed = 12
infill_line_width = =round(line_width * 0.5 / 0.4, 2)
infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 2.0
ooze_shield_angle = 40
raft_acceleration = =acceleration_layer_0
raft_airgap = =round(layer_height_0 * 0.85, 2)
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 3)
raft_jerk = =jerk_layer_0
raft_margin = 10
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
retraction_extrusion_window = =retraction_amount
retraction_min_travel = =line_width * 2
skin_overlap = 50
speed_print = 70
speed_topbottom = =math.ceil(speed_print * 30 / 70)
speed_wall = =math.ceil(speed_print * 30 / 70)
switch_extruder_prime_speed = 30
switch_extruder_retraction_amount = 30
switch_extruder_retraction_speeds = 40
wall_line_width_x = =wall_line_width

View File

@ -0,0 +1,53 @@
[general]
version = 2
name = Fine - Experimental
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_pc_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
acceleration_enabled = True
acceleration_print = 4000
adhesion_type = brim
brim_width = 20
cool_fan_full_at_height = =layer_height_0 + layer_height
cool_fan_speed_max = 50
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 5
infill_line_width = =line_width
infill_pattern = triangles
infill_wipe_dist = 0.1
jerk_enabled = True
jerk_print = 25
machine_min_cool_heat_time_window = 15
multiple_mesh_overlap = 0
ooze_shield_angle = 40
prime_tower_enable = True
retraction_count_max = 80
retraction_hop = 2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_min_travel = 0.8
retraction_prime_speed = 15
skin_overlap = 30
speed_layer_0 = 25
speed_print = 50
speed_topbottom = 25
speed_travel = 250
speed_wall = =math.ceil(speed_print * 40 / 50)
speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
support_bottom_distance = =support_z_distance
support_interface_density = 87.5
support_interface_pattern = lines
switch_extruder_prime_speed = 15
switch_extruder_retraction_amount = 20
switch_extruder_retraction_speeds = 35
wall_0_inset = 0
wall_line_width_x = =line_width
wall_thickness = 1.2

View File

@ -0,0 +1,37 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_pla_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
brim_width = 8
cool_fan_full_at_height = =layer_height_0
cool_min_speed = 10
infill_overlap = 10
infill_pattern = grid
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 2.0
material_final_print_temperature = =max(-273.15, material_print_temperature - 15)
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
material_print_temperature = 190
retraction_extrusion_window = =retraction_amount
retraction_hop = 0.2
skin_overlap = 5
speed_layer_0 = 30
speed_print = 30
speed_travel_layer_0 = 120
speed_wall = 25
speed_wall_0 = 20
top_bottom_thickness = 0.72
travel_avoid_distance = 0.4
wall_0_inset = 0.015
wall_0_wipe_dist = 0.25
wall_thickness = 0.7

View File

@ -0,0 +1,60 @@
[general]
version = 2
name = Fine - Experimental
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_pp_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
acceleration_enabled = True
acceleration_print = 4000
brim_width = 10
cool_fan_speed_max = 100
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 2.5
infill_line_width = =round(line_width * 0.38 / 0.38, 2)
infill_pattern = tetrahedral
infill_wipe_dist = 0.1
jerk_enabled = True
jerk_print = 25
line_width = =machine_nozzle_size * 0.92
machine_min_cool_heat_time_window = 15
material_bed_temperature_layer_0 = 90
material_final_print_temperature = 195
material_initial_print_temperature = 200
material_print_temperature = 205
material_print_temperature_layer_0 = 208
multiple_mesh_overlap = 0
prime_tower_enable = False
prime_tower_size = 16
prime_tower_wipe_enabled = True
retraction_count_max = 6
retraction_extra_prime_amount = 0.2
retraction_extrusion_window = 6.5
retraction_hop = 2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_min_travel = 0.8
retraction_prime_speed = 13
speed_equalize_flow_enabled = True
speed_layer_0 = 15
speed_print = 25
speed_travel = 300
speed_travel_layer_0 = 50
speed_wall = =math.ceil(speed_print * 25 / 25)
speed_wall_0 = =math.ceil(speed_wall * 25 / 25)
support_angle = 50
switch_extruder_prime_speed = 15
switch_extruder_retraction_amount = 20
switch_extruder_retraction_speeds = 35
top_bottom_thickness = 1
travel_avoid_distance = 3
wall_0_inset = 0
wall_line_width_x = =line_width
wall_thickness = =line_width * 3

View File

@ -0,0 +1,38 @@
[general]
version = 2
name = Fast
definition = ultimaker3
[metadata]
type = quality
quality_type = draft
material = generic_bam_ultimaker3_AA_0.4
weight = -2
setting_version = 4
[values]
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =cool_fan_speed
machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =230
material_standby_temperature = 100
# prime_tower_enable: see CURA-4248
prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100
skin_overlap = 20
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 35 / 70)
speed_wall = =math.ceil(speed_print * 50 / 70)
speed_wall_0 = =math.ceil(speed_wall * 35 / 50)
top_bottom_thickness = 1
wall_thickness = 1
support_interface_enable = True
support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric'
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_angle = 45
support_join_distance = 5
support_offset = 2
support_pattern = triangles
support_infill_rate = 10

View File

@ -0,0 +1,38 @@
[general]
version = 2
name = Normal
definition = ultimaker3
[metadata]
type = quality
quality_type = fast
material = generic_bam_ultimaker3_AA_0.4
weight = -1
setting_version = 4
[values]
default_material_print_temperature = 225
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =cool_fan_speed
machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100
# prime_tower_enable: see CURA-4248
prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100
speed_print = 80
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 80)
speed_wall = =math.ceil(speed_print * 40 / 80)
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
top_bottom_thickness = 1
wall_thickness = 1
support_interface_enable = True
support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric'
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_angle = 45
support_join_distance = 5
support_offset = 2
support_pattern = triangles
support_infill_rate = 10

View File

@ -0,0 +1,36 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_bam_ultimaker3_AA_0.4
weight = 0
setting_version = 4
[values]
default_material_print_temperature = 225
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =cool_fan_speed
cool_min_speed = 7
machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100
# prime_tower_enable: see CURA-4248
prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100
skin_overlap = 10
speed_layer_0 = 20
top_bottom_thickness = 1
wall_thickness = 1
support_interface_enable = True
support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric'
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_angle = 45
support_join_distance = 5
support_offset = 2
support_pattern = triangles
support_infill_rate = 10

View File

@ -0,0 +1,40 @@
[general]
name = AA 0.25
version = 2
definition = ultimaker3
[metadata]
author = ultimaker
type = variant
setting_version = 4
[values]
brim_width = 7
infill_line_width = 0.23
infill_overlap = 0
layer_height_0 = 0.17
line_width = 0.23
machine_nozzle_cool_down_speed = 0.85
machine_nozzle_heat_up_speed = 1.5
machine_nozzle_id = AA 0.25
machine_nozzle_size = 0.25
machine_nozzle_tip_outer_diameter = 0.65
material_final_print_temperature = =material_print_temperature - 10
material_initial_print_temperature = =material_print_temperature - 5
raft_interface_thickness = =layer_height * 1.5
retraction_count_max = 25
retraction_extrusion_window = 1
retraction_min_travel = 0.7
skin_overlap = 15
speed_layer_0 = 20
speed_print = 55
speed_topbottom = 20
speed_wall = =math.ceil(speed_print * 30 / 55)
support_angle = 60
support_bottom_distance = =support_z_distance / 2
support_top_distance = =support_z_distance
support_z_distance = =layer_height * 2
top_bottom_thickness = 1.2
wall_line_width_x = 0.23
wall_thickness = 1.3

View File

@ -0,0 +1,40 @@
[general]
name = AA 0.25
version = 2
definition = ultimaker3_extended
[metadata]
author = ultimaker
type = variant
setting_version = 4
[values]
brim_width = 7
infill_line_width = 0.23
infill_overlap = 0
layer_height_0 = 0.17
line_width = 0.23
machine_nozzle_cool_down_speed = 0.85
machine_nozzle_heat_up_speed = 1.5
machine_nozzle_id = AA 0.25
machine_nozzle_size = 0.25
machine_nozzle_tip_outer_diameter = 0.65
material_final_print_temperature = =material_print_temperature - 10
material_initial_print_temperature = =material_print_temperature - 5
raft_interface_thickness = =layer_height * 1.5
retraction_count_max = 25
retraction_extrusion_window = 1
retraction_min_travel = 0.7
skin_overlap = 15
speed_layer_0 = 20
speed_print = 55
speed_topbottom = 20
speed_wall = =math.ceil(speed_print * 30 / 55)
support_angle = 60
support_bottom_distance = =support_z_distance / 2
support_top_distance = =support_z_distance
support_z_distance = =layer_height * 2
top_bottom_thickness = 1.2
wall_line_width_x = 0.23
wall_thickness = 1.3