Merge branch '2.3' of github.com:Ultimaker/Cura

This commit is contained in:
Jaime van Kessel 2016-10-27 17:15:58 +02:00
commit 999380cf1b
9 changed files with 89 additions and 60 deletions

7
.gitignore vendored
View file

@ -26,3 +26,10 @@ LC_MESSAGES
# Debian packaging
debian*
#Externally located plug-ins.
plugins/Doodle3D-cura-plugin
plugins/GodMode
plugins/PostProcessingPlugin
plugins/UM3NetworkPrinting
plugins/X3GWriter

View file

@ -592,7 +592,7 @@ class BuildVolume(SceneNode):
raise Exception("Unknown bed adhesion type. Did you forget to update the build volume calculations for your new bed adhesion type?")
support_expansion = 0
if self._getSettingFromSupportInfillExtruder("support_offset"):
if self._getSettingFromSupportInfillExtruder("support_offset") and self._global_container_stack.getProperty("support_enable", "value"):
support_expansion += self._getSettingFromSupportInfillExtruder("support_offset")
farthest_shield_distance = 0
@ -604,7 +604,7 @@ class BuildVolume(SceneNode):
move_from_wall_radius = 0 # Moves that start from outer wall.
if self._getSettingFromAdhesionExtruder("infill_wipe_dist"):
move_from_wall_radius = max(move_from_wall_radius, self._getSettingFromAdhesionExtruder("infill_wipe_dist"))
if self._getSettingFromAdhesionExtruder("travel_avoid_distance"):
if self._getSettingFromAdhesionExtruder("travel_avoid_distance") and self._getSettingFromAdhesionExtruder("travel_avoid_other_parts"):
move_from_wall_radius = max(move_from_wall_radius, self._getSettingFromAdhesionExtruder("travel_avoid_distance"))
#Now combine our different pieces of data to get the final border size.
@ -621,4 +621,4 @@ class BuildVolume(SceneNode):
_prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "extruder_prime_pos_z"]
_tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y"]
_ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"]
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset"]
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts"]

View file

@ -549,7 +549,7 @@ class CuraApplication(QtApplication):
qmlRegisterType(cura.Settings.ExtrudersModel, "Cura", 1, 0, "ExtrudersModel")
qmlRegisterType(cura.Settings.ContainerSettingsModel, "Cura", 1, 0, "ContainerSettingsModel")
qmlRegisterType(cura.Settings.ProfilesModel, "Cura", 1, 0, "ProfilesModel")
qmlRegisterSingletonType(cura.Settings.ProfilesModel, "Cura", 1, 0, "ProfilesModel", cura.Settings.ProfilesModel.createProfilesModel)
qmlRegisterType(cura.Settings.QualityAndUserProfilesModel, "Cura", 1, 0, "QualityAndUserProfilesModel")
qmlRegisterType(cura.Settings.UserProfilesModel, "Cura", 1, 0, "UserProfilesModel")
qmlRegisterType(cura.Settings.MaterialSettingsVisibilityHandler, "Cura", 1, 0, "MaterialSettingsVisibilityHandler")

View file

@ -25,6 +25,21 @@ class ProfilesModel(InstanceContainersModel):
Application.getInstance().getMachineManager().activeStackChanged.connect(self._update)
Application.getInstance().getMachineManager().activeMaterialChanged.connect(self._update)
# Factory function, used by QML
@staticmethod
def createProfilesModel(engine, js_engine):
return ProfilesModel.getInstance()
## Get the singleton instance for this class.
@classmethod
def getInstance(cls):
# Note: Explicit use of class name to prevent issues with inheritance.
if ProfilesModel.__instance is None:
ProfilesModel.__instance = cls()
return ProfilesModel.__instance
__instance = None
## Fetch the list of containers to display.
#
# See UM.Settings.Models.InstanceContainersModel._fetchInstanceContainers().

View file

