Tuesday, November 8, 2011

Smooth

Smooth

This plugin smooths jagged extruder paths. It takes shortcuts through jagged paths and decreases the feed rate to compensate.

Smooth is based on ideas in Nophead's frequency limit post:
http://hydraraptor.blogspot.com/2010/12/frequency-limit.html:

The main parameter is 'Maximum Shortening over Width', with a default of 1.2. It defines the maximum shortening of the shortcut compared to the original path. Smooth goes over the path and if the shortcut between the midpoint of one line and the midpoint of the second line after is not too short compared to the original and the shortcut is not too long, it replaces the jagged original with the shortcut. If the maximum shortening is too much, smooth will shorten paths which should not of been shortened and will leave blobs and holes in the model. If the maximum shortening is too little, even jagged paths that could be shortened safely won't be smoothed.


Bookend to Alteration

The Bookend plugin is being renamed Alteration. The old parameter values from Bookend should be read by Alteration.

Also, Alteration now removes the alteration prefix tokens from the alteration lines. Alteration lines now have a prefix token so they can go through the craft plugins without being modified. However, the tokens are not recognized by the firmware so they have to be removed before export. The alteration token is:
(<alterationDeleteThisPrefix/>)

Finally, the 'Replace Variable with Setting' option has been added, the default is on. This is based on code from Rob Gisehurt:
http://tinkerin.gs/

If Replace Variable with Setting is selected and there is an alteration line with a setting token, the token will be replaced by the value.

For example, if there is an alteration line like:
M140 S<setting.chamber.BedTemperature>

the token would be replaced with the value and assuming the bed chamber was 60.0, the output would be:
M140 S60.0


Carve and Inset Bridge change

The 'Infill in Direction of Bridge' option was moved from carve to inset. The old parameter values from carve should be read by inset.

Also the 'Bridge Width Multiplier', which was the default of 1.0 in every online settings list I could find, has been deleted. The only remaining bridge parameters and options are:

1) 'Infill in Direction of Bridge' in inset
2) 'Bridge Feed Rate Multiplier' in speed
3) 'Bridge Flow Rate Multiplier' in speed
4) 'Bridge Cool' in cool


Dimension

The 'Maximum E Value before Reset' with a default of 91234.0 was added to dimension.

It defines the maximum E value before it is reset with the 'G92 E0' command line. The reason it is reset only after the maximum E value is reached is because at least one firmware takes time to reset. The problem with waiting until the E value is high before resetting is that more characters are sent. So if your firmware takes a lot of time to reset, set this parameter to a high value, if it doesn't set this parameter to a low value or even zero.


Export

The 'Analyze Gcode' option has been added to export. It just adds an option for those using skeinforge as a command line application.

The default is on. When selected, the penultimate gcode will be sent to the analyze plugins to be analyzed and viewed.


Fill

The 'Surrounding Angle' in fill can now be changed, the default is 60 degrees.

It defines the angle that the surrounding layers around the infill are expanded.

To decide whether or not the infill should be sparse or solid, fill looks at the 'Solid Surface Thickness' surrounding layers above and below the infill. If any of the expanded layers above or below the infill do not cover the infill, then the infill will be solid in that region. The layers are expanded by the height difference times the tangent of the surrounding angle, which is from the vertical. For example, if the model is a wedge with a wall angle less than the Surrounding Angle, the interior layers (those which are not on the bottom or top) will be sparse. If the wall angle is greater than the Surrounding Angle, the interior layers will be solid.

The time required to examine the surrounding layers increases with the Surrounding Angle, so the Surrounding Angle is limited to eighty degrees, regardless of the input value.

If you have an organic shape with gently sloping surfaces; if the Surrounding Angle is set too high, then too many layers will be sparse. If the Surrounding Angle is too low, then too many layers will be solid and the extruder may end up plowing through previous layers:
http://hydraraptor.blogspot.com/2008/08/bearing-fruit.html


Fillet and Speed Multipliers

'Corner Feed Rate over Operating Feed Rate' in fillet has been changed to:
'Corner Feed Rate Multiplier'

'Perimeter Feed Rate over Operating Feed Rate' in speed has been changed to:
'Perimeter Feed Rate Multiplier'

'Perimeter Flow Rate over Operating Flow Rate' in speed has been changed to:
'Perimeter Flow Rate Multiplier'

The old parameter names will automatically be read into the new parameter names, you do not have to do anything. This section if just a heads up.


Question about Perimeter Width and Infill Width

I am planning on replacing 'Perimeter Width' and 'Infill Width' with 'Extrusion Width'. This is to simplify the skeinforge settings and code. The new Extrusion Width would be read from the old Perimeter Width. The Infill versus Perimeter difference would be accommodated with the Perimeter Feed Rate Multiplier in speed.

Originally, skeinforge used Extrusion width. Then someone asked for a way to change Perimeter Width and Infill Width independently, which was added. Then someone else asked for a way to change the Perimeter Feed Rate and Perimeter Flow Rate independently, and that was added also. However, once there was a way of changing Perimeter Feed Rate and Perimeter Flow Rate, there was no longer any need to set Infill Width independently, because the effective width could be changed by changing the feed rate. So Infill Width became redundant, which I just noticed recently.

Before making this change I'd just like to know; is there is a good reason why Infill Width should not be removed?


Raft and Speed, Object First Layer

All the 'Object First Layer..' feed rate and flow rate options have been moved from raft to speed. This was done to fix a flow rate bug. The old parameter values from raft should be read by speed, but it's a good idea to check that they were.


Skin

The number of divisions on the skinned surfaces can now be set.

====Horizontal Infill Divisions====
Default: 2

Defines the number of times the skinned infill is divided horizontally.

====Horizontal Perimeter Divisions====
Default: 1

Defines the number of times the skinned perimeters are divided horizontally.

====Vertical Divisions====
Default: 2

Defines the number of times the skinned infill and perimeters are divided vertically.


Download, Documentation and Forum

The stable skeinforge version is at:
http://fabmetheus.crsndoo.com/

The unstable skeinforge is on my website at:
http://members.axion.net/~enrique/reprap_python_beanshell.zip

The documentation is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge

The forum is at:
http://forums.reprap.org/list.php?154