Встроить окно расчета на свой сайт
Окно расчета Temper-3D можно показать на любой странице: трехмерная модель, температурное поле, температура под курсором. Читатель крутит модель мышью и не покидает вашу страницу. Подходит производителям (узел вашего изделия с настоящим расчетом), преподавателям (задача для занятия), авторам статей и научных работ (расчет, на который можно сослаться и который можно проверить).
Что такое встроенное окно
Это тот же просмотрщик, в который открывается ссылка на расчет, но в режиме показа: без шапки, панелей и
горячих клавиш. По умолчанию в окне видны модель с легендой, нижняя строка с температурой под курсором и кнопка
«Открыть полностью» - она открывает тот же расчет целиком (разрезы, изотермы, потоки, модель текстом).
Что еще показывать, вы задаете параметром ui.
Готовый код
Код - обычный iframe: адрес расчета по ссылке, embed=1 и ui= с нужными токенами.
Режим показа включается и сам, когда окно открыто внутри iframe; embed=1 делает это явным.
<iframe
src="https://temper3d.ru/r/КЛЮЧ?embed=1&ui=status,open,legend"
width="100%" height="480" style="border:0"
loading="lazy" allowfullscreen
title="Расчет Temper-3D"></iframe> Не нужно собирать адрес вручную: в Temper Cloud откройте расчет, на вкладке «Расчет» нажмите «Код для сайта», отметьте, что показывать, и нажмите «Скопировать».
Что показывать: параметр ui
В ui перечислены только те части окна, которые нужно показать, через запятую. Неизвестные
токены игнорируются. Без параметра работает набор status,open,legend (легенда - картинка). Если включаете вкладки и панели, дайте окну побольше места по высоте.
| Токен | Что показывает |
|---|---|
| header | Шапка окна. |
| tabs | Полоса вкладок: Расчет, Вид, Разрезы, Текст и другие. |
| panels | Панель выбранной вкладки с настройками и данными расчета. |
| legend | Легенда температур. Без этого токена остается только картинка-шкала. |
| status | Нижняя строка: температура под курсором. |
| tools | Кнопки поверх модели. |
| help | Справка и подсказки. |
| open | Кнопка «Открыть полностью»: тот же расчет в полном окне, в новой вкладке. |
| send | Кнопки «Отправить на расчет». |
| edit | Правка текста модели. Без этого токена текст на вкладке «Текст» только для чтения (кнопка отправки на расчет скрыта), текст от вашей страницы окно принимает и так. «Открыть полностью» открывает полное окно, где править можно. |
| keys | Горячие клавиши. Без этого токена окно клавиш не принимает, чтобы не перехватывать клавиатуру вашей страницы. |
Живой пример
Тест 3 стандарта EN ISO 10211. Окно ниже встроено кодом выше, с токенами tabs,panels,status,open,legend.
Окно загружается.
Управление со страницы
Страница-хозяин может управлять окном сообщениями postMessage: диапазоном заливки, камерой,
набором показываемого. Это то, как работают кнопки под примером и демонстрация на главной.
Ограничение. Окно принимает команды и отвечает только страницам с того же адреса, что и оно
(https://temper3d.ru): сообщения от чужих сайтов оно игнорирует. На чужом сайте окно работает как
показ: набор частей задается параметром ui в адресе, камеру и срезы читатель двигает сам.
Примеры ниже рассчитаны на страницы temper3d.ru.
Команды
Каждая команда - сообщение {type: "temper-view-cmd", cmd: …}; необязательный seq -
ваш номер команды, окно вернет его в ответе.
| cmd | Что делает |
|---|---|
| range {from, to} | Диапазон заливки в °C (to больше from). |
| focus {target} | Камера к точке: room-max и room-min - крайняя температура на поверхностях, обращенных в помещение; hot и cold - по всем поверхностям. |
| overview | Общий вид с вращением. |
| stop | Остановить вращение. |
| view {view} | Весь вид одной строкой: камера, срезы, изотермы, заливка, вкладка. Строка - тот же набор параметров, что в адресе окна после «?». |
| ui {ui} | Что показывать: строка «tabs,panels» или массив токенов. |
const frame = document.querySelector("iframe");
const send = (msg) => frame.contentWindow.postMessage(msg, "https://temper3d.ru");
send({ type: "temper-view-cmd", seq: 1, cmd: "range", from: 0, to: 12 }); // диапазон заливки, °C
send({ type: "temper-view-cmd", cmd: "focus", target: "room-max" }); // камера к самой теплой точке в помещении
send({ type: "temper-view-cmd", cmd: "overview" }); // общий вид с вращением
send({ type: "temper-view-cmd", cmd: "stop" }); // остановить вращение
send({ type: "temper-view-cmd", cmd: "ui", ui: "status,legend" }); // сменить набор показываемого Ответ окна
Окно присылает temper-view-state при готовности и при любом изменении вида.
window.addEventListener("message", (e) => {
if (e.source !== frame.contentWindow || e.data?.type !== "temper-view-state") return;
const { tMin, tMax, fillFrom, fillTo, rotating, seq } = e.data;
// tMin, tMax - границы поля расчета; fillFrom, fillTo - текущий диапазон заливки;
// seq - номер последней примененной команды: по нему видно, что окно команду приняло
}); Как сослаться на расчет в статье
Укажите ссылку на расчет, дату его завершения и версию движка. Дата завершения показана на вкладке «Расчет»
в сведениях («Завершен»). Версию движка сервис отдает по адресу https://api.temper3d.ru/v1/engine
(в MCP - temper_engine): записывайте ее на момент расчета. Пример:
Расчет температурного поля узла: Temper-3D (Temper Cloud), https://temper3d.ru/r/КЛЮЧ,
дата расчета 25.10.2026, движок версии N. Какие расчеты можно встраивать
Окно читает расчет по его ссылке /r/КЛЮЧ, поэтому встроить можно только расчет с открытой ссылкой:
доступ «по ссылке» (unlisted) или «в общем списке» (listed). Закрытый расчет
(private, это значение по умолчанию) читатель без входа в аккаунт не увидит: окно предложит войти.
Доступ меняет только владелец расчета - через API (PATCH /v1/runs/{id}/link
с {"visibility": "unlisted"}) или MCP (temper_link_set_visibility).
Открытая ссылка доступна всем, кто ее знает, поэтому не открывайте расчеты, которые не предназначены для публикации.
Расчет с закрытой ссылкой, как и локальный файл, встроить нельзя: у них нет адреса, который увидит читатель.