📄 _understanding_and_traversing_acis_topology_(part_ii).htm
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Tutorial:ACIS Tutorial 3: Understanding and traversing ACIS topology (Part II),Tutorial:ACIS Tutorial 3: Understanding and traversing ACIS topology (Part I),Tutorial:ACIS Tutorial 3: Understanding and traversing ACIS topology (Part III)" /> <link rel="shortcut icon" href="/favicon.ico" /> <link rel="search" type="application/opensearchdescription+xml" href="/r18/opensearch_desc.php" title="DocR18 (English)" /> <link title="Creative Commons" type="application/rdf+xml" href="/r18/index.php?title=Tutorial:ACIS_Tutorial_3:_Understanding_and_traversing_ACIS_topology_%28Part_II%29&action=creativecommons" rel="meta" /> <title>Tutorial:ACIS Tutorial 3: Understanding and traversing ACIS topology (Part II) - DocR18</title>
<style type="text/css" media="screen, projection">/*<![CDATA[*/
@import "/r18/skins/common/shared.css?97";
@import "/r18/skins/monobook/main.css?97";
/*]]>*/</style>
<link rel="stylesheet" type="text/css" media="print" href="/r18/skins/common/commonPrint.css?97" />
<!--[if lt IE 5.5000]><style type="text/css">@import "/r18/skins/monobook/IE50Fixes.css?97";</style><![endif]-->
<!--[if IE 5.5000]><style type="text/css">@import "/r18/skins/monobook/IE55Fixes.css?97";</style><![endif]-->
<!--[if IE 6]><style type="text/css">@import "/r18/skins/monobook/IE60Fixes.css?97";</style><![endif]-->
<!--[if IE 7]><style type="text/css">@import "/r18/skins/monobook/IE70Fixes.css?97";</style><![endif]-->
<!--[if lt IE 7]><script type="text/javascript" src="/r18/skins/common/IEFixes.js?97"></script>
<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
<script type= "text/javascript">/*<![CDATA[*/var skin = "monobook";var stylepath = "/r18/skins";var wgArticlePath = "/r18/index.php/$1";var wgScriptPath = "/r18";var wgScript = "/r18/index.php";var wgServer = "http://doc.spatial.com";var wgCanonicalNamespace = "";var wgCanonicalSpecialPageName = false;var wgNamespaceNumber = 0;var wgPageName = "Tutorial:ACIS_Tutorial_3:_Understanding_and_traversing_ACIS_topology_(Part_II)";var wgTitle = "Tutorial:ACIS Tutorial 3: Understanding and traversing ACIS topology (Part II)";var wgAction = "view";var wgRestrictionEdit = ["sysop"];var wgRestrictionMove = ["sysop"];var wgArticleId = "409";var wgIsArticle = true;var wgUserName = null;var wgUserGroups = null;var wgUserLanguage = "en";var wgContentLanguage = "en";var wgBreakFrames = false;var wgCurRevisionId = "1137";/*]]>*/</script>
<script type="text/javascript" src="/r18/skins/common/wikibits.js?97"><!-- wikibits js --></script>
<script type="text/javascript" src="/r18/index.php?title=-&action=raw&gen=js&useskin=monobook"><!-- site js --></script>
<style type="text/css">/*<![CDATA[*/@import "/r18/index.php?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";@import "/r18/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";@import "/r18/index.php?title=-&action=raw&gen=css&maxage=18000";/*]]>*/</style>
<!-- Head Scripts -->
<script type="text/javascript" src="/r18/skins/common/ajax.js?97"></script> </head>
<body class="mediawiki ns-0 ltr page-Tutorial_ACIS_Tutorial_3_Understanding_and_traversing_ACIS_topology_Part_II">
<div id="globalWrapper">
<div id="column-content">
<div id="content">
<a name="top" id="top"></a>
<h1 class="firstHeading">Tutorial:ACIS Tutorial 3: Understanding and traversing ACIS topology (Part II)</h1>
<div id="bodyContent">
<h3 id="siteSub">From DocR18</h3>
<div id="contentSub"></div>
<div id="jump-to-nav">Jump to: <a href="#column-one">navigation</a>, <a href="#searchInput">search</a></div> <!-- start content -->
<p>This is the second of four parts of Tutorial 3. In Part I, <a href="/r18/index.php/Tutorial:ACIS_Tutorial_3:_Understanding_and_traversing_ACIS_topology_%28Part_I%29" title="Tutorial:ACIS Tutorial 3: Understanding and traversing ACIS topology (Part I)">Tutorial 3: Understanding and traversing ACIS topology (Part I)</a>, we provided an overview of the topological structures of ACIS. In Part II we provide additional details about the topological structures of solids, sheets, and wires.</p><p>ACIS bodies may contain a combination of solid, sheet, and wire regions; however, for simplicity we shall discuss the representations of solids, sheets, and wires separately, and then discuss how they may be connected in a single body.</p><table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div><ul><li class="toclevel-1"><a href="#Solid_and_sheet_topology"><span class="tocnumber">1</span> <span class="toctext">Solid and sheet topology</span></a><ul><li class="toclevel-2"><a href="#Coedge_next_and_previous_pointers"><span class="tocnumber">1.1</span> <span class="toctext">Coedge next and previous pointers</span></a></li><li class="toclevel-2"><a href="#Coedge_partner_pointers"><span class="tocnumber">1.2</span> <span class="toctext">Coedge partner pointers</span></a></li></ul></li><li class="toclevel-1"><a href="#Wire_topology"><span class="tocnumber">2</span> <span class="toctext">Wire topology</span></a></li><li class="toclevel-1"><a href="#Connecting_solids_and_sheets_with_wires"><span class="tocnumber">3</span> <span class="toctext">Connecting solids and sheets with wires</span></a></li><li class="toclevel-1"><a href="#Additional_comments_on_topology"><span class="tocnumber">4</span> <span class="toctext">Additional comments on topology</span></a></li></ul></td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script><a name="Solid_and_sheet_topology"></a><h2> <span class="mw-headline"> Solid and sheet topology </span></h2><p>The principle difference between solids and sheets is the "sidedness" of the faces. (Solids are also typically "closed" but ACIS does allow you to model open solids. You should use caution if you model with open solids. Operations on them may not produce the results you would expect.) If a set of faces bound a solid region they are marked as having material on one side of them. If the faces exist inside a solid region they are marked as having material on both sides of them. If they exist outside all solid regions they are marked as having no material on either side of them. Another major difference between solids and sheets is that the faces comprising the exterior boundary of a solid region must have a consistent orientation. The convention in ACIS is for the normals of all faces bounding a solid region to point outward, away from the material of the solid. Faces of a sheet are not required to have a consistent orientation. </p><p>The topological structure of solids and sheets is rather straight-forward above the face level. Bodies point to a list of lumps, each lump points to a list of shells, and each shell points to a list of faces. In addition to each shell maintaining a list of its faces the topological structure describes how the faces are arranged; i.e., what is next to what. This connectivity information is why loops, coedges, edges, and vertices exist. If we just had geometric entities (for example trimmed faces) we would not have an explicit representation of how the faces were connected. The boundary representation in ACIS allows us to determine which edges and vertices bound a face and how they are connected. It allows us to determine which faces radiate from an edge and which vertices bound an edge. And it allows us to determine which edges and faces surround a vertex. Putting this information together allows us to determine which faces are adjacent to a given face, which edges are connected to a given edge, or what vertices are adjacent to other vertices. These adjacency relationships can be summarized in the following table, where F stands for Face, E stands for Edge, and V stands for Vertex. A geometric modeler must be able to determine all of these relationships. </p><table class="wikitable"><tr><td> F : {F}</td><td> F : {E}</td><td> F : {E}</td></tr><tr><td> E : {F}</td><td> E : {E}</td><td> E : {V}</td></tr><tr><td> V : {F}</td><td> V : {E}</td><td> V : {V}</td></tr></table><a name="Coedge_next_and_previous_pointers"></a><h3> <span class="mw-headline"> Coedge next and previous pointers </span></h3><p>As we stated in Part I of this tutorial each loop of a face must be distinct. They cannot touch each other. If what appears to be two loops are touching, they are actually one loop. This helps to understand the topological structure at a non-manifold vertex on a face. We will discuss this shortly, but first let's look at what happens in a typical manifold face.</p><div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/r18/index.php/Image:Tutorial3_Coedge1.jpg" class="image" title="A face with two loops of coedges"><img alt="A face with two loops of coedges" src="/r18/images/thumb/3/33/Tutorial3_Coedge1.jpg/300px-Tutorial3_Coedge1.jpg" width="300" height="218" border="0" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify" style="float:right"><a href="/r18/index.php/Image:Tutorial3_Coedge1.jpg" class="internal" title="Enlarge"><img src="/r18/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>A face with two loops of coedges</div></div></div> <p><br/>As we also stated in Part I of this tutorial the coedges form a loop around boundary of the face such that the material of the face is always on the left side of the coedge. Each coedge in the loop points to the next and previous coedges in the loop. You should realize that the direction of the coedge may be the same as the direction of the edge, or it may be in the opposite direction of the edge. The notion of next and previous are with respect to the direction of the coedge, not the direction of the edge. A diagram depicting a face with two loops of coedges is show to the right. Please observe how one can follow the next coedge pointers to traverse around either loop in the forward direction, or how one can follow successive previous pointers to traverse in the reverse direction.</p><div class="thumb tleft"><div class="thumbinner" style="width:302px;"><a href="/r18/index.php/Image:Tutorial3_Coedge1s.JPG" class="image" title="Six faces containing two loops of four edges"><img alt="Six faces containing two loops of four edges" src="/r18/images/thumb/d/db/Tutorial3_Coedge1s.JPG/300px-Tutorial3_Coedge1s.JPG" width="300" height="227" border="0" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify" style="float:right"><a href="/r18/index.php/Image:Tutorial3_Coedge1s.JPG" class="internal" title="Enlarge"><img src="/r18/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Six faces containing two loops of four edges</div></div></div> <p><br/><br/><br/><br/><br/><br/>One should avoid drawing conclusions about the shape of a face from its topological representation. For instance, each of the six faces shown in the figure to the left (with planar, cylindrical, spherical, conical, and toroidal surfaces) possess the same topology; i.e., the topology depicted in the diagram above. <br/><br/><br/><br/><br/></p><div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/r18/index.php/Image:Tutorial3_Coedge2.jpg" class="image" title="A face containing a non-manifold vertex"><img alt="A face containing a non-manifold vertex" src="/r18/images/thumb/a/ac/Tutorial3_Coedge2.jpg/300px-Tutorial3_Coedge2.jpg" width="300" height="218" border="0" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify" style="float:right"><a href="/r18/index.php/Image:Tutorial3_Coedge2.jpg" class="internal" title="Enlarge"><img src="/r18/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>A face containing a non-manifold vertex</div></div></div> <p><br/>What happens at a non-manifold vertex in a face? In Part I of this tutorial we described a planar face with two circular holes that were aligned such that the holes just touched each other. (One could also describe this face as having a single hole that is shaped like two circular holes that intersect at a single point.) The diagram to the right depicts the topology for such a face. This face has two loops of coedges. The peripheral loop of coedges is identical to what we have seen previously. Notice the connectivity of the coedges around the inner loop of coedges. As before, we can follow the next coedge pointers to traverse around the loop in the forward direction, or we can follow the previous pointers to traverse around the loop in the opposite direction. We should also point out that the non-manifold vertex points to a single edge on the face. Why is that? Because there is a single separation surface. The vertex doesn't need to point to additional edges because all the edges can be obtained by traversing the coedge pointers about the vertex.</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -