⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tutorialacis tutorial 3 understanding and traversing acis topology (part i) - docr18.mht

📁 acis说明文档
💻 MHT
📖 第 1 页 / 共 5 页
字号:
reversed with respect to the edges. </P>
<DIV class=3Dcenter>
<DIV class=3D"thumb tnone">
<DIV class=3Dthumbinner style=3D"WIDTH: 602px"><A class=3Dimage=20
title=3D"The edges and coedges of a wire"=20
href=3D"http://doc.spatial.com/r18/index.php/Image:Tutorial3_Wire.jpg"><I=
MG=20
class=3Dthumbimage height=3D163 alt=3D"The edges and coedges of a wire"=20
src=3D"http://doc.spatial.com/r18/images/thumb/9/98/Tutorial3_Wire.jpg/60=
0px-Tutorial3_Wire.jpg"=20
width=3D600 border=3D0></A>=20
<DIV class=3Dthumbcaption>
<DIV class=3Dmagnify style=3D"FLOAT: right"><A class=3Dinternal =
title=3DEnlarge=20
href=3D"http://doc.spatial.com/r18/index.php/Image:Tutorial3_Wire.jpg"><I=
MG=20
height=3D11 alt=3D"" src=3D"" width=3D15></A></DIV>The edges and coedges =
of a=20
wire</DIV></DIV></DIV></DIV>
<P>What are the relationships among the wires of a shell? The wires of a =
shell=20
should not be connected to each other physically or topologically unless =
they=20
touch at a vertex on a face. In any other situation, if two wires touch =
each=20
other, they should be combined into a single wire. In addition, wires =
must be=20
split wherever they intersect a face - and each wire must be attached to =
a=20
vertex on the face at the point of intersection. </P>
<P>The concept of a wire is implemented in the WIRE class. The WIRE =
class is=20
derived from the ENTITY class. Each instance of a WIRE contains a =
pointer to the=20
SHELL that owns it, a pointer to the next WIRE in the linked list of =
WIRES owned=20
by the SHELL, and a pointer to the first COEDGE of the WIRE. (The =
relations=20
among the COEDGES of a WIRE are discussed in the Coedge section below.) =
</P>
<P>The topological elements of most interest are faces, edges, and =
vertices. The=20
previously mentioned upper topological elements (bodies, lumps, shells,=20
subshells, and wires) are simply means of organizing sets of faces, =
edges and=20
vertices. Faces, edges and vertices have corresponding geometry elements =

(surfaces, curves, and points) which specify the shape of the object we =
are=20
modeling. </P><A name=3DFaces></A>
<H3><SPAN class=3Dmw-headline>Faces </SPAN></H3>
<DL>
  <DD><SPAN class=3D"boilerplate seealso"><I>Main article: <A =
class=3Dnew=20
  title=3DFaces=20
  =
href=3D"http://doc.spatial.com/r18/index.php?title=3DFaces&amp;action=3De=
dit">Faces</A></I></SPAN>=20
  </DD></DL>
<P>A <B>face</B> defines a bounded region on a surface. It allows us to =
model=20
using a small portion of a much larger surface and to model regions with =
holes=20
in them. </P>
<DIV class=3D"thumb tright">
<DIV class=3Dthumbinner style=3D"WIDTH: 252px"><A class=3Dimage=20
title=3D"A body with one solid and three sheet regions"=20
href=3D"http://doc.spatial.com/r18/index.php/Image:Tutorial3_FaceTypes.jp=
g"><IMG=20
class=3Dthumbimage height=3D204 alt=3D"A body with one solid and three =
sheet regions"=20
src=3D"http://doc.spatial.com/r18/images/thumb/a/a7/Tutorial3_FaceTypes.j=
pg/250px-Tutorial3_FaceTypes.jpg"=20
width=3D250 border=3D0></A>=20
<DIV class=3Dthumbcaption>
<DIV class=3Dmagnify style=3D"FLOAT: right"><A class=3Dinternal =
title=3DEnlarge=20
href=3D"http://doc.spatial.com/r18/index.php/Image:Tutorial3_FaceTypes.jp=
g"><IMG=20
height=3D11 alt=3D"" src=3D"" width=3D15></A></DIV>A body with one solid =
and three sheet=20
regions</DIV></DIV></DIV>
<P>A face may be a sheet face, in which case it is exterior to all solid =

