30 degrees from where…? The tangent line is touching the circle but you’d have to specify the line length and from what base point you’d like the angle to start from etc.
In this instance you could draw the base curve along the x axis and the desired curve/length at 30 degrees and then use the tan tan radius command to draw your circle?
There are other commands _TangentFrom if you press ctrl over the object snap tick boxes.
Line Tangent, pick the circle, then <120 - which should constrain the snap point to a one of two places on the circle. You would then need to click to choose which of the two points you want for the line start, then type a distance or pull out the line and click to fix the end point…
That exactly could be calculated from the angle constraint…
Now we can move the prospected line free or snap the endpoint to somewhere.
The tangent point is calculated while moving.
This could be also done when a constraint kicks in.
Yeah I can see that now. I was thinking of the problem based purely on the circle example you gave but it would be a bit more user friendly based on your proposal/question.
Hi All - Is this request/suggestion only for angles relative to the CPlane X? What would happen on non-planar curves or planar curves not parallel to the CPlane?
Here’s a quick Python to move the line to the curve to the target tangent in cases where that is possible.
import rhinoscriptsyntax as rs
def test():
crvId1 = rs.GetObject("Select the curve to move", 4, preselect=True)
if crvId1 is None: return
crvId2 = rs.GetObject("Select the target object", 4+8+16, preselect=False)
if crvId2 is None: return
Id, p1, p2 = rs.CurveClosestObject(crvId1, crvId2)
rs.MoveObject(crvId1, p1-p2)
test()
Works with surfaces & polysurfaces as the target as well, bonus!
A smarter way would be to check if the closest point on the target curve has a tangent parallel to the moved curve at its end of the closest point line, and not move the curve if the tangents are not parallel. And if it’s a line move the end point not the closest point…etc.
Later.
Isn’t it true that ANY curve has at any given point on it an infinitesimal local 3D direction which a tangency constraint MUST obey? Enforcing tangency at a joint on the line would thus, in the general case, also restrict the direction of the tangent line. Devising a tangent-point seeking technique in the scenario where the designer would like to specify the (general) curve to be tangent to and then place the other end of the line interactively might be pretty challenging, but really cool if implemented.
3D Arcs
I experience problems also when trying to draw arcs in 3D. I’m probably missing something but if anyone has a hint to a straightforward way to draw an arc in two planes simultaneously it’d be very helpful.
I sometimes want to draw a circular arc from a center point in any direction (i.e., in two planes). I’m doing some experiments with spheres and universal joints, and angles drawn in two planes are not the same as when measured in one plane, so I have rotated the CPlane as to make the arc in that one plane instead. So, recently I found out that I have reasons for reading up on spherical trigonometry ( https://en.wikipedia.org/wiki/Spherical_trigonometry )