"TangentiallyConnectedFaces" collection includes non-connected faces

"TangentiallyConnectedFaces" collection includes non-connected faces

DRoam
Mentor Mentor
482 Views
2 Replies
Message 1 of 3

"TangentiallyConnectedFaces" collection includes non-connected faces

DRoam
Mentor
Mentor

(See this thread for background: Select and delete all fillets on a "dumb" imported solid)

 

Fillet Sample.png

 

 

 

In the attached Part (pictured above), there is a rule that is supposed to select all filleted/cylindrical faces (yellow), as well as any non-planar faces that are tangentially connected to said fillet faces, as these are likely to be fillet transition faces (blue).

 

It does this successfully, but for some reason the "TangentiallyConnectedFaces" property for the 0.125" fillet (on the left-hand side) includes the 0.5" spherical corner face on the far right-hand side, even though it's completely disconnected. The same is true for the 0.25" fillet.

 

You can see this in action by entering 0.125 or 0.25 as the fillet size limit in the input box.

 

Is this a bug in the "TangentiallyConnectedFaces" property? Or just a consequence of how Inventor defines "TangentiallyConnectedFaces"? Either way, is there a way to identify which "TangentiallyConnectedFaces" aren't actually connected so I can prevent those from being incorrectly selected?

 

 

0 Likes
483 Views
2 Replies
Replies (2)
Message 2 of 3

DRoam
Mentor
Mentor

Ok I figured out what's going on. "TangentiallyConnectedFaces" is related to the "Select Tangencies" command when right-clicking a Part face, and it selects the chain of ALL tangencies to the current face, AND their tangencies, and so on until it dead-ends. It does not select only the immediately-connected tangencies.

 

The only reason it seemed like that far right-hand corner was randomly being included is because my "select tangencies" loop filters out cylindrical faces, including the one bridging the connection between my 0.125" fillet and the right-hand corner fillet. Without this filter, it would have been more clear that the "TangentiallyConnectedFaces" collection includes the "chain" of all tangencies to the face in question.

 

So, with that figured out the second half of my question remains: is there a way to identify which "TangentiallyConnectedFaces" aren't actually connected so I can prevent those from being incorrectly selected? Or, in other words, is there a way to filter and only select the "TangentiallyConnectedFaces" that ARE actually connected?

 

I wrote a function that will check if two faces share an edge. It contains a two-leveled for loop that goes through each edge in the outer loop of face 1, and compares it to each edge in the outer loop of face 2, and checks if they're the same. This function itself is within a for loop that goes through every tangentially-connected face for the current fillet face, which itself is within a for loop that goes through every fillet face. So for every fillet face, I'm checking every edge of every tangentially-connected face to see if it matches an edge of the fillet face. This is a very slow process for parts with lots of tangentially connected faces.

 

Is there a faster way to get the collection of immediately-connected tangencies to a given face?

0 Likes
Message 3 of 3

DRoam
Mentor
Mentor

I think the biggest slow-down is that I'm checking every tangentially-connected face, even if it's on the other side of the part. It would be much faster if I could get the collection of immediately-connected faces to a given face, then check for tangency.

 

So, long story short, my current hurdle is: is there a way to get the collection of immediately-connected faces to a given face?

0 Likes