Базовые приемы

Примеры работы функций языка программирования

Расположение

\SimInTech\Demo\Визуализация и анимация\3D-визуализация\Базовые приемы

Описание

Примеры демонстрируют работу с функциями языка программирования, позволяющими производить различные операции с модулем 3D-визуализации.

В таблице приведено описание примеров, применяемые в примере функции и их назначение.

Выполнение каждого демо примера начинается с создания окна 3D визуализации:

ID = CreateEngine(101, "Визуализация 3D");
ShowEngineByID(ID);

Функции выполняют создание окна 3D-визуализации. Функции используются в секции инициализации. ID - идентификатор созданного окна визуализации.

Название демо Описание демо Применяемые функции Описание функций
Видимость 3D-объекта Пример демонстрирует работу флага видимости 3D-объекта. См. скрипт проекта. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectVisibility(ID, OId, Flag) Функция управляет видимостью 3D-объекта OId в окне ID согласно заданному аргументу Flag. (Flag=0 - объект не виден, Flag=1 - объект виден).
Видимость горизонтальной координатной сетки Пример демонстрирует работу флага видимости горизонтальной координатной сетки. Viewer3DSetGridVisibility(ID, Flag) Функция задания видимости сетки на плоскости Y=0. Flag - флаг видимости сетки (Flag=True - сетка видна, Flag=False - сетка не видна).
Видимость нодализационной сетки Пример демонстрирует работу флага видимости нодализационной сетки для 3D-объектов. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetNodeGridVisibility (ID, Flag) Функция задания видимости нодализационной сетки 3D-примитивов. Flag - флаг видимости сетки (Flag=True - сетка видна, Flag=False - сетка не видна).
Видимость осей ГСК Пример демонстрирует работу флага видимости осей ГСК. Viewer3DSetAxesVisibility(ID, Flag) Функция задания видимости осей ГСК. Flag - флаг видимости осей (Flag=True - оси видны, Flag=False - оси не видны).
Видимость осей ЛСК 3D объекта Пример демонстрирует работу флага видимости осей ЛСК, связанной с 3D-объектом. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetLCSPosition(ID, OId, X, Y, Z) Функция задания координат локальной системы координат 3D-объекта.
Viewer3DShowObjectAxes(ID, OId, Flag) Функция задания видимости осей локальной системы координат 3D-примитива в окне. Flag - флаг видимости осей (Flag=True - оси видны, Flag=False - оси не видны).
Вывод текстовой информации на окно 3D визуализации Пример демонстрирует возможность вывода произвольной текстовой информации на окно 3D-визуализации. Размеры задаются в количестве пикселей. TId = Viewer3DPlotTextLabel(ID, Text, Left, Top, FontSize, FontColor) Функция создания надписи (текстового label) на окне.
Viewer3DSetTextLabel(ID, TId, Text) Функция установки текста для надписи. Text - текст для отображения, задается в кавычках либо в виде переменной типа string.
Задание геометрии 3D объекта в динамике Пример демонстрирует изменение геометрии заданное на этапе инициализации 3D объекта в процессе расчета OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectGeom(ID, OId, Geom) Функция задает геометрию D объекта.
Задание имени 3D-объекта На этапе инициализации выполняется задание имени для созданного 3D-объекта. Имена отображаются в дереве объектов. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectName(Id, OId, Name) Функция задает новое имя Name 3D объекта.
Задание координат камеры Пример демонстрирует изменение координат базовой точки камеры в динамике по закону: [0, sin(time), 0], где time - текущее модельное время. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetCameraPosition(ID, X, Y, Z) Функция устанавливает координаты базовой точки камеры.
Задание координат ЛСК 3D-объекта в динамике В процессе расчета координаты ЛСК, связанной с созданным 3D-объектом, и, следовательно, положение самого 3D-объекта относительно ГСК меняются по закону: [0, sin(time), 0], где time - текущее модельное время. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetLCSPosition(ID, OId, X, Y, Z) Функция задания координат локальной системы координат 3D-объекта.
Задание ориентации осей ГСК Пример демонстрирует задание ориентации осей ГСК. Viewer3DSetGlobalTopAxis(ID, Flag) Функция задания ориентации осей глобальной системы координат.
Задание положения 3D-объекта в ЛСК в динамике В процессе расчета положение 3D-объекта в ЛСК меняется по закону: [0, sin(time), 0], где time - текущее модельное время. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectPosition(ID, OId, Pos) Функция задания положения 3D-объекта в его локальной системе координат.
Задание углов Эйлера ЛСК 3D-объекта в динамике В процессе расчета углы Эйлера ЛСК, связанной с созданным 3D-объектом, и, следовательно, углы Эйлера самого 3D-объекта меняются по закону: [90*sin(time), 90*sin(time), 0], где time - текущее модельное время. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DShowObjectAxes(ID, OId, Flag) Функция задания видимости осей локальной системы координат 3D-примитива в окне. Flag - флаг видимости осей (Flag=True - оси видны, Flag=False - оси не видны).
Viewer3DSetLCSAngles(ID, OId, Prec, Nut, OwnRot) Функция задания углов Эйлера локальной системы координат 3D-объекта.
Задание цели камеры Пример демонстрирует возможность задания 3D-объекта в качестве цели камеры. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetCameraTarget(Id, OId) Функция задания 3D-объекта в качестве цели камеры.
Viewer3DSetLCSPosition(ID, OId, X, Y, Z) Функция задания координат локальной системы координат 3D-объекта.
Массовое удаление 3D-объектов На этапе инициализации выполняется рендеринг сфер радиусом 1 м в точке (0,0,0) для всех существующих окон 3D-визуализации. На этапе финализации все 3D-объекты, созданные из скрипта, уничтожаются. ID = Viewer3DGetWindowList Функция получения идентификаторов всех существующих окон 3D-визуализации.
OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DRemoveScriptObjects(ID) Функция удаления всех созданных из скрипта 3D-объектов в окне.
Масштабирование 3D-объекта В процессе расчета выполняется масштабирование 3D-объекта относительно собственных координатных осей по следующему закону: [50+40*sin(time), 50+40*sin(time), 50+40*sin(time)], где time - текущее модельное время. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectScale(ID, OId, Xscale, Yscale, Zscale) Функция выполняет масштабирование 3D-объекта согласно заданному по осям масштабу в процентах.
Получение Id окон 3D-визуализации При помощи функции Viewer3DGetWindowList находится массив ID всех существующих окон 3D-визуализации. ID = Viewer3DGetWindowList Функция позволяет получить ID всех существующих окон, функция возвращает массив идентификаторов всех окон.
Рендеринг 3D-объекта из файла На этапе инициализации выполняется рендеринг 3D-объекта из файла. При этом начало локальной системы координат, связанной с 3D-объектом, находится в точке (0,0,0). OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.

