Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Глобальные переменные, Недоработка в организации глобальных переменных
 
С переходом на 17 версию внимание разработчиков в этой области не уделялось.
Глобальные переменные связанны с реестром, по всей видимости подразумевалось их считывание из других проектов. Такой вариант можно принять как специфический метод и на этом вся идея с глобальными переменными закончилась.
С командами setg, getg всё вроде в порядке, они по праву входят в логическую составляющую.
Хотелось бы мне добавить более организованную систему работы с гл.переменными. Увязать их с проектной частью в меню при создании проекта. Таким образом они будут входить в родительский объект. Вот здесь показано меню создание проекта в котором можно разместить редактор глобальных переменных.
Screenshot_216.png (19.76 КБ)
 
Alex Ko,
Вы предлагаете какой то новый механизм включения глобальных переменных?
T-FLEX CAD 17.1.21.0
 
За годы практики в работе T-flex дабы не сталкиваться с рекурсиями мне не раз приходилось создавать подобие глобальных переменных. Доходило до того что приходилось вставлять увесистые модели в скрытой форме в очередной фрагмент чтобы снять с них пару замеров для требуемой адаптации текущего форагмента. Как вы понимаете в плане перерасчётов это не оптимальный вариант. Поэтому глобально мне пришлось изменить подход и создать некий костыль к глобальным переменным. Как я это сделал.
Создал пустой фрагмент со списками переменных в котором красиво по разделам всё организовал и далее такой фрагмент вставляется в каждый очередной новосозданный фрагмент способный производить считывание всего массива переменных. Так выборочно получаю необходимую мне переменную из рядя глобальных переменных.

Такой-же точно вариант можно осуществить если список переменных можно создать не в режиме встраивомого фрагмента а добавить её в проектную часть, без применение буферной зоны - реестра windows.

Если кого-то беспокоит значения по умолчанию, например пользователь не имея наличие проектной части (с глобальными переменными) открыв фрагмент получит последние записанные значения хранящиеся в самом фрагменте. Либо системой будет создана виртуальнвя часть глобальных переменных, которую также можно перезаписывать.
 
Alex Ko,

1. Зачем нужна интеграция окна "Глобальные переменные" в окно "Меню документов"?
2. Какое должно быть отношение глобальных переменных к "проектной части" (библиотеки)?
3. Что принципиально должно измениться?
T-FLEX CAD 17.1.21.0
 
Я не дизайнер в интерфейсах, но это та точка опоры от чего всё идёт - интуитивно. Можно доработать окно глобальные переменные которые находятся во вкладке Параметры->Глобальные переменные. Слишком скромно выглядит, сделать-бы подобие окна как с переменными и чтобы можно было эти переменные привязывать к базам данных ну всё как в простых переменных.
И ещё очень помогает группировка. Как я уже высказал - всё очень скромно. ОГРАНИЧЕННО.
Изменено: Alex Ko - 23.09.2022 17:31:16
 
Alex Ko, если честно, мне вообще не понятно зачем нужны глобальные переменные. Где это может быть полезно? Тут как бы с локальными переменными не все бывает просто. Иногда смотришь модель и не можешь сразу вникнуть где какие зависимости. Вот только дополнительных сложностей с глобальными переменными не хватало... :-)

Как я понимаю, глобальные переменные используются в качестве конфигурации изделия. Когда несколько деталей имеют общие параметры. По аналогии с внешней базой данных. Разница лишь в том, что база данных доступна только для чтения, в отличии от глобальных переменных. Вы можете предоставить реальный пример, где без использования глобальных переменных невозможно обойтись?
T-FLEX CAD 17.1.21.0
 
Вот пример. Есть проект состоящий их общих взаимодействий обычно это касается радиальных структур типа двигателей и его окружения (ротор-статор). Чтобы не создавать одну общую сборку из множества взаимозависимостей проект делится на отдельные модули такие мини сборки довольно локаничны и понятны и главное стабильны в расчётах. Так вот чтобы не создавать в этих модулях массу внешних переменных, а ограничится самым необходимым, можно воспользоваться глобальными переменными. Где задан например общих радиус, толщина материалов, прослоек, зазоры, локальные вычисления тоже помогают из числа глобальных переменных. Таким образом стандартизируются материалы под сам проект. Такой подход не заставляет разработчика контролировать каждое изделие на наличие правильности ввода во внешних переменных что снижает количество ошибок и делает конструкцию более гибкой если возникнет необходимость менять глобальные параметры
 
Иными словами. Каждый отдельный модуль является единым целим общего проекта. Минус такой разработки в том что модуль не универсальный, не является конструктором под любые стандарты но зато адаптирован под текущий проект. Хотя любые из его переменных можно сделать внешними если разорвать связь с глобальными переменными, получиться тот-же конструктор. Однако в данном случае каждый из модулей, или даже деталей по большей части параметров ориентированны на своего источника, что сильно упрощает поиск связей и исправление ошибок.
 
Alex Ko,

1. Ваш пример предполагает использование функции setg в качестве управляющего параметра?
2. Возможно полностью исключить использование функции setg в проекте (например, заменить на getg)?
T-FLEX CAD 17.1.21.0
 
В широком применении от этих функций пришлось отказаться, хотя они бывают полезны когда приходится обходить рекурсию.

Их интерфейсная часть в окне [глобальные переменные] черезвычайна ограниченна, а хотель-бы подобия работы как у простых переменных с их возможностями по типу данных, плохо ещё то что setg заранее предопределена, без связи с базой данны Excel и выбору из списка значений.
Вообщем. Сделать-бы тот-же интерфейс только с глобальными переменными и всё.

И как я уже высказывал ранее глобальные переменные видоизменили себя в обход ограничений через прияный и убодный вариант работы в режиме простых переменных, они прописаны в отдельном фрагменте (пустом), как обычный массив данных который наследует себя почти в каждой детали проекта, и каждая деталь может получить любые данные из этого массива командой get
 
Alex Ko, как я понимаю, если нет необходимости в использовании функции setg, то можно заменить глобальные переменные на базу данных. Хотя, в принципе, ничего не мешает адаптировать проект на базе глобальных переменных, я думаю, все же, этот интерфейс предназначен для решения довольно специфических задач. Где без использования функции setg не обойтись. Например, когда передаваемое функцией setg число получено динамически на уровне модели.
T-FLEX CAD 17.1.21.0
Страницы: 1