九韶内核 1.0.0.0
|
本教程提供了网格剖分中多种局部尺寸场的详细配置方法,用于控制生成网格的尺寸。
类 | 键 | 是否必需 | 取值范围 | 默认值 | 备注 |
---|---|---|---|---|---|
LocalSizeField | BGField | 是 | 【1, inf】整数类型 | 1 | 其值为局部尺寸场的Tag,即选择该尺寸场做为背景尺寸场 |
LocalSizeField | AutomaticField | 否 | 依据曲率和狭窄区域自动计算全局的网格尺寸 | ||
AutomaticField | CurvatureFactor | 否 | 【0, inf】 | 0.5 | 依据是否设置判断是否启动曲率计算尺寸,其值越小在高曲率区域尺寸越小,网格越密集 |
AutomaticField | NarrowRegionResolution2D | 否 | 【0, inf】 | 1 | 依据是否设置判断是否依据2D狭窄区域(几何曲面自身的狭窄区域)计算尺寸,其值代表狭窄区域内网格的层数,越大狭窄区域的网格越密集 |
AutomaticField | NarrowRegionResolution3D | 否 | 【0, inf】 | 1 | 依据是否设置判断是否依据3D狭窄区域(几何曲面间的狭窄区域)计算尺寸,其值代表狭窄区域内网格的层数,越大狭窄区域的网格越密集 |
AutomaticField | GrowthRate | 是 | 【1, inf】 | 1.4 | 自动尺寸场尺寸间允许的增长率 |
AutomaticField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag(不能与其它尺寸场Tag重复) |
LocalSizeField | MinField | 否 | 【1,inf】整数类型 | 从所有输入的尺寸场中取尺寸最小值 | |
MinField | SelectedFieldTags | 是 | 【1,2,3...】 | —— | 输入用来取尺寸最小值的尺寸场Tag,注意,输入的尺寸场必须存在 |
MinField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
LocalSizeField | MaxField | 否 | 从所有输入的尺寸场中取尺寸最大值 | ||
MaxField | SelectedFieldTags | 是 | 【1,2,3...】 | —— | 输入用来取尺寸最大值的尺寸场Tag,注意,输入的尺寸场必须存在 |
MaxField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
LocalSizeField | BallField | 否 | 指定规定球内的尺寸值 | ||
BallField | Center | 是 | 任意三维坐标 | —— | 球心坐标,三个浮点数 |
BallField | Radius | 是 | 【0,inf】 | 0.0 | 球半径 |
BallField | InterLocSize | 是 | 【0,inf】 | 0.0 | 球内部的尺寸值 |
BallField | OutLocSize | 否 | 【0,inf】 | 0.0 | 球外部尺寸值 |
BallField | Thickness | 否 | 【0,inf】 | 0.0 | 球边界过渡层,即从球面向外扩张一层,这一层的尺寸通过InterLocSize和OutLocSize插值而来,设置Thickness则必须设置OutLocSize |
BallField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
LocalSizeField | BoxField | 否 | 指定规定立方体内的尺寸值,依据最小最大端点确定立方体 | ||
BoxField | MinPoint | 是 | 任意三维坐标 | —— | 立方体最小端点 |
BoxField | MaxPoint | 是 | 任意三维坐标 | —— | 立方体最大端点 |
BoxField | InterLocSize | 是 | 【0,inf】 | 0.0 | 立方体内部尺寸值 |
BoxField | OutLocSize | 否 | 【0,inf】 | 0.0 | 立方体外部尺寸值 |
BoxField | Thickness | 否 | 【0,inf】 | 0.0 | 立方体边界过渡层,与BallField类似。设置Thickness则必须设置OutLocSize |
BoxField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
LocalSizeField | CylinderField | 否 | 指定规定圆柱内的尺寸值 | ||
CylinderField | Center | 是 | 任意三维坐标 | —— | 圆柱中心坐标,三个浮点数 |
CylinderField | Axis | 是 | 任意三维非零向量 | —— | 圆柱轴,三个浮点数 |
CylinderField | Radius | 是 | 【0,inf】 | 0.0 | 圆柱半径 |
CylinderField | InterLocSize | 是 | 【0,inf】 | 0.0 | 圆柱内部的尺寸 |
CylinderField | OutLocSize | 否 | 【0,inf】 | 0.0 | 圆柱外部的尺寸 |
CylinderField | Thickness | 否 | 【0,inf】 | 0.0 | 圆柱边界过渡层,与BallField类似。设置Thickness则必须设置OutLocSize |
CylinderField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
LocalSizeField | DistanceField | 否 | 与输入的几何形状(点,边,面,体)的距离作为尺寸,通常与ThresholdField结合使用 | ||
DistanceField | SelectedVertexTags | 否 | 【1,2,3...】 | —— | 输入点Tag |
DistanceField | SelectedEdgeTags | 否 | 【1,2,3...】 | —— | 输入边Tag |
DistanceField | SelectedFaceTags | 否 | 【1,2,3...】 | —— | 输入面Tag |
DistanceField | SelectedSolidTags | 否 | 【1,2,3...】 | —— | 输入体Tag |
DistanceField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
LocalSizeField | ThresholdField | 否 | 基于输入场计算的尺寸在MinDist到MaxDist范围中插值新的尺寸 | ||
ThresholdField | MinDist | 是 | 【0,inf】 | 0.0 | 最小尺寸阈值 |
ThresholdField | MaxDist | 是 | 【0,inf】 | 0.0 | 最大尺寸阈值 |
ThresholdField | MaxSize | 是 | 【0,inf】 | 0.0 | 输入场计算的尺寸超过MinDist,则返回MaxSize |
ThresholdField | MinSize | 是 | 【0,inf】 | 0.0 | 输入场计算的尺寸小于MinDist,则返回MinSize |
ThresholdField | SelectedFieldTag | 是 | 【1,inf】整数类型 | 1 | 输入尺寸场Tag,一般使用DistanceField |
ThresholdField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
LocalSizeField | RestrictField | 否 | 只在输入的几何形状(点,边,面,体)上使用输入的尺寸场计算尺寸 | ||
RestrictField | IsBoundary | 否 | 【true,false】 | true | 是否在输入几何形状边界上计算尺寸 |
RestrictField | SelectedVertexTags | 否 | 【1,2,3...】 | —— | 输入点Tag |
RestrictField | SelectedEdgeTags | 否 | 【1,2,3...】 | —— | 输入边Tag |
RestrictField | SelectedFaceTags | 否 | 【1,2,3...】 | —— | 输入面Tag |
RestrictField | SelectedSolidTags | 否 | 【1,2,3...】 | —— | 输入体Tag |
RestrictField | SelectedFieldTag | 是 | 【1,inf】整数类型 | 1 | 输入尺寸场Tag |
RestrictField | Tag | 是 | 【1,inf】整数类型 | 1 | 当前尺寸场的Tag |
在上面的json文件中给出了每一种尺寸场的设置方式,具体使用中可以依据自己的需求设置相应的尺寸场,或改变上面json文件中BGField的值以使用不同的尺寸场。接下来,我们将在上面的json文件中设置不同BGField的值以使用不同的尺寸场。
设置"BGField": 1,此时BGField为AutomaticField的Tag参数。因此将会使用AutomaticField。
如果需要与其它尺寸场耦合使用,则设置MinField或MaxField为背景场,在MinField或MaxField中输入AutomaticField和其它需要耦合使用的尺寸场的Tag即可。
结果如下:
设置"BGField": 2,此时BGField为MinField的Tag参数。因此将会使用MinField。
即对任意点,从所有输入场中计算该点尺寸,返回尺寸最小值。结果如下:
设置"BGField": 3,此时BGField为MaxField的Tag参数。因此将会使用MaxField。
即对任意点,从所有输入场中计算该点尺寸,返回尺寸最大值。结果如下:
设置"BGField": 4,此时BGField为BallField的Tag参数。因此将会使用BallField。
可以不用设置Thickness和OutLocSize,结果如下:
设置"BGField": 6,此时BGField为BoxField的Tag参数。因此将会使用BoxField。
可以不用设置Thickness和OutLocSize,结果如下:
设置"BGField": 7,此时BGField为CylinderField的Tag参数。因此将会使用CylinderField。
可以不用设置Thickness和OutLocSize,结果如下:
设置"BGField": 8,此时BGField为DistanceField的Tag参数。因此将会使用DistanceField。
即将距离作为网格尺寸,因此在距离小于全局的minsize时取minsize,在距离大于全局的maxsize时取maxsize。可以不设置某些几何,结果如下:
设置"BGField": 9,此时BGField为ThresholdField的Tag参数。因此将会使用ThresholdField。
一般与DistanceField结合使用(即在DistanceField指定选择尺寸场为DistanceField)。 当查找点的距离或尺寸值ls<MinDist 返回MinSize(阈值场中的MinSize);
当查找点的距离或尺寸值ls>MaxDist 返回MaxSize(阈值场中的MaxSize); 当查找点的距离或尺寸值MinDist<ls<MaxDist 依据MinSize和MaxSize插值一个新的尺寸。
结果如下:
设置"BGField": 10,此时BGField为RestrictField的Tag参数。因此将会使用RestrictField。
结果如下:
点击这里example03可获得网格尺寸控制示例完整源码,大家根据学习需要自行下载。