Problem 1: Knowing what the Material and Print Quality Autoconfigures do.
There is currently no indication in the interface of what changing the auto-configure options does. This leads to common problems such as, creating a new material, assigning a new speed, and then being surprised to realise you've changed the speeds across all your materials.
Suggested solution:
Use either colour coding or symbols to show what values are being affected by the auto-configures in the Edit Process Settings menu. This could be implemented by checking what tags were listed in the ".fff" files <autoConfigureMaterial> tags. E.g.
Take a couple of normal looking auto-configure block:
Code: Select all
<autoConfigureMaterial name="PLA">
<globalExtruderTemperature>205</globalExtruderTemperature>
<globalBedTemperature>60</globalBedTemperature>
<globalExtrusionMultiplier>1</globalExtrusionMultiplier>
<fanSpeed>
<setpoint layer="1" speed="0"/>
<setpoint layer="2" speed="100"/>
</fanSpeed>
</autoConfigureMaterial>
<autoConfigureQuality name="Medium">
<layerHeight>0.2</layerHeight>
<topSolidLayers>3</topSolidLayers>
<bottomSolidLayers>3</bottomSolidLayers>
<skirtLayers>1</skirtLayers>
<infillPercentage>20</infillPercentage>
<supportInfillPercentage>30</supportInfillPercentage>
</autoConfigureQuality>
When a user makes a change, they would need some way to indicate whether the change should be general, material specific, or quality specific. A drop down of colour choices maybe? "General" would then update the relevant tag in the main body of the .fff file. Either "specific" would update, or add the tag in the relevant block.
Problem 2: Ever expanding Auto-configure blocks
Presently, if I want to have a material specific speed for printing a flexible filament, the advice from Simplify3D is to add a <defaultSpeed> tag to the relevant <autoConfigureMaterial> block. This works great, changing the speed when I select that material from the auto-configure menu. However, the problem comes in when you want to swap back to another material. As the other <autoConfigureMaterial> blocks have no <defaultSpeed> tag by default, the speed is left at the speed set by the flexible <autoConfigureMaterial> block. To prevent this, one needs to add a <defaultSpeed> tag with the normal value to every other autoconfigure block.
In general, this means every auto-configure block must contain a tag and value for every modified value across all the blocks. This also prevents having a property unique to one process and common to the rest. Taking the example above, for the flexible to have a slower speed, the other processes then must all have unique values for their speeds. They can all be the same, but they can't be changed globally. If you wanted to increase the common speed, you'd have to go to each process and change it.
Suggested solution
Really simple, when an auto-configure option is selected, load the settings value from the main block of the .fff profile, then apply the changes of the new block.
Example of a simplified .fff file:
Code: Select all
<profile name="Test" version="2017-08-10 13:14:33" app="S3D-Software 4.0.0">
<defaultSpeed>3600</defaultSpeed>
<default
<autoConfigureMaterial name="PLA">
<globalExtruderTemperature>190</globalExtruderTemperature>
</autoConfigureMaterial>
<autoConfigureMaterial name="Flexible">
<globalExtruderTemperature>230</globalExtruderTemperature>
<defaultSpeed>1800</defaultSpeed>
</autoConfigureMaterial>
</profile>