Hello everyone.
How do I find the intersecting point as in the example below? What I’m trying to do is move the curve on the Z-axis so that they are touching tangentially at exactly one point.
How to find interecting point
If I understood correctly, if you run Line>Perpendicular to two curves, it will create a line between the two, you can then move one curve from the end of the line to the other.
Alternatively, do the reverse and extrude the upper curve towards the bottom. Then follow the above steps in the reverse direction.
it s a pity you did not share a file, its not obvious from you screenshot wether it is 2d or 3d problem:
if its a 3d problem - both curves are on different planes or they are 3d freeform → see Bobis approach.
it s a planar 2d problem on X-Z plane ?
my workflow would be
just for illustration the violett line is perpendicular to both curves. the shortest distance to move them to be tangent. but not necessarily vertical.
hope this helps - kind regards -tom
Hi Tom,
I tried your method for 2D and when I checked for the intersection of the moved curve and the target curve I got two intersection points, meaning the move overshot slightly. I can place the curve more accurately (and quickly?) by using the gumball and zooming out.
DumbZoomWins.3dm (79.3 KB)
Blue curve placed via UVCrv.
Red curve placed via gumball.
Thanks for createUVCrv and applyCrv though - two more commands I didn’t know!
Also worth noting that not all curves will extrude into a valid surface. E.g. move one end point inward beyond vertical and extrude won’t work.
Regards
Jeremy
About a decade ago or a little more, I used to work with SolidThinking in a company. It had two extremely powerful capabilities:
Super robust history that worked even on split intersecting surfaces, variable radius fillets, and blends. It was probably the best in the industry, at least for its time.
Ability to move curves, surgaces, and objects and snap them to other objects so that they will touch together precisely. I guess that they used inverse kinematics for that.
@jeremy5
this is what i get.
the final curve exactly intersects in one point.
DumbZoomWins_02_tomp.3dm (3.1 MB)
for applyCrv you have to select the rectangle and the point to get the precise position.
why do you have this fancy wavy curve ? (cyan)
check above file and see if you can repeat the workflow.
kind regards - tom
see the workflow i posted above
It’s just good old calculus; the curves’ first derivatives (slopes) must be equal 𝑓′(𝑎) = 𝑔′(𝑎) at the point of intersection, the distance is the common normal. The good thing is that Rhino does all that for us while we’re chewing gum.
I used Tom’s method and the moved curve had only one intersection. The result is very sensitive to selecting the min/max point on the UV curve.
Ah that was my mistake: I didn’t include the rectangle in my selection for ApplyCrv. If I include it I see what you see. Thanks for clarifying.
You get the cyan line if you select the uv curve but not the rectangle. As it says in the help file “Tip: If the UV rectangle is not selected together… …The result will not be correct”. I really must start reading the help file before using a new command, not after!
@Tom_P et al,
I feel this is turning into a challenge: how would you go about moving the white club vertically upwards to just touch the red heart?
AskTomReMove.3dm (92.8 KB)
Cheers
Jeremy
The first point that touches?
Let s clarify the rules:
Vanilla rhino please, no Kangaroo
Use Tom’s brillant method.
SubCrv for a segment of the red curve.
Extrude the subcrv.
CreateUVCrv for the white curve.
Point at quad on the UV white curve, and then line through that point.
ApplyCrv for the line back to the extruded surface.
Move/Copy the white curve.
AskTomReMoveDC01.3dm (2.1 MB)
Yes, first point.
But maybe two categories: a) Vanilla Rhino, no grasshopper, and b) grasshopper. Some people may want to rise to the challenge of a, others to b.
The latter could come into its own if there is a repeated need to do this.