@Thomas_Mahon I agree on the need for a ‘get plane’, but would Curve.Normal work here instead (one less step too)?

https://dictionary.dynamobim.com/#/Geometry/Curve/Query/Normal

@Thomas_Mahon I agree on the need for a ‘get plane’, but would Curve.Normal work here instead (one less step too)?

https://dictionary.dynamobim.com/#/Geometry/Curve/Query/Normal

@jacob.small Nope as you need the direction perpendicular to the plane of the curve (so the plane normal) - the curve normal will always be on the plane and it therefore won’t produce the correct result from the cross product. Obviously for non-planar curves however, this won’t work.

@Daan The Point.Project takes a point, geometry object (in my example it’s an arc) and a vector. The point is cast along the vector and if it intersects with the arc a point is returned at the intersection. The reason why this works is because of the vector calculation before which basically yields a vector perpendicular to the vector from your line (or wherever else you’ve derive it from).

Also @Nick_Boyts method (goal seek) is actually the right approach for either non planar curves or bsplines.

Isn’t that what this node returns?

Per the description:

“ **Description:**

The normal to the plane where the curve is contained. Only valid for planar curves.”

Okay thank you guys for the quick replies! I will mark the Answer of Jacob as the solution as that is what i am looking for

Yep, you’re right that will work and save having to create the plane. I was thinking about Curve.NormalAtParameter and didn’t know about Curve.Normal. Dodgy naming tbh as they both do different things but the former is the ‘correct’ definition of a curve normal. The latter should be renamed to PlaneNormal IMO as Curve.Normal is a misnomer.

1 Like