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

пятница, 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 килоевро за лицензию. Задуман продукт хороший, но реализация и поддержка ужасны.


четверг, 22 августа 2013 г.

Autocad P&ID: трюки при создании нестандартных условных обозначений

Иерархия условных обозначений

Прежде чем создавать новое условное обозначение клапана, необходимо понять, что P&ID - это довольно серьёзная платформа, в которой используется иерархическая система классов элементов с реализованным наследованием свойств. Например, свойство, добавленное в классе "Клапаны с ручным приводом", также появится у всех клапанов, "наследуемых" от этого класса. Таким образом, общие для всех клапанов свойства нет смысла дублировать для каждого клапана отдельно.
Иерархию можно усложнять. Например, создать в классе "Клапаны с ручным приводом" класс "Задвижки", внутри которого создать все требуемые классы задвижек, например:
- задвижка без привода
- задвижка с ручным приводом
- задвижка фланцевая
- задвижка закрытая.
Не спешите так и делать - это только пример. Есть способ использовать фланцевые и нормально закрытые задвижки намного проще. Об этом позже. Главное в этом примере, что для каждого обобщенного класса (здесь, "Задвижки") можно задать общие для членов этого класса свойства, что является очень удобным способом организации условных обозначений.

Создание нестандартных условных обозначений

При создании нестандартных условных обозначений, придерживайтесь следующих правил:
  1. Однажды применив условное обозначение - создайте блок.
  2. В блоке примитивы должны быть на слое "0" с цветом "По слою"
  3. Выработайте систему наименования блоков. При большом количестве блоков, возможно имеет смысл создать таблицу соответствия наименования блока и наименования символа. В этом случае, даже если блок называется "FDIP_100", вы не запутаетесь.
  4. Используйте привязки и шаг сетки при создании блоков.
  5. Количество свойств, хранимых классом не ограничено, но для упрощения обслуживания системы, следует выработать правильную организацию классов.

Создание свойств классов

 В качестве значений свойств могут выступать следующие типы данных:
  1. Строка - принимает строковое значение. Значение может отсутствовать.
  2. Число - принимает целое или натуральное число.
  3. Логический - значения Истина или Ложь.
  4. Список выбора - при выборе этого свойства в таблице свойств класса и нажатии кнопки Изменить, выводится список выбора, который можно изменять. Вы можете создавать новые списки выбора и изменять существующие.
  5. Копирование свойств - позволяет хранить в классе свойства, относящиеся к другому классу. Например, вы можете скопировать в клапан свойство, относящееся к чертежу, на котором она расположена.
Есть еще один тип данных - "Список символов". Это список условных обозначений. Оно недоступно для выбора, но используется в некоторых свойствах. О нём я расскажу далее.

Трюки при создании условных обозначений

Клапан может изображаться на техсхеме открытым или закрытым. Можно выполнить для их изображения два различных условных обозначения, а можно создать одно, и использовать возможности P&ID, предоставив выбор пользователю. Таким образом, количество классов и кнопок на панели инструментов можно сократить.
В классе "Клапаны с ручным приводом" определено свойство Normally (Норма). Это свойство имеет тип Список символов. Свойство наследуется на все клапаны класса Клапаны с ручным приводом. Но значения для каждого клапана можно переопределить. Список, сформированный для этого свойства отображается в контекстном меню на чертеже. Таким образом, один класс может иметь несколько представлений, выбор между которыми осуществляет пользователь.

Использование динамических блоков

Хорошая новость: P&ID использует динамические блоки. Плохая - использование динамических блоков ограничено. В блоках условных обозначений по-умолчанию используется некоторые динамические элементы, но при вставке блока в чертеж, P&ID конвертирует их таким образом, что большая часть динамических свойств теряется.
Для примера, откроем файл projSymbolStyle.dwg в папке проекта. Этот файл содержит все блоки условных обозначений проекта.

Открыв в редакторе блоков блок ЗАДВИЖКА PIP можно увидеть два объекта Point Parameter. Это указатели точек присоединения линии к элементу. На встраиваемых элементов наличие точек подключения обязательно, на оборудовании, например, емкостях или резервуарах, их можно не устанавливать. Но следует иметь в виду, что есть оборудование, например насосы или теплообменники, где место подключения строго определено.
Имена параметров, в данном примере, состоят из двух частей, разделенных двоеточием. Первая часть - наименование точки подключения. Номером точки подключения определяется направление потока. В данном случае - от точки 1 к точке 2. Вторая часть отвечает за ориентацию присоединяемого компонента. Системой определено, что EndCode0 находится слева на горизонтали, обход идет против часовой стрелки, так что EndCode270 будет сверху.

среда, 26 декабря 2012 г.

Адаптация Autocad P&ID: идентификаторы (тэги) и аннотация

