DG Kernel Documentation


Skip Navigation Links.
Skip Navigation LinksHome Page > API Reference > General Geometry > Curves > ICurveFreeFormEx Search Documentation


ICurveFreeFormEx Interface

ConstructFilletedLineStrip
ConstructFilletedLineStrip2

The interface is implemented by Free-form curves. Assuming that the free form curve is considered as a sequence of segments, methods of the interface create a new arc spline curve, fit into original segment strip so that internal sharp corners are replaced with arcs of specified radius. In other words the method smoothes-out joints of the segment strip. 

See also ICurveFreeForm, Pipes sampleInterface List


HRESULT ConstructFilletedLineStrip(double radius, IArcSpline3DCurve** curve)

Parameters

radius - [in] radius for arc fillets 

curve - [out] the new curve fit into the original segment strip. See remarks for the interface above. 

Returns

DISP_E_PARAMNOTOPTIONAL if the operation can not be performed because of invalid geometry. In most cases this means that the radius must be reduced.
S_OK in case of success.
 
Remarks:

The method creates new curve fit into the original segment strip. See remarks for the interface above.


HRESULT ConstructFilletedLineStrip2(IArrayNum* radii, IArcSpline3DCurve** curve)

Parameters

radii - [in] Array of radii for arc fillets. Radius 0 will be used for the arc between segment [0,1] and [1,2] 

Returns

DISP_E_PARAMNOTOPTIONAL if the operation can not be performed because of invalid geometry. In most cases this means that some of the radii must be reduced.
S_OK in case of success.
 
Remarks:

The method creates new curve fit into the original segment strip. See remarks for the interface above. Radii can be different for different joins of the segment strip. Radius 0 from the provided array will be used for the arc between segment [0,1] and [1,2]. If the array has size 1 the first radius will be used for all joints. If there is more that one element in the array its size must be at least n-2, where n is number of points, including ends, in the original segment strip  

To create a new numerical array query IArrayNum from the return of IDIObjGenerator.Create called with eType parameter set to eObjTypeNumericArray member of the EObjectType enumeration.