Python в TechEditor: Гайд з інтеграції та автоматизації

Python в TechEditor: Інтеграція коду та автоматизація інженерних звітів

Сучасний інженерний світ вимагає гнучкості. Стандартних програмних функцій для реалізації складних алгоритмів або специфічної обробки даних часто недостатньо. Саме тут на сцену виходить Python — мова програмування, що стала стандартом в аналізі даних та інженерії.

У цій статті ми розглянемо, як поєднати потужність бібліотек Python зі зручністю документування в TechEditor. Ви дізнаєтесь, як перетворити TechEditor на середовище виконання скриптів, як налаштувати обмін даними між програмою та кодом, і чому це відкриває широкі можливості для автоматизації ваших звітів. Вам не потрібно бути професійним програмістом — достатньо зрозуміти базові принципи, якими ми поділимося нижче.

Загальна концепція: як TechEditor працює з Python

Загалом, середовище TechEditor дозволяє:

  • виконувати Python-код безпосередньо в проєкті TechEditor
  • передавати значення змінних з Python до звіту, і навпаки
  • оперувати одиницями вимірювання з урахуванням Python-коду

Ключовий принцип: У зв'язці "TechEditor – Python" саме TechEditor виступає сервером. Він ініціює запит, передає вхідні дані інтерпретатору Python, чекає на виконання коду і забирає результати назад у звіт. Це означає, що ви можете використовувати будь-які бібліотеки (NumPy, SciPy, Pandas), встановлені на вашому комп'ютері.

Примітка. Якщо ви передаєте файл “.tec”, що містить код на мові Python, то цей користувач зможе виконати його тільки за умови, що також має ті ж самі модулі та бібліотеки, що й ви.

Отже, чи потрібно модифікувати код, щоб він запустився в TechEditor? Ні, і це зручно! Якщо ваш код не містить помилок і успішно компілюється в середовищі Python, то він майже гарантовано буде виконаний в TechEditor. Ця стаття покаже, як за допомогою нескладних команд передати дані з вашого коду до основного звіту TechEditor, і навпаки.

Також зауважимо, що запуск Python-коду відкриває вам доступ до роботи з файлами та специфічними модулями, як-от API інших програм. За допомогою цього інструментарію ви можете, наприклад, звернутися до BIM-програми, витягнути з неї потрібні дані і передати їх в TechEditor для розрахунку або звітності.

Налаштування середовища

Як встановити Python

Щоб успішно працювати з мовою Python в TechEditor, перш за все потрібно встановити середовище Python на свій комп’ютер. Це можна зробити

  • через інсталятор TechEditor — по завершенню установки поставте галочку Python і виконайте інструкції на екрані
  • самостійно, з офіційного репозиторія

Зауваження щодо 32-бітної версії Python

Щоб Python-код нормально запускався в TechEditor, потрібна його 32-розрядна версія. Якщо ви вже маєте інстальований Python 64-bit, то Python 32-bit потрібно встановити також (разом вони працюватимуть нормально).

Інтеграція Python-коду з розрахунками в TechEditor

Розглянемо приклад, як виконати елементарний код на Python в програмі TechEditor.

Запустіть ТехЕдітор. Переконайтеся, що він запустився з одним порожнім звітом (якщо ні, додайте звіт вручну).

Додайте до проєкту ресурсний документ Python Script. Ресурс — звичайний текстовий документ, у якому розміщується код. Звіт поки не закривайте, він нам ще знадобиться.

Add Python resource document | TechEditor

В ресурсному документі напишемо просту функцію, яка обчислює подвоєну суму “x+y” на Python:

# Python Script
def func_double_sum(x, y):
    double_sum = 2 * (x + y)
    return double_sum
# finish

Сам по собі ресурсний документ виконати не вдастся — він призначений суто для зберігання вихідного коду. Щоб запустити цей код, потрібно звернутися до нього з основного документу. Тут нам і знадобиться звіт.

Перейдемо до вкладки зі звітом. Додамо до звіту спеціальний об’єкт Script Integration, що розміщений на вкладці Objects > Math / Script Integration.

У випадаючому переліку оберіть щойно створений ресурс Resource1, а в текстовому полі Output script запишіть свою функцію з числовими аргументами:

Script integration object | TechEditor

Натисність OK. Переконайтеся, що функція виконана коректно:

Script integration object | TechEditor

Передача математичних даних зі звіту до Python