@ -3,25 +3,35 @@
The layer height of each profile is now shown in the profile selection menu.
*Bug fixes
Upgrading from version 2.1 on OSX works again.
You can import g-code from related machines as profile.
Fixed inheritance taking from the wrong extruder.
Moved z-hop and extruder selection settings to a better category.
Editing material settings has actual effect on the prints again
Upgrading from version 2.1 on OSX works again
You can import g-code from related machines as profile
Fixed inheritance taking from the wrong extruder
The i-symbol is updated properly
Fixed a freeze that could sometimes occur while printing via Wi-Fi
[2.3.0]
*Multi Extrusion Support
Machines with multiple extruders are now supported. Ultimaker 3 printers and Ultimaker Original printers with dual extrusion upgrade kit are currently supported.
*Network Printing for Ultimaker 3
Sending a print to an Ultimaker 3 remotely via the network is now possible. Requires Wi-Fi or LAN to connect to the printer.
*Print Monitoring for Ultimaker 3
You can monitor your print on an Ultimaker 3 with a live camera feed. Requires Wi-Fi or LAN to connect to the printer.
*Material and Print Core Synchronization
Connecting to an Ultimaker 3 now gives you the option to synchronize the materials in Cura with what is loaded in the printer.
*Speed improvements
The first thing you will notice is the speed. STL loading is now 10 to 20 times faster, layerview is significantly faster and slicing speed is slightly improved.
*Multi Extrusion Support
Machines with multiple extruders are now supported. If youve got the Ultimaker Original with the dual extrusion upgrade kit, weve got you covered.
*Custom Machine Support
Its now much easier to use Cura with custom machines. You can edit the machine settings when you load a new custom machine.
The first thing you will notice is the speed. STL loading is now 10 to 20 times faster, layer view is significantly faster and slicing speed is slightly improved.
*Improved Position Tool
Place objects precisely where you want them by manually entering the values for the position.
*Custom Machine Support
Its now much easier to use Cura with custom machines. You can edit the machine settings when you load a new custom machine.
*Improved Grouping
It's now possible to transform objects that are already grouped.
Select an individual item in a group or merged object and edit as usual. Just Ctrl + Click and edit away.
@ -30,7 +40,7 @@ Select an individual item in a group or merged object and edit as usual. Just Ct
Profile management is improved. You can now easily see and track changes made to your profiles.
*Improved Setting Visibility
Make multiple settings visible at once. The Visibility Overview setting indicates why a setting is not shown in the sidebar even if it is enabled.
Make multiple settings visible at the same time with a checkbox. The Visibility Overview setting indicates why a setting is not shown in the sidebar even if it is enabled.
*Improved time estimation
Time estimations are more accurate. Based on our test time estimations should be within 5% accuracy for Ultimaker printers.
@ -46,10 +56,10 @@ Configurations from older installations of Cura 2.1 are automatically imported i
*Slicing features
*Infill Types
We've introduced two new infill types: Tetrahedral and Cubic. They change along with the Z-axis for more uniform strength in all directions. There are now 7 infill types to choose from.
Two new infill types are now introduced: Tetrahedral and Cubic. They change along with the Z-axis for more uniform strength in all directions. There are now seven infill types to choose from.
*Gradual Infill
Now you can change the density of the infill based on the distance from the top layers. Your objects print faster, use less material, while top surfaces have the same quality.
Gradual infill lets users adjust infill density, based on the distance from the top layers. This offers faster printing and reduced material requirements, whilst maintaining surface quality.
*Set Acceleration and Jerk by Feature
You can now set Jerk and Acceleration by feature-type (infill, walls, top/bottom, etc), for more precision.
@ -66,7 +76,7 @@ Cant avoid previously printed parts by horizontal moves? The Z Hop Only Over
*Skin and Wall Overlap
The Skin Overlap setting allows you to overlap the skin lines with the walls for better adhesion.
*Control Initial Layer Travel Speed
*Adjust Initial Layer Travel Speed
Set the travel speed of the initial layer(s) to reduce risk of extruder pulling the print from the bed.
*Support Interface
@ -76,39 +86,39 @@ It is now possible to print a support bottom as well as a support roof. Support
Deleting grouped objects
Duplicating groups
Bridging
Drag and drop on the first run on Windows
Drag and drop (first Windows run)
Unretraction speeds
Bottom layer in Spiralize mode
Overlap Compensation
Retractions on Raft
Retractions now occur after each object printed in one-at-a-time mode.
Rafts are no longer printed outside of build area.
Spiralize no longer only spiralizes the first printed segment only.
Line distance is now the actual line distance.
Enabling raft doesnt influence at which height the model is sliced any more.
Brim is now always printed just once.
Support roofs now only occur just below overhang.
Raft retractions
Retractions now occur after each object printed in one-at-a-time mode
Rafts are no longer printed outside of build area
Spiralize no longer limited to the first printed segment only
Line distance is now the actual line distance
Enabling raft doesnt influence at which height the model is sliced any more
Brim is now always printed just once
Support roofs now only occur just below overhang
*Minor changes
Messages are now displayed 30 seconds instead of 10, making it less likely that certain messages are missed.
You are now notified if you try to save to a locked SD card.
Engine log is now included in the application log.
Undo and Redo now work correctly with multiple operations.
The last used folder is now remembered (instead of defaulting to home folder).
Import X3D files.
Made it possible to add multiple Per Model Settings at once.
Bed Level and Checkup procedures for UMO+ can now be done without re-adding machine.
Combing is applied in more cases and results in better paths.
Infill thickness now supports Grid infill also for even multiples of the layer height.
Support is no longer removed by unprintable thin parts of the model.
Support is now generated on each layer its supposed to.
Support doesn't go outside overhang areas any more.
Support doesn't remove brim around the object any more.
Brim is now also generated under the support.
Draft shield and Ooze shield get their own brim or raft.
Settings shared between skirt and brim now also activate when brim is selected.
Compensate overlapping wall parts now also works for inner walls.
You can now adjust the speed at which the bed is lowered each layer.
Message display time increased to 30 seconds
Notification if you try to save to a locked SD card
Engine log now included in the application log
Undo and Redo now function with multiple operations
The last used folder is now remembered rather than defaulting to home folder
Import X3D files
Made it possible to add multiple Per Model Settings at once
Bed Level and Checkup procedures for UMO+ can be performed without re-adding machine
Combing applied in more cases and results in better paths
Infill thickness now supports Grid infill also for even multiples of the layer height
Support is no longer removed by unprintable thin parts of the model
Support generated on each appropriate layer
Support no longer goes outside overhang areas
Support no longer removes brim around the object
Brim is now also generated under the support
Draft and Ooze shield get their own brim or raft
Settings shared between skirt and brim now also activate when brim is selected
Compensate overlapping wall parts now also works for inner walls
Bed lowering speed can be adjusted for each layer
[2.1.3]

