Определение профилей

Раздел на модерации

Функция v-profile-rect

Объект Профиль не является отображаемым элементом. Профиль - это виртуальный эскиз используемый при построении 3D-тел путём выдавливания или вращения.

Описание
Создание прямоугольного профиля
Возвращаемое значение
Профиль
Синтаксис
(v-profile-rect width) ; Квадратный профиль (v-profile-rect width height) ; Прямоугольный профиль
Аргумент	Тип	Описание
width	Вещественное	Ширина
height	Вещественное	Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение квадратного профиля (v-profile-rect 2.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение прямоугольного профиля (v-profile-rect 2.0 1.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат

Функция v-profile-round

Описание
Создание круглого профиля
Возвращаемое значение
Профиль
Синтаксис
(v-profile-round diameter)
Аргумент	Тип	Описание
diameter	Вещественное	Диаметр
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение круглого профиля (v-profile-round 2.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат

Функция v-profile-arc

Описание
Создание профиля сегмента окружности
Возвращаемое значение
Профиль
Синтаксис
(v-profile-arc radius angle span)
Аргумент	Тип	Описание
radius	Вещественное	Радиус дуги
angle	Вещественное	Угол начала дуги
span	Вещественное	Градусная мера дуги
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение профиля сегмента окружности (v-profile-arc 1.0 0 120) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат

Функция v-profile-polygon

Описание
Создание вписанного многоугольного профиля
Возвращаемое значение
Профиль
Синтаксис
(v-profile-polygon quantity radius)
Аргумент	Тип	Описание
quantity	Целое	Количество углов
radius	Вещественное	Радиус окружности
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение восьмиугольного профиля (v-profile-polygon 8 1.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат

Функция v-profile-g

Описание
Создание Г-образного профиля (уголок)
Возвращаемое значение
Профиль
Синтаксис
(v-profile-g thickness width) (v-profile-g thickness width height)
Аргумент	Тип	Описание
thickness	Вещественное	Толщина стенки
width	Вещественное	Ширина
height	Вещественное	Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение Г-образного профиля со стенками одинаковой ширины (v-profile-g 0.05 2.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение Г-образного профиля со стенками разной ширины (v-profile-g 0.05 2.0 1.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат

Функция v-profile-p

Описание
Создание П-образного профиля (швеллер)
Возвращаемое значение
Профиль
Синтаксис
(v-profile-p thickness width) (v-profile-p thickness width height)
Аргумент	Тип	Описание
thickness	Вещественное	толщина стенки
width	Вещественное	ширина
height	Вещественное	Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение П-образного профиля со стенками одинаковой ширины (v-profile-p 0.05 2.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение П-образного профиля со стенками разной ширины (v-profile-p 0.05 2.0 1.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат

Функция v-profile-t

Описание
Создание Т-образного профиля (тавр)
Возвращаемое значение
Профиль
Синтаксис
(v-profile-t thickness width) (v-profile-t thickness width height)
Аргумент	Тип	Описание
thickness	Вещественное	толщина стенки
width	Вещественное	ширина
height	Вещественное	Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение T-образного профиля со стенками одинаковой ширины (v-profile-t 0.05 2.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат
Пример
; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude ; Определение T-образного профиля со стенками разной ширины (v-profile-t 0.05 2.0 1.0) ; Вектор выдавливания (vec 0.0 0.0 0.1) ) )
Результат

Функция v-profile-shape

Описание
Создание фигурного профиля
Возвращаемое значение
Профиль
Примечание
Профиль должен содержать минимум два вершины. Аргументами могут быть трёхмерные векторы или пары координат X и Y в любом сочетании. Координаты X и Y передаются как отдельные аргументы, поэтому важно следить за количеством и типом передаваемых аргументов. Важно! Для корректного расчёта освещения 3D-тела, рекомендуется описывать профиль парами вершин, как если бы каждая пара вершин подразумевала грань профиля. То есть, при перечислении вершин каждую промежуточную точку необходимо дублировать, чтобы получилась конструкция вида: Вершина 1, Вершина 2, Вершина 2, Вершина 3, Вершина 3, Вершина 4, ..., Вершина N
Синтаксис
(v-profile-shape vector_1 vector_2 ... vector_N) (v-profile-shape x_1 y_1 x_2 y_2 ... x_N y_N)
Аргумент	Тип	Описание
vector_#	3D-вектор	Трёхмерный вектор
x_#	Вещественное	Координата X
y_#	Вещественное	Координата Y
Пример
(let ; Определение фигурного профиля и присваивание его переменной ( (profile (v-profile-shape 0.0 0.0 -0.5 0.5 ; 1-я грань -0.5 0.5 0.0 2.0 ; 2-я грань 0.0 2.0 0.5 0.5 ; 3-я грань 0.5 0.5 0.0 0.0) ; 4-я грань ) ) ; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude profile (vec 0.0 0.0 0.1)) ) ) ; или (let ; Определение фигурного профиля и присваивание его переменной ( (profile (v-profile-shape (vec) (vec -0.5 0.5) ; 1-я грань (vec -0.5 0.5) (vec 0.0 2.0) ; 2-я грань (vec 0.0 2.0) (vec 0.5 0.5) ; 3-я грань (vec 0.5 0.5) (vec)) ; 4-я грань ) ) ; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude profile (vec 0.0 0.0 0.1)) ) )
Результат

Функция v-profile-compound

Описание
Создание составного профиля
Возвращаемое значение
Профиль
Примечание
Составной профиль должен содержать минимум два профиля
Синтаксис
(v-profile-compound profile_1 profile_2 ... profile_N)
Аргумент	Тип	Описание
profile_#	Профиль	Профиль
Пример
(let ; Объявление переменных (profile compound_profile) (setq ; Определение фигурного профиля profile (v-profile-shape (vec) (vec -0.5 0.5) (vec -0.5 0.5) (vec 0.0 2.0) (vec 0.0 2.0) (vec 0.5 0.5) (vec 0.5 0.5) (vec) ) ; Определение составного профиля compound_profile (v-profile-compound ; Профиль profile ; Профиль повернутый на 90 градусов (v-profile-rotate profile 90) ; Профиль повернутый на 180 градусов (v-profile-rotate profile 180) ; Профиль повернутый на 270 градусов (v-profile-rotate profile 270) ) ) ; Объявление блока геометрии (defgeometry ; Создание 3D-тела путём выдавливания профиля (v-extrude compound_profile (vec 0.0 0.0 0.1)) ) )
Результат

Функция v-profile-rotate

Описание
Создание профиля с переменным значением угла поворота
Возвращаемое значение
Профиль
Синтаксис
(v-profile-rotate profile start_angle) (v-profile-rotate profile start_angle end_angle)
Аргумент	Тип	Описание
profile	Профиль	Вращаемый профиль
start_angle	Вещественное	Начальный угол поворота
end_angle	Вещественное	Конечный угол поворота
Пример
(let ; Определение профиля с переменным углом поворота ((profile (v-profile-rotate (v-profile-polygon 8 1.0) 0 180))) ; Определение блока геометрии (defgeometry ; Создание 3D-тела (v-extrude profile (vec 0 0 1)) ) )
Результат

Функция v-profile-scale

Описание
Создание профиля с переменным масштабом
Возвращаемое значение
Профиль
Синтаксис
(v-profile-scale profile start_scale) (v-profile-scale profile start_scale end_scale)
Аргумент	Тип	Описание
profile	Профиль	Масштабируемый профиль
start_scale	3D-вектор	Начальный масштаб
end_scale	3D-вектор	Конечный масштаб
Пример
(let ; Определение профиля с переменным масштабом ((profile (v-profile-scale (v-profile-polygon 8 1.0) (vec 2.0) (vec 1.0)))) ; Определение блока геометрии (defgeometry ; Создание 3D-тела (v-extrude profile (vec 0 0 1)) )
Результат

Функция v-profile-translate

Описание
Создание профиля с переменным положением
Возвращаемое значение
Профиль
Синтаксис
(v-profile-translate profile start_position) (v-profile-translate profile start_position end_position)
Аргумент	Тип	Описание
profile	Профиль	Перемещаемый профиль
start_position	3D-вектор	Начальное положение
end_position	3D-вектор	Конечное положение
Пример
(let ; Определение профиля с переменным положением ((profile (v-profile-translate (v-profile-polygon 8 1.0) (vec) (vec 1.0 1.0)))) ; Определение блока геометрии (defgeometry ; Создание 3D-тела (v-extrude profile (vec 0 0 1)) ) )
Результат

Функция v-profile-mirror

Описание
Создание профиля отражённого от плоскости
Возвращаемое значение
Профиль
Синтаксис
(v-profile-mirror profile normal)
Аргумент	Тип	Описание
profile	Профиль	Профиль
normal	3D-вектор	Нормаль плоскости отражения