Прим.: список поддерживаемых форматов 3D: *.glsm, *.obj, *.objf, *.stl, *.lwo, *.q3bsp, *.bsp, *.oct, *.ms3d, *.nmf, *.md3, *.3ds, *.prj, *.md2, *.smd, *.ply, *.gts, *.wrl, *.md5mesh, *.md5anim, *.tin, *.dxf, *.grd.

Рендеринг параллелепипеда На этапе инициализации выполняется рендеринг 3D-примитива параллелепипеда. При этом начало локальной системы координат, связанной с 3D-объектом, находится в точке (0,-1,-1). OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Рендеринг сферы На этапе инициализации выполняется рендеринг 3D-примитива сферы радиусом 1 м. При этом начало локальной системы координат, связанной с 3D-объектом, находится в точке (0,0,0). OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Рендеринг усеченного конуса На этапе инициализации выполняется рендеринг 3D-примитива усеченного конуса. При этом начало локальной системы координат, связанной с 3D-объектом, находится в точке (0,0,0). OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Рендеринг цилиндра На этапе инициализации выполняется рендеринг 3D-примитива цилиндра. При этом начало локальной системы координат, связанной с 3D-объектом, находится в точке (0,0,0). OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Создание окна 3D визуализации из скрипта На этапе инициализации создается новое окно 3D-визуализации. ID = CreateEngine(EngineIndex, Category) Функция добавления устройства в менеджер данных.
ShowEngineByID(ID) Функция открывает окно устройства по его идентификатору.
Степень прозрачности 3D-объекта Пример демонстрирует возможность задания степени прозрачности 3D-объекта. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectTransparency(ID, OId, tr) Функция управляет степенью прозрачности 3D-объекта в окне согласно заданному значению tr.
Текстура 3D-объекта Пример демонстрирует возможность задания цвета 3D-объекта. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectTexture(ID, OId, FilePath) Функция наложения текстуры из файла, расположенного по пути FilePath на 3D-объект.
Удаление 3D-объекта На этапе инициализации выполняется рендеринг сфер радиусом 1 м в точке (0,0,0) для всех существующих окон 3D-визуализации. На этапе финализации 3D-объект, созданный из скрипта, уничтожается. ID = Viewer3DGetWindowList Функция получения идентификаторов всех существующих окон 3D-визуализации.
OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DRemoveObject(ID, OId) Функция выполняет удаление объекта созданного из скрипта, с идентификатором OId.
Уничтожение окна 3D визуализации из скрипта На этапе инициализации создается новое окно 3D-визуализации. На финализации оно уничтожается. DestroyEngineByID(E) Функция выполняет полное уничтожение окна 3D-визуализации.
Установка положения окна Пример демонстрирует возможность установки положения окна 3D-визуализации. Величины отступов задаются в количестве пикселей. Viewer3DSetWindowPosition(ID, L, T) Функция устанавливается положение окна относительно левой верхней точки экрана. L - отступ слева в пикселях, T - отступ сверху.
Установка размеров окна Пример демонстрирует возможность установки размеров окна 3D-визуализации. Размеры задаются в количестве пикселей. Viewer3DSetWindowSize(ID, W, H) Функция выполняет установку размеров окна 3D-визуализации, где W - ширина окна, H - высота.
Цвет 3D-объекта Пример демонстрирует возможность задания цвета 3D-объекта. OId = Viewer3DPlotObject(ID, pID, GeomType, Pos, Geom, FileName) Функция выполняет создание объекта заданной геометрии.
Viewer3DSetObjectColor(ID, OId, Color) Функция устанавливает цвет объекта. Значение аргумента Color может быть получено при помощи функции RBGToColor.
Цвет фона Пример демонстрирует возможность динамического задания цвета фона 3D-модели. Viewer3DSetBackground(ID, Color) Функция устанавливает цвет фона. Значение аргумента Color может быть получено при помощи функции RBGToColor.

Используемые блоки