Home
Reply
Contributor
bryn
Posts: 20

Self-intersections in facets, quality of facets

Hi

 

I have implemented code to do nonreg unite on multiple bodies. These bodies have been obtained via boolean subtract operations between spheres and cuboids.

 

I have two issues:

 

1. According to several (reliable) tools, the output facets sometimes intersect eachother.

What options do I have to avoid or cleanup self-intersections of the triangles? Does this mean the original faces in the body intersect also?

 

 

2. The quality of the triangle facets can be be very poor at edges, where two bodies were united. By quality I mean how close to equilateral the triangles are.

Is there any option, which would avoid these bad triangles? Is there a function to collapse/remove triangles with short edges?

 

 

Thanks a lot

 

Best regards

Bryn

 

 

 

 

 

Spatial Employee
asdf
Posts: 93

Re: Self-intersections in facets, quality of facets

Hi Bryn

 

Generally speaking the faceter obeys the surface tolerance you request.  So if the facets self intersect, I would expect (expect when there is a bug), that the faces with the self intersecting facets clash with each other (i.e., come within surface tolerance of each other).  You may want to try tightening the surface tolerance.  Also, there is an option header called approx eval which you should set to false.

 

(Code to do this is

#include "option.hxx"

//...

option_header* approx=find_option("approx_eval");

if( approx )

{

approx->set(FALSE );

}

else 

{

// there is a problem in this case

}

 

Regarding poor aspect ratio in narrow parts of faces, and the possibility of repairing self intersecting facets:

1) Our aspect ratio control is currently rather limited.  It only changes the aspect ratio of grid cells and cannot fix aspect ratio problems which are due to boundary shape.

2) We don't have tools for fixing self intersecting facets right now.

 

If the self intersecting facets don't go away with tighter surface tolerance, I would recommend contacting customer support so they can file a bug and we can look at the issue more closely.  Regarding the current limitations of aspect ratio and mesh repair: if you need this, you might want to mention it to customer support also.  If enough customers want this feature, we might be able to implement something to deal with the problem.

 

sorry the news isn't more positive on this.

 

Eric

Spatial Employee
asdf
Posts: 93

Re: Self-intersections in facets, quality of facets

One thing I forgot to mention is that we partner with VKI which makes an excellent surface mesher and volume mesher. If you are interested in using another product, I think the VKI mesher can solve this sort of problem.

 

Eric

Contributor
bryn
Posts: 20

Re: Self-intersections in facets, quality of facets

Hi Eric

 

The self-intersections went away after reducing the max_edge_length parameter.

 

It would be a nice feature, if the ACIS faceter could adaptively reduce the edge length in regions were self-intersections are occuring. Is there any similar functionality, i.e. if I know which facets intersect each-other,

 

1.) can I get ACIS to subdivide selected facets, such that new nodes are placed on the body face?

2.) if I have my own subdivision code, can I obtain the mid-edge point on the body face from ACIS?

 

Obviously, if I simply set the mid-edge node position to (p1+p2)/2 (where p1,p2 are the edge points on the body), the mid-edge node will not be exactly on the body surface.

 

Thanks

 

Best regards

Bryn

 

 

 

 

 

 

Contributor
bryn
Posts: 20

Re: Self-intersections in facets, quality of facets

Does it make sense to obtain the parametric position from p1, p2, then compute the center in parametric space, and then find the world coordinates of this parametric position?

 

Something like this:

 

 

p1_parametric = surface->param(p1_world);

p2_parametric = surface->param(p2_world);

 

pm_parametric = 0.5*(p1_parametric + p2_parametric);

 

pm_world = surface->eval_position(pm_parametric);

 

 

Thanks!

 

Best regards, Bryn

 

 

 

Contributor
bryn
Posts: 20

Re: Self-intersections in facets, quality of facets

Answering myself, the approach to find the center of the edge on the original body via the parametric coordinates works fine.

 

Best regards, Bryn