Вище ми навели приклад Python-коду, який не залежить від нашого документу. Перепишемо тепер скрипт так, щоб він став допоміжним модулем для основних розрахунків.

Додамо на початок звіту блок вхідних даних. Це можна зробити за допомогою Math Object, Math LaTeX Object або інших об’єктів.

Використаємо Slider. Отже, маємо дві змінні x та y, що керуються повзунками:

Control variables using sliders | TechEditor

Повернемося до ресурсу. Змінимо код на наступний:

# Python Script
import techeditor
def func_double_sum():
    x = techeditor.math_translator_calc( "x" )
    y = techeditor.math_translator_calc( "y" )
    double_sum = 2 * (x + y)
    return double_sum
# finish

Спочатку ми імпортуємо програмний модуль techeditor (про нього поговоримо нижче). З самої функції видаляємо аргументи — вони будуть братися безпосередньо з нашого звіту.

Далі маємо блок змінних x та y. Значення кожної змінної призначається спеціальною функцією math_translator_calc, в яку ми передаємо її назву (змінну, яку ми використали в слайдері).

Повернемося до об’єкту Python, що вже інтегрований в наш звіт. Двічі клацніть його для редагування і скоригуйте функцію відповідно до нового формату:

Insert Python object to the report | TechEditor

Натисніть OK. Переконайтеся, що рухаючи слайдери, ви впливаєте на обчислення у вашому Python-коді:

Python executed in the report | TechEditor

Функції модуля techeditor для Python

В останньому прикладі ми використали модуль techeditor. Він містить спеціальні функції, що дозволяють обмінюватися даними між TechEditor та Python:

  • math_translator_add( cmd ) — додає строку cmd до математичної моделі документу;
  • math_translator_calc( cmd ) — обчислює вираз cmd і вертає дійсне число (float) або строку текста (str);
  • math_translator_clear() — очищає математичну модель документу.

Функція math_translator_add стає у пригоді, якщо треба додати змінну або функцію до звіту через Python. Наступний код додає до звіту змінну “delta=5.5”:

techeditor.math_translator_add( "delta=5.5" )

Функція math_translator_calc обчислює значення аргументу. Її ми вже розглянули вище.

Функція math_translator_clear видаляє усі змінні та функції звіту, тому її слід використовувати обережно.

Як працювати з одиницями вимірювання в Python

Мова програмування Python не має стандартних типів даних, які б дозволили інженерам оперувати фізичними величинами з довільними одиницями вимірювання. Проте, це робить TechEditor, отже тепер наша задача — коректно передати ці дані в Python.

Додамо одиниці вимірювання до змінних x та y. Нехай вони матимуть розмірність довжини і вимірюватимуться в міліметрах:

Using units in slider | TechEditor

Якщо зараз подивитися у звіт, отримаємо таку картину:

Python in TechEditor

Python сприйняв наші дані як звичайний текст. Це, по суті, правильно: спочатку він склеїв їх разом як текстові константи, а потім вивів на екран двічі (пам’ятаємо про коефіцієнт 2 у формулі).

Перепишемо код. Оскільки Python “не знає” про фізичні величини — нехай усі операції з ними виконує сам TechEditor, за допомогою функції math_translator_calc:

# Python Script
import techeditor
def func_double_sum():
    double_sum = techeditor.math_translator_calc( "2*(x+y)" )
    return double_sum
# finish

Тепер маємо правильний результат:

Python in TechEditor

Але лишається питання: чи можна працювати зі змінними TechEditor всередині Python, щоб мати можливість обробляти фізичні величини як звичайні float-числа?

Це можливо, якщо “прибрати” одиниці вимірювання:

# Python Script
import techeditor
def func_double_sum():
    x = techeditor.math_translator_calc( "empiric(x•{mm})" )
    y = techeditor.math_translator_calc( "empiric(y•{mm})" )
    double_sum = 2 * (x + y)
    return double_sum
# finish

Тут ми використовуємо стандартну функцію TechEditor empiric(), яка відсікає одиниці фізичної величини і залишає тільки її числове значення. На виході маємо правильне число типу float (але попередньо приводимо все до міліметрів).

Передача даних з Python до звіту

TechEditor також дозволяє зворотну передачу даних — з Python-коду до звіту. Це може бути корисним, якщо ваш код виконує якісь специфічні обчислення, а до фінального звіту потрібно передати кілька ключових значень.

