Automatic mesh-healing technique for model repair and finite element model generation BASED ON PAPER...
If you can't read please download the document
Automatic mesh-healing technique for model repair and finite element model generation BASED ON PAPER BY C.S. CHONG, A. SENTHIL KUMAR, H.P. LEE PRESENTED
Automatic mesh-healing technique for model repair and finite
element model generation BASED ON PAPER BY C.S. CHONG, A. SENTHIL
KUMAR, H.P. LEE PRESENTED BY NURIT MOSCOVICI 1
Slide 2
Good Polygonal Models What is a good model? Equilateral
triangles Valence close to 6 Equal edge lengths Feature
preservation Used for? 3D printing Finite Element Analysis 2 Link:
DGP lecture 9
Slide 3
Problems in Polygonal Models 3 Gaps Overlaps T-Joints Holes
Slivers
Slide 4
This Paper Black-box algorithm: automatic* model repair and
mesh generation Work on a triangle-meshed version of the model
Original geometric model is not repaired Fix mesh so it is
watertight Reconstruct mesh to get good quality 4
Slide 5
This Paper 5
Slide 6
Previous Work Directly healing geometry Edge merging
[Steinbrenner et al.2001] Stitching using geometric hashing
[Barequet 1997] Spatial partitioning [Murali et al. 1997]
User-controlled tools [Petersen et al. 2001] [Morvan et al. 1996]
Focus on specific elements Zipping small gaps [Sheng and Meier
1995] Healing slivers [Chew 1997] Healing slivers using Delaunay
[Edelsbrunner 2000] 6
Slide 7
Important terms 7 Triangle Mesh Elements Nodes Edges Free Edge/
Boundary Edge Free Node Element Inner Node Inner Edge
Slide 8
General description of algorithm Initial imperfect model Create
initial triangular mesh Search for free edges Identify and heal
small gaps and overlaps Identify and heal t-joints Identify and
heal large gaps/holes Surface reconstruction Mesh healing Healed
mesh model 8
Slide 9
Creating the Initial Mesh 9 Initial imperfect model Create
initial triangular mesh Search for free edges Identify and heal
small gaps and overlaps Identify and heal t-joints Identify and
heal large gaps/holes Surface reconstruction Mesh healing Healed
mesh model
Slide 10
Creating the Initial Mesh Create mesh by triangulating given
model Paving algorithm Create mesh nodes along model boundaries
Element edge length defined by user Create triangular elements that
conform to mesh nodes 10
http://mathworld.wolfram.com/Triangulation.html
http://www.cs.cmu.edu/~quake/triangle.delaunay.html
Slide 11
Search for Free Edges 11 Initial imperfect model Create initial
triangular mesh Search for free edges Identify and heal small gaps
and overlaps Identify and heal t-joints Identify and heal large
gaps/holes Surface reconstruction Mesh healing Healed mesh
model
Slide 12
Healing Small Gaps and Overlaps 12 Initial imperfect model
Create initial triangular mesh Search for free edges Identify and
heal small gaps and overlaps Identify and heal t-joints Identify
and heal large gaps/holes Surface reconstruction Mesh healing
Healed mesh model
Slide 13
Small Gaps and Overlaps In this paper gaps are defined as an
accidental space between two surfaces that should be connected
Usually occur because of numerical and translational errors 13 Gaps
Overlaps
Slide 14
Small Gaps and Overlaps Detection General idea: check proximity
between two candidate surface edges Traditionally detected by
checking proximity between two element edges Can be difficult if
edges are different sizes In this article: check proximity between
nodes 14
Slide 15
Nodal Merging Algorithm Node Pair: a pair of free nodes within
a user specified tolerance distance 15 Node-pair exists in model?
Continue to T-Joint healing Determine location of merged node
Collapse both nodes to determined location yes no
Slide 16
Determine New Node Location Calculate line intersection between
tangential planes at the two nodes. Distance between nodes and line
larger than tolerance distance: Location is at midpoint Else:
Project both points onto this line Location is at midpoint on line
16
Slide 17
Healing T-Joints 17 Initial imperfect model Create initial
triangular mesh Search for free edges Identify and heal small gaps
and overlaps Identify and heal t-joints Identify and heal t-joints
Identify and heal large gaps/holes Surface reconstruction Mesh
healing Healed mesh model
Slide 18
An area in the mesh where the node of one or more elements
intersects the edge of another. Modeling error or large truncation
error during translation In this article: also an area where a free
node is within a small distance from a free edge T-Joints 18
T-Joints
Slide 19
T-Joint detection Still checking proximity between two
candidate surface edges Find free edge with a free node within
tolerance distance. Edge-node pair 19
Slide 20
T-Joint Stitching Algorithm Node-pair exists in model? Return
to nodal merging algorithm Edge-pair exists in model? No Yes
T-Joint found: Nodal Insertion and element splitting Yes No 20 Go
to hole-healing algorithm
Slide 21
Stitching Project free node onto free edge in edge-node pair
Create new node at this location Split element belonging to free
edge at new node location Merge free node with new node 21
Slide 22
Stitching example 22
Slide 23
Healing Holes 23 Initial imperfect model Create initial
triangular mesh Search for free edges Identify and heal small gaps
and overlaps Identify and heal t-joints Identify and heal large
gaps/holes Surface reconstruction Mesh healing Healed mesh
model
Slide 24
Types of Holes Simple hole: a single loop of free edges Can be
any shape Ring hole: a hole consisting of at least two peripheral
loops Holes with islands 24
Slide 25
Hole Filling Algorithm For every closed loop of free edges
(simple hole), fill hole with triangle elements: Calculate the
minimum angle between two adjacent free edges in loop 3 options:
25
Slide 26
Option 1: Form triangle using these two free elements. 26
Slide 27
Option 2: Create two equilateral triangles using free edges
Calculate normal of new triangles to decide on plane 27
Slide 28
Option 2: Find average location between two new nodes Merge to
a single node at this location. Check if any node is within
tolerance distance of the new node and merge if found. 28
Slide 29
Option 3: Create two equilateral triangles using free edges.
Calculate normal of new triangles to decide on plane No nodal
merging 29
Slide 30
Ring holes Interactively identify ring holes Connect islands to
the main loop with a bridge line Bridge line converted to triangle
elements during meshing Leaving us with only simple holes If this
isnt done the islands will eventually be discarded Consistent
model, worse fidelity. 30
Slide 31
A word about values Why 75 and 135? Good meshes are as close as
possible to equilateral triangles (60 degrees) The author decided
75 degrees is tolerable Why? They dont say If angle is between 75
and 135 degrees you can split into triangles with an angle between
37.5 and 75 If angle is too small it will be handled in next stage
31
Slide 32
Reconstructing Surface Elements 32 Initial imperfect model
Create initial triangular mesh Search for free edges Identify and
heal small gaps and overlaps Identify and heal t-joints Identify
and heal large gaps/holes Surface reconstruction Mesh healing
Healed mesh model
Slide 33
Slivers Often generated during t-joint and hole healing Long
and slender Ratio of surface area/perimeter is small Bad for
numerical solution. 33 Slivers
Feature Edges Feature Edge : edge that is likely part of shape
definition and should be kept. Identified by Smoothness Angle :
angle along the edge of a skewed triangle 35 Link: DGP lecture 9
Smoothness Angle Automatic mesh repair thesis Agnes Larsson
Slide 36
Shape Factor Value indicating skewedness of a triangle Way to
determine if triangle should be fixed Based on equilateral factor
36 Equilateral factor: Shape factor: Where are the angles of a
given triangle
Slide 37
Reconstruction algorithm User input: shortest edge length
Element with edge shorter than the tolerance will be fixed User
input: tolerance factor Element with shape factor lower than the
tolerance will be fixed In the paper, 0.7 Smoothness angle: default
135 o If angle < 135 o consider as feature edge If angle >
135 o consider as planar 37
Slide 38
Reconstruction algorithm When to invoke nodal merging: Low
shape factor and edge shorter than edge length 38 One of the edges
is a feature edge No feature edge
Slide 39
Reconstruction algorithm When to invoke edge flipping: Low
shape factor and no short edges Take smoothness angle into account
39 Edge A is not a feature edge Edge A is a feature edge
Slide 40
Results Handles many different input formats Divergence from
original model bounded by mesh element size 40
Slide 41
Results 41
Slide 42
Future Work Find non-heuristic tolerance values Should be
connected to size of edges Do more during remeshing to ensure
optimal mesh Find a way to deal with open loops, missing surfaces,
complex holes, etc. Not mentioned: large overlaps, intersections,
bad normals 42
Slide 43
Later Work Repairing and meshing imperfect shapes with Delaunay
refinement [Busaryev, Dey, Levine 2009] Handles small errors
Output: good quality Delaunay mesh Weighted Delaunay triangulation
Merge gaps using original boundary data, instead of merging nodes
from new mesh Sealing Faceted Surfaces to Achieve Watertight CAD
Models[Smith, Tautges, Wilson 2010] Use original CAD face data to
fill holes more accurately Can heal non-manifold models 43
Slide 44
Later Work: Surveys Polygon Mesh Repairing: An Application
PerspectivePolygon Mesh Repairing: An Application Perspective
[Attene et al., 2013] Surface based reconstructions are suitable
when there are few errors, and are generally not very robust.
Volumetric solutions are more robust. No common strategy for
handling self intersections. Existing solutions are tailored to
specific problems. No automatic way of dealing with ring holes.
Fixing Geometric Errors on Polygonal Models: A Survey Fixing
Geometric Errors on Polygonal Models: A Survey [Ju, 2009] Surface
based reconstructions better for preserving small details of the
model Less robust, and can be very time consuming when large
holes/gaps must be filled. 44