I have a hinge of two pieces - I made the faces that close on each other angle offset constraint references. When I set to 0, it closes correctly. 90 degrees it's OK. 180 degrees, it's OK. But after setting it to 180 degrees, changing the value back to 90 degrees causes it to flip to the 270 degree opening. Setting it back to 0 is required before trying 90 again.
0 -> 90 OK
0 -> 180 OK
180 -> 0 OK
90 -> 0 OK
180 -> 90 fails (sets to 270, but reports as 90)
173.2 -> 90 fails (sets to 270, but reports as 90)
173 -> 90 OK
I just love discontinuous results in evaluation of a continuous function space. I'd blame it on CAD software programmers who can't handle a cross product, but it's probably an even worse bug than that.
Try setting show_dim_sign to yes. Creo starts to wig out around 180 degrees when it is always trying to assign positive values to the angle.
I have seen this as well but never understood the logic behind this. I have tried to reproduce it on a small data set but failed. Have you logged it to support?
I have no access to support.
Since the angle is declared I don't understand how it can be evaluated wrong, but they may be using a solver that uses the assembly directives as constraints and that the constraint solver is looking at the absolute value of the difference** in surface normals to generate possible solutions. Since the only difference between 90 and 270 is the sign of the dot product, if it's being ignored then it's a computational flip of the coin as to which to choose.
I know some software looks at the 'distance' between the starting condition and the possible solutions and chooses one that has the minimum distance (usually some sort of least squares.) In this case the distance to each solution is identical. 90 and 270 are equidistant from 180.
What doesn't fit is that the solver is able to distinguish between 0 and 180, even though they are equidistant from 90.
It's an annoying puzzlement.
I ended up redefining the joint so that zero is no longer the closed position, which is not what I wanted, but at least it covers the range I need (90 degree of travel)
**Not the numerical difference in magnitude or a vector subtraction, but the difference in direction, such as by dot product.
David, I've seen this before but I'm unable to replicate it in Creo 3 M040. Take a look at the attached video and sample assembly.
Are you able to share your model, or maybe a simplified version of it?
I have the same problem in Creo 2.0...It's a real problem!
Sometimes it seems to work but when I come back to the file the next day... it's flipped.
It should be very simple... there is a bracket that slips over a round shaft. I'm using two coincident constraints and an angle offset. Beyond 180 degrees the bracket doesn't know the difference between 90 degrees and 270 degrees...
Is one of your constraints "Insert"? If so, check to make sure that it is set to "Coincident" and not "Oriented". I have had things flip on me because axis/surfaces can be oriented even when flipped. I have also added an extra constraint with planes set to "Oriented" so that the axis/surfaces do not flip.
Thanks for the reply...
I tried to add an additional constraint but I don't see how to get "Oriented"... It's not a selection. (I'm on Creo 2.0)
I added a forth constraint making planes parallel... at a distance... nothing seemed to help.
Yes, I'm having the same troubles. It's very frustrating. I switched constraint type from "user defined" to "cylinder" I'm having more luck with this constraint.
What version of Creo are you on? We are about to go to Creo 4... I was hoping it would be fixed.
Thanks for the tip... I had not thought of using a Cylinder...
I'll give it a try next time.