I have this very annoying, intermittent problem with controlling arc centre points. This has happened in many situations - generic families, line-based families and adaptive components.
First draw a Start-End-Radius arc between two locations (say ref plane intersections or adaptive points), then lock the end points of the arc to those locations. The centre of the arc could be above or below the chord line (between its ends), depending on how you place it - lets say it goes below the chord line. Then set up two length parameters - one for the radius, and one for the length (distance between the end points), as per the image.
When you flex the the length parameter, the radius is set, so the location of the arc centre point moves up or down. Occasionally, for no apparent reason it will jump to the other side of the chord. It is more likely to happen when the component is flexed in a project, but sometimes also in the family environment. How can I stop this from happening? If you put a dimension from the chord to the centre of the arc (with appropriate trig formula), it just tells you it is over-constrained.
Hi timwaldock5907
I tried to reproduce what you described, but I wasn’t able to cause it to jump to the outside as you described. I tried this in the family editor and and loading the family in a project and changing the length value as a instance parameter.
I’ve attached the family I used to test. Does this same family have the issue?
How often does this randomly occur, and is there a specific length that it is occurs more often with?
Could you post the family you created from your screenshots?
Best regards,
John Lipp
Support Specialist
Product Support
Autodesk, Inc.
I think it happens because you have a parameter for the radius, which creates an unnecessary constraint if you are already constraining the chord. If you erase that radial dimension and parameter, the arc will be able to strech freely when you flex the chord parameter. You can obtain the value of the radius by formula, if that is necessary, assuming that the height of the arc is known.
Thanks for the responses.
John, I have downloaded your test file and I managed to get it to misbehave immediately (in the family environment):
Change the Length to 50,000, and you will get an error message; this is because thradius is too small - so you also need to change the radius to 30,000. Then it will push the centre-point of the arc above the line.
However, if you incrementally increase the values, it will probably not push the centre-point up (it will remain below the line) - so for example, increase both length and radius by a factor of 10:
Radius = 25,000
Length = 40,000
Then try making them 30,000 and 50,000, and it should work correctly this time.
So this is an example of what happens - it does not happen very often, but mostly seems to be triggered by dramatically increasing the values in one go (but only certain combinations of values).
Incidentally, in the real component that I am working with, I have an error checking formula applied to the radius so that it can never be less than half the length (to prevent error messages caused by impossible geometry):
Radius = if(Desired radius>Length / 2, Desired radius, Length / 2 +10mm)
But this has nothing to do with the weird behaviour with the centre point, as that happens with or without the error-checking formula.
Alfredo,
Thanks for the suggestion - it may prove to be a good workaround until I can get a proper fix. I had not realised that it was relatively easy to dimension the "sagitta" or height of the arc (I just assumed that since there is no end point / intersection there it would not be reliable). However, I have tried removing the radius dimension and replacing it with the arc height dimension, and it seems to work ok in simple situations. Yes i still need to use the radius in the calculations anyway. The only problem I see with this approach is that a lot of the arcs I have do not have orthogonal chords, so it could get pretty complicated with angled reference lines - but probably no worse than all the other trig calculations that I'm doing anyway.
Thanks John,
I look forward to a resolution to this issue, as it has caused me a lot of grief, particularly as it is so unpredictable.
Tim Waldock
I think that the solution is using the secant tangent theorem that calculate the radius r of a circle given the height H and width W of an arc using:
r= (W^2/8H) + H/2
I used this formula for a reduced arch wall opening and it worked fine.
I hope this is usefull.
Thanks Alex
Please follow the steps on the link:
I haven't tried but those steps will provide you a parametric arc you can control by adjusting the height and the length of the cord. The formula and geometric concepts get a little complex, I honestly don't understand the logic behind it. Maybe by doing some recap on algebra and geometry from school. As long as you follow the steps you will be fine!
Cheers