1499 lines
106 KiB
HTML
1499 lines
106 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>ViewDesignEngine: vde::brep 命名空间参考</title>
|
||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="dynsections.js"></script>
|
||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="resize.js"></script>
|
||
<script type="text/javascript" src="navtreedata.js"></script>
|
||
<script type="text/javascript" src="navtree.js"></script>
|
||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||
<script type="text/javascript" src="search/search.js"></script>
|
||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||
</head>
|
||
<body>
|
||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||
<div id="titlearea">
|
||
<table cellspacing="0" cellpadding="0">
|
||
<tbody>
|
||
<tr style="height: 56px;">
|
||
<td id="projectalign" style="padding-left: 0.5em;">
|
||
<div id="projectname">ViewDesignEngine
|
||
 <span id="projectnumber">3.1.0</span>
|
||
</div>
|
||
<div id="projectbrief">高性能 CAD 计算几何引擎</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<!-- end header part -->
|
||
<!-- 制作者 Doxygen 1.9.1 -->
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
|
||
/* @license-end */
|
||
</script>
|
||
<script type="text/javascript" src="menudata.js"></script>
|
||
<script type="text/javascript" src="menu.js"></script>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||
$(function() {
|
||
initMenu('',true,false,'search.php','搜索');
|
||
$(document).ready(function() { init_search(); });
|
||
});
|
||
/* @license-end */</script>
|
||
<div id="main-nav"></div>
|
||
</div><!-- top -->
|
||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||
<div id="nav-tree">
|
||
<div id="nav-tree-contents">
|
||
<div id="nav-sync" class="sync"></div>
|
||
</div>
|
||
</div>
|
||
<div id="splitbar" style="-moz-user-select:none;"
|
||
class="ui-resizable-handle">
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||
$(document).ready(function(){initNavTree('namespacevde_1_1brep.html',''); initResizable(); });
|
||
/* @license-end */
|
||
</script>
|
||
<div id="doc-content">
|
||
<!-- window showing the filter options -->
|
||
<div id="MSearchSelectWindow"
|
||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||
</div>
|
||
|
||
<!-- iframe showing the search results (closed by default) -->
|
||
<div id="MSearchResultsWindow">
|
||
<iframe src="javascript:void(0)" frameborder="0"
|
||
name="MSearchResults" id="MSearchResults">
|
||
</iframe>
|
||
</div>
|
||
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#nested-classes">类</a> |
|
||
<a href="#enum-members">枚举</a> |
|
||
<a href="#func-members">函数</a> </div>
|
||
<div class="headertitle">
|
||
<div class="title">vde::brep 命名空间参考</div> </div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||
类</h2></td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoVertex.html">TopoVertex</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">拓扑顶点 <a href="structvde_1_1brep_1_1TopoVertex.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoEdge.html">TopoEdge</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">拓扑边 <a href="structvde_1_1brep_1_1TopoEdge.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoLoop.html">TopoLoop</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">拓扑环(Loop) <a href="structvde_1_1brep_1_1TopoLoop.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoFace.html">TopoFace</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">拓扑面 <a href="structvde_1_1brep_1_1TopoFace.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoShell.html">TopoShell</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">拓扑壳 <a href="structvde_1_1brep_1_1TopoShell.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1TopoBody.html">TopoBody</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">拓扑体 <a href="structvde_1_1brep_1_1TopoBody.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">B-Rep 模型 <a href="classvde_1_1brep_1_1BrepModel.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1brep_1_1ValidationResult.html">ValidationResult</a></td></tr>
|
||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">B-Rep 模型的综合验证结果 <a href="structvde_1_1brep_1_1ValidationResult.html#details">更多...</a><br /></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||
枚举</h2></td></tr>
|
||
<tr class="memitem:a8aaf8a85c867b16fa7b082a296f3cffb"><td class="memItemLeft" align="right" valign="top">enum class  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffb">CurveType</a> { <br />
|
||
  <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba4803e6b9e63dabf04de980788d6a13c4">Line</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba30954d90085f6eaaf5817917fc5fecb3">Circle</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba31aa08a905ffdb74542a88cb7320c69d">Bezier</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffba828ce1e5157657c1792f0503c2d430db">BSpline</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffbae407f49a3a3e5006f4c62ef450560b06">Nurbs</a>
