Показаны сообщения с ярлыком BUGS. Показать все сообщения
Показаны сообщения с ярлыком BUGS. Показать все сообщения

пятница, 27 сентября 2013 г.

Autocad P&ID: переход с версии 2013 на 2014

Наконец-то по подписке получили версию 2014en. Не зря же за неё платили - надо переходить на новую версию.

Что сразу бросается в глаза:
  1. Autocad Plant 3d 2014 появился еще в мае, но:
    • Plant Design Suite 2014 появился только в августе
    • Русификации Autocad Plant 3d 2014 ещё нет
    • Наверное русификация появится уже после окончания подписки
  2. Программа на некоторых машинах стала значительно тормозить.
  3. Практически сразу появились расширения. Неужели их нельзя было воткнуть в релиз?

Теперь о том, что в глаза бросилось не сразу:
В версии 2013(ru) меня удивляло, что блоки условных обозначений в P&ID названы по русски. Вот при переходе нам это и аукнулось. При попытке выбрать на схеме проекта, созданного в версии 2013ru, для клапана фланцевое соединение в версии 2014en ничего не происходило. Оказалось, проблема в том, что о русификации блоков (я уверен, что и с другими элементами интерфейса та же беда) знает некая часть программы (пока её не нашёл), а не база проекта.

Постараюсь описать, как я это вижу
Версия 2013ru, проект 2013ru:
  • Вставляем задвижку. Нажимаем кнопку, указываем место.
  • Программа лезет в базу данных проекта, находит там запись об условном обозначении "VALVE PIP"
  • Программа сравнивает, какое значение должно быть для текущей языковой версии. Эта информация наверняка есть в каком-то файле, но возможно, зашифрована, и я её ещё не нашёл. Программа получает значение для русской версии "ЗАДВИЖКА PIP". Прошу заметить, эта информация взята не из базы данных проекта, а зависит от версии программы.
  • Программа пытается найти этот блок в файле projSymbolStyle.dwg...... и находит.
  • Далее блок отрисовывается.

Версия 2014en, проект 2013ru:
  • Вставляем задвижку. Нажимаем кнопку, указываем место.
  • Программа лезет в базу данных проекта, находит там запись об условном обозначении "VALVE PIP"
  • Программа сравнивает, какое значение должно быть для текущей языковой версии. Программа получает значение для английской версии "VALVE PIP".
  • Программа пытается найти этот блок в файле projSymbolStyle.dwg...... и не находит.
  • Далее блок не отрисовывается.

Выход из положения
Из этой ситуации я вижу только один выход. Тщательно дорабатывать напильником шаблон проекта и текущие проекты. Нам повезло - у нас только один рабочий проект, который потом станет шаблонным.
Итак, меняем в базе данных значение на требуемое нам, или переименовываем блок в файле projSymbolStyle.dwg. В первом случае, рекомендую использовать аббревиатуру предприятия в начале названия блоков. В этом случае даже при смене версий проблем быть не должно. Во втором варианте, будьте готовы к тому, что при установке русификации вам придется проделывать работу по переименовыванию блоков заново.


среда, 28 августа 2013 г.

Autocad P&ID: Баг HasFlowDirection

Первый баг в программе, который я решил серьёзно описать.

Описание проблемы

Программа позволяет серьёзно изменить начальные установки, в частности, добавлять новые элементы. Для себя мы приняли систему именования, чтобы выделить элементы из общего списка и применяем префикс ВНП. Но речь не об этом.
Создавая элемент, мы можем в один класс занести несколько различных обозначений, в зависимости от функционала, или от других признаков... В текущей задаче мне потребовалось создать дисковый затвор, причем отображаться он может как с лева на право, так и на оборот. Для этого можно применить свойство HasFlowDirection. Как написано в инструкции, достаточно лишь изменить значение логического типа с Ложь на Истина, и все будет в порядке: на блоке в чертеже будет появляться стрелка при нажатии на которую блок будет менять направление.

Пробуем. 
Изменяем свойство на Истина, нажимаем ОК.
Нет, не появилась. Снова открываем настройки. Свойство HasFlowDirection имеет значение ЛОЖЬ. Где-то что-то не так.... Нет, наверное, мы забыли изменить его. Или может нужно просто перейти на другое поле, тогда сработает.
Пробуем. На этот раз, нажимаем Применить. .......окно обновляется и мы видим..... ЛОЖЬ.
Получается, изменить это свойство не возможно???

Ищем решение

После тщетных попыток найти информацию по этой проблеме в интернете и на форумах автодеска, стал копать сам. 
Лезем в базу. Каждому классу в окне свойств соответствует запись в таблице PnPTables.
Чтобы проще было найти свой класс, отфильтровал записи по базовому классу.
Так, уже не плохо, но это только таблицы. 
Свойства хранятся в таблице PnPTableAttributes. Фильтруем по имени таблицы. Заодно проверим свойства в работающем обратном клапане.
 Всё сразу становится на свои места. Программисты, разрабатывая модель локализации, не учли, что в базу попадает не значение True/False, а его локализованный эквивалент. Т.е. с переводом элементов раскрывающегося списка мы лишились части функций программы. 

Итог

Выполнить эту настройку через интерфейс программы НЕВОЗМОЖНО. Чтобы добиться требуемого результата, мне пришлось вносить изменение напрямую в базу данных.

PS

На сайте Autodesk позже нашел вопрос без ответа, оставленный в начале августа 2013. Вопрос просто остался без внимания. На мой взгляд, это просто не достойно продукта, стоимостью 6 килоевро за лицензию. Задуман продукт хороший, но реализация и поддержка ужасны.