Стартовая страница › Форумы › Понять, как работает ПО › Мнемосхемы › Mimic — Фейсплейт в фейсплейте
- В этой теме 41 ответ, 5 участников, последнее обновление 1 месяц, 2 недели назад сделано
manjey73.
-
АвторСообщения
-
15.04.2026 в 10:58 #42804
Imya
УчастникДень добрый!
Основной вопрос — фейсплейты в фейсплейтах.
Не работают независимо от того задаю я параметр вручную в разделе «разное» или через скрипты. Единственный выход я нашел черезconst testFaceplate = args.component.children.find(c => c.name == «testFaceplate»);
const faceplateText = testFaceplate.children.find(c => c.name == «testText»);
faceplateText.properties.text = «test»;Грубо говоря тупо перебираю весь фейсплейт по компонентам и извне ими оперирую — будто бы звучит странно и должно быть по другому.
Собственно сам вопрос: как сделать чтобы я передавал в фейсплейт параметр и внутри самого фейсплейта выполнялась логика.
Второй вопрос — привязка свойств по тегу + номеру канала.
Реальный пример:
На мнемосхеме 20 одинаковых фейсплейтов, в каждом фейсплейте 20 привязываемых параметров. Нужно добавить объект — копирую фейсплейт, вставляю, меняю номер устройства.
Появилась потребность добавить 21 параметр который был бы один для всех фейсплейтов, хочется просто написать номер канала и везде ссылаться на него — но не работает.
Как выход в каждом устройстве добавлять канал который ссылался бы на другой и дать ему тег, но это не так удобно, хочется узнать возможно ли просто ссылаться на оригинальный канал не ломая логики привязки (чтобы все остальные тоже привязывались по номеру канала).-
Тема изменена 1 месяц, 2 недели назад пользователем
Mikhail.
15.04.2026 в 14:53 #42807
MikhailМодераторДобрый день!
1. Попробуйте в фейсплейте в экспортируемом свойстве указать путь к экспортируемому свойству дочернего фейсплейта. Если не получится, присылайте скрипншоты.
2. Привязка компонента работает либо по явным номерам каналов, либо по номеру объекта (устройства) и коду. Совместить не получится. На мой взгляд, самый правильный вариант в этом случае — создать дублирующие каналы.
15.04.2026 в 16:36 #42809Imya
УчастникЯ допускаю что указать путь к конкретному свойству может заработать, но это получится не совсем то что мне нужно. Пример с текстом я описал исключительно для наглядности, мне нужно чтобы работал именно скрипт фейсплейта.
Реальный пример:
1. Фейсплейт со статусом:
передаю в фейсплейт *название состояния* — фейсплейт становится красным, определенного размера, с определенной иконкой, определенной надписью;
передаю *другое из возможных состояний* — статус по той же логике меняется в соответствии с другим состоянием, ну и т.д.
2. Помещаю этот «первый» фейсплейт в другой фейсплейт и хочу просто туда передать нужное мне состояние без необходимости как-либо контактировать с тем что происходит внутри фейсплейта.
3. Помещаю эту строку с состояниями в третий фейсплейт: на этом этапе мне в принципе хватит просто через привязки свойств перенаправить данные с канала ко второму фейсплейту.Разновидностей «третьего» фейсплейта десять и не хочется чтобы когда мне надоест иконка, или вдруг захочу поменять логику, мне пришлось редактировать каждый экземпляр.
Если отойти от примера хочется некую матрешку-конструктор: возможность создавать базовые фейсплейты которые будут использоваться во многих других фейсплейтах и при необходимости редактирования повлияют на всю цепочку15.04.2026 в 23:38 #42810
manjey73УчастникВот, тоже думаю над этим же, чтобы потом не копировать и не перелопачивать все и вся…
Видать не судьба 🙁16.04.2026 в 07:53 #42811Imya
УчастникСейчас вспомнил что с самого начала не работали скрипты у компонентов фейсплейта, т.е. я могу из главного окна найти дочерний компонент и его отредактировать, но не могу через скрипт этого компонента отредактировать его-же самого. Вероятно по этой причине и не работают фейсплейты в фейсплейтах.
К примеру на обычной мнемосхеме я могу хоть с одного компонента редактировать другой: найти родителя, потом найти дочерний компонент.16.04.2026 в 12:02 #42812
JurasskParkУчастникЯ знаю, что вам нужно.
Вам нужно писать ФейсплейтИмяПлюс. )16.04.2026 в 15:28 #42814
MikhailМодераторНужно разбирать на конкретном примере со скриншотами и скриптами.
16.04.2026 в 16:17 #42816Imya
Участник16.04.2026 в 20:13 #42817
manjey73УчастникЯ ещё добавлю немного наглости 🙂
Мало того, что скрипт в компоненте должен работать, ещё хотелось этот компонент, со всеми скриптами и настройками, которые он содержит, можно было сохранять как отдельный файлик и загружать. (Экспорт, импорт)
На диск и обратно. Ну скажи с расширением .comp например.Не в проекте, а просто на диск в папочку. 🙂
17.04.2026 в 13:10 #42834
MikhailМодераторСделайте, пожалуйста, графический эскиз, чтобы было понятно, что в итоге должно получиться, как компонент видит конечный пользователь и разработчик. Непонятно, какая задача стоит.
По поводу сохранения компонента. В редакторе нажмите кнопку Копировать. Затем вставьте содержимое буфера в текстовый файл. Можно внести изменения, скопировать в буфер и вставить на схему. Используйте сервисы для форматирования JSON.
17.04.2026 в 13:45 #42837Imya
УчастникЕсли честно, мне трудно в более упрощенной форме донести, в чем именно проблема. На скриншоте — то, что видит конечный пользователь. Грубо говоря, слева и справа должны быть одинаковые надписи, но из-за того, что слева компонент помещен в фейсплейт, скрипт компонента не работает.
Возможно, это только то, как мне видится работа фейсплейтов, и то, что мы обсуждаем, изначально не должно работать. Не знаю.Давайте попробуем по порядку:
Фейсплейт
Компонент внутри фейсплейта — текст
Скрипт компонента
Мнемосхема на которой расположен фейсплейт
Та-же мнемосхема, компонент — текст
Скрипт компонента
Всё это то, как выглядит в редакторе. По логике, у пользователя должно быть два квадрата с надписями «Пример 1», «Пример 2».
Как выглядит в итоге17.04.2026 в 15:02 #42841
manjey73УчастникПо поводу сохранения компонента. В редакторе нажмите кнопку Копировать. Затем вставьте содержимое буфера в текстовый файл. Можно внести изменения, скопировать в буфер и вставить на схему. Используйте сервисы для форматирования JSON.Это слишком примитивно 🙂
речь если можно так сказать о библиотеке компонентов, которые будет видеть Редактор и которые можно будет импортировать непосредственно в проект.
Соответственно Редактор должен с ними работать так же, если бы они лежали в проекте.ладно, это хотелки, тут бы вылечили то, что не работает.
Я в прошлой теме писал, что даже args.component.id в консоль не отрабатывает, более в скрипте ничего и не было.17.04.2026 в 16:30 #42844Imya
УчастникОбнаружил что уже пару дней как есть новое обновление 🙂
Всё о чем я писал тестировалось на 6.4.5, нашел список изменений, по идее в новой версии должно работать. Буду пробовать17.04.2026 в 16:32 #42846
manjey73УчастникОй ли, тоже надо обновиться, а то только скачать и успел.
19.04.2026 в 16:18 #42861
MikhailМодераторВсё о чем я писал тестировалось на 6.4.5, нашел список изменений, по идее в новой версии должно работать. Буду пробовать
Пишите, что получится, что нет.
Используйте готовые примеры отсюда.
Примеры на GitHub будут постепенно дополняться, чтобы опробовать разные аспекты работы со схемами. -
Тема изменена 1 месяц, 2 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.