View file

@ -411,6 +411,8 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
else:
Logger.log("d", "Unsupported material setting %s", key)
self.addMetaDataEntry("compatible", global_compatibility)
self._dirty = False
machines = data.iterfind("./um:settings/um:machine", self.__namespaces)
@ -447,6 +449,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
new_material.setName(self.getName())
new_material.setMetaData(copy.deepcopy(self.getMetaData()))
new_material.setDefinition(definition)
new_material.setMetaDataEntry("compatible", machine_compatibility)
for key, value in global_setting_values.items():
new_material.setProperty(key, "value", value, definition)
@ -492,7 +495,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
new_hotend_material.setMetaData(copy.deepcopy(self.getMetaData()))
new_hotend_material.setDefinition(definition)
new_hotend_material.addMetaDataEntry("variant", variant_containers[0].id)
new_hotend_material.addMetaDataEntry("compatible", hotend_compatibility)
new_hotend_material.setMetaDataEntry("compatible", hotend_compatibility)
for key, value in global_setting_values.items():
new_hotend_material.setProperty(key, "value", value, definition)
@ -506,14 +509,6 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
new_hotend_material._dirty = False
UM.Settings.ContainerRegistry.getInstance().addContainer(new_hotend_material)
if not global_compatibility:
# Change the type of this container so it is not shown as an option in menus.
# This uses InstanceContainer.setMetaDataEntry because otherwise all containers that
# share this basefile are also updated.
dirty = self.isDirty()
super().setMetaDataEntry("type", "incompatible_material")
super().setDirty(dirty) # reset dirty flag after setMetaDataEntry
def _addSettingElement(self, builder, instance):
try:
key = UM.Dictionary.findKey(self.__material_property_setting_map, instance.definition.key)

View file

@ -40,7 +40,7 @@
"value": "speed_wall_0"
},
"machine_height": {
"default_value": 203
"default_value": 205
},
"machine_show_variants": {
"default_value": true

View file

@ -13,7 +13,7 @@ Menu
Instantiator
{
model: Cura.ProfilesModel { }
model: Cura.ProfilesModel
MenuItem
{

View file

@ -208,12 +208,14 @@ Item {
// But this will cause the binding to be re-evaluated when the enabled property changes.
return false;
}
if(Cura.SettingInheritanceManager.settingsWithInheritanceWarning.length == 0)
{
return false;
}
if(globalPropertyProvider.properties.limit_to_extruder == null || globalPropertyProvider.properties.limit_to_extruder == -1)
{
return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0;
}
return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, globalPropertyProvider.properties.limit_to_extruder).indexOf(definition.key) >= 0;
}