If someone wants to make a node for curve filleting, this is some script that will put fillets on sharp corners:
code:
function FilletCurve( crv )
{
var factory = moi.command.createFactory( 'fillet' );
var objs = moi.geometryDatabase.createObjectList();
objs.addObject( crv );
// Make a list with one boolean entry for each sharp corner in the curve. Right now this assumes all corners are sharp.
var corners = moi.createList();
var segs = crv.getSubObjects();
for ( var i = 0; i < segs.length; ++i )
corners.add( true );
factory.setInput( 0, objs ); // Object list - objects to fillet
factory.setInput( 1, false ); // True = do straight corners (for brep filleting only).
factory.setInput( 2, corners ); // If filleting a single multi-segment curve, list of corners. true = fillet this corner.
factory.setInput( 3, 1.0 ); // Fillet radius
factory.setInput( 4, 'Circular' ); // Fillet shape, one of: 'Circular', 'ConstantDistance', 'G1', 'G2', 'G3'.
factory.setInput( 5, 1.0 ); // Scale factor for G1-3 blend shapes.
var res = factory.calculate();
if ( res.length != 1 )
return null;
return res.item(0);
}
- Michael
|