In 8.13.24317.13001, 2024-11-12,
running this script
#! python 2 Must be on a line number less than 32.
from __future__ import absolute_import, division, print_function, unicode_literals
import Rhino
import Rhino.Geometry as rg
import scriptcontext as sc
def main():
cso = rg.CurveSimplifyOptions
res, objref = Rhino.Input.RhinoGet.GetOneObject(
"Select curve",
acceptNothing=False,
filter=Rhino.DocObjects.ObjectType.Curve)
if res != Rhino.Commands.Result.Success: return
rgC_In = objref.Curve()
for options in (
cso.RebuildLines,
cso.RebuildArcs,
cso.RebuildLines | cso.RebuildArcs):
print("\nCurveSimplifyOptions: {}".format(options))
rv = rg.Curve.Simplify(
rgC_In,
options=options,
distanceTolerance=sc.doc.ModelAbsoluteTolerance,
angleToleranceRadians=sc.doc.ModelAngleToleranceRadians)
print("Result: {}".format(type(rv)))
if __name__ == '__main__': main()
on the (linear within half of model tolerance) spline in
Curve_Simplify_RequiresArcOpt.3dm (41.9 KB) ,
the results are
CurveSimplifyOptions: RebuildLines
Result: <type ‘NoneType’>CurveSimplifyOptions: RebuildArcs
Result: <type ‘ArcCurve’>CurveSimplifyOptions: RebuildLines, RebuildArcs
Result: <type ‘LineCurve’>
Please fix Curve.Simplify so that the first result is also a LineCurve.
(I tested various arguments for distanceTolerance and angleToleranceRadians parameters but didn’t find any where just RebuildLines outputs LineCurve.)