|
||
<br />
|
||
}</td></tr>
|
||
<tr class="memdesc:a8aaf8a85c867b16fa7b082a296f3cffb"><td class="mdescLeft"> </td><td class="mdescRight">边曲线类型枚举 <a href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffb">更多...</a><br /></td></tr>
|
||
<tr class="separator:a8aaf8a85c867b16fa7b082a296f3cffb"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae78c281601ce520b37270713c86de162"><td class="memItemLeft" align="right" valign="top">enum class  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162">IgesError</a> { <br />
|
||
  <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162aa60852f204ed8028c1c58808b746d115">Ok</a> = 0
|
||
, <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162a2767828026039e8ba7b38973cbb701f2">FileNotFound</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162ae41199faa7290c167f70f314c5e6c165">ParseError</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162af2969996ddc8f288de37705af060ae63">InvalidSection</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162a63f4678302ac9c2a2b595eaa821d8e73">UnsupportedEntity</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162abe1779400b67a7fef4fa5bf93ec5e18f">MissingEntity</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162a764a35d8475730750db2c0eb069d2443">EntityTypeError</a>
|
||
<br />
|
||
}</td></tr>
|
||
<tr class="memdesc:ae78c281601ce520b37270713c86de162"><td class="mdescLeft"> </td><td class="mdescRight">IGES 导入错误码 <a href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162">更多...</a><br /></td></tr>
|
||
<tr class="separator:ae78c281601ce520b37270713c86de162"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:add9286f426ba3fed65f107ac2e73c4ef"><td class="memItemLeft" align="right" valign="top">enum class  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4ef">StepError</a> { <br />
|
||
  <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4efaa60852f204ed8028c1c58808b746d115">Ok</a> = 0
|
||
, <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4efa2767828026039e8ba7b38973cbb701f2">FileNotFound</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4efae41199faa7290c167f70f314c5e6c165">ParseError</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4efae39ad990effe3b4cd951b6ae7c642b66">InvalidHeader</a>
|
||
, <br />
|
||
  <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4efae255a2cbc212a3d28b7d45a7bde32af2">UnsupportedSchema</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4efabe1779400b67a7fef4fa5bf93ec5e18f">MissingEntity</a>
|
||
, <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4efa764a35d8475730750db2c0eb069d2443">EntityTypeError</a>
|
||
<br />
|
||
}</td></tr>
|
||
<tr class="memdesc:add9286f426ba3fed65f107ac2e73c4ef"><td class="mdescLeft"> </td><td class="mdescRight">STEP 导入错误码 <a href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4ef">更多...</a><br /></td></tr>
|
||
<tr class="separator:add9286f426ba3fed65f107ac2e73c4ef"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||
函数</h2></td></tr>
|
||
<tr class="memitem:ac7a54f4f6bdf3d2a3bce1a89e8c5efa3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ac7a54f4f6bdf3d2a3bce1a89e8c5efa3">brep_union</a> (const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &a, const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &b)</td></tr>
|
||
<tr class="memdesc:ac7a54f4f6bdf3d2a3bce1a89e8c5efa3"><td class="mdescLeft"> </td><td class="mdescRight">B-Rep 布尔并集: A ∪ B <a href="namespacevde_1_1brep.html#ac7a54f4f6bdf3d2a3bce1a89e8c5efa3">更多...</a><br /></td></tr>
|
||
<tr class="separator:ac7a54f4f6bdf3d2a3bce1a89e8c5efa3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ad0d6ccc5efd27284186371edd0564543"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ad0d6ccc5efd27284186371edd0564543">brep_intersection</a> (const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &a, const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &b)</td></tr>
|
||
<tr class="memdesc:ad0d6ccc5efd27284186371edd0564543"><td class="mdescLeft"> </td><td class="mdescRight">B-Rep 布尔交集: A ∩ B <a href="namespacevde_1_1brep.html#ad0d6ccc5efd27284186371edd0564543">更多...</a><br /></td></tr>
|
||
<tr class="separator:ad0d6ccc5efd27284186371edd0564543"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aad386807586a7bb9d6fca95c27f0d7f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#aad386807586a7bb9d6fca95c27f0d7f0">brep_difference</a> (const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &a, const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &b)</td></tr>
|
||
<tr class="memdesc:aad386807586a7bb9d6fca95c27f0d7f0"><td class="mdescLeft"> </td><td class="mdescRight">B-Rep 布尔差集: A \ B <a href="namespacevde_1_1brep.html#aad386807586a7bb9d6fca95c27f0d7f0">更多...</a><br /></td></tr>
|
||
<tr class="separator:aad386807586a7bb9d6fca95c27f0d7f0"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:acb612097bfb5e886285f2227dcc9216f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structvde_1_1brep_1_1ValidationResult.html">ValidationResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f">validate</a> (const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &body)</td></tr>
|
||
<tr class="memdesc:acb612097bfb5e886285f2227dcc9216f"><td class="mdescLeft"> </td><td class="mdescRight">对 <a class="el" href="classvde_1_1brep_1_1BrepModel.html" title="B-Rep 模型">BrepModel</a> 执行综合验证 <a href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f">更多...</a><br /></td></tr>
|
||
<tr class="separator:acb612097bfb5e886285f2227dcc9216f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a045b62ab204fafb17aac5c46ea0b75ce"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a045b62ab204fafb17aac5c46ea0b75ce">export_iges</a> (const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > &bodies)</td></tr>
|
||
<tr class="memdesc:a045b62ab204fafb17aac5c46ea0b75ce"><td class="mdescLeft"> </td><td class="mdescRight">将 B-Rep 体导出为 IGES 格式字符串(版本 5.3) <a href="namespacevde_1_1brep.html#a045b62ab204fafb17aac5c46ea0b75ce">更多...</a><br /></td></tr>
|
||
<tr class="separator:a045b62ab204fafb17aac5c46ea0b75ce"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac9054514c2d664be8b2fa14909600227"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ac9054514c2d664be8b2fa14909600227">export_iges_file</a> (const std::string &filepath, const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > &bodies)</td></tr>
|
||
<tr class="memdesc:ac9054514c2d664be8b2fa14909600227"><td class="mdescLeft"> </td><td class="mdescRight">将 B-Rep 体导出为 IGES 文件 <a href="namespacevde_1_1brep.html#ac9054514c2d664be8b2fa14909600227">更多...</a><br /></td></tr>
|
||
<tr class="separator:ac9054514c2d664be8b2fa14909600227"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:adee90de5426184584b215cea82bbd1ac"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#adee90de5426184584b215cea82bbd1ac">import_iges</a> (const std::string &filepath)</td></tr>
|
||
<tr class="memdesc:adee90de5426184584b215cea82bbd1ac"><td class="mdescLeft"> </td><td class="mdescRight">从文件导入 IGES <a href="namespacevde_1_1brep.html#adee90de5426184584b215cea82bbd1ac">更多...</a><br /></td></tr>
|
||
<tr class="separator:adee90de5426184584b215cea82bbd1ac"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a97aa899788ec303a7e61e2d6edd08175"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a97aa899788ec303a7e61e2d6edd08175">import_iges_from_string</a> (const std::string &data)</td></tr>
|
||
<tr class="memdesc:a97aa899788ec303a7e61e2d6edd08175"><td class="mdescLeft"> </td><td class="mdescRight">从字符串导入 IGES(用于测试) <a href="namespacevde_1_1brep.html#a97aa899788ec303a7e61e2d6edd08175">更多...</a><br /></td></tr>
|
||
<tr class="separator:a97aa899788ec303a7e61e2d6edd08175"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a34d58f6db9bfb1bb8abf46bb94eafc6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162">IgesError</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a34d58f6db9bfb1bb8abf46bb94eafc6f">iges_last_error</a> ()</td></tr>
|
||
<tr class="memdesc:a34d58f6db9bfb1bb8abf46bb94eafc6f"><td class="mdescLeft"> </td><td class="mdescRight">获取最近一次 IGES 导入的错误码 <a href="namespacevde_1_1brep.html#a34d58f6db9bfb1bb8abf46bb94eafc6f">更多...</a><br /></td></tr>
|
||
<tr class="separator:a34d58f6db9bfb1bb8abf46bb94eafc6f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a3f7d19410534ba8e0e97f089fbbcb9f1"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a3f7d19410534ba8e0e97f089fbbcb9f1">iges_last_error_message</a> ()</td></tr>
|
||
<tr class="memdesc:a3f7d19410534ba8e0e97f089fbbcb9f1"><td class="mdescLeft"> </td><td class="mdescRight">获取最近一次 IGES 导入的可读错误描述 <a href="namespacevde_1_1brep.html#a3f7d19410534ba8e0e97f089fbbcb9f1">更多...</a><br /></td></tr>
|
||
<tr class="separator:a3f7d19410534ba8e0e97f089fbbcb9f1"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a11885ccd93e2322b983c750061eaa28b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a11885ccd93e2322b983c750061eaa28b">extrude</a> (const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> &profile, const Vector3D &dir)</td></tr>
|
||
<tr class="memdesc:a11885ccd93e2322b983c750061eaa28b"><td class="mdescLeft"> </td><td class="mdescRight">沿方向挤出平面轮廓 <a href="namespacevde_1_1brep.html#a11885ccd93e2322b983c750061eaa28b">更多...</a><br /></td></tr>
|
||
<tr class="separator:a11885ccd93e2322b983c750061eaa28b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:afbba855cbc153b7da3aa201246c7bfe0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#afbba855cbc153b7da3aa201246c7bfe0">revolve</a> (const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> &profile, const Point3D &axis_origin, const Vector3D &axis_dir, double angle_rad=2.0 *M_PI)</td></tr>
|
||
<tr class="memdesc:afbba855cbc153b7da3aa201246c7bfe0"><td class="mdescLeft"> </td><td class="mdescRight">绕轴旋转平面轮廓 <a href="namespacevde_1_1brep.html#afbba855cbc153b7da3aa201246c7bfe0">更多...</a><br /></td></tr>
|
||
<tr class="separator:afbba855cbc153b7da3aa201246c7bfe0"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a9dd78da8d6a11af52c0c95cfc41c1414"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a9dd78da8d6a11af52c0c95cfc41c1414">sweep</a> (const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> &profile, const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> &path)</td></tr>
|
||
<tr class="memdesc:a9dd78da8d6a11af52c0c95cfc41c1414"><td class="mdescLeft"> </td><td class="mdescRight">沿任意路径扫掠轮廓 <a href="namespacevde_1_1brep.html#a9dd78da8d6a11af52c0c95cfc41c1414">更多...</a><br /></td></tr>
|
||
<tr class="separator:a9dd78da8d6a11af52c0c95cfc41c1414"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae4431aff57585213ee2713a7623ab7ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ae4431aff57585213ee2713a7623ab7ae">loft</a> (const std::vector< <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> > &profiles)</td></tr>
|
||
<tr class="memdesc:ae4431aff57585213ee2713a7623ab7ae"><td class="mdescLeft"> </td><td class="mdescRight">在两个或多个轮廓曲线之间放样 <a href="namespacevde_1_1brep.html#ae4431aff57585213ee2713a7623ab7ae">更多...</a><br /></td></tr>
|
||
<tr class="separator:ae4431aff57585213ee2713a7623ab7ae"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac1cb7871101ff5be06577548ac41aaac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a> (double w, double h, double d)</td></tr>
|
||
<tr class="memdesc:ac1cb7871101ff5be06577548ac41aaac"><td class="mdescLeft"> </td><td class="mdescRight">创建立方体 <a href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">更多...</a><br /></td></tr>
|
||
<tr class="separator:ac1cb7871101ff5be06577548ac41aaac"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ad5e851f10fbd1962c42a8574b193faa3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ad5e851f10fbd1962c42a8574b193faa3">make_cylinder</a> (double radius, double height, int segments=32)</td></tr>
|
||
<tr class="memdesc:ad5e851f10fbd1962c42a8574b193faa3"><td class="mdescLeft"> </td><td class="mdescRight">创建圆柱体 <a href="namespacevde_1_1brep.html#ad5e851f10fbd1962c42a8574b193faa3">更多...</a><br /></td></tr>
|
||
<tr class="separator:ad5e851f10fbd1962c42a8574b193faa3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a30605a9398550c5cc0b298e04c60ca61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61">make_sphere</a> (double radius, int segments_u=32, int segments_v=16)</td></tr>
|
||
<tr class="memdesc:a30605a9398550c5cc0b298e04c60ca61"><td class="mdescLeft"> </td><td class="mdescRight">创建球体 <a href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61">更多...</a><br /></td></tr>
|
||
<tr class="separator:a30605a9398550c5cc0b298e04c60ca61"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a1034cf756961c7a361e43826802480a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a1034cf756961c7a361e43826802480a5">fillet</a> (const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &body, int edge_id, double radius)</td></tr>
|
||
<tr class="memdesc:a1034cf756961c7a361e43826802480a5"><td class="mdescLeft"> </td><td class="mdescRight">对边做圆角处理 <a href="namespacevde_1_1brep.html#a1034cf756961c7a361e43826802480a5">更多...</a><br /></td></tr>
|
||
<tr class="separator:a1034cf756961c7a361e43826802480a5"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a2fc7e2f6626c6f8405adf05db1105a68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a2fc7e2f6626c6f8405adf05db1105a68">chamfer</a> (const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &body, int edge_id, double distance)</td></tr>
|
||
<tr class="memdesc:a2fc7e2f6626c6f8405adf05db1105a68"><td class="mdescLeft"> </td><td class="mdescRight">对边做倒角 <a href="namespacevde_1_1brep.html#a2fc7e2f6626c6f8405adf05db1105a68">更多...</a><br /></td></tr>
|
||
<tr class="separator:a2fc7e2f6626c6f8405adf05db1105a68"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4d2c4003b97c665cd94597baec7e1ff9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a4d2c4003b97c665cd94597baec7e1ff9">shell</a> (const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> &body, int face_id, double thickness)</td></tr>
|
||
<tr class="memdesc:a4d2c4003b97c665cd94597baec7e1ff9"><td class="mdescLeft"> </td><td class="mdescRight">抽壳(挖空实体) <a href="namespacevde_1_1brep.html#a4d2c4003b97c665cd94597baec7e1ff9">更多...</a><br /></td></tr>
|
||
<tr class="separator:a4d2c4003b97c665cd94597baec7e1ff9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5d766baac8a4f9dfc44b739e4c5eef5c"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a5d766baac8a4f9dfc44b739e4c5eef5c">export_step</a> (const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > &bodies)</td></tr>
|
||
<tr class="memdesc:a5d766baac8a4f9dfc44b739e4c5eef5c"><td class="mdescLeft"> </td><td class="mdescRight">将 B-Rep 体导出为 STEP AP214 字符串 <a href="namespacevde_1_1brep.html#a5d766baac8a4f9dfc44b739e4c5eef5c">更多...</a><br /></td></tr>
|
||
<tr class="separator:a5d766baac8a4f9dfc44b739e4c5eef5c"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a15fccc3e0e7bd161dc732115fadb8e3d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a15fccc3e0e7bd161dc732115fadb8e3d">export_step_file</a> (const std::string &filepath, const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > &bodies)</td></tr>
|
||
<tr class="memdesc:a15fccc3e0e7bd161dc732115fadb8e3d"><td class="mdescLeft"> </td><td class="mdescRight">将 B-Rep 体导出为 STEP 文件 <a href="namespacevde_1_1brep.html#a15fccc3e0e7bd161dc732115fadb8e3d">更多...</a><br /></td></tr>
|
||
<tr class="separator:a15fccc3e0e7bd161dc732115fadb8e3d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae24e129af52f39a772efac984415ff8d"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ae24e129af52f39a772efac984415ff8d">import_step</a> (const std::string &filepath)</td></tr>
|
||
<tr class="memdesc:ae24e129af52f39a772efac984415ff8d"><td class="mdescLeft"> </td><td class="mdescRight">从文件导入 STEP(AP203/AP214) <a href="namespacevde_1_1brep.html#ae24e129af52f39a772efac984415ff8d">更多...</a><br /></td></tr>
|
||
<tr class="separator:ae24e129af52f39a772efac984415ff8d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae5d3e4ac3043b36e38a7734ea5592518"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ae5d3e4ac3043b36e38a7734ea5592518">import_step_from_string</a> (const std::string &step_data)</td></tr>
|
||
<tr class="memdesc:ae5d3e4ac3043b36e38a7734ea5592518"><td class="mdescLeft"> </td><td class="mdescRight">从字符串导入 STEP(用于测试和嵌入式场景) <a href="namespacevde_1_1brep.html#ae5d3e4ac3043b36e38a7734ea5592518">更多...</a><br /></td></tr>
|
||
<tr class="separator:ae5d3e4ac3043b36e38a7734ea5592518"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a282cb1ce3142931d20330e95e25c1460"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4ef">StepError</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#a282cb1ce3142931d20330e95e25c1460">step_last_error</a> ()</td></tr>
|
||
<tr class="memdesc:a282cb1ce3142931d20330e95e25c1460"><td class="mdescLeft"> </td><td class="mdescRight">获取最近一次 STEP 导入的错误码 <a href="namespacevde_1_1brep.html#a282cb1ce3142931d20330e95e25c1460">更多...</a><br /></td></tr>
|
||
<tr class="separator:a282cb1ce3142931d20330e95e25c1460"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ad744c4e7d42f2f8f7a02ffa6daf72d6e"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1brep.html#ad744c4e7d42f2f8f7a02ffa6daf72d6e">step_last_error_message</a> ()</td></tr>
|
||
<tr class="memdesc:ad744c4e7d42f2f8f7a02ffa6daf72d6e"><td class="mdescLeft"> </td><td class="mdescRight">获取最近一次 STEP 导入的可读错误描述 <a href="namespacevde_1_1brep.html#ad744c4e7d42f2f8f7a02ffa6daf72d6e">更多...</a><br /></td></tr>
|
||
<tr class="separator:ad744c4e7d42f2f8f7a02ffa6daf72d6e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<h2 class="groupheader">枚举类型说明</h2>
|
||
<a id="a8aaf8a85c867b16fa7b082a296f3cffb"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a8aaf8a85c867b16fa7b082a296f3cffb">◆ </a></span>CurveType</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">enum <a class="el" href="namespacevde_1_1brep.html#a8aaf8a85c867b16fa7b082a296f3cffb">vde::brep::CurveType</a></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>边曲线类型枚举 </p>
|
||
<p>指定边所使用的曲线表示类别, 影响 tessellation、布尔运算和文件交换时的处理方式。 </p>
|
||
<table class="fieldtable">
|
||
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a8aaf8a85c867b16fa7b082a296f3cffba4803e6b9e63dabf04de980788d6a13c4"></a>Line </td><td class="fielddoc"></td></tr>
|
||
<tr><td class="fieldname"><a id="a8aaf8a85c867b16fa7b082a296f3cffba30954d90085f6eaaf5817917fc5fecb3"></a>Circle </td><td class="fielddoc"></td></tr>
|
||
<tr><td class="fieldname"><a id="a8aaf8a85c867b16fa7b082a296f3cffba31aa08a905ffdb74542a88cb7320c69d"></a>Bezier </td><td class="fielddoc"></td></tr>
|
||
<tr><td class="fieldname"><a id="a8aaf8a85c867b16fa7b082a296f3cffba828ce1e5157657c1792f0503c2d430db"></a>BSpline </td><td class="fielddoc"></td></tr>
|
||
<tr><td class="fieldname"><a id="a8aaf8a85c867b16fa7b082a296f3cffbae407f49a3a3e5006f4c62ef450560b06"></a>Nurbs </td><td class="fielddoc"></td></tr>
|
||
</table>
|
||
|
||
<p class="definition">在文件 <a class="el" href="brep_8h_source.html">brep.h</a> 第 <a class="el" href="brep_8h_source.html#l00065">65</a> 行定义.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ae78c281601ce520b37270713c86de162"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ae78c281601ce520b37270713c86de162">◆ </a></span>IgesError</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">enum <a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162">vde::brep::IgesError</a></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>IGES 导入错误码 </p>
|
||
<table class="fieldtable">
|
||
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="ae78c281601ce520b37270713c86de162aa60852f204ed8028c1c58808b746d115"></a>Ok </td><td class="fielddoc"><p>导入成功 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="ae78c281601ce520b37270713c86de162a2767828026039e8ba7b38973cbb701f2"></a>FileNotFound </td><td class="fielddoc"><p>文件不存在或无法读取 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="ae78c281601ce520b37270713c86de162ae41199faa7290c167f70f314c5e6c165"></a>ParseError </td><td class="fielddoc"><p>IGES 语法错误(固定宽度格式异常) </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="ae78c281601ce520b37270713c86de162af2969996ddc8f288de37705af060ae63"></a>InvalidSection </td><td class="fielddoc"><p>段标记无效或缺失 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="ae78c281601ce520b37270713c86de162a63f4678302ac9c2a2b595eaa821d8e73"></a>UnsupportedEntity </td><td class="fielddoc"><p>遇到了不支持但合法的实体类型 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="ae78c281601ce520b37270713c86de162abe1779400b67a7fef4fa5bf93ec5e18f"></a>MissingEntity </td><td class="fielddoc"><p>引用了未定义的实体 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="ae78c281601ce520b37270713c86de162a764a35d8475730750db2c0eb069d2443"></a>EntityTypeError </td><td class="fielddoc"><p>实体类型解析失败 </p>
|
||
</td></tr>
|
||
</table>
|
||
|
||
<p class="definition">在文件 <a class="el" href="iges__import_8h_source.html">iges_import.h</a> 第 <a class="el" href="iges__import_8h_source.html#l00042">42</a> 行定义.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="add9286f426ba3fed65f107ac2e73c4ef"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#add9286f426ba3fed65f107ac2e73c4ef">◆ </a></span>StepError</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">enum <a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4ef">vde::brep::StepError</a></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>STEP 导入错误码 </p>
|
||
<p>枚举 <a class="el" href="namespacevde_1_1brep.html#ae24e129af52f39a772efac984415ff8d" title="从文件导入 STEP(AP203/AP214)">import_step()</a> 和 <a class="el" href="namespacevde_1_1brep.html#ae5d3e4ac3043b36e38a7734ea5592518" title="从字符串导入 STEP(用于测试和嵌入式场景)">import_step_from_string()</a> 可能返回的所有错误类型。 </p>
|
||
<table class="fieldtable">
|
||
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="add9286f426ba3fed65f107ac2e73c4efaa60852f204ed8028c1c58808b746d115"></a>Ok </td><td class="fielddoc"><p>导入成功 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="add9286f426ba3fed65f107ac2e73c4efa2767828026039e8ba7b38973cbb701f2"></a>FileNotFound </td><td class="fielddoc"><p>文件不存在或无法读取 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="add9286f426ba3fed65f107ac2e73c4efae41199faa7290c167f70f314c5e6c165"></a>ParseError </td><td class="fielddoc"><p>STEP 语法错误(令牌/格式异常) </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="add9286f426ba3fed65f107ac2e73c4efae39ad990effe3b4cd951b6ae7c642b66"></a>InvalidHeader </td><td class="fielddoc"><p>HEADER 段格式无效 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="add9286f426ba3fed65f107ac2e73c4efae255a2cbc212a3d28b7d45a7bde32af2"></a>UnsupportedSchema </td><td class="fielddoc"><p>不支持的 SCHEMA(非 AP203/AP214) </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="add9286f426ba3fed65f107ac2e73c4efabe1779400b67a7fef4fa5bf93ec5e18f"></a>MissingEntity </td><td class="fielddoc"><p>引用了未定义的实体 </p>
|
||
</td></tr>
|
||
<tr><td class="fieldname"><a id="add9286f426ba3fed65f107ac2e73c4efa764a35d8475730750db2c0eb069d2443"></a>EntityTypeError </td><td class="fielddoc"><p>实体类型未识别或类型不匹配 </p>
|
||
</td></tr>
|
||
</table>
|
||
|
||
<p class="definition">在文件 <a class="el" href="step__import_8h_source.html">step_import.h</a> 第 <a class="el" href="step__import_8h_source.html#l00039">39</a> 行定义.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">函数说明</h2>
|
||
<a id="aad386807586a7bb9d6fca95c27f0d7f0"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aad386807586a7bb9d6fca95c27f0d7f0">◆ </a></span>brep_difference()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::brep_difference </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>a</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>b</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>B-Rep 布尔差集: A \ B </p>
|
||
<p>从 A 中减去 B 所占据的区域。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">a</td><td>被减实体 A </td></tr>
|
||
<tr><td class="paramname">b</td><td>减去实体 B </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>新的 B-Rep 实体(a \ b)</dd></dl>
|
||
<dl class="section pre"><dt>前置条件</dt><dd>a 和 b 必须是有效的封闭实体</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="comment">// 从盒子中减去球体 = 带球形凹陷的盒子</span></div>
|
||
<div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a> = <a class="code" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a>(2, 2, 2);</div>
|
||
<div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">sphere</a> = <a class="code" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61">make_sphere</a>(0.5);</div>
|
||
<div class="line"><span class="keyword">auto</span> result = <a class="code" href="namespacevde_1_1brep.html#aad386807586a7bb9d6fca95c27f0d7f0">brep_difference</a>(<a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a>, <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">sphere</a>);</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_a30605a9398550c5cc0b298e04c60ca61"><div class="ttname"><a href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61">vde::brep::make_sphere</a></div><div class="ttdeci">BrepModel make_sphere(double radius, int segments_u=32, int segments_v=16)</div><div class="ttdoc">创建球体</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_aad386807586a7bb9d6fca95c27f0d7f0"><div class="ttname"><a href="namespacevde_1_1brep.html#aad386807586a7bb9d6fca95c27f0d7f0">vde::brep::brep_difference</a></div><div class="ttdeci">BrepModel brep_difference(const BrepModel &a, const BrepModel &b)</div><div class="ttdoc">B-Rep 布尔差集: A \ B</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ac1cb7871101ff5be06577548ac41aaac"><div class="ttname"><a href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">vde::brep::make_box</a></div><div class="ttdeci">BrepModel make_box(double w, double h, double d)</div><div class="ttdoc">创建立方体</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a380ebfe1b3b65d5ecc4efcb946b21834"><div class="ttname"><a href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">vde::sdf::box</a></div><div class="ttdeci">double box(const Point3D &p, const Point3D &half_extents)</div><div class="ttdoc">轴对齐立方体的 SDF</div><div class="ttdef"><b>Definition:</b> <a href="sdf__primitives_8h_source.html#l00096">sdf_primitives.h:96</a></div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_ab544a3ebc4c0844b322b73bbbe4efb3f"><div class="ttname"><a href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">vde::sdf::sphere</a></div><div class="ttdeci">double sphere(const Point3D &p, double radius)</div><div class="ttdoc">球体的 SDF</div><div class="ttdef"><b>Definition:</b> <a href="sdf__primitives_8h_source.html#l00068">sdf_primitives.h:68</a></div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ac7a54f4f6bdf3d2a3bce1a89e8c5efa3" title="B-Rep 布尔并集: A ∪ B">brep_union</a> 并集 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#ad0d6ccc5efd27284186371edd0564543" title="B-Rep 布尔交集: A ∩ B">brep_intersection</a> 交集 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ad0d6ccc5efd27284186371edd0564543"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ad0d6ccc5efd27284186371edd0564543">◆ </a></span>brep_intersection()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::brep_intersection </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>a</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>b</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>B-Rep 布尔交集: A ∩ B </p>
|
||
<p>保留两个实体共有的区域。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">a</td><td>第一个 B-Rep 实体 </td></tr>
|
||
<tr><td class="paramname">b</td><td>第二个 B-Rep 实体 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>新的 B-Rep 实体(a ∩ b)</dd></dl>
|
||
<dl class="section pre"><dt>前置条件</dt><dd>a 和 b 必须是有效的封闭实体</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="comment">// 长方体与球体的交集 = 八分之一球(角部)</span></div>
|
||
<div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a> = <a class="code" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a>(2, 2, 2);</div>
|
||
<div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">sphere</a> = <a class="code" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61">make_sphere</a>(1.8);</div>
|
||
<div class="line"><span class="keyword">auto</span> result = <a class="code" href="namespacevde_1_1brep.html#ad0d6ccc5efd27284186371edd0564543">brep_intersection</a>(<a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a>, <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">sphere</a>);</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ad0d6ccc5efd27284186371edd0564543"><div class="ttname"><a href="namespacevde_1_1brep.html#ad0d6ccc5efd27284186371edd0564543">vde::brep::brep_intersection</a></div><div class="ttdeci">BrepModel brep_intersection(const BrepModel &a, const BrepModel &b)</div><div class="ttdoc">B-Rep 布尔交集: A ∩ B</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ac7a54f4f6bdf3d2a3bce1a89e8c5efa3" title="B-Rep 布尔并集: A ∪ B">brep_union</a> 并集 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#aad386807586a7bb9d6fca95c27f0d7f0" title="B-Rep 布尔差集: A \ B">brep_difference</a> 差集 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac7a54f4f6bdf3d2a3bce1a89e8c5efa3"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac7a54f4f6bdf3d2a3bce1a89e8c5efa3">◆ </a></span>brep_union()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::brep_union </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>a</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>b</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>B-Rep 布尔并集: A ∪ B </p>
|
||
<p>合并两个 B-Rep 实体为一个,自动处理相交曲面的分割和重新连接。</p>
|
||
<p><b>算法概要:</b></p><ol type="1">
|
||
<li>计算两个模型之间的所有曲面交线</li>
|
||
<li>沿交线分割曲面</li>
|
||
<li>根据布尔操作类型保留或丢弃分割后的面片</li>
|
||
<li>重新连接拓扑结构(边、环、壳)</li>
|
||
</ol>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">a</td><td>第一个 B-Rep 实体 </td></tr>
|
||
<tr><td class="paramname">b</td><td>第二个 B-Rep 实体 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>新的 B-Rep 实体(a ∪ b)</dd></dl>
|
||
<dl class="section warning"><dt>警告</dt><dd>两个输入实体必须都是水密(watertight)且非自交(non-self-intersecting)。 如果任一输入未通过验证,结果未定义。</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a> = <a class="code" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a>(2, 2, 2);</div>
|
||
<div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">sphere</a> = <a class="code" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61">make_sphere</a>(1.5);</div>
|
||
<div class="line"><span class="keyword">auto</span> result = <a class="code" href="namespacevde_1_1brep.html#ac7a54f4f6bdf3d2a3bce1a89e8c5efa3">brep_union</a>(<a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a>, <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">sphere</a>);</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ac7a54f4f6bdf3d2a3bce1a89e8c5efa3"><div class="ttname"><a href="namespacevde_1_1brep.html#ac7a54f4f6bdf3d2a3bce1a89e8c5efa3">vde::brep::brep_union</a></div><div class="ttdeci">BrepModel brep_union(const BrepModel &a, const BrepModel &b)</div><div class="ttdoc">B-Rep 布尔并集: A ∪ B</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ad0d6ccc5efd27284186371edd0564543" title="B-Rep 布尔交集: A ∩ B">brep_intersection</a> 交集 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#aad386807586a7bb9d6fca95c27f0d7f0" title="B-Rep 布尔差集: A \ B">brep_difference</a> 差集 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a2fc7e2f6626c6f8405adf05db1105a68"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2fc7e2f6626c6f8405adf05db1105a68">◆ </a></span>chamfer()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::chamfer </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>body</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>edge_id</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>distance</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>对边做倒角 </p>
|
||
<p>将尖锐边替换为 45° 斜面。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">body</td><td>输入实体 </td></tr>
|
||
<tr><td class="paramname">edge_id</td><td>要倒角的边 ID </td></tr>
|
||
<tr><td class="paramname">distance</td><td>倒角距离(从原边沿两个面各偏移的距离) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>倒角后的新实体</dd></dl>
|
||
<dl class="section pre"><dt>前置条件</dt><dd>distance > 0</dd></dl>
|
||
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a1034cf756961c7a361e43826802480a5" title="对边做圆角处理">fillet</a> 圆角 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a045b62ab204fafb17aac5c46ea0b75ce"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a045b62ab204fafb17aac5c46ea0b75ce">◆ </a></span>export_iges()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::string vde::brep::export_iges </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > & </td>
|
||
<td class="paramname"><em>bodies</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>将 B-Rep 体导出为 IGES 格式字符串(版本 5.3) </p>
|
||
<p>序列化所有传入的体及其几何/拓扑数据为 IGES 固定宽度格式。</p>
|
||
<p><b>输出结构:</b> </p><div class="fragment"><div class="line">S 1H,,1H;, ... S0000001</div>
|
||
<div class="line">G ... G0000003</div>
|
||
<div class="line">D 116,1,2,... (<a class="code" href="namespacevde_1_1core.html#a5f67a391b22375e6aeb40f6237f76cb6">Point</a> entity) D0000001</div>
|
||
<div class="line">D 110,3,4,... (Line entity) D0000002</div>
|
||
<div class="line">... ...</div>
|
||
<div class="line">P 116,0.,0.,0.; 1P0000001</div>
|
||
<div class="line">P 110,0.,0.,0.,1.,0.,0.; 3P0000002</div>
|
||
<div class="line">T 1 T0000001</div>
|
||
<div class="ttc" id="anamespacevde_1_1core_html_a5f67a391b22375e6aeb40f6237f76cb6"><div class="ttname"><a href="namespacevde_1_1core.html#a5f67a391b22375e6aeb40f6237f76cb6">vde::core::Point</a></div><div class="ttdeci">foundation::Point< T, Dim > Point</div><div class="ttdoc">通用 N 维点类型(重新导出,便于 core 模块使用)</div><div class="ttdef"><b>Definition:</b> <a href="point_8h_source.html#l00026">point.h:26</a></div></div>
|
||
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md11"></a>
|
||
实体输出策略</h2>
|
||
<ol type="1">
|
||
<li>**几何实体**(点/线/弧/曲线/面/曲面)先输出并使 Directory 条目索引递增</li>
|
||
<li>**拓扑实体**(顶点/边/环/面/壳/B-Rep Object)随后输出,通过索引引用于几何实体</li>
|
||
<li>如果体有 name,作为 B-Rep Object 的属性输出</li>
|
||
</ol>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">bodies</td><td>B-Rep 体列表 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>IGES 5.3 格式字符串</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> body = <a class="code" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a>(10, 5, 3);</div>
|
||
<div class="line">std::string iges_str = <a class="code" href="namespacevde_1_1brep.html#a045b62ab204fafb17aac5c46ea0b75ce">export_iges</a>({body});</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_a045b62ab204fafb17aac5c46ea0b75ce"><div class="ttname"><a href="namespacevde_1_1brep.html#a045b62ab204fafb17aac5c46ea0b75ce">vde::brep::export_iges</a></div><div class="ttdeci">std::string export_iges(const std::vector< BrepModel > &bodies)</div><div class="ttdoc">将 B-Rep 体导出为 IGES 格式字符串(版本 5.3)</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ac9054514c2d664be8b2fa14909600227" title="将 B-Rep 体导出为 IGES 文件">export_iges_file</a> 直接写入文件 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a5d766baac8a4f9dfc44b739e4c5eef5c" title="将 B-Rep 体导出为 STEP AP214 字符串">export_step</a> STEP 格式导出 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac9054514c2d664be8b2fa14909600227"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac9054514c2d664be8b2fa14909600227">◆ </a></span>export_iges_file()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void vde::brep::export_iges_file </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>filepath</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > & </td>
|
||
<td class="paramname"><em>bodies</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>将 B-Rep 体导出为 IGES 文件 </p>
|
||
<p>调用 <a class="el" href="namespacevde_1_1brep.html#a045b62ab204fafb17aac5c46ea0b75ce" title="将 B-Rep 体导出为 IGES 格式字符串(版本 5.3)">export_iges()</a> 后写入文件。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">filepath</td><td>输出文件路径(建议扩展名 .igs 或 .iges) </td></tr>
|
||
<tr><td class="paramname">bodies</td><td>B-Rep 体列表</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a045b62ab204fafb17aac5c46ea0b75ce" title="将 B-Rep 体导出为 IGES 格式字符串(版本 5.3)">export_iges</a> 获取字符串输出 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5d766baac8a4f9dfc44b739e4c5eef5c"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5d766baac8a4f9dfc44b739e4c5eef5c">◆ </a></span>export_step()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::string vde::brep::export_step </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > & </td>
|
||
<td class="paramname"><em>bodies</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>将 B-Rep 体导出为 STEP AP214 字符串 </p>
|
||
<p>序列化所有传入的体及其几何数据为 STEP 文本格式。</p>
|
||
<p><b>输出结构:</b> </p><div class="fragment"><div class="line">ISO-10303-21;</div>
|
||
<div class="line">HEADER;</div>
|
||
<div class="line"> FILE_DESCRIPTION(...)</div>
|
||
<div class="line"> FILE_NAME(...)</div>
|
||
<div class="line"> FILE_SCHEMA(('AUTOMOTIVE_DESIGN'))</div>
|
||
<div class="line">ENDSEC;</div>
|
||
<div class="line">DATA;</div>
|
||
<div class="line"> <span class="preprocessor">#1 = PRODUCT(...)</span></div>
|
||
<div class="line"><span class="preprocessor"> #2 = CARTESIAN_POINT(...)</span></div>
|
||
<div class="line"> ...</div>
|
||
<div class="line">ENDSEC;</div>
|
||
<div class="line">END-ISO-10303-21;</div>
|
||
</div><!-- fragment --><dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">bodies</td><td>B-Rep 体列表(每个体对应一个 PRODUCT) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>STEP AP214 格式字符串</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>输出包含所有必要的 ISO 10303-21 头部信息。</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> body = <a class="code" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a>(10, 5, 3);</div>
|
||
<div class="line">std::string step_str = <a class="code" href="namespacevde_1_1brep.html#a5d766baac8a4f9dfc44b739e4c5eef5c">export_step</a>({body});</div>
|
||
<div class="line"><span class="comment">// 写入文件或通过网络发送</span></div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_a5d766baac8a4f9dfc44b739e4c5eef5c"><div class="ttname"><a href="namespacevde_1_1brep.html#a5d766baac8a4f9dfc44b739e4c5eef5c">vde::brep::export_step</a></div><div class="ttdeci">std::string export_step(const std::vector< BrepModel > &bodies)</div><div class="ttdoc">将 B-Rep 体导出为 STEP AP214 字符串</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a15fccc3e0e7bd161dc732115fadb8e3d" title="将 B-Rep 体导出为 STEP 文件">export_step_file</a> 直接写入文件 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a045b62ab204fafb17aac5c46ea0b75ce" title="将 B-Rep 体导出为 IGES 格式字符串(版本 5.3)">export_iges</a> IGES 格式导出 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a15fccc3e0e7bd161dc732115fadb8e3d"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a15fccc3e0e7bd161dc732115fadb8e3d">◆ </a></span>export_step_file()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void vde::brep::export_step_file </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>filepath</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const std::vector< <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> > & </td>
|
||
<td class="paramname"><em>bodies</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>将 B-Rep 体导出为 STEP 文件 </p>
|
||
<p>便捷函数:调用 <a class="el" href="namespacevde_1_1brep.html#a5d766baac8a4f9dfc44b739e4c5eef5c" title="将 B-Rep 体导出为 STEP AP214 字符串">export_step()</a> 后写入文件。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">filepath</td><td>输出文件路径(建议扩展名 .step 或 .stp) </td></tr>
|
||
<tr><td class="paramname">bodies</td><td>B-Rep 体列表</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a5d766baac8a4f9dfc44b739e4c5eef5c" title="将 B-Rep 体导出为 STEP AP214 字符串">export_step</a> 获取字符串输出 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a11885ccd93e2322b983c750061eaa28b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a11885ccd93e2322b983c750061eaa28b">◆ </a></span>extrude()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::extrude </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> & </td>
|
||
<td class="paramname"><em>profile</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const Vector3D & </td>
|
||
<td class="paramname"><em>dir</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>沿方向挤出平面轮廓 </p>
|
||
<p>将平面曲线沿给定方向扫掠,生成柱状实体。</p>
|
||
<p><b>算法:</b> 曲线的每个点沿方向向量平移,两端加盖平面形成封闭实体。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">profile</td><td>轮廓曲线(必须位于一个平面内) </td></tr>
|
||
<tr><td class="paramname">dir</td><td>挤出方向向量(其长度决定挤出距离) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>挤出后的 B-Rep 实体</dd></dl>
|
||
<dl class="section pre"><dt>前置条件</dt><dd>profile 必须是平面曲线(存在于某个平面内)且闭合</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="comment">// 沿 Z 轴挤出 5 个单位</span></div>
|
||
<div class="line"><span class="keyword">auto</span> circle = NurbsCurve::create_circle(<a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0,0,0), 2.0);</div>
|
||
<div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#a5d835536ef31f92fbc25643e34be3600">cylinder</a> = <a class="code" href="namespacevde_1_1brep.html#a11885ccd93e2322b983c750061eaa28b">extrude</a>(circle, <a class="code" href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">Vector3D</a>(0, 0, 5));</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_a11885ccd93e2322b983c750061eaa28b"><div class="ttname"><a href="namespacevde_1_1brep.html#a11885ccd93e2322b983c750061eaa28b">vde::brep::extrude</a></div><div class="ttdeci">BrepModel extrude(const curves::NurbsCurve &profile, const Vector3D &dir)</div><div class="ttdoc">沿方向挤出平面轮廓</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1core_html_ab763c018d19e10e91a6c6d6ab2ccc8e0"><div class="ttname"><a href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">vde::core::Vector3D</a></div><div class="ttdeci">foundation::Vector3D Vector3D</div><div class="ttdoc">双精度三维向量(重新导出)</div><div class="ttdef"><b>Definition:</b> <a href="point_8h_source.html#l00049">point.h:49</a></div></div>
|
||
<div class="ttc" id="anamespacevde_1_1core_html_ac6aed70c4b90d13f10217267cd7a1952"><div class="ttname"><a href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">vde::core::Point3D</a></div><div class="ttdeci">foundation::Point3D Point3D</div><div class="ttdoc">双精度三维点(重新导出)</div><div class="ttdef"><b>Definition:</b> <a href="point_8h_source.html#l00031">point.h:31</a></div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a5d835536ef31f92fbc25643e34be3600"><div class="ttname"><a href="namespacevde_1_1sdf.html#a5d835536ef31f92fbc25643e34be3600">vde::sdf::cylinder</a></div><div class="ttdeci">double cylinder(const Point3D &p, double radius, double height)</div><div class="ttdoc">带平端盖的圆柱体 SDF</div><div class="ttdef"><b>Definition:</b> <a href="sdf__primitives_8h_source.html#l00227">sdf_primitives.h:227</a></div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#afbba855cbc153b7da3aa201246c7bfe0" title="绕轴旋转平面轮廓">revolve</a> 旋转扫掠 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a9dd78da8d6a11af52c0c95cfc41c1414" title="沿任意路径扫掠轮廓">sweep</a> 沿任意路径扫掠 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a1034cf756961c7a361e43826802480a5"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a1034cf756961c7a361e43826802480a5">◆ </a></span>fillet()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::fillet </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>body</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>edge_id</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>radius</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>对边做圆角处理 </p>
|
||
<p>在指定的边上施加恒定半径的圆角(倒圆)。 适用于凹边和凸边。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">body</td><td>输入实体 </td></tr>
|
||
<tr><td class="paramname">edge_id</td><td>要倒圆的边 ID </td></tr>
|
||
<tr><td class="paramname">radius</td><td>圆角半径,必须 > 0 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>圆角后的新实体</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>圆角半径不能超过相邻面的最小宽度,否则会产生自交。 </dd>
|
||
<dd>
|
||
只支持恒定半径圆角。变半径圆角尚未实现。</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a> = <a class="code" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a>(10, 5, 3);</div>
|
||
<div class="line"><span class="keyword">auto</span> rounded = <a class="code" href="namespacevde_1_1brep.html#a1034cf756961c7a361e43826802480a5">fillet</a>(<a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a>, 0, 2.0); <span class="comment">// 对边 0 做半径 2 的圆角</span></div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_a1034cf756961c7a361e43826802480a5"><div class="ttname"><a href="namespacevde_1_1brep.html#a1034cf756961c7a361e43826802480a5">vde::brep::fillet</a></div><div class="ttdeci">BrepModel fillet(const BrepModel &body, int edge_id, double radius)</div><div class="ttdoc">对边做圆角处理</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a2fc7e2f6626c6f8405adf05db1105a68" title="对边做倒角">chamfer</a> 倒角 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a4d2c4003b97c665cd94597baec7e1ff9" title="抽壳(挖空实体)">shell</a> 抽壳 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a34d58f6db9bfb1bb8abf46bb94eafc6f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a34d58f6db9bfb1bb8abf46bb94eafc6f">◆ </a></span>iges_last_error()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="namespacevde_1_1brep.html#ae78c281601ce520b37270713c86de162">IgesError</a> vde::brep::iges_last_error </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>获取最近一次 IGES 导入的错误码 </p>
|
||
<dl class="section return"><dt>返回</dt><dd>IgesError 枚举值</dd></dl>
|
||
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a3f7d19410534ba8e0e97f089fbbcb9f1" title="获取最近一次 IGES 导入的可读错误描述">iges_last_error_message</a> 获取可读描述 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a3f7d19410534ba8e0e97f089fbbcb9f1"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a3f7d19410534ba8e0e97f089fbbcb9f1">◆ </a></span>iges_last_error_message()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">const std::string& vde::brep::iges_last_error_message </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>获取最近一次 IGES 导入的可读错误描述 </p>
|
||
<dl class="section return"><dt>返回</dt><dd>错误描述字符串</dd></dl>
|
||
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a34d58f6db9bfb1bb8abf46bb94eafc6f" title="获取最近一次 IGES 导入的错误码">iges_last_error</a> 获取枚举错误码 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="adee90de5426184584b215cea82bbd1ac"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#adee90de5426184584b215cea82bbd1ac">◆ </a></span>import_iges()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::vector<<a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a>> vde::brep::import_iges </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>filepath</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>从文件导入 IGES </p>
|
||
<p>解析 .igs 或 .iges 文件并返回其中的 B-Rep 体。</p>
|
||
<p><b>算法概要:</b></p><ol type="1">
|
||
<li>读取文件并按 80 字符行分割</li>
|
||
<li>解析 Start, Global, Directory, Parameter 各段</li>
|
||
<li>根据 Directory Entry 识别实体类型和参数位置</li>
|
||
<li>构建 B-Rep 拓扑结构(B-Rep Object 或独立几何实体)</li>
|
||
</ol>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">filepath</td><td>.igs 或 .iges 文件路径 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>B-Rep 体列表</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>IGES 格式较为宽松,不同 CAD 系统的实现差异很大。 对于非常规实体或自定义类型,可能会返回 IgesError::UnsupportedEntity。</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> bodies = <a class="code" href="namespacevde_1_1brep.html#adee90de5426184584b215cea82bbd1ac">import_iges</a>(<span class="stringliteral">"part.igs"</span>);</div>
|
||
<div class="line"><span class="keywordflow">for</span> (<span class="keyword">auto</span>& body : bodies) {</div>
|
||
<div class="line"> <span class="keyword">auto</span> mesh = body.to_mesh(0.01);</div>
|
||
<div class="line"> <span class="comment">// 处理 mesh</span></div>
|
||
<div class="line">}</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_adee90de5426184584b215cea82bbd1ac"><div class="ttname"><a href="namespacevde_1_1brep.html#adee90de5426184584b215cea82bbd1ac">vde::brep::import_iges</a></div><div class="ttdeci">std::vector< BrepModel > import_iges(const std::string &filepath)</div><div class="ttdoc">从文件导入 IGES</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a97aa899788ec303a7e61e2d6edd08175" title="从字符串导入 IGES(用于测试)">import_iges_from_string</a> 从字符串导入 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a34d58f6db9bfb1bb8abf46bb94eafc6f" title="获取最近一次 IGES 导入的错误码">iges_last_error</a> 获取错误码 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a97aa899788ec303a7e61e2d6edd08175"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a97aa899788ec303a7e61e2d6edd08175">◆ </a></span>import_iges_from_string()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::vector<<a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a>> vde::brep::import_iges_from_string </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>data</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>从字符串导入 IGES(用于测试) </p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">data</td><td>IGES 文件完整内容(字符串形式) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>B-Rep 体列表</dd></dl>
|
||
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#adee90de5426184584b215cea82bbd1ac" title="从文件导入 IGES">import_iges</a> 从文件导入 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ae24e129af52f39a772efac984415ff8d"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ae24e129af52f39a772efac984415ff8d">◆ </a></span>import_step()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::vector<<a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a>> vde::brep::import_step </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>filepath</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>从文件导入 STEP(AP203/AP214) </p>
|
||
<p>解析 .step / .stp 文件并提取所有 PRODUCT 对应的 B-Rep 体。 每个 PRODUCT 定义对应返回向量的一个元素。</p>
|
||
<p><b>算法概要:</b></p><ol type="1">
|
||
<li>读取文件并分割为 HEADER, DATA 段</li>
|
||
<li>解析 DATA 段中的实体定义(::ID = TYPE(params);)</li>
|
||
<li>构建实体依赖图并按拓扑层次重建模型</li>
|
||
<li>将每个 CLOSED_SHELL 转换为 <a class="el" href="classvde_1_1brep_1_1BrepModel.html" title="B-Rep 模型">BrepModel</a></li>
|
||
</ol>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">filepath</td><td>.step 或 .stp 文件路径 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>B-Rep 体列表(每个文件中的 PRODUCT 一个)</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>大型 STEP 文件(> 100 MB)可能需要数秒到数十秒进行解析。</dd></dl>
|
||
<div class="fragment"><div class="line"> {.cpp<span class="stringliteral">"}</span></div>
|
||
<div class="line"><span class="stringliteral">auto bodies = import_step("</span>assembly.step<span class="stringliteral">");</span></div>
|
||
<div class="line"><span class="stringliteral">for (auto& body : bodies) {</span></div>
|
||
<div class="line"><span class="stringliteral"> auto mesh = body.to_mesh();</span></div>
|
||
<div class="line"><span class="stringliteral"> // 渲染或处理 mesh</span></div>
|
||
<div class="line"><span class="stringliteral">}</span></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ae5d3e4ac3043b36e38a7734ea5592518" title="从字符串导入 STEP(用于测试和嵌入式场景)">import_step_from_string</a> 从内存字符串导入(测试用) </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a282cb1ce3142931d20330e95e25c1460" title="获取最近一次 STEP 导入的错误码">step_last_error</a> 获取错误码 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ae5d3e4ac3043b36e38a7734ea5592518"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ae5d3e4ac3043b36e38a7734ea5592518">◆ </a></span>import_step_from_string()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::vector<<a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a>> vde::brep::import_step_from_string </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>step_data</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>从字符串导入 STEP(用于测试和嵌入式场景) </p>
|
||
<p>与 <a class="el" href="namespacevde_1_1brep.html#ae24e129af52f39a772efac984415ff8d" title="从文件导入 STEP(AP203/AP214)">import_step()</a> 功能完全相同,但从内存中的 STEP 数据字符串解析。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">step_data</td><td>完整的 STEP 文件内容(字符串形式) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>B-Rep 体列表</dd></dl>
|
||
<div class="fragment"><div class="line">std::string step_str = R<span class="stringliteral">"(</span></div>
|
||
<div class="line"><span class="stringliteral">ISO-10303-21;</span></div>
|
||
<div class="line"><span class="stringliteral">HEADER; ... ENDSEC;</span></div>
|
||
<div class="line"><span class="stringliteral">DATA; ... ENDSEC;</span></div>
|
||
<div class="line"><span class="stringliteral">END-ISO-10303-21;</span></div>
|
||
<div class="line"><span class="stringliteral">)";</span></div>
|
||
<div class="line"><span class="stringliteral"></span><span class="keyword">auto</span> bodies = <a class="code" href="namespacevde_1_1brep.html#ae5d3e4ac3043b36e38a7734ea5592518">import_step_from_string</a>(step_str);</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ae5d3e4ac3043b36e38a7734ea5592518"><div class="ttname"><a href="namespacevde_1_1brep.html#ae5d3e4ac3043b36e38a7734ea5592518">vde::brep::import_step_from_string</a></div><div class="ttdeci">std::vector< BrepModel > import_step_from_string(const std::string &step_data)</div><div class="ttdoc">从字符串导入 STEP(用于测试和嵌入式场景)</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ae24e129af52f39a772efac984415ff8d" title="从文件导入 STEP(AP203/AP214)">import_step</a> 从文件导入 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ae4431aff57585213ee2713a7623ab7ae"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ae4431aff57585213ee2713a7623ab7ae">◆ </a></span>loft()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::loft </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> > & </td>
|
||
<td class="paramname"><em>profiles</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>在两个或多个轮廓曲线之间放样 </p>
|
||
<p>通过线性或平滑插值连接多个平行或非平行轮廓, 生成过渡实体。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">profiles</td><td>轮廓曲线列表(至少 2 条) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>放样后的 B-Rep 实体</dd></dl>
|
||
<dl class="section pre"><dt>前置条件</dt><dd>profiles.size() ≥ 2 </dd>
|
||
<dd>
|
||
所有轮廓应是平面曲线(逐一)</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> profile_a = NurbsCurve::create_circle(<a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0,0,0), 5.0);</div>
|
||
<div class="line"><span class="keyword">auto</span> profile_b = NurbsCurve::create_circle(<a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0,0,10), 2.0);</div>
|
||
<div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#a049cefd36713ff9b184c0ad74dab96cf">cone</a> = <a class="code" href="namespacevde_1_1brep.html#ae4431aff57585213ee2713a7623ab7ae">loft</a>({profile_a, profile_b});</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ae4431aff57585213ee2713a7623ab7ae"><div class="ttname"><a href="namespacevde_1_1brep.html#ae4431aff57585213ee2713a7623ab7ae">vde::brep::loft</a></div><div class="ttdeci">BrepModel loft(const std::vector< curves::NurbsCurve > &profiles)</div><div class="ttdoc">在两个或多个轮廓曲线之间放样</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1sdf_html_a049cefd36713ff9b184c0ad74dab96cf"><div class="ttname"><a href="namespacevde_1_1sdf.html#a049cefd36713ff9b184c0ad74dab96cf">vde::sdf::cone</a></div><div class="ttdeci">double cone(const Point3D &p, double angle_rad, double height)</div><div class="ttdoc">圆锥台的 SDF(非内联实现)</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a11885ccd93e2322b983c750061eaa28b" title="沿方向挤出平面轮廓">extrude</a> 单轮廓挤出 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac1cb7871101ff5be06577548ac41aaac"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac1cb7871101ff5be06577548ac41aaac">◆ </a></span>make_box()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::make_box </td>
|
||
<td>(</td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>w</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>h</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>d</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>创建立方体 </p>
|
||
<p>以原点为中心、轴对齐的立方体。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">w</td><td>宽度(X 方向),必须 > 0 </td></tr>
|
||
<tr><td class="paramname">h</td><td>高度(Y 方向),必须 > 0 </td></tr>
|
||
<tr><td class="paramname">d</td><td>深度(Z 方向),必须 > 0 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>实心立方体 B-Rep</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#a380ebfe1b3b65d5ecc4efcb946b21834">box</a> = <a class="code" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac">make_box</a>(10, 5, 3); <span class="comment">// 10×5×3 的盒子</span></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ad5e851f10fbd1962c42a8574b193faa3" title="创建圆柱体">make_cylinder</a> 圆柱体 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61" title="创建球体">make_sphere</a> 球体 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ad5e851f10fbd1962c42a8574b193faa3"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ad5e851f10fbd1962c42a8574b193faa3">◆ </a></span>make_cylinder()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::make_cylinder </td>
|
||
<td>(</td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>radius</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>height</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>segments</em> = <code>32</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>创建圆柱体 </p>
|
||
<p>沿 Y 轴、以原点为中心的圆柱体。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">radius</td><td>截面半径,必须 > 0 </td></tr>
|
||
<tr><td class="paramname">height</td><td>总高度,沿 Y 轴从 -h/2 到 +h/2 </td></tr>
|
||
<tr><td class="paramname">segments</td><td>截面分段数(边数,默认 32) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>实心圆柱体 B-Rep</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>segments 越大圆柱越光滑,但面和边数增加。</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> cyl = <a class="code" href="namespacevde_1_1brep.html#ad5e851f10fbd1962c42a8574b193faa3">make_cylinder</a>(2.0, 10.0, 64); <span class="comment">// 高精度圆柱</span></div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ad5e851f10fbd1962c42a8574b193faa3"><div class="ttname"><a href="namespacevde_1_1brep.html#ad5e851f10fbd1962c42a8574b193faa3">vde::brep::make_cylinder</a></div><div class="ttdeci">BrepModel make_cylinder(double radius, double height, int segments=32)</div><div class="ttdoc">创建圆柱体</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ac1cb7871101ff5be06577548ac41aaac" title="创建立方体">make_box</a> 立方体 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61" title="创建球体">make_sphere</a> 球体 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a30605a9398550c5cc0b298e04c60ca61"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a30605a9398550c5cc0b298e04c60ca61">◆ </a></span>make_sphere()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::make_sphere </td>
|
||
<td>(</td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>radius</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>segments_u</em> = <code>32</code>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>segments_v</em> = <code>16</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>创建球体 </p>
|
||
<p>以原点为中心的球体。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">radius</td><td>球半径,必须 > 0 </td></tr>
|
||
<tr><td class="paramname">segments_u</td><td>经度方向分段数(默认 32) </td></tr>
|
||
<tr><td class="paramname">segments_v</td><td>纬度方向分段数(默认 16) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>实心球体 B-Rep</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> <a class="code" href="namespacevde_1_1sdf.html#ab544a3ebc4c0844b322b73bbbe4efb3f">sphere</a> = <a class="code" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61">make_sphere</a>(5.0, 32, 32);</div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ad5e851f10fbd1962c42a8574b193faa3" title="创建圆柱体">make_cylinder</a> 圆柱体 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="afbba855cbc153b7da3aa201246c7bfe0"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#afbba855cbc153b7da3aa201246c7bfe0">◆ </a></span>revolve()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::revolve </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> & </td>
|
||
<td class="paramname"><em>profile</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const Point3D & </td>
|
||
<td class="paramname"><em>axis_origin</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const Vector3D & </td>
|
||
<td class="paramname"><em>axis_dir</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>angle_rad</em> = <code>2.0 *M_PI</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>绕轴旋转平面轮廓 </p>
|
||
<p>将轮廓绕给定轴旋转,生成旋转体(如轮子、瓶子等)。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">profile</td><td>轮廓曲线(通常位于轴的半平面中) </td></tr>
|
||
<tr><td class="paramname">axis_origin</td><td>旋转轴上的一个点 </td></tr>
|
||
<tr><td class="paramname">axis_dir</td><td>旋转轴方向(单位向量) </td></tr>
|
||
<tr><td class="paramname">angle_rad</td><td>旋转角度(弧度,默认 2π = 完整的旋转体) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>旋转后的 B-Rep 实体</dd></dl>
|
||
<dl class="section pre"><dt>前置条件</dt><dd>profile 必须在轴的同一侧(不应跨越轴线)</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="comment">// 绕 Y 轴旋转半圆,生成球体的一半</span></div>
|
||
<div class="line">NurbsCurve semicircle = 在 XZ 平面中的半圆弧;</div>
|
||
<div class="line"><span class="keyword">auto</span> half_sphere = <a class="code" href="namespacevde_1_1brep.html#afbba855cbc153b7da3aa201246c7bfe0">revolve</a>(semicircle, <a class="code" href="namespacevde_1_1core.html#ac6aed70c4b90d13f10217267cd7a1952">Point3D</a>(0,0,0),</div>
|
||
<div class="line"> <a class="code" href="namespacevde_1_1core.html#ab763c018d19e10e91a6c6d6ab2ccc8e0">Vector3D</a>(0,1,0), M_PI);</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_afbba855cbc153b7da3aa201246c7bfe0"><div class="ttname"><a href="namespacevde_1_1brep.html#afbba855cbc153b7da3aa201246c7bfe0">vde::brep::revolve</a></div><div class="ttdeci">BrepModel revolve(const curves::NurbsCurve &profile, const Point3D &axis_origin, const Vector3D &axis_dir, double angle_rad=2.0 *M_PI)</div><div class="ttdoc">绕轴旋转平面轮廓</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a11885ccd93e2322b983c750061eaa28b" title="沿方向挤出平面轮廓">extrude</a> 线性挤出 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#a30605a9398550c5cc0b298e04c60ca61" title="创建球体">make_sphere</a> 直接创建球体 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a4d2c4003b97c665cd94597baec7e1ff9"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4d2c4003b97c665cd94597baec7e1ff9">◆ </a></span>shell()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::shell </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>body</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>face_id</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>thickness</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>抽壳(挖空实体) </p>
|
||
<p>将实体变为等厚度的壳,去除指定面形成开口。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">body</td><td>输入实心实体 </td></tr>
|
||
<tr><td class="paramname">face_id</td><td>要移除的面 ID(形成开口),-1 表示封闭壳(不开口) </td></tr>
|
||
<tr><td class="paramname">thickness</td><td>壁厚(正值 = 向外偏移,负值 = 向内偏移) </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>抽壳后的新实体</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>壁厚不应超过实体最小尺寸的一半。 </dd>
|
||
<dd>
|
||
当 face_id = -1 时,结果是一个封闭的壳(中空但没有开口)。</dd></dl>
|
||
<div class="fragment"><div class="line"> {.cpp<span class="stringliteral">"}</span></div>
|
||
<div class="line"><span class="stringliteral">auto box = make_box(10, 5, 3);</span></div>
|
||
<div class="line"><span class="stringliteral">auto shelled = shell(box, 0, 0.5); // 移除面 0,壁厚 0.5</span></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a1034cf756961c7a361e43826802480a5" title="对边做圆角处理">fillet</a> 圆角 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a282cb1ce3142931d20330e95e25c1460"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a282cb1ce3142931d20330e95e25c1460">◆ </a></span>step_last_error()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="namespacevde_1_1brep.html#add9286f426ba3fed65f107ac2e73c4ef">StepError</a> vde::brep::step_last_error </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>获取最近一次 STEP 导入的错误码 </p>
|
||
<p>线程安全的:返回当前线程最近一次导入的错误。</p>
|
||
<dl class="section return"><dt>返回</dt><dd>StepError 枚举值</dd></dl>
|
||
<dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#ad744c4e7d42f2f8f7a02ffa6daf72d6e" title="获取最近一次 STEP 导入的可读错误描述">step_last_error_message</a> 获取可读的错误描述 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ad744c4e7d42f2f8f7a02ffa6daf72d6e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ad744c4e7d42f2f8f7a02ffa6daf72d6e">◆ </a></span>step_last_error_message()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">const std::string& vde::brep::step_last_error_message </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>获取最近一次 STEP 导入的可读错误描述 </p>
|
||
<dl class="section return"><dt>返回</dt><dd>错误描述字符串(如 "Missing entity reference #42")</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> bodies = <a class="code" href="namespacevde_1_1brep.html#ae24e129af52f39a772efac984415ff8d">import_step</a>(<span class="stringliteral">"nonexistent.step"</span>);</div>
|
||
<div class="line"><span class="keywordflow">if</span> (bodies.empty()) {</div>
|
||
<div class="line"> std::cerr << <span class="stringliteral">"Import failed: "</span> << <a class="code" href="namespacevde_1_1brep.html#ad744c4e7d42f2f8f7a02ffa6daf72d6e">step_last_error_message</a>() << std::endl;</div>
|
||
<div class="line">}</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ad744c4e7d42f2f8f7a02ffa6daf72d6e"><div class="ttname"><a href="namespacevde_1_1brep.html#ad744c4e7d42f2f8f7a02ffa6daf72d6e">vde::brep::step_last_error_message</a></div><div class="ttdeci">const std::string & step_last_error_message()</div><div class="ttdoc">获取最近一次 STEP 导入的可读错误描述</div></div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_ae24e129af52f39a772efac984415ff8d"><div class="ttname"><a href="namespacevde_1_1brep.html#ae24e129af52f39a772efac984415ff8d">vde::brep::import_step</a></div><div class="ttdeci">std::vector< BrepModel > import_step(const std::string &filepath)</div><div class="ttdoc">从文件导入 STEP(AP203/AP214)</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a282cb1ce3142931d20330e95e25c1460" title="获取最近一次 STEP 导入的错误码">step_last_error</a> 获取枚举错误码 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a9dd78da8d6a11af52c0c95cfc41c1414"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a9dd78da8d6a11af52c0c95cfc41c1414">◆ </a></span>sweep()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> vde::brep::sweep </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> & </td>
|
||
<td class="paramname"><em>profile</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1curves_1_1NurbsCurve.html">curves::NurbsCurve</a> & </td>
|
||
<td class="paramname"><em>path</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>沿任意路径扫掠轮廓 </p>
|
||
<p>轮廓沿一条空间路径曲线运动,生成管道或异形截面杆。</p>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">profile</td><td>截面轮廓(需位于路径起点的垂直平面内) </td></tr>
|
||
<tr><td class="paramname">path</td><td>扫掠路径曲线 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd>扫掠后的 B-Rep 实体</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>路径曲率过大处可能出现自交,需要控制路径的光滑性。</dd></dl>
|
||
<div class="fragment"><div class="line"> {.cpp<span class="stringliteral">"}</span></div>
|
||
<div class="line"><span class="stringliteral">auto circle = NurbsCurve::create_circle(Point3D(0,0,0), 0.5);</span></div>
|
||
<div class="line"><span class="stringliteral">auto helix = NurbsCurve::create_helix(// ...);</span></div>
|
||
<div class="line"><span class="stringliteral">auto pipe = sweep(circle, helix);</span></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacevde_1_1brep.html#a11885ccd93e2322b983c750061eaa28b" title="沿方向挤出平面轮廓">extrude</a> 直线挤出 </dd>
|
||
<dd>
|
||
<a class="el" href="namespacevde_1_1brep.html#afbba855cbc153b7da3aa201246c7bfe0" title="绕轴旋转平面轮廓">revolve</a> 旋转扫掠 </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="acb612097bfb5e886285f2227dcc9216f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#acb612097bfb5e886285f2227dcc9216f">◆ </a></span>validate()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="structvde_1_1brep_1_1ValidationResult.html">ValidationResult</a> vde::brep::validate </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classvde_1_1brep_1_1BrepModel.html">BrepModel</a> & </td>
|
||
<td class="paramname"><em>body</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>对 <a class="el" href="classvde_1_1brep_1_1BrepModel.html" title="B-Rep 模型">BrepModel</a> 执行综合验证 </p>
|
||
<p>检查以下项:</p>
|
||
<ol type="1">
|
||
<li><b>基本完整性</b>: 顶点/边/面计数 > 0,ID 引用有效</li>
|
||
<li><b>水密性</b>: 每条边恰好有 2 个相邻面,构成封闭流形</li>
|
||
<li><b>方向一致性</b>: 相邻面的法向量方向一致(没有翻转的面)</li>
|
||
<li><b>自交检测</b>: 面片内部不相交(共享边除外)</li>
|
||
<li><b>边尺寸</b>: 无退化边(太短)或异常长边</li>
|
||
<li><b>壳闭合性</b>: 每个标记为 closed 的壳在几何上确实封闭</li>
|
||
</ol>
|
||
<dl class="params"><dt>参数</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">body</td><td>待验证的 B-Rep 模型 </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>返回</dt><dd><a class="el" href="structvde_1_1brep_1_1ValidationResult.html" title="B-Rep 模型的综合验证结果">ValidationResult</a> 包含所有检查结果的详细报告</dd></dl>
|
||
<dl class="section note"><dt>注解</dt><dd>自交检测是最昂贵的检查项(O(n²) 面对数), 对于大模型(> 1000 面)可能需要较长时间。</dd></dl>
|
||
<div class="fragment"><div class="line"><span class="keyword">auto</span> result = <a class="code" href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f">validate</a>(my_model);</div>
|
||
<div class="line"><span class="keywordflow">if</span> (!result.valid) {</div>
|
||
<div class="line"> <span class="keywordflow">for</span> (<span class="keyword">auto</span>& err : result.errors) {</div>
|
||
<div class="line"> std::cerr << <span class="stringliteral">"Error: "</span> << err << std::endl;</div>
|
||
<div class="line"> }</div>
|
||
<div class="line">}</div>
|
||
<div class="line"><span class="keywordflow">if</span> (result.watertightness < 0.99) {</div>
|
||
<div class="line"> std::cerr << <span class="stringliteral">"Model is not watertight!"</span> << std::endl;</div>
|
||
<div class="line">}</div>
|
||
<div class="ttc" id="anamespacevde_1_1brep_html_acb612097bfb5e886285f2227dcc9216f"><div class="ttname"><a href="namespacevde_1_1brep.html#acb612097bfb5e886285f2227dcc9216f">vde::brep::validate</a></div><div class="ttdeci">ValidationResult validate(const BrepModel &body)</div><div class="ttdoc">对 BrepModel 执行综合验证</div></div>
|
||
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="classvde_1_1brep_1_1BrepModel.html#a1c7273fff65281e8ce2353808b8e84ed" title="检查模型有效性(快速版本)">BrepModel::is_valid()</a> 快速有效性检查(无详细报告) </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
</div><!-- contents -->
|
||
</div><!-- doc-content -->
|
||
<!-- start footer part -->
|
||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||
<ul>
|
||
<li class="navelem"><a class="el" href="namespacevde.html">vde</a></li><li class="navelem"><a class="el" href="namespacevde_1_1brep.html">brep</a></li>
|
||
<li class="footer">生成于 2026年 七月 24日 星期五 11:21:23 , 为 ViewDesignEngine使用 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||
</ul>
|
||
</div>
|
||
</body>
|
||
</html>
|