
 
 
5)  It contains inner part data : 
In many cases, device CAD model data 
contains invisible inner part data, which are 
not necessary for simulation purpose. 
2.2.2 Workpiece CAD Model 
In many cases, workpieces have lots of curved 
surface. For car assembly line, almost every 
workpieces have smooth surface, like body, side, 
door, hood, fender etc. The CAD model for this 
workpieces are far more bigger than that of the 
device CAD model, because it represents smooth 
surface using triangular mesh. Typically, CAD 
model for car door exceeds some hundreds mega-
bytes, while the size of device CAD model for 
robots is some mega-bytes. 
Due to the different characteristics, we apply 
different methods to reduce the size of CAD model. 
2.3  Reducing Device CAD Model Size 
After converted by various software, the structural 
information for the geometry data can be lost. This 
makes it difficult to go further processing for 
geometry handling. However, it is relatively easier 
to detect geometric features from device CAD model 
rather than workpiece CAD model.  
We used the geometric features extracted from 
device CAD model to reduce data size. 
2.3.1 Replacing the Primitives 
In many cases, the device CAD model contains lots 
of primitives like cylinder, sphere etc. For replacing 
cylinders, we assume that a n-side cylinder 
representation in the CAD model is an 
approximation of the pure logical cylinder which has 
infinitely large n.  
A cylinder consists of top, bottom and n-side faces, 
where n ≥ 3. A cylinder with n-side consists of 4n-4 
triangles. A cylinder contained in the device CAD 
model typically has large n value. By detecting this 
cylinder geometry and reducing the n, we can reduce 
the size of data.  
 
 
Figure 2: Calculation of n-side for cylinder. 
Figure 2 shows how many number of cylinder 
sides we can reduce, when the final error tolerance e 
for simulation data is given. Using the radius r of the 
pure logical cylinder and error tolerance e, we can 
calculate maximum θ for reduced cylinder. The 
reduced cylinder has 360/θ side faces. 
Though this method is quite effective, it is 
difficult to apply in real situation, because it is hard 
to identify cylinder geometry from unstructured 
triangular meshes. For sphere, it is more difficult to 
identify. So this method is only applicable when the 
CAD data contains structural information and we 
can identify them.  
Another problem for this method is after 
replacing into the simple geometry, some parts 
attached to the original cylinder side surface can be 
dangling on a replaced cylinder. 
2.3.2  Removing Small Parts 
The device CAD model contains lots of small 
components needed for part assembly. Small bolts 
and nuts are one of those things. If these parts are so 
small that the size is less than the error tolerance for 
the simulation, we can safely remove them. 
But in this case, it is not always possible to 
identify small parts from unstructured triangular 
meshes. 
2.3.3  Removing Small Holes 
The effect of removing holes from the geometry is 
quite potential. A cube without hole can be 
represented with 12 triangles, while a cube with one 
hole of n side needs 4n + 8 triangles. (n+4 for top, 
n+4 for bottom, 2n for side) If a hole is consists of 
20 sides, the number of triangles reaches 4*20+8 = 
88, which is more than 7 times of 12. If number of 
holes increases, the number of triangles increases 
rapidly. 
The hole removing algorithm is difficult to 
implement, because it is not always possible to 
identify holes from unstructured meshes. For this 
reason, first we detect small inner circle from a 
surface. It is relatively easy to implement even if we 
don’t have structural information.  
Step 1: Group faces which exists in a same plane. 
That means, the faces has the same plane equation, 
and they are inter-connected. 
Step 2: merge the grouped faces 
Step 3: Trace boundary edges from the merged 
face 
Step 4: Identify outmost boundary edges 
Step 5: Using the boundary edges, re-triangulate 
the surface. 
ICINCO 2008 - International Conference on Informatics in Control, Automation and Robotics
96