E-13 dimentions


I’m new in Rhino. Probably I do something wrong…

My task was to create ~50 surfaces. I used lines, offsets, trims, polylines. Surfaces are pretty simple - usually 4 points and all points in one plane.

Some of surfaces are good , but some of them like:

  Plane Surface
    "U":  (-9.09495e-13 <= U <= 431.8)
    "V":  (0 <= V <= 2415.05)
Edge Tally:
    4 boundary edges
Edge Tolerances: all 0.000
Vertex Tolerances: all 0.000
Render mesh: 1 mesh  156 vertices  125 polygons
Analysis mesh: none present


(B-rep geometry is the same as underlying surface.)
surfaces: 1
3d curve: 4
2d curves: 4
vertices: 4
edges: 4
trims: 4
loops: 1
faces: 1
curve2d[ 0]: TL_NurbsCurve domain(0,431.8) start(0,0) end(431.8,0)
curve2d[ 1]: TL_NurbsCurve domain(3278.65,5693.7) start(-9.09495e-13,2415.05) end(0,0)
curve2d[ 2]: TL_NurbsCurve domain(2846.85,3278.65) start(431.8,2415.05) end(-9.09495e-13,2415.05)
curve2d[ 3]: TL_NurbsCurve domain(431.8,2846.85) start(431.8,0) end(431.8,2415.05)
curve3d[ 0]: TL_NurbsCurve domain(0,431.8) start(-6299,-0,9424.2) end(-5867.2,-0,9424.2)
curve3d[ 1]: TL_NurbsCurve domain(3278.65,5693.7) start(-6299,0,11839.3) end(-6299,0,9424.2)
curve3d[ 2]: TL_NurbsCurve domain(2846.85,3278.65) start(-5867.2,-0,11839.3) end(-6299,-0,11839.3)
curve3d[ 3]: TL_NurbsCurve domain(431.8,2846.85) start(-5867.2,0,9424.2) end(-5867.2,0,11839.3)
surface[ 0]: ON_PlaneSurface u(-9.09495e-13,431.8) v(0,2415.05)
surface details:
vertex[ 0]: (-6299.000000 -0.000000 9424.200000) tolerance(0)
edges (0,1)
vertex[ 1]: (-6299.000000 0.000000 11839.250000) tolerance(0)
edges (1,2)
vertex[ 2]: (-5867.200000 -0.000000 11839.250000) tolerance(0)
edges (2,3)
vertex[ 3]: (-5867.200000 0.000000 9424.200000) tolerance(0)
edges (3,0)
edge[ 0]: v0( 0) v1( 3) 3d_curve(0) tolerance(0)
domain(0,431.8) start(-6299,-0,9424.2) end(-5867.2,-0,9424.2)
trims (+0)
edge[ 1]: v0( 1) v1( 0) 3d_curve(1) tolerance(0)

Is there any way to get rid of these -9.09495e-13 and round it to 0?


Hi Den, you might try the command _Reparameterize with _Auto option to reset the UV Domains. Without the option you can set the domain bounds explicitely.



Thanks a lot, Clement. This command works good. Now “U”: (0 <= U <= 431.8)

But I still have

curve2d[ 0]: TL_NurbsCurve domain(0,431.8) start(9.09495e-13,0) end(431.8,0)

Is there a way to reset this to 0?


hm, if this is a trimmed surface, have you tried to detach the trim curves, then reparameterze them and retrim the (reparameterized) surface with them ?

i think the sientific notation 9.09495e-13,0 is very close to zero and Rhino is using it internaly. But you could read out these values using Scripting and might be able to format the output so it displays 0 instead of the notation above.

Under help/plugins/RhinoScript there is a method and example to get hold of the SurfaceDomain values. It might be possible to check the domain start/end values before printing them and format or round them when necessary. Would this be useful ?



I’m just wondered were from this 9.09495e-13 came from. All the dimensions were not less than 0.05mm.
Scripts now are to complicated for me, so the surfaces were just re-created with points which were adjusted to 0.05mm.
Thanks for advises!