Offset Curve or Transform by Scale

I have got a closed Curve and I want to expand it by 0.0001 mm.

When I run the following code, only the first segment got the offset, while other curve stays the same. Any ideas?

     Curve[] curveList1 = curve.Offset(Plane.WorldXY, 0.0001, 0.0001, CurveOffsetCornerStyle.None);

     Curve[] curveList2 = PolyCurve.JoinCurves(curveList1);

     doc.Objects.Add(curveList2[0]);

Hi @TobyLai, can you post your curve ?

_
c.

Normally it is just a closed curve. For example rectangle or triangle.

What is the Absolute tolerance setting in Document Properties? Try using 0.00001 which is the smallest absolute tolerance which should ever be used. Understanding Tolerances [McNeel Wiki].

A better solution would be to change units to microns and scale the objects. Changing units in Options > Document Properties > Units will ask if the objects should be automatically scaled.

More questions: What is the size of the objects? How far from the origin are the objects?

A .3dm file with a sample curve would be helpful.

Hi @TobyLai, offset distance should be larger than model absolute tolerance and set the corner style to:

CurveOffsetCornerStyle.Sharp

it would be easier if you can post an example file.

_
c.

CurveOffsetCornerStyle.Sharp works