- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Динамически меняющиеся выноски
Модератор: специалисты Eplan
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 12 окт 2023, 10:28
- Имя: Петр
Динамически меняющиеся выноски
Здравствуйте, пишу программу для генерации обзора модели (ViewPlacement) с автоматическим отрисовыванием выносок с названиями компонентов. Столкнулся с такой проблемой, сейчас вставляю нужное свойство компонентов на страницу в виде текста, но лучше было бы, чтобы вставлялся не текст, а именно PropertyPlacement, однако создать объекты этого класса не получается, т.к. там в методе Create в качестве переменной требуется SymbolReference, который никак не связан с обзором модели. Может кто-нибудь сможет подсказать какое-нибудь решение?
-
- знаток Eplan
- Сообщения: 58
- Зарегистрирован: 30 окт 2018, 09:17
- Имя: Павел
- Страна: РФ
- город/регион: Москва
- Благодарил (а): 2 раза
- Поблагодарили: 54 раза
Динамически меняющиеся выноски
Да, такая проблема есть, на листах обзора модели нет элементов с привязкой к свойствам с пространства листа.
Я разрабатывал несколько подходов:
1) Для нужных ViewPart генерируется выноска объектом Text с текстом в отдельном слое проекта "выноски". При обновлении или генерации отчёта все объекты слоя сносятся и генерируются заново. Сейчас так и реализовано. Вариация такого подхода - хранить перечень объектов текста, свойств placement3d и объектов viewpart в памяти, например в каком-нибудь свойстве проекта, и при обновлении отчёта обновлять данные связанных об]ектов (viewpart-свойство-text), но реализовано не было, т.к. первый вариант всех устроил.
2) Выносить на обзоре модели не text, а свойство из "порядка свойств" в опциях отображения вида изделия (где все показывают ОУ, а показывать например свойство блока), тогда записывать данные выноски в какое-нибудь свойство блока формат placement3d - тогда Eplan сам будут обновлять данные (т.к. в "свойстве блока формат" можно самому собрать любую конструкцию свойств). Реализовано не было, т.к. требует не простого решения с координатами относительно размера viewpart.
3) создавать отчёт для каждого элемента или группы элементов viewpart/placement3d. Отчёт нужен не шаблонный, а отчёт страничный с опцией "размещается в ручную", тогда по данным элемента можно вывести в текст отчёта любые данные, которые так же будут обновляться в составе обычного обновления. Т.к. в таком виде текст представлять не просто объект Text, а привязанный к отчёту PlaceHolderText. Реализовано не было, т.к. работает способ №1.
Я разрабатывал несколько подходов:
1) Для нужных ViewPart генерируется выноска объектом Text с текстом в отдельном слое проекта "выноски". При обновлении или генерации отчёта все объекты слоя сносятся и генерируются заново. Сейчас так и реализовано. Вариация такого подхода - хранить перечень объектов текста, свойств placement3d и объектов viewpart в памяти, например в каком-нибудь свойстве проекта, и при обновлении отчёта обновлять данные связанных об]ектов (viewpart-свойство-text), но реализовано не было, т.к. первый вариант всех устроил.
2) Выносить на обзоре модели не text, а свойство из "порядка свойств" в опциях отображения вида изделия (где все показывают ОУ, а показывать например свойство блока), тогда записывать данные выноски в какое-нибудь свойство блока формат placement3d - тогда Eplan сам будут обновлять данные (т.к. в "свойстве блока формат" можно самому собрать любую конструкцию свойств). Реализовано не было, т.к. требует не простого решения с координатами относительно размера viewpart.
3) создавать отчёт для каждого элемента или группы элементов viewpart/placement3d. Отчёт нужен не шаблонный, а отчёт страничный с опцией "размещается в ручную", тогда по данным элемента можно вывести в текст отчёта любые данные, которые так же будут обновляться в составе обычного обновления. Т.к. в таком виде текст представлять не просто объект Text, а привязанный к отчёту PlaceHolderText. Реализовано не было, т.к. работает способ №1.