regions, or a face may bound a solid region, in which case it separates =
the=20
inside of the solid from the outside of the solid (in other words it has =

material on only one side of it), or a face may be embedded inside a =
solid=20
region, in which case it has material on both sides of it. A body with a =
solid=20
region, two external sheet faces, and one internal face is depicted in =
the=20
figure to the right. </P>
<P>A face may be bounded by 0, 1, or more loops of edges. A face may =
have zero=20
bounding loops if the surface of the face is bounded. The only two cases =
in=20
which this occurs are: (1) if the face is a complete sphere and (2) if =
the face=20
is a complete "donut" torus. (If the surface is an "apple" or "lemon" =
torus,=20
then vertices exist at the surface singularities.) If a face has a =
single loop,=20
the loop runs around the periphery of the face and the face doesn't have =
any=20
holes in it. Usually if a face has multiple loops it has holes in it, =
although a=20
loop may degenerate to a single point, in which case the hole is =
infinitesimally=20
small. An common example of a face with two loops, one of which that has =

degenerated to a single point is a conical face, where the degenerate =
loop is at=20
the apex of the cone. </P>
<P>What are the relationships among the faces of a shell? Unlike wires, =
the=20
faces of a shell may be connected to each other both physically or=20
topologically. If two faces touch each other (i.e., they intersect) then =
there=20
must be one or more edges and vertices to represent the set of common =
points.=20
Faces of a shell may not touch except along their boundary edges and =
vertices.=20
</P>
<P>The concept of a face is implemented in the FACE class. The FACE =
class is=20
derived from the ENTITY class. Each instance of a FACE contains a =
pointer to the=20
SHELL that owns it, a pointer to the next FACE in the linked list of =
FACES owned=20
by the SHELL, a pointer to the first LOOP of the FACE, and pointer to =
the=20
SURFACE underlying the FACE. (SURFACES will be discussed in Tutorial 4.) =
</P><A=20
name=3DLoops></A>
<H3><SPAN class=3Dmw-headline>Loops </SPAN></H3>
<DL>
  <DD><SPAN class=3D"boilerplate seealso"><I>Main article: <A =
class=3Dnew=20
  title=3DLoops=20
  =
href=3D"http://doc.spatial.com/r18/index.php?title=3DLoops&amp;action=3De=
dit">Loops</A></I></SPAN>=20
  </DD></DL>
<P><BR>A <B>loop</B> consists of one or more coedges and is used to =
bound a=20
face. In other words, a loop of coedges separates the region that is =
inside the=20
face from the region that is outside the face. (Loops do not exist in =
wires.)=20
The direction of a loop of coedges is counter clockwise with respect to =
an=20
outward pointing face normal. (For those of you with a background in =
physics or=20
mathematics, this follows the "right hand rule." If you think of the =
thumb of=20
your right hand as the normal to the face, your curled fingers point in =
the=20
direction of the loop.) Alternatively, one may view the orientation of a =
loop of=20
coedges as always having the material of the face on the left side of =
the=20
coedge. Coedges are always oriented "head to tail" in a loop. In other =
words,=20
the coedges of a loop form a closed loop. (Well, almost always... ACIS =
can model=20
unbounded faces or partially bounded faces, but this is very rarely =
done. Faces=20
are generally bounded, which implies that loops are closed.) </P>
<P>Multiple loops are required on a face if there are holes in the face. =
(This=20
is analogous to a lump needing multiple shells if there are voids in the =
lump.)=20
Some ACIS developers want to classify all loops as being either =
peripheral loops=20
or hole loops. That is, they want to determine if the loop bounds the =
exterior=20
of the face or a hole within the face. It is not always possible to make =
this=20
determination. The notions of "interior" and "exterior" loops depend =
upon the=20
geometry of the face and is not a topological quantity. For instance, =
given a=20
spherical face with two relatively small loops on it, how can one =
determine=20
which loop represents the periphery of the face and which loop =
represents a hole=20
in the face? </P>
<DIV class=3D"thumb tright">
<DIV class=3Dthumbinner style=3D"WIDTH: 302px"><A class=3Dimage=20
title=3D"Faces with various types of loops"=20
href=3D"http://doc.spatial.com/r18/index.php/Image:Tutorial3_Loop1s.png">=
<IMG=20
class=3Dthumbimage height=3D227 alt=3D"Faces with various types of =
loops"=20
src=3D"http://doc.spatial.com/r18/images/thumb/5/54/Tutorial3_Loop1s.png/=
300px-Tutorial3_Loop1s.png"=20
width=3D300 border=3D0></A>=20
<DIV class=3Dthumbcaption>
<DIV class=3Dmagnify style=3D"FLOAT: right"><A class=3Dinternal =
title=3DEnlarge=20
href=3D"http://doc.spatial.com/r18/index.php/Image:Tutorial3_Loop1s.png">=
<IMG=20
height=3D11 alt=3D"" src=3D"" width=3D15></A></DIV>Faces with various =
types of=20
loops</DIV></DIV></DIV>
<P>ACIS does contain a loop classification algorithm. What does it do =
when=20
confronted with such situations? In the first image in the figure to the =
right=20
it is rather apparent that the planar face has a single loop that could =
be=20
classified as a peripheral loop, and in the second image in the figure =
to the=20
right it is rather apparent that the planar face has one loop that could =
be=20
classified as a peripheral loop and one loop that could be classified as =
a hole=20
loop, but what about the two loops on the cylindrical face in the third =
image?=20
Neither of these is obviously peripheral to the other. So what does ACIS =
do?=20
ACIS classifies a loop as being of one of three types: a peripheral =
loop, a hole=20
loop, or a separation loop. So, what is a separation loop? A separation =
loop=20
exists on a surface that is closed in one or both directions, the loop=20
completely spans the parameter range in the closed direction, and it =
separate=20
the surface into two regions. Actually, ACIS distinguishes between loops =
that=20
separate the surface in the parametric <I>u</I> direction, the =
parametric=20
<I>v</I> direction, and in both parametric directions. The two loops in =
the=20
third image are examples of u-separation loops. They wrap completely =
around the=20
cylinder. Cylindrical, conical, spherical, toroidal faces can are closed =
in the=20
parametric <I>v</I> direction and can be bounded by u-separation loops. =
Toroidal=20
faces are also closed in the parametric <I>u</I> direction so they can =
be=20
bounded by v-separation loops. The next two images in the figure depict =
toroidal=20
faces with u- and v-separation loops. Of course, faces with separation =
loops can=20
also have hole loops. The final two images in the figure depict toroidal =
face=20
with several hole loops in addition to the separation loops. ACIS may =
also=20
classify a loop on a face that is closed in both the u- and v-parametric =

