12
Руководство пользователя
×

3.7.2 Поверхность по точкам из файла

 Данный метод создает поверхность по точкам из заданного файла. Предполагается, что множество точек файла представляют собой сетку размером , где  – число точек в ряду сетки,  – число рядов. Значение n определяется при вводе файла автоматически на основании анализа расположения точек в пространстве, или может быть задано пользователем. Точки в файле упорядочены по рядам. Первыми в файле записаны по порядку точки первого ряда, затем второго ряда и т.д. Внешний вид поверхности представлен на Рис. 67. Внешней стороной поверхности является сторона, обращенная в направлении вектора Norm1, который показан на рисунке. Этот вектор определяется как векторное произведение vectorPP(p_1, p_2) на vectorPP(p_1, p_n+1), где p_1, p_2, p_n+1 – соответствующие точки в файле.
 
Рис. 67. Поверхность по точкам из файла
Синтаксис метода создания
tableSurface(Node, File, n=..., surfaceApproximation =…, surfaceStyle=..., pointStyle=..., lineStyle=..., color=..., visible=...)
Обязательные позиционные параметры метода
node Node
Узел, в системе координат которого создается поверхность.
string File [*.tbl]
Имя файла, содержащего точки поверхности. Формат файла –«*.tbl»
Необязательные именованные параметры метода
 n = scalar [-]
Количество точек в ряду. По умолчанию n=0.
surfaceApproximation = [SurfaceInterpolationC0:/SurfaceInterpolationC2:/ SurfaceApproximationC2:/SurfaceApproximationC3:/SurfaceBezier:]
Метод аппроксимации для определения поверхности.
По умолчанию surfaceApproximation = SurfaceInterpolationC0:.
 surfaceApproximation = SurfaceInterpolationC0:
Поверхность состоит из смежных четырехугольников, построенных по соседним точкам сетки. При этом обеспечивается нулевой порядок гладкости поверхности, то есть непрерывность поверхности, но не ее производных.
 surfaceApproximation = SurfaceInterpolationC2:
Заданная сетка точек используется для построения сплайновой поверхности третьего порядка. Заданные точки лежат на поверхности. При этом обеспечивается второй порядок гладкости поверхности.
 surfaceApproximation = SurfaceApproximationC2:
Заданная сетка точек используется для построения сплайновой поверхности третьего порядка. Заданные точки не обязательно лежат на поверхности. При этом обеспечивается второй порядок гладкости поверхности.
 surfaceApproximation = SurfaceApproximationC3:
Заданная сетка точек используется для построения сплайновой поверхности четвертого порядка. Заданные точки не обязательно лежат на поверхности. При этом обеспечивается третий порядок гладкости поверхности.
 surfaceApproximation = SurfaceBezier:
Заданная сетка точек используется для построения поверхности Безье. Заданные точки не обязательно лежат на поверхности. Поверхность Безье можно построить, если число рядов и число точек в ряду не превышают 26 каждое. При этом порядок гладкости поверхности не ограничен.
 Tolerance = scalar [length]
Точность аппроксимации поверхности – максимальное расстояние от заданных точек до построенной поверхности. По умолчанию Tolerance=1e-6 [m].
surfaceStyle=..., pointStyle =..., lineStyle=..., color =..., visible =...
Параметры являются общими для всех методов создания геометрических объектов и описаны в пункте «Необязательные именованные параметры объектов» общей части главы «Геометрические и массово-инерционные объекты».
Описание
Файл должен содержать три столбца. Размерности столбцов в файле определяют, в какой системе координат относительно узла Node заданы точки поверхности. Возможны следующие варианты структуры файла, содержащего точки для построения поверхности.
1.     Три столбца с размерностями [length], [length], [length] - точки заданы в пространственной декартовой системе координат.
2.     Три столбца с размерностями [angle], [length], [length] - точки заданы в цилиндрической системе координат.
3.     Три столбца с размерностями [angle], [angle], [length] - точки заданы в сферической системе координат.
Пример файла
// Поверхность по точкам
3
X[m] Y[m] Z[m]
0          0         0
0          1         0
0          2         0
0          3         0
1          0         0
1          1         1
1          2         1
1          3         0
2          0         0
2          1         1
2          2         1
2          3         0
3          0         0
3          1         0
3          2         0
3          3         0