# How best to copy a circle to another which is at a different orientation?

Hi,
I have rivet circles brought in from photogrammetry, those on the lower parts of the fuselage are as expected leaning inwards as they disappear under the body.
In perspective view how can I copy my Rhino drawn planar upright circle (XYplane) to those and make it take on their planar angle ?

For most on the sides I havent bothered for what is needed.

Once they are in position I need to project to skin so I would get a very eliptical circle after the projection for the lower ones. They will cease to be perfect circles anyway.

I am not going to create a Cplane for each rivet angle either !

Steve

Are the “rivet circles brought in from photogrammetry” all closed planar curves?

Hi,
Most of them are just points in fact so no way of overcoming that one !!! , but some are planar curves (properties choice of planar or circle, choosing circle makes it planar and a circle)

In the attached jpg the orange circles are photogrammetry.

However as can be seen in the perspective view jpg attached I also need to copy the light blue rhino circles to the points and have the rhino circles take on a far better orienation than hang there like earings !
Command something like copy to point and reorient tangent to nearest surface !

What is best method to get these light blue circles aligned to surface and centres on the points ?

I then need to project them perp to surface, subject of my other post !

Steve

OK, this will work for closed planar curves. For points, not much you can do as points do not have a unique “plane” in which they lie, and thus impossible to determine the plane for copying the circle.

–Mitch

CopyCircleToPlanarCrvCtr.py (1.4 KB)

Cheers, I posted an edit and image but your reply pipped me to the post (pun !)

see the other dilemma.

Just wondering , if a point has no direction, what if I somehow get a line from the point to nearest part of surface.

How would I do that ?

Then use the line as the circle axis snapping circle to the point or something along those lines (another pun !). How would I do that ?

Its a thought

Steve

Line>Normal. Select the surface, then when it asks you for the start point, don’t panic, run the mouse cursor over to the point in question - you will see a tracking line to the surface from the point - so click once on the point and then again on the same point - you will get a line normal from the surface to the point.

And yes, this can be scripted, but it’s far past my bedtime…

–Mitch

Hi Mitch,

on the edge of my seat here …as I need to then know how to get those circles (blue earings in jpg) to be drawn on the point that now thank s to advice will have a ‘normal’ line to surface, (circle centre being the copy from location I used) and oriented about that line. So circle is tangent to surface.

I could also I suppose draw the circle tangent to surface where that line intersects the surface. If I want them on the surface, they must end up projected onto it at the end of this mission, if I find out how to do that, and just found out, PULL command

and you are off to ZZZzzzzzz land !

Steve

steve, if you have lines that are normal to your surface, make sure they are extending all the way through a bit, then just run the pipe command on all the lines at once. Voila, cylinders. Intersect those with your surface and your current quest will be complete!

Carvecream,
what a great idea.
Is there any way of extending those lines all at once a little bit into the surface , else its a one by one task.

Just remains for me to find out how to create circles at the points tangent to the surface where the ‘normals’ line meets surface and job done, as I also need a visual prior to the ‘PULL’ command of all the rivets plotted and their diameters to make sure I have the pattern correct.

Steve

You can make the perpendicular (edit: normal to surface) curve with “bothsides” so you don’t need to extend it.
The tool in Rhino is just a macro:

! _Line _Normal _Pause _Pause _Bothsides

So you can also add a length to it:

! _Line _Normal _Pause _Pause _Bothsides 10

And you can just copy paste this line into Rhino and off you go.
If your surface is preselected then just paste once, click on surface and rightclick to repeat as many times you like.

Hi Holo,
Excellent news.

unfamiliar with macros until I get time to read the tutorials I now have been pointed to, where does one copy paste ?

Into the command line ?

it will then prompt me for a length ?
… or do I add that length to the macro before I copy paste it in ?

Steve

Hi @Steve1,

type MacroEditor in the cmd line.

You can change “10” to what ever value you like if you want that automated.
So when in Rhino, just “paste”. No need to start anything.

The first line without the “10” value is the Rhino built in tool, from the right-click option from the icon for line normal to surface.
It is a separate tool in the line menu (icon for polyline) in rhino

1 Like

Hi,

This is working a treat, I am not even entering a value, pick the point then move mouse and line extends with move, so any length I want so it seems.

Steve

Good.
And yes, if no value is added then you have to either pick one by dragging the mouse and clicking, or entering a number and hitting enter.