directions as a uv-separation loop if it divides the surface in both the =
u- and=20
v- directions. </P>
<P>Starting in ACIS version 16 spline surfaces can (optionally) be =
represented=20
without a seam edge. This is controlled by the "periodic_no_seam" =
option. We=20
will discuss this option more in the next tutorial when we discuss about =
spline=20
geometry, but for now we are just interested in the effect of this =
option on=20
loops. If spline surfaces require a seam edge, then spline faces will =
have only=20
peripheral and hole loops. They cannot have separation loops. If spline =
surfaces=20
do not require a seam edge, then spline faces may also have separation =
loops.=20
</P>
<P>What are the relationships among the loops of a face? The loops of a =
face=20
should not be connected to each other physically or topologically. If =
two loops=20
touch each other, they should be combined into a single loops. This =
implies that=20
a loop may have non-manifold regions in it. In other words, loops are =
not=20
separated at non-manifold vertices. </P>
<P>Why do we need loops? Couldn't each face contain a list of coedge, =
thereby=20
eliminating the need for a loop structure? A loop is analogous to a =
shell. Just=20
as a shell allow us to have voids in a volume, a loop allows us to have =
holes in=20
a face. If loops did not exist, one could not have two disconnected sets =
of=20
edges in a face. They would have to be connected to each other somehow. =
The=20
cleanest approach is simply to implement the loop concept. </P>
<P>The concept of a loop is implemented in the LOOP class. The LOOP =
class is=20
derived from the ENTITY class. Each instance of a LOOP contains a =
pointer to the=20
FACE that owns it, a pointer to the next LOOP in the linked list of =
LOOPS owned=20
by the FACE, and a pointer to the first COEDGE of the LOOP. </P><A=20
name=3DCoedges></A>
<H3><SPAN class=3Dmw-headline>Coedges </SPAN></H3>
<DL>
  <DD><SPAN class=3D"boilerplate seealso"><I>Main article: <A =
class=3Dnew=20
  title=3DCoedges=20
  =
href=3D"http://doc.spatial.com/r18/index.php?title=3DCoedges&amp;action=3D=
edit">Coedges</A></I></SPAN>=20
  </DD></DL>
<P><B>Coedges</B> represent the use of an edge by upper topology. =
(Because ACIS=20
has coedges it can represent regions that are the non-manifold along an =
edge.=20
Conversely, if each edge were restricted to being used twice by faces, =
as in a=20

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -