cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Flipping angular offset orientation

Highlighted
Level 15

Flipping angular offset orientation

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.

 

Short version:

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.

11 REPLIES 11

Re: Flipping angular offset orientation

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.

Re: Flipping angular offset orientation

David,

can you upload your data ?

Martin Hanak


Martin Hanák

Re: Flipping angular offset orientation

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?

Re: Flipping angular offset orientation

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.

Re: Flipping angular offset orientation

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?

Re: Flipping angular offset orientation

Here is the video for those who don't want to download the zip file.

Video Link : 6144

Re: Flipping angular offset orientation

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...

Re: Flipping angular offset orientation

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.

Re: Flipping angular offset orientation

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.