Наведемо приклад коду на Python, який генерує випадкове число в діапазоні 1..25 і передає його в змінну RANDOM_VALUE. TechEditor має ввести цю змінну в розрахунок і показати її дійсне та подвоєне значення в звіті.

Код в ресурсному документі:

# Python Script
import random
r = random.randint(1, 25)
# finish

Діємо через об’єкт Script integration, як і раніше. Обираємо Python-ресурс, а в полі Output script записуємо ім’я змінної з Python “r”.

Нижче, в полі Integrate with mathematical model, вказуємо ім’я цільової змінної — RANDOM_VALUE (це вже для TechEditor), а навпроти неї — базову змінну “r”. Натискаємо OK.

Подвоєне значення RANDOM_VALUE виводимо в звіті нижче, через об’єкт Math Object. Відтепер це повноцінна змінна і з нею можна працювати у звіті за звичайними правилами TechEditor (в тому числі, додати одиниці вимірювання і перетворити на фізичну величину):

Python in TechEditor

Оновити випадкове значення тепер можна, натискаючи клавішу F5 (ручний перерахунок звіту).


Як бачимо, інтеграція Python перетворює TechEditor з інструменту для оформлення звітів на потужну обчислювальну платформу. Використовуючи об'єкт Script integration, ви можете:

  • Виконати складні математичні операції, недоступні у стандартному редакторі.
  • Автоматизувати рутинні процеси генерації даних.
  • Працювати з зовнішніми API та файловими системами безпосередньо зі звіту.

Що далі? Спробуйте відтворити приклад з цієї статті у своєму проєкті. Якщо у вас виникнуть питання або ідеї щодо складніших сценаріїв — запрошуємо до обговорення в нашій спільноті в Discord. Також не забудьте переглянути готові рішення в Dystlab Store, які можуть значно прискорити вашу роботу.

Часті питання (FAQ)

Q: Чи можу я виконувати розрахунки на Python, а результати автоматично оформлювати в TechEditor?

A: Так. Для цього використовується об’єкт Script integration. Він дозволяє передавати змінні з Python у середовище TechEditor, де вони стають доступними для використання у формулах та тексті звіту.

Q: Чи можливо запустити генерацію звіту TechEditor автоматично через скрипт Python (зовні)?

A: Ні. Архітектура TechEditor передбачає, що програма працює як сервер (хост). Тобто TechEditor запускає Python-код всередині себе, а не навпаки.

Q: Чи підтримує Python в TechEditor роботу з фізичними величинами (одиницями вимірювання)?

A: Так, і це одна з ключових переваг. Використовуючи спеціалізований модуль techeditor, ви можете оперувати фізичними величинами, і програма коректно розпізнає розмірності при поверненні даних у звіт.

Q: Чи можна звернутися з Python до іншої програми?

A: Так, якщо ця програма має відповідний API.

Q: Я вже маю інстальований Python, але мій код не запускається в TechEditor. В чому проблема?

A: Ймовірно, на вашому комп’ютері відсутня 32-бітна версія Python (вона може бути інстальована паралельно з 64-бітною).

Image

Віталій Артьомов

"Працюю, щоб зробити «Made in Ukraine» світовим знаком якості та стилю"

Керівник, співзасновник Dystlab, розробник TechEditor. Інженер, науковець, к.т.н. з понад 20-річним досвідом в аналізі конструкцій та автоматизації інженерних розрахунків. Консультую проєктні компанії в Україні, Європі, Канаді, США.

Обговорити рішення для бізнесу: Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. | +380504576819 (WhatsApp)

dystlab-logo4-bg-white1920.png
dystlab-logo4-bg-white1920.png

Технологічний центр Dystlab

Розробляємо цифрові рішення для інженерних компаній та проєктних бізнесів. Консультуємо, досліджуємо, допомагаємо з автоматизацією розрахунків, оформленням та систематизацією технічної документації.

innot needed textfoanother not needed text@dystlabdummy text.com

Visa MasterCard | DS.Store

© Copyright 2019-2026 Dystlab™, Ukraine. All rights reserved.
Ми використовуємо cookies

Сайт Dystlab Store використовує файли cookie. Деякі з них необхідні для роботи сайту, інші ж допомагають нам покращити ресурс і взаємодію з користувачами (tracking cookie). Ви можете дозволити чи заборонити ці файли на своєму пристрої. Але щоб користуватися усіма функціями сайту в повному обсязі, рекомендуємо дозволити файли cookie (кнопка OK).