- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Self-inter sections in facets, quality of facets
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-13-2011 09:35 AM
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
Re: Self-inter sections in facets, quality of facets
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-13-2011 09:45 AM
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
Re: Self-inter sections in facets, quality of facets
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-13-2011 11:04 AM
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
Re: Self-inter sections in facets, quality of facets
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-15-2011 02:10 AM
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
Re: Self-inter sections in facets, quality of facets
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-15-2011 04:48 AM
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
Re: Self-inter sections in facets, quality of facets
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-15-2011 06:41 AM
Answering myself, the approach to find the center of the edge on the original body via the parametric coordinates works fine.
Best regards, Bryn

