Логика работы корпоративного файла адаптации cuix

Автор Тема: Логика работы корпоративного файла адаптации cuix  (Прочитано 15598 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Перерыл адаптацию и поиск ,пока не нашел ответа.

Есть основной файл адаптации, есть корпоративный.

В 2008 автокаде, когда подгружаем корпоративный файл адаптации к основному, отображаются основной+корпоративный, т.е. общедоступны разделы меню и панели. Пользователь может что-то менять, если нужно.

в 2014 автокаде, когда подгружаю корпоративный, основной перестает отображаться.

Выходов пока 2:
1. Адаптировать копию основного файла адаптации и подгружать как корпоративный. При этом от основного отказаться. У пользователя пропадет возможность использовать свои настройки.
1.1 Адаптированный файл загрузить как основной, тогда пользователи смогут изменять настройки. Хорошо если автокад только что поставлен. А если пользователи настроили под себя, мы "сбрасываем" их настройки и это не очень хорошо.
2. Подгружать как частичный файл адаптации внутрь основного. Тогда возникает вопрос с автоматической подгрузкой, с учетом, что меню будет активно меняться. Скорее всего потребуется menuload внутри автокада, а это плохо.

Вопрос. Так и должно быть в 2014, или есть настройки для совместного отображения 2х файлов адаптации, как в 2008?



Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Такого не ловил, если честно. Пара уточняющих вопросов: пакеты обновлений установлены? acad.exe.config отредактирован? Имена файлов основного и корпоративного меню не совпадают?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
в 2014 автокаде, когда подгружаю корпоративный, основной перестает отображаться.
Не поленись и запиши видео (желательно через https://screencast.autodesk.com/). Или я что-то не понимаю или это баг.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Онлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Такого не ловил, если честно. Пара уточняющих вопросов: пакеты обновлений установлены? acad.exe.config отредактирован? Имена файлов основного и корпоративного меню не совпадают?

2014 SP1, других SP не ставил.
acad.exe.config не редактировал, по умолчанию. А нужно?
Имена не совпадают.

Возможно что-то с рабочими пространствами, и их настройками, но не могу сообразить.
Просто сделал новое EGP.CUIX. Команды, риббон, панели.
Загрузил как основное, создал рабочее пространство EGP, включил в него все, что сделал.
Вернул основное acad.cuix. И корпоративное EGP.CUIX.
При выборе моего рабочего пространства "EGP" отображается только мое. При выборе других рабочих пространств, только автокадовское.
Нужно немного другое для решения задачи. Нужно чтобы во всех пространствах ACAD появились мои вкладки риббона и панелей.
 Дальше наверно мое непонимание адаптации CUIX сказывается.

 попробовал в EGP.CUIX создать пространства с именами из ACAD.CUIX:
Рисование и аннотации
3D-моделирование
Основы 3D
Классический AutoCAD

 При выборе "общих рабочих пространств" акад отображает из EGP.CUIX, но не показывает родное из ACAD.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Уже давно не баловался с корпоративными файлами, но разве там нужны рабочие пространства? Приеду домой, если будет время - попробую смоделировать ситуацию.
P.S. а видео все же запиши.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Загрузил как основное, создал рабочее пространство EGP, включил в него все, что сделал.
Вернул основное acad.cuix. И корпоративное EGP.CUIX.
При выборе моего рабочего пространства "EGP" отображается только мое.
Так рабочее пространство ты же делал в своём файле! Кстати, корпоративный файл находится в состоянии "только для чтения", так что в нём ты уже ничего изменить не можешь. Рабочее пространство нужно создавать в основном файле меню и в него перетаскивать нужные элементы из корпоративного. Частично это можно сделать при помощи файла .mnl (т.е. автоматически загружаемый lisp, который позволит добавить свои пункты меню).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А вообще читаем документацию: http://knowledge.autodesk.com/support/autocad-mechanical/getting-started/caas/CloudHelp/cloudhelp/2016/RUS/AutoCAD-Customization/files/GUID-36B71D99-8AE8-42F2-99C4-3F931820719B-htm.html

Цитировать
Корпоративные файлы CUIx  Вопрос: как отредактировать корпоративный файл адаптации CUIx, если в редакторе НПИ он доступен только для чтения?   Корпоративный файл CUIx можно редактировать, если он загружен в качестве основного файла CUIx или в качестве частичного файла адаптации в основной файл CUIx. Для редактирования рекомендуется загружать этот файл в качестве основного файла CUIx. При создании рабочего пространства, требующего включения элементов интерфейса пользователя из файла CUIx, назначенного основным файлом адаптации, на время загрузите основной файл CUIx как корпоративный для редактирования.
 
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Онлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Уже давно не баловался с корпоративными файлами, но разве там нужны рабочие пространства? Приеду домой, если будет время - попробую смоделировать ситуацию.
P.S. а видео все же запиши.
Ок, попробую дома создать тестовый пример и заодно записать видео.
Рабочие пространства изначально не создавал. Но тогда при загрузке корпоративного меню моя вкладка на ленте не добавлялась.

Опишу подробнее задачу, т.к. возможно есть более хорошие решения.

В 2008 и ранее рабочее пространство не требовалось для отображения.
После этого использовал menuload вручную подгружая в  автокад.
Сейчас возникла необходимость подключить свою вкладку на ленте и панель(для тех, кто использует старый интерфейс) в 2014.

Пользователей 80 и меню точно будет меняться. Вручную его менять не вариант.
Все добро(по задумке) будет синхронизироваться при запуске компьютеров в программ файл.
Другая программа, с правами пользователя, прописывает настройки в реестре во все профиля автокада. И автоматом добавляет корпоративное меню.
В 2008 и ранее это работало хорошо, работало на 400 компах на 2007 автокадах.

Ранее пробовал без корпоративного, через menuload, но при замене файла меню не менялось, приходилось выгружать/подгружать новое. Да и с подгрузкой таких меню были не решенные проблемы. Тогда и стал использовать корпоративное.

Сейчас парк 2008, 2014 в 2008 все ок, в 2014 пока не победил корпоративное меню, даже в ручном режиме подгрузки.

Возможно есть лучшие варианты подгружать и главное обновлять свои меню?

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Есть. Не знаю, насколько лучше, но зато работает.
Выполнять кеширование дополнительного меню на локальный комп и оттуда загружать как частичное. Код длинный, сегодня уже точно не покажу. Но идея именно такая. Естественно, понадобится выполнять проверку необходимости обновления; выгружать частичное меню, снова его загружать...
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Онлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Потратил еще 5 часов на изучение и решил не писать видео.
мой вердикт таков, автодеск в очередной раз подложило грабли, т.к. не продумали и не доработали механизмы создания, использования и подгрузки корпоративного  меню.
если ошибаюсь, поправьте!

до 2009 автокада связка основное+корпоративное меню работало.
Элементы корпоративного меню, такие как вкладки меню, панели добавлялись к основному.
Самое простое, создать корпоративное меню и использовать его для расширения возможностей автокада.
При частом изменении меню не нужно было выгружать/загружать меню, если использовалось корпоративное.
Было доступно автоматическое добавление корпоративного меню, используя системный реестр.
Это было классно, если много компьютеров, в моем случае было около 400.

в настоящий момент с приходом cuix  и ленты это работает не так!
При создании корпоративного меню ничего не будет добавляться кроме панелей! Т.е. меню и вкладки ленты не будут отображаться вовсе.
Причина - привязка к рабочему пространству.

Перечень сокращений:
ОФА - основной файл адаптации
КФА - корпоративный файл адаптации
ЧФА - частичные файлы адаптации
РП - рабочее пространство

Чтобы хоть что-то увидеть, существуют "отличные" варианты:
1.Создайте КФА test.cuix, добавьте команды, панели, ленту, меню, добавьте команды.
Подгрузите test.cuix как КФА, поздравляю ничего не видно.
Переключите РП "Классический AutoCAD" тут вы обнаружите, что можете включать/отключать панели из test.cuix, т.е. панели скорее всего стали общедоступны во всех РП.
Остальные элементы test.cuix не видны.

2. Чтобы стало видно ленту и меню зайдите в адаптацию ОФА
Зайдите в текущее РП и адаптируйте, отметив элементы из КФА. Поздравляю, теперь все видно, но в текущем РП
Чтобы стало видно в других РП нужно их вручную адаптировать! И так на каждой машине
 
3. Понимаем, п.1,2 это неэффективно при большом количестве компов!
Поэтому отключаем КФА. Вместо ОФА подключаем КФА.
Заходим в адаптацию, и добавляем РП(именно для этого и подключали КФА как ОФА).
Например "Наше РП". Адаптируем РП, отмечая наши элементы.
Возвращаем ОФА на место и подключаем КФА.
Теперь мы можем видеть наши элементы отдельно от пользовательских, переключая РП.
Это частичное решение, дающее совместно использовать ОФА и КФА, но переключая РП.
Для кого уже достаточно, выходим из данной темы, не забивая сознание.

4. Как же использовать элементы КФА во всех РП ОФА?
Попытка №1
Подгружаем КФА как ОФА.
Создаем РП с такими же названиями как в ОФА и адаптируем.
Возвращаем на место. Подгружаем КФА и о "чудо" "это гениально"!
РП из КФА полностью подменяют РП из ОФА! "Именно то, что мы хотели!"

Попытка №2
кстати нашел в справке по адаптации.
Подгружаем КФА как ОФА
а ОФА как КФА
Теперь мы видим РП из ОФА.
Перетаскиваем РП из ОФА в КФА. Адаптируем РП, отмечая наши элементы.
Меняем ОФА и КФА как положено. Ура теперь работает как надо!
Как надо? нет, конечно же нет! Задача решена на 90%.
Если пользователь на рабочем месте создал свое РП, например "Маша"
то ему естественно нужно переключать РП, чтоб использовать наш функционал.

Выводы:
1. Автодеск "хорошо постарался"
2. Для большого количества компов и желании менять свой интерфейс по мере доработки автодеск подразумевает следующее:
2.1 При установке автокада сразу заменять ОФА, адаптированным ОФА, но тогда отказаться от изменений, либо САПРовцам, либо юзерам.
2.2 Использовать ОФА и КФА научив пользователей, переключать РП. Для часто используемых операций из КФА мириться с тормозами переключения РП.
2.3 Перетащить все РП из ОФА в КФА и адаптировать. Близко к 2.1 и 2.2 Т.к. юзерам для изменения будет не доступны стандартные РП. Пусть создают свои РП и адаптируют.
2.4 Отказаться от КФА. Использовать ЧФА, с ними все гуд для всех РП! Но при изменении нужно выгрузить/загрузить по новой. Т.е. нужно продумывать "хитрый код", выполняемый при каждом запуске автокада.
2.5 Создавать интерфейс на лету. что-то в сторону того: http://dwg.ru/pub/74
2.6 Вариант для мазохистов. Лезть в CUIX, каждого компьютера, читать как zip и править внутри XML. Реализуемо, но сложно и ненадежно, цена ошибки потеря CUIX. Реестр править гораздо приятнее.

Спасибо всем, кто дожил и дочитал до конца  ;D

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Аббревиатуры хороши, но уже на трети текста я стал терять нить рассуждений.
По выводам:
> Автодеск "хорошо постарался"
Ок, если не нравится - либо делаем "обходной путь", либо пишем в Autodesk с полным и понятным описанием. Без аббревиатур и ненужных сокращений.
> Для большого количества компов и желании менять свой интерфейс по мере доработки автодеск подразумевает следующее:
Не факт. Сильно похоже на необоснованные измышления.
> Отказаться от КФА. Использовать ЧФА, с ними все гуд для всех РП! Но при изменении нужно выгрузить/загрузить по новой. Т.е. нужно продумывать "хитрый код", выполняемый при каждом запуске автокада.
Блин! Я сейчас начну также общаться, с сокращениями как мне захотелось - только потому, что лень лишний раз понаж.на клав.Нить рассужд.потер.на трети текста.
> Вариант для мазохистов.
Вариант для мазохистов - это читать текст на пару экранов, постоянно мотаясь вперед-назад, чтобы не забыть, что есть ОФА, что есть ЧФА, при этом не озвереть и не ответить тремя буквами - БМП.

ХК давно существует и работает. Общий принцип я сказал. У меня около 250 компов с разными версиями - 2009, 2012-2016. На всех этот код работает без вопросов.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Онлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Ок, если не нравится - либо делаем "обходной путь", либо пишем в Autodesk с полным и понятным описанием. Без аббревиатур и ненужных сокращений.
Я сейчас начну также общаться, с сокращениями как мне захотелось - только потому, что лень лишний раз понаж.на клав.Нить рассужд.потер.на трети текста.
Вариант для мазохистов - это читать текст на пару экранов, постоянно мотаясь вперед-назад, чтобы не забыть, что есть ОФА, что есть ЧФА, при этом не озвереть и не ответить тремя буквами - БМП
аббревиатуры нужны были для сокращения данного текста, не более того. Не думаю что текст стал бы более читабельным, при копипасте в каждой строчке "корпоративный файл адаптации".
Когда текст раздулся, тогда и ввел замену, чтоб максимально уменьшить объем.
ввел всего 4 сокращения, из психологии - человек может запомнить примерно 5...9.
Могу отредактировать, если действительно будет лучше читаться без сокращений!

по поводу написать в Автодеск. Каковы перспективы, что "исправят"? Даже я не вижу прямой ошибки, вижу логику, которую разработчики заложили в продукт. Данную логику они не описали в документации по адаптации.

Не факт. Сильно похоже на необоснованные измышления.
Согласен. Эти измышления появились после изучения руководства по адаптации
корпоративный файл адаптации
Файл CUIx, управление которым обычно осуществляет менеджер по САПР. Обычно файл хранится в сетевой папке, и к нему имеют доступ многие пользователи. Пользователи имеют доступ только для чтения для предотвращения изменения данных в файле. Менеджер по САПР создает корпоративный файл CUIx путем изменения основного файла CUIx и его сохранения в папке файлов поддержки, задаваемой на вкладке "Файлы" диалогового окна "Настройки".

...Как подразумевалось совместное использование файлов адаптации и подразумевалось ли вообще я не нашел.

ХК давно существует и работает. Общий принцип я сказал. У меня около 250 компов с разными версиями - 2009, 2012-2016. На всех этот код работает без вопросов.
вот это уже интереснее, не поделитесь?  ;)

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Я бы не хотел показывать код - он достаточно длинный и с наскоку в нем можно легко запутаться. Поэтому (пока) распишу алгоритм:
  • Прежде всего, есть какой-то загрузчик, который все равно надо хотя бы раз загрузить в ACAD
  • В реестре в строго определенной ветке хранится путь к серверному расположению файла дополнительного меню, а также имя (имена) файлов меню и соответствующих групп меню в них. Можно использовать сторонний файл настроек (кстати, я так и делаю)
  • Загрузчик (1) вызывает функцию проверки наличия группы меню
  • Эта функция проверяет наличие группы меню. Если ее нет, то выполняется копирование серверного файла меню в каталог на локальном компьютере. Я для этих целей использую подкаталоги %AppData% (как правило, запись в них все же разрешена)
  • Если группа меню есть, то выполняется проверка дат файлов меню, файлов ресурсных dll (если они используются) и mnl. Можно сверять как реальные даты файлов, так и данные, сохраненные в тот же реестр. Если серверные даты файлов были обновлены, то соответствующее меню выгружается и вызывается принудительная загрузка меню
  • Вызов загрузчика прописывается в mnl, что гарантирует его срабатывание при создании или открытии любого документа
Примерно так.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Олег Боровой

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Алексей, не могли бы поделиться своим кодом?
Раньше тоже решал проблему с загрузкой файла адаптации под разные группы пользователей.
С помощью логон скрипта формировал файлик со списком групп, в которую входит пользователь.
Затем при загрузке acad.lsp этот файл позволял определять какие lsp загружать для пользователя.
Единственная проблема была с обновлением уже загруженных MNU файлов. Хотелось бы посмотреть как у вас это было реализовано.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Я не меняю ни acad.lsp, ни acaddoc.lsp - посчитал это нерентабельным.
Обновление меню выполняется очень просто - если надо, выполняется выгрузка меню (vla-unload), потом обновление меню и снова принудительная загрузка. Из-за некоторых особенностей приходится при загрузке использовать командные методы, как бы я ни пытался от них избавиться.
Код могу написать, конечно, но там тьма данных будет прописана прямо в него. Надо?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!