Итак, настала необходимость настройки системы для её работы в промышленном проектировании. Уже создан шаблонный проект, в котором производятся базовые правки и на основе которого будет создан новый проект.
Приступим.
  Определимся с терминологией
 Чем Тэг, он же Идентификатор, отличается от Аннотации?
 Идентификатор - это элемент данных, тогда как аннотация - не более чем текстовое или графическое отображение каких либо данных.
 Аннотация может содержать в себе идентификатор или любое другое свойство, или даже строку из нескольких свойств. Аннотация является графическим примитивом и используется на чертежах.
 Идентификатор может формироваться из одного или нескольких свойств проекта и должен быть уникальным для проекта. Аннотаций может быть на чертеже неограниченное количество.
 Пробуем создать свой формат идентификатора
 В нашей организации принят обозначать трубопроводные линии на чертеже довольно непростым шифром, который влючает в себя следующие свойства линии:
  1. Условный диаметр, мм
  2. Рабочая среда, обозначеная одним или двумя латинскими символами
  3. Рабочее давление, МПа
  4. Группа материалов, один латинский символ
  5. Допуск на коррозию, мм
  6. Технологический блок, двухзначное число
  7. Номер листа, двухзначное число
  8. Номер линии, двухзначное число
  9. Код изоляции, латинский символ
  10. Тип теплоспутника, латинский символ
  11. Толщина изоляции, мм
Итак, если на основе всех этих свойств создать идентификатор, то он будет уникальным для каждой линии. Только вот незадача - так не получится....
Оказывается, строка формирования идентификатора в этом случае содержит больше 255 символов, что программа не может обработать.
  Оказывается этот вопрос уже задавался на форумах Autodesk. Ответом было обещание перенаправить его разработчикам.
  Ищем выход
 Что делать? Вот тут то на помощь приходят аннотации.
 Для начала, посмотрим, где этот огромный шифр используется.
  1. На чертежах
  2. В диспетчере данных
  3. В отчетах
 Выходит, что нам хватит идентификатора, который будет состоять только из номера линий. Или из номера линий и диаметра. Ведь на чертежах мы можем вставлять аннотации, а в диспетчере данных и отчетах сформировать вычисляемые поля.

Формирование идентификатора
Идентификатор должен быть уникальным для каждого участка трубопровода. В одной линии может быть несколько участков, например, разного диаметра. На каждом из участков может быть различный идентификатор.
 
 Рисунок 1. Вид окна настройки формата идентификатора

На рисунке 1 представлена стандартная форма идентификатора сегмента трубопровода. С помощью этой формы можно указать из каких свойств проекта будет собираться идентификатор. Следует отметить, что про ограничение в 255 символов для строки идентификатора и здесь не указано ни слова. Но если количество свойств больше 8, Вы почти наверняка получите ошибку при нажатии на кнопку OK.
Приводим формат идентификатора к требуемому виду:

Рисунок 2. Требуемая форма формата идентификатора
 
Рисунок 3. Аннотации на чертеже
 Шаблонный проект создается с четырьмя видами аннотаций для сегментов трубопроводов:
    • Метка изоляции
    • Идентификатор в овале
    • Идентификатор трубопровода
    • Идентификатор
Мне требуется создать еще один идентификатор:
    • Идентификатор в овале полный
Название не очень удачное, так как это не идентификатор в овале а строка из свойств, но это мы исправим позже. А сейчас сформируем новый идентификатор.

Создание новой аннотации
Создавая аннотацию, нужно понимать, что это блок, определение которого хранится в папке проекта в файле projSymbolStyle.dwg

Создадим новую аннотацию для сегментов трубопровода. Для этого следует открыть настройки проекта, кликнуть по узлу Настройки DWG P&ID -> Структура объектов P&ID -> Инженерные элементы -> Линии -> Сегменты трубопровода.
 
Рисунок 4. Настройка проекта
 В области Параметры класса. Сегменты трубопровода нажать кнопку Добавить аннотацию...
 
 В окне Параметры обозначение в группе Свойства обозначения указать имя новой аннотации и блок. Блок можно выбрать из файла обозначений проекта projSymbolStyle.dwg или из поставляемых в комплекте с Autocad P&ID файлов dwg, содержащих в названии AnnotationTemplates. После нажатия на ОК имя блока будет автоматически изменено на [Имя обозначения]_block, а блок будет сохранен в файл обозначений проекта projSymbolStyle.dwg. Чтобы изменить блок, следует в области Параметры класса. Сегменты трубопровода нажать кнопку Изменить блок. Он откроется в редакторе блоков Autocad.
 

Редактировать отображаемый текст в блоке можно двумя способами:
    1. С помощью кнопки #(.) в плавающей панели. Но в этом случае не удастся создать аннотацию, описание которой содержит более 255 символов, потому как редактирование атрибута происходит через то же окно, которое используется при редактировании идентификатора. 
    2. Вручную отредактировав свойство Тэг определения атрибута. Названия свойств можно получать с помощью кнопки #(.), и далее их компоновать как строку для получения требуемого результата. Не стоит забывать, что если используется дополнительная графика (например, растягивающийся овал), потребуется внести изменения в свойство Имя расстояния объекта Линейный параметр так, чтобы оно совпадало со свойством Тэг объекта Определение атрибута.
Выводы
Несмотря на некоторую сложность настройки, Autocad P&ID представляет довольно мощный инструментарий для адаптации.