第13章 拓扑实体面
章节定位:B-Rep 拓扑层次中连接环与壳的关键二维实体
关键词:拓扑面;B-Rep;参数域;p-curve;第一/第二基本形式;法向定向;自交修复
摘要
面(Face)是 B-Rep 拓扑层次中的二维实体,关联一个曲面作为几何支撑,由外环与内环界定其在参数域上的区域。面是几何与拓扑交汇的核心:既承载拓扑结构(环边界、方向、邻接),又承载几何信息(曲面方程、法向、曲率)。本章系统建立面的原理、表示、操作与工程细节,涵盖参数域修剪、方向定向、p-curve 表示、第一/第二基本形式、面积积分、点在面内判定、面到点距离、布尔切分等关键内容,并给出主流内核(OCCT/Parasolid/CGM/ACIS/Granite)的实现对比与工程调优建议。本章是理解 B-Rep 几何表达的核心一章,为第 14 章壳与体铺垫。
13.1 概述与背景
在 B-Rep 拓扑层次中,面(Face)是连接环与壳的关键二维实体,也是几何造型中工程师最直接感知的实体——一个零件的每一个平整表面、每一个圆柱面、每一个自由曲面都是 B-Rep 中的一个面。面关联一个曲面作为几何支撑,并由一个外环(定义主体边界)和零或多个内环(定义孔)界定其在曲面上的区域。
面是 B-Rep 中几何与拓扑交汇的核心:
- 拓扑结构:环边界、方向、邻接;
- 几何信息:曲面方程、法向、曲率。
几乎所有几何操作都围绕面展开:
| 渲染 | 画面(离散为三角网格) |
| 布尔 | 切分面(求交产生新边) |
| 网格化 | 离散面(FEA 网格) |
| 质量计算 | 积面积(面积分) |
| 工程图 | 投影面(HLR 消隐) |
面的表示与处理质量直接决定内核的几何表达能力与鲁棒性。
13.1.1 面的工程实现八大要素
面的工程实现是 B-Rep 中最丰富的:
本章将系统建立面的原理、表示、操作与工程细节。
13.2 历史与发展演进
面作为拓扑实体与 B-Rep 同生。
| 1970s | Braid BUILD-1 中面关联曲面与环;早期面仅支持解析曲面(平面、圆柱等) |
| 1980–90s | NURBS 成熟,面可关联 NURBS 曲面,表达自由曲面;修剪曲面随 NURBS 普及 |
| 1990s | 面的方向与 orientation 在半边结构中通过法向约定处理;OCCT 中通过 TopoDS_Face 的 Orientation(FORWARD/REVERSED)表示 |
| 1990s–2000s | 面的自交检测与修复随 Shape Healing 成熟;OCCT 的 ShapeFix_Face、ShapeUpgrade 修复面自交、退化、错向 |
| 2000s | 面的参数域表示(Geom2d 曲线 p-curve)随修剪曲面成熟,支持面上操作在 2D 参数域进行 |
至今,面的表示与处理已标准化,各内核差异在曲面类型支持与容差模型。
13.3 核心概念与定义
13.3.1 面(Face)
B-Rep 拓扑层次的二维实体,关联一个曲面(几何支撑),由外环 + 内环界定参数域区域。
13.3.2 几何支撑
面关联一个曲面:平面(Geom_Plane)、圆柱(Geom_CylindricalSurface)、圆锥、球、环面(解析曲面)、NURBS 曲面(Geom_BSplineSurface)、贝塞尔曲面、旋转曲面、拉伸曲面等。
13.3.3 参数域与修剪
面关联曲面 S(u,v)S(u,v)S(u,v) 与参数域 DDD。DDD 由外环(主体)−-− 内环(孔)定义。面是:
F=S(D)={S(u,v):(u,v)∈D}
F = S(D) = \\{ S(u,v) : (u,v) \\in D \\}
F=S(D)={S(u,v):(u,v)∈D}
修剪曲面支持任意形状面。
13.3.4 外环与内环
- 外环:定义面主体边界(参数域外边界);
- 内环:定义孔(参数域内边界)。
环在参数域上是 p-curve。
13.3.5 方向(Orientation)
FORWARD(法向取曲面自然法向)或 REVERSED(取反)。面法向:
n(u,v)=orientation×∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v∣
\\mathbf{n}(u,v) = \\text{orientation} \\times \\frac{\\partial S/\\partial u \\times \\partial S/\\partial v}{\\left| \\partial S/\\partial u \\times \\partial S/\\partial v \\right|}
n(u,v)=orientation×∣∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v
13.3.6 容差(Tolerance)
面带容差 ε\\varepsilonε。边到面距离 ≤ε\\leq \\varepsilon≤ε 即贴合。容差面是容差建模的基础。
13.3.7 自交
曲面 S(u,v)S(u,v)S(u,v) 自交——存在 (u1,v1)≠(u2,v2)(u_1, v_1) \\neq (u_2, v_2)(u1,v1)=(u2,v2) 使 S(u1,v1)=S(u2,v2)S(u_1, v_1) = S(u_2, v_2)S(u1,v1)=S(u2,v2)。合法面不应自交,自交需修复。
13.3.8 参数表示与 p-curve
面上点 S(u,v)S(u,v)S(u,v),(u,v)∈D(u,v) \\in D(u,v)∈D。法向、曲率在参数域计算。p-curve 是面环边在参数域的像(Geom2d_Curve),使面上边操作在 2D 参数域进行。
13.3.9 共享
两面共享边时,边对象共享。面本身被壳引用时共享。
13.4 技术原理详解
面的工程实现围绕“表示、创建、查询、求值、方向、修剪、自交”展开。
13.4.1 表示
OCCT 的 TopoDS_Face 是轻量句柄,实际数据在 BRep_TFace(TShape)中:
| surface | 曲面(Geom_Surface) |
| wires | 环列表(外环 + 内环) |
| tolerance | 容差 |
| location | 位置变换 |
TopoDS_Face 加 Orientation。
13.4.2 创建
| BRepBuilderAPI_MakeFace(surface) | 从曲面创建(无修剪,全参数域) |
| BRepBuilderAPI_MakeFace(surface, wire) | 从曲面与外环创建 |
| BRepBuilderAPI_MakeFace(wire) | 从平面环创建平面面 |
| 体素创建 | 生成面(如立方体 6 个平面面) |
13.4.3 查询
| 曲面 | BRep_Tool::Surface(face) 返回 Geom_Surface |
| 环 | face.OuterWire、face.Wires(外环 + 内环) |
| 容差 | BRep_Tool::Tolerance(face) |
| 方向 | face.Orientation() |
| 参数域 | Geom_Surface::Bounds 返回 (u1,u2,v1,v2)(u_1, u_2, v_1, v_2)(u1,u2,v1,v2) 全域,实际域 DDD 由环定义 |
13.4.4 求值
面上一点 S(u,v)S(u,v)S(u,v):Geom_Surface::Value(u,v)。法向:D1(u,v) 返回 ∂S/∂u,∂S/∂v\\partial S/\\partial u, \\partial S/\\partial v∂S/∂u,∂S/∂v,叉积得法向。曲率:D2 返回二阶导,计算高斯曲率、主曲率。BRepAdaptor_Surface 封装。
13.4.5 方向处理
面法向 = orientation×(∂S/∂u×∂S/∂v)\\text{orientation} \\times (\\partial S/\\partial u \\times \\partial S/\\partial v)orientation×(∂S/∂u×∂S/∂v)。FORWARD 取自然法向,REVERSED 取反。方向决定面在体中朝外还是朝内(外壳面法向朝外、内壳朝内)。
13.4.6 修剪与参数域
面参数域 DDD 由外环 −-− 内环定义。点在面上:S−1(p)∈DS^{-1}(p) \\in DS−1(p)∈D。点在面内判定:参数 (u,v)(u,v)(u,v) 在外环内且所有内环外。面积:
A=∬D∣∂S∂u×∂S∂v∣ du dv
A = \\iint_D \\left| \\frac{\\partial S}{\\partial u} \\times \\frac{\\partial S}{\\partial v} \\right| \\, du \\, dv
A=∬D∂u∂S×∂v∂Sdudv
13.4.7 p-curve
面环边在参数域的像。BRep_Tool::CurveOnSurface(edge, surface) 查询。p-curve 使面上边操作(求交、分类)在 2D 参数域进行,降维提效。
13.4.8 自交检测
曲面自交检测:采样参数域,找 S(u1,v1)=S(u2,v2)S(u_1, v_1) = S(u_2, v_2)S(u1,v1)=S(u2,v2) 的 (u1,v1)≠(u2,v2)(u_1, v_1) \\neq (u_2, v_2)(u1,v1)=(u2,v2)。ShapeFix_Face 或 IntTools 检测。自交面需修复(重建模或拆分)。
13.4.9 布尔切分
布尔求交产生新边(交线),新边把面切分为“在对方内/外/边界”片段。切分通过 mef(make edge face)加边加面实现。
13.4.10 面到点距离
d=min(u,v)∈D∣S(u,v)−p∣
d = \\min_{(u,v) \\in D} \\left| S(u,v) – \\mathbf{p} \\right|
d=(u,v)∈Dmin∣S(u,v)−p∣
数值优化(牛顿)或采样。用于拾取、最近点。
13.5 数学理论与公式推导
13.5.1 面的几何表示
面 FFF 关联曲面 S:D→R3S: D \\to \\mathbb{R}^3S:D→R3,(u,v)∈D(u,v) \\in D(u,v)∈D。面是 S(D)S(D)S(D)。DDD 由外环 −-− 内环定义。
13.5.2 参数域与修剪
D=Douter∖(Dinner1∪Dinner2∪⋯ )
D = D_{\\text{outer}} \\setminus (D_{\\text{inner1}} \\cup D_{\\text{inner2}} \\cup \\cdots)
D=Douter∖(Dinner1∪Dinner2∪⋯)
DouterD_{\\text{outer}}Douter 外环内,DinnerD_{\\text{inner}}Dinner 内环内。面 =S(D)= S(D)=S(D)。
13.5.3 求值与求导
S(u,v)S(u,v)S(u,v) 用 de Boor(NURBS)或解析。∂S/∂u\\partial S/\\partial u∂S/∂u、∂S/∂v\\partial S/\\partial v∂S/∂v 一阶偏导。二阶偏导 ∂2S/∂u2\\partial^2 S/\\partial u^2∂2S/∂u2、∂2S/∂u∂v\\partial^2 S/\\partial u \\partial v∂2S/∂u∂v、∂2S/∂v2\\partial^2 S/\\partial v^2∂2S/∂v2。
13.5.4 法向
n(u,v)=orientation×∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v∣
\\mathbf{n}(u,v) = \\text{orientation} \\times \\frac{\\partial S/\\partial u \\times \\partial S/\\partial v}{\\left| \\partial S/\\partial u \\times \\partial S/\\partial v \\right|}
n(u,v)=orientation×∣∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v
13.5.5 第一基本形式(度量)
E=∂S∂u⋅∂S∂u,F=∂S∂u⋅∂S∂v,G=∂S∂v⋅∂S∂v
E = \\frac{\\partial S}{\\partial u} \\cdot \\frac{\\partial S}{\\partial u}, \\quad
F = \\frac{\\partial S}{\\partial u} \\cdot \\frac{\\partial S}{\\partial v}, \\quad
G = \\frac{\\partial S}{\\partial v} \\cdot \\frac{\\partial S}{\\partial v}
E=∂u∂S⋅∂u∂S,F=∂u∂S⋅∂v∂S,G=∂v∂S⋅∂v∂S
面积元素:
dA=EG−F2 du dv
dA = \\sqrt{EG – F^2} \\, du \\, dv
dA=EG−F2dudv
13.5.6 第二基本形式(曲率)
L=n⋅∂2S∂u2,M=n⋅∂2S∂u∂v,N=n⋅∂2S∂v2
L = \\mathbf{n} \\cdot \\frac{\\partial^2 S}{\\partial u^2}, \\quad
M = \\mathbf{n} \\cdot \\frac{\\partial^2 S}{\\partial u \\partial v}, \\quad
N = \\mathbf{n} \\cdot \\frac{\\partial^2 S}{\\partial v^2}
L=n⋅∂u2∂2S,M=n⋅∂u∂v∂2S,N=n⋅∂v2∂2S
高斯曲率与平均曲率:
K=LN−M2EG−F2,H=EN−2FM+GL2(EG−F2)
K = \\frac{LN – M^2}{EG – F^2}, \\qquad
H = \\frac{EN – 2FM + GL}{2(EG – F^2)}
K=EG−F2LN−M2,H=2(EG−F2)EN−2FM+GL
主曲率:
k1,k2=H±H2−K
k_1, k_2 = H \\pm \\sqrt{H^2 – K}
k1,k2=H±H2−K
13.5.7 面面积
A=∬DEG−F2 du dv
A = \\iint_D \\sqrt{EG – F^2} \\, du \\, dv
A=∬DEG−F2dudv
数值积分(Gauss)在参数域 DDD 上。
13.5.8 点在面内
p\\mathbf{p}p 在面 FFF 内 ⟺ \\iff⟺ S−1(p)∈DS^{-1}(\\mathbf{p}) \\in DS−1(p)∈D。即参数 (u,v)(u,v)(u,v) 在外环内且所有内环外。用绕数判定。
13.5.9 面到点距离
d=min(u,v)∈D∣S(u,v)−p∣
d = \\min_{(u,v) \\in D} \\left| S(u,v) – \\mathbf{p} \\right|
d=(u,v)∈Dmin∣S(u,v)−p∣
牛顿迭代从采样初值优化。
13.5.10 p-curve
边 eee 曲线 C(t)C(t)C(t),面 FFF 曲面 S(u,v)S(u,v)S(u,v)。p-curve:
(u(t),v(t))=S−1(C(t))
(u(t), v(t)) = S^{-1}(C(t))
(u(t),v(t))=S−1(C(t))
即 3D 曲线在参数域的像。
13.5.11 欧拉公式中的面
FFF 是面数:
V−E+F−L=2(S−G)
V – E + F – L = 2(S – G)
V−E+F−L=2(S−G)
加面(mef)使 F+1F+1F+1。
13.6 算法与数据结构详解
13.6.1 面数据结构
class Face(TShape):
surface: Geom_Surface # 曲面几何支撑
wires: List[TopoDS_Wire] # 外环 + 内环
tolerance: float
class TopoDS_Face(Shape):
tshape: Handle[Face]
location: Location
orientation: Orientation # FORWARD/REVERSED
13.6.2 创建面
function makeFace(surface, outerWire, innerWires=[]):
tf = Face(surface, [outerWire] + innerWires)
return TopoDS_Face(tshape=tf, orientation=FORWARD)
13.6.3 面上求值与法向
function faceValue(face, u, v):
surface = BRep_Tool.Surface(face)
return surface.value(u, v)
function faceNormal(face, u, v):
surface = BRep_Tool.Surface(face)
Su, Sv = surface.d1(u, v) # 偏导
n = Su.cross(Sv).normalize()
if face.orientation == REVERSED:
n = -n
return n
13.6.4 点在面内
function pointInFace(p, face):
surface = BRep_Tool.Surface(face)
(u, v) = surface.inverse(p) # 求逆
outerWire = face.outerWire
innerWires = face.wires[1:]
if not pointInWireParam((u,v), outerWire, surface):
return False # 不在外环内
for inner in innerWires:
if pointInWireParam((u,v), inner, surface):
return False # 在内环内(孔)
return True
13.6.5 面面积
function faceArea(face):
surface = BRep_Tool.Surface(face)
# 在参数域 D 上数值积分 √(EG-F²)
D = paramDomain(face) # 外环 – 内环
def integrand(u, v):
Su, Sv = surface.d1(u, v)
E = Su.dot(Su); F = Su.dot(Sv); G = Sv.dot(Sv)
return sqrt(E*G – F*F)
return gaussIntegrate(integrand, D)
13.6.6 面到点距离
function faceToPointDistance(face, p):
surface = BRep_Tool.Surface(face)
# 采样参数域找最近初值
(u0, v0) = sampleClosest(surface, p, face)
# 牛顿迭代优化 min |S(u,v) – p|
(u, v) = newtonMinimize(lambda u,v: (surface.value(u,v) – p).lengthSquared(), u0, v0)
return (surface.value(u, v) – p).length()
13.6.7 布尔切分面
function splitFace(face, interCurves):
# interCurves 是求交产生的交线
newEdges = [makeEdge(c) for c in interCurves]
# 用 mef 加边把面切分为片段
fragments = [face]
for e in newEdges:
newFragments = []
for f in fragments:
split = mef(f, e) # 加边分裂面
newFragments.extend(split)
fragments = newFragments
return fragments
13.7 主流软件实现对比
| OCCT | TopoDS_Face + BRep_TFace + Geom_Surface | BRep_Tool::Surface/Tolerance;BRepAdaptor_Surface 求值求导 | Geom_Plane/CylindricalSurface/BSplineSurface 等 | ShapeFix_Face |
| Parasolid | FACE 实体带曲面与环,状态机管理 | PK_FACE_ask 查询 | 解析 + NURBS | 内置修复 |
| CGM | 容差面,容差建模贯穿 | — | 解析 + NURBS | 容差驱动 |
| ACIS | FACE 带 surface 与 loop,辐射边层 | — | 解析 + NURBS | — |
| Granite | 面嵌入特征历史 | — | 解析 + NURBS | — |
各实现都把面作曲面 + 环 + 容差 + 方向,差异在曲面类型与容差。
13.8 操作步骤教程
用 FreeCAD(OCCT)体验面。
步骤一:查看面
import Part
box = Part.makeBox(10,10,10)
for f in box.Faces:
print(f.Area, f.CenterOfMass, f.normalAt(0,0))
print("Surface:", f.Surface)
print("Wires:", len(f.Wires))
步骤二:查询曲面类型
f = box.Faces[0]
print(type(f.Surface)) # Geom_Plane
# 圆柱面
cyl = Part.makeCylinder(5, 10)
print(type(cyl.Faces[0].Surface)) # Geom_CylindricalSurface
步骤三:面上求值与法向
f = box.Faces[0]
# 在参数 (u,v) 求值
p = f.valueAt(0.5, 0.5) # 参数域中点
n = f.normalAt(0.5, 0.5) # 法向
print(p, n)
步骤四:点在面内
f = box.Faces[0]
p = Base.Vector(5, 5, 0) # 面上一点
print(f.isInside(p)) # True
步骤五:带孔面查看内环
# 在面上打孔后
f = holed.Faces[0]
print(len(f.Wires)) # 外环 + 内环
步骤六:面面积与曲率
f = cyl.Faces[0] # 圆柱面
print(f.Area) # 2πrh
# 曲率(圆柱面高斯曲率 0,主曲率 1/r, 0)
步骤七:体验修剪曲面
创建一个 NURBS 曲面,用环修剪,查看参数域 DDD。
13.9 应用场景与案例
| 体素创建 | 立方体 6 平面面、圆柱 1 圆柱面 + 2 平面面等 |
| 布尔运算 | 求交产生新边,新边切分面为片段,按运算类型选片段组成新面 |
| 渲染 | 面离散成三角网格送 GPU;面法向用于着色 |
| 网格化 | FEA 网格器离散面成三角网格,沿环边保证节点匹配 |
| 质量计算 | 面面积用积分,体体积用散度定理逐面积分 |
| 工程图 | 面投影到平面,HLR 消除隐藏面边 |
| 特征识别 | 平面面、圆柱面、自由曲面面识别支持特征识别与直接建模 |
| 直接建模 | 移动面、替换面、删除面等直接编辑操作面 |
| 数据交换 | STEP 把面序列化为 ADVANCED_FACE(曲面 + 环) |
13.9.1 散度定理的体积计算
设体 VVV 边界为面集 {Fi}\\{F_i\\}{Fi},则:
Vol(V)=13∑i∬Fip⋅n dA
\\text{Vol}(V) = \\frac{1}{3} \\sum_i \\iint_{F_i} \\mathbf{p} \\cdot \\mathbf{n} \\, dA
Vol(V)=31i∑∬Fip⋅ndA
其中 p\\mathbf{p}p 为面上点位置,n\\mathbf{n}n 为面法向。
13.10 常见问题与调优
| 面自交 | 曲面自交导致布尔、网格化异常 | ShapeFix_Face 检测修复;重建模 |
| 面法向不一致 | 个别面 orientation 错导致渲染或布尔异常 | ShapeFix_Face 修复法向;手动翻转 |
| 面未闭合 | 环不闭合导致面边界有缺口 | ShapeFix_Wire 修复环闭合 |
| 参数域错误 | 外环 −-− 内环定义的 DDD 不对 | ShapeFix_Face 修复参数域 |
| p-curve 不一致 | p-curve 与 3D 曲线不匹配 | ShapeFix_Edge 重算 p-curve |
| 曲面退化 | 曲面在某处退化(如 NURBS 边界) | ShapeUpgrade 修复退化 |
| 面到边距离超容差 | 边未贴合面 | 调容差;ShapeFix 修复 |
13.11 发展趋势与展望
13.12 小结
面是 B-Rep 拓扑层次的二维实体,关联曲面(几何支撑)+ 外环 + 内环 + 方向 + 容差。面参数域 DDD 由外环 −-− 内环定义,面是 S(D)S(D)S(D)。面法向由 orientation 与曲面自然法向决定。面支持求值、求导、曲率、面积、点分类。面在布尔中被切分,在渲染、网格化、质量计算、工程图中核心。面带容差用于贴合判定,p-curve 支持面上操作。面自交、退化、错向需 ShapeFix 修复。各内核都把面作曲面 + 环 + 容差,差异在曲面类型与容差。理解面是理解 B-Rep 几何表达的核心,为第 14 章壳与体铺垫。
13.12.1 关键公式速查
| 面参数化 | F=S(D)F = S(D)F=S(D),D=Douter∖⋃DinnerD = D_{\\text{outer}} \\setminus \\bigcup D_{\\text{inner}}D=Douter∖⋃Dinner |
| 面法向 | n=orientation×Su×Sv∣Su×Sv∣\\mathbf{n} = \\text{orientation} \\times \\dfrac{S_u \\times S_v}{|S_u \\times S_v|}n=orientation×∣Su×Sv∣Su×Sv |
| 第一基本形式 | E=Su⋅SuE = S_u \\cdot S_uE=Su⋅Su,F=Su⋅SvF = S_u \\cdot S_vF=Su⋅Sv,G=Sv⋅SvG = S_v \\cdot S_vG=Sv⋅Sv |
| 面积元素 | dA=EG−F2 du dvdA = \\sqrt{EG – F^2} \\, du \\, dvdA=EG−F2dudv |
| 第二基本形式 | L=n⋅SuuL = \\mathbf{n} \\cdot S_{uu}L=n⋅Suu,M=n⋅SuvM = \\mathbf{n} \\cdot S_{uv}M=n⋅Suv,N=n⋅SvvN = \\mathbf{n} \\cdot S_{vv}N=n⋅Svv |
| 高斯曲率 | K=LN−M2EG−F2K = \\dfrac{LN – M^2}{EG – F^2}K=EG−F2LN−M2 |
| 平均曲率 | H=EN−2FM+GL2(EG−F2)H = \\dfrac{EN – 2FM + GL}{2(EG – F^2)}H=2(EG−F2)EN−2FM+GL |
| 主曲率 | k1,2=H±H2−Kk_{1,2} = H \\pm \\sqrt{H^2 – K}k1,2=H±H2−K |
| 面积 | A=∬DEG−F2 du dvA = \\iint_D \\sqrt{EG – F^2} \\, du \\, dvA=∬DEG−F2dudv |
| 面到点距离 | d=min(u,v)∈D∣S(u,v)−p∣d = \\min_{(u,v) \\in D} |S(u,v) – \\mathbf{p}|d=min(u,v)∈D∣S(u,v)−p∣ |
| p-curve | (u(t),v(t))=S−1(C(t))(u(t), v(t)) = S^{-1}(C(t))(u(t),v(t))=S−1(C(t)) |
| 欧拉公式 | V−E+F−L=2(S−G)V – E + F – L = 2(S – G)V−E+F−L=2(S−G) |
13.13 延伸阅读
参考文献
[1] Open CASCADE Technology Documentation: TopoDS_Face, BRep_Tool, BRepAdaptor_Surface, Geom_Surface, OCCT 8.0, 2024.
[2] Piegl L, Tiller W. The NURBS Book[M]. 2nd ed. Springer, 1997.
[3] do Carmo M P. Differential Geometry of Curves and Surfaces[M]. Prentice-Hall, 1976.
[4] Requicha A A G. Representations for Rigid Solids: Theory, Methods, and Systems[J]. ACM Computing Surveys, 1980, 12(4): 437-464.
[5] Mäntylä M. An Introduction to Solid Modeling[M]. Computer Science Press, 1988.(B-Rep 拓扑层次)
网硕互联帮助中心




评论前必须登录!
注册