Статья
Практические советы по работе с Inventor iLogic и общие сведения о программе для достижения успеха

Inventor work

Что такое iLogic?

Как правило, люди, использующие любые настольные приложения, знают, что такое автоматизация. Если вы работали с Microsoft Excel, вы могли слышать о макросах. Это инструменты, которые разрабатываются и создаются в Excel для выполнения определенной задачи. Автоматизация в Inventor работает почти так же. Несмотря на то что она может принимать какие угодно формы, по сути это инструмент или набор инструментов для автоматического выполнения конкретных задач, процессов или функций. iLogic — одна из форм автоматизации в Inventor.

iLogic — это функция Inventor, которая позволяет пользователям и администраторам создавать логические схемы на языке VB.net для выполнения различных задач. Разработка и организация правил осуществляется с помощью фрагментов кода и утверждений, которые запускаются в определенное время для последовательного выполнения действий, необходимых инженерам и проектировщикам.

Можно создать ряд правил iLogic, например, для обновления свойств iProperties на основе различных характеристик модели, замены компонентов в сборке в соответствии с выбранными элементами в форме iLogic или даже обновления текстовых блоков в связанном чертеже. С помощью iLogic можно сделать довольно много. Вопрос только в том, что хотите сделать вы.

Зачем внедрять iLogic?

Выяснив что такое iLogic, давайте рассмотрим, зачем внедрять iLogic в инженерные процессы.

При работе с компаниями разных размеров и из разных уголков планеты, при изготовлении и промышленном производстве различных изделий одна вещь остается неизменной: в любой среде есть шаблонные и повторяющиеся действия. Главное — найти те сценарии, которые можно оптимизировать с помощью iLogic. Эта простая задача требует глубокого понимания всех аспектов использования Inventor в вашем рабочем процессе.

Предположим, вы используете определенный формат определения свойства iProperty для 3D-моделей или других свойств iProperties. Если форматирование закономерно или стандартизировано, для его применения можно использовать iLogic. В этом случае создается логическая схема для сбора информации из модели, преобразования полученных данных и замены свойств iProperties на правильно отформатированные сведения. Схема всегда работает корректно, последовательно и без остановок.

Связанные темы. Taking It to the Next Level: Drawing Automation with Autodesk Inventor, Томас Фицджеральд (Thomas Fitzgerald)

Настройка Inventor для использования iLogic

Что нужно сделать в Inventor для эффективного использования iLogic?

Несмотря на то что iLogic поставляется в составе Inventor и можно сразу приступать к созданию логических схем, полезно знать, какие параметры следует настроить для максимально эффективного использования iLogic. Кнопка «Конфигурация iLogic» позволяет настроить различные параметры для указания того, где программе Inventor искать вспомогательные данные.

Конфигурация

Пользователям и администраторам может потребоваться изменить эти настройки, чтобы указать для Inventor внешние папки правил и приоритизировать их очередность. Кроме того, можно задать расположение каталога, в котором Inventor будет искать файлы DLL (библиотеки динамической компоновки). DLL — это выходные файлы Microsoft Visual Studio для разработки настраиваемых пользовательских интерфейсов с целью запуска правил iLogic и других логических схем.

В диалоговом окне параметров можно указать расширение файла для сохранения внешних правил, а также уровень ведения журнала для записи информации об отладке. Параметры безопасности позволяют защитить компьютер и сетевые системы от выполнения потенциально опасных кодов в среде Inventor. Чуть ниже в этом документе приводится подробная информация о внешних правилах и отладке.

Внутренние и внешние правила

Что и когда следует использовать?

Существуют внутренние и внешние правила iLogic. Правила обоих типов создаются похожим образом в обозревателе iLogic в Inventor.

Обозреватель

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

Поскольку внешние правила расположены в папке за пределами файлов, уровень защиты таких правил выше. Пользователи могут открыть правило и просмотреть его код, но системные администраторы способны контролировать доступ и возможность редактирования путем задания прав доступа к папке внешних правил. Поэтому внешние правила обычно применяются в корпоративных средах, где многочисленные пользователи могут выполнять код в рамках проектирования. Если не требуется управлять разрешениями или с правилом не работают несколько пользователей одновременно, внутренних правил будет достаточно.

Правила обоих типов отображаются в обозревателе iLogic, как показано на изображениях далее.

Правила

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

Параметры и свойства

Как их использовать?

Autodesk Inventor — это приложение для параметрического 3D-проектирования. Что это значит? Параметры представляют собой именованные заместители значений определенного типа. Большинство параметров в Inventor являются числовыми и связаны с размерами, которые управляют геометрией. При изменении значения параметра связанные размеры также меняются, что приводит к обновлению модели. В Inventor выделяют четыре типа параметров:

1) параметры модели;

2) пользовательские параметры;

3) ссылочные параметры;

4) табличные параметры.

Параметры модели создаются в ходе обычной работы с Inventor. В диалоговом окне «Параметры» им автоматически присваивается имя d0, d1, d2 и т. д. Параметры модели управляются программой Inventor, т. е. они создаются и удаляются системой при необходимости.

Пользовательские параметры создаются пользователями. Они могут быть числовыми, текстовыми, строковыми, истинными/ложными или логическими. Пользовательские параметры особенно важны, поскольку они создаются пользователями и применяются в различных функциях наряду с кодом iLogic. Их нельзя создать или удалить в процессе обычной работы с Inventor.

Примечание. Для использования информации о параметрах в правилах iLogic лучше всего создавать пользовательские параметры с применением правил именования и типа. И хотя параметры модели можно переименовать, делать это не рекомендуется.

Ссылочные параметры создаются при задании контрольных размеров в Inventor. Вы могли видеть следующее диалоговое окно при работе в среде эскиза.

Эскиз

Если нажать «Принять», будет создан ссылочный параметр. В диалоговом окне «Параметры» отображается имя и значение параметра, но значение нельзя изменить. Имя доступно для редактирования, что может оказаться полезным при использовании значения в коде iLogic.

Табличные параметры обычно связаны с Inventor посредством электронной таблицы Excel. Когда пользователь меняет имена и значения в таблице Excel, это отражается в Inventor, что в конечном счете позволяет управлять значениями размеров, элементами, сборками и т. д.

Свойства, которые в Inventor называются iProperties, являются дополнительными дескрипторами или другой ценной информацией о файлах. Иногда такие сведения называют метаданными. Свойства используются уже давно и могут быть крайне полезными, если требуется собрать большой объем данных о файлах. Имя и размер файла, автор, дата изменения — все это свойства. Чаще всего при работе с iLogic и данными файлов Inventor используются такие свойства, как имя файла и путь к нему. Другими распространенными свойствами являются номер детали, инвентарный номер, описание, масса, стоимость и настраиваемые свойства. Все они доступны для чтения, а для большинства разрешена запись.

Описание переменных, приведение типов и общие переменные

Насколько важна эта абракадабра при написании кода?

В основе работы iLogic лежит код, простой и понятный. Несмотря на то что для использования этого приложения не нужно быть программистом или знать, как пишется код, понимание основных приемов будет полезным. Дело в том, что существуют стандарты, которые знают все программисты. Описание переменных и приведение типов — одни из таких стандартов. Почему это важно? Это как умение говорить на любом языке. Наличие стандарта устраняет путаницу при написании логической схемы.

Описание переменных и приведение типов

Описание переменных — довольно простой процесс. В iLogic нужно просто задать имя и значение.

Length = 20

После создания переменной с ней можно работать. Можно прочитать значение, использовать его в вычислении или выполнить запись для обновления другого элемента. Несмотря на то что в iLogic достаточно задать имя и значение, лучше всего, следуя передовой практике написания кода, указать имя, тип и значение.

Dim Length As Double = 20

Так приложение iLogic понимает, что нужно создать переменную, которая будет включать только значение типа Double, а затем задать значение. Это называется приведением типа. Благодаря этому для переменной можно задать значение определенного типа. Если попытаться назначить значение типа String или Text для переменной Length, код не будет работать. По моему опыту, задание типа позволяет использовать в правилах гораздо более сложный код, а также понимать и визуализировать поток информации. Например, если включить утверждение в правило для выполнения математического расчета, при возникновении ошибки будет понятно, что переменные типа String здесь ни при чем.

Далее приводятся различные примеры описания переменных и приведения типов.

Dim cylinderHeight As Double = Parameter("CylinderHeight")
Dim fileName As String = "This is a string value!"
Dim holeCount As Integer = 2
Dim occurrenceName As String = String.Empty
Dim plateWidth As Double = Nothing

Обратите внимание, в последних двух примерах нет значений. Точнее, в качестве значения указано Empty и Nothing. Иногда требуется задать описание переменной, но вы можете не знать конкретное значение. В таком случае следует задать описание переменной, назначить тип и указать что-либо после знака равенства. Это обеспечит согласованность и позволит коду отладки определить, указано ли значение программным способом.

Вы также могли заметить, что в первом примере была определена переменная, приведен тип и указано значение, которое равно значению пользовательского параметра. Такой метод пригодится при создании логической схемы для вычислений, передачи значений в другие структуры и управления другими параметрами. Кроме того, его можно использовать, если требуется получить или задать значение пользовательского параметра незамедлительно, когда оно нужно коду. Именно поэтому пользователи, еще не знакомые с iLogic, сталкиваются с проблемами при выполнении правил. Они ожидают получить определенный результат, но программа Inventor словно отстает от процесса. Взгляните на следующие примеры.

cylinderHeight = CylinderHeight
Dim cylinderHeight As Double = Parameter("CylinderHeight")

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

Кроме того, для переменной будет задано значение пользовательского параметра, примененное на момент последнего обновления. Если значение пользовательского параметра было изменено логической схемой в период между тем, когда переменной потребовалось значение, и последним обновлением, значение пользовательского параметра будет устаревшим. Поэтому важно выполнять обновление. Может даже показаться, что для получения требуемого результата приходится обновлять файл много раз.

Чтобы избежать этого, можно сделать две вещи. Во-первых, добавьте второе утверждение. Задайте описание переменной, тип и используйте функцию Parameter, чтобы для переменной непосредственно использовалось актуальное значение пользовательского параметра. Это также дает больше контроля при выполнении правил. Во-вторых, используйте фрагмент кода iLogic RuleParametersOutput(). Он обеспечивает актуальность значений всех пользовательских параметров. Затем выполните обновление, чтобы связанные модели также были актуальными.

Общие переменные

Чуть раньше мы рассматривали методы работы с кодом с учетом переменных, но общие переменные — это функция iLogic. При описании переменных в правиле iLogic доступ к этим переменным можно получить только в контексте соответствующего правила. Если требуется создать переменную и задать ей значение для применения в нескольких правилах, тогда лучше использовать общую переменную.

На панели «Фрагменты iLogic» редактора правил iLogic функции общих переменных доступны в индексе «Переменные».

Для работы с общими переменными используется процесс, похожий на описание других переменных. Сначала задайте описание общей переменной, укажите ее имя и значение. Оно может быть статичным или быть значением других переменной, параметра или свойства.

SharedVariable("VariableName") = "This is the value" SharedVariable("cylinderHeight") = Parameter("CylinderHeight")

После задания описания общей переменной и значения ее можно использовать и обновлять при необходимости.

Dim cylinderHieght As Double = SharedVariable("cylinderHeight")

Используйте другие функции общих переменных, чтобы узнать, существует ли общая переменная, удалить какие-либо или все общие переменные из памяти.

Логические выражения и циклы

Пользователь всегда принимает решение?

В процессе обычной работы с Inventor у нас есть возможность посмотреть на графическую область, выбрать геометрию и решить, что с ней делать. В сборке мы видим, как компоненты связаны друг с другом. Если посмотреть на правило iLogic, может понадобиться задать путь за счет изучения существующих в чертеже условий для принятия решения. Для этого в iLogic используются выражения, определяющие различные условия.

Самым распространенным логическим выражением является If Then. Выглядит оно следующим образом.

If someValue = True Then
  'Do Something
Else
  'Do Something Else
End If

Этот код работает так: выполняется поиск условия, если оно существует, предпринимается определенное действие. Если условие не существует или есть другое условие, выполняется другое действие. Эту функцию можно расширить для поиска многочисленных условий, как показано далее.

If someValue = True Then
  'Do Something
ElseIf someValue = False Then
  'Do Something Else
ElseIf someValue = Nothing Then
 'Yet Do Something Else
End If

Все довольно просто и логично, но здесь есть свой предел. Можно подумать, что условия могут идти бесконечно, однако в определенный момент начинается путаница относительно того, что на самом деле происходит, особенно при добавлении операторов. Думаю, если вы добавляете 3–4 условия, лучше воспользоваться другим методом.

Еще одним распространенным логическим выражением является метод Select Case. Он работает подобным образом, но его легче прочесть и понять, к тому же код более компактный. Вот пример метода Select Case.

Select Case someValue
Case True
 'Do Something
Case False  'Do Something Else
Case Nothing
 'Yet Do Something Else End Select

Как можно видеть, код несколько легче понять и очень просто масштабировать с учетом требуемого количества условий.

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

Dim counter As Integer = 3
For t As Integer = 1 To counter
 MessageBox.Show("Number of Iterations: " & t)
Next

В этом примере задана начальная точка цикла (1), а также конечная точка цикла: счетчик со значением 3. То есть цикл выполнит три итерации, чтобы отобразилось сообщение. Если конечная точка неизвестна, можно подсчитать элементы в коллекции и использовать это значение в качестве конечной точки. Посмотрите на следующий пример.

Dim items As New List(Of String)
items.Add("Pizza")
items.Add("Sandwich")
items.Add("Milk")
items.Add("Eggs")

For i = 0 To (items.Count - 1)
 MessageBox.Show(items(i))
Next

В этом примере создана коллекция, добавлены элементы и выполнена настройка цикла таким образом, чтобы он выполнял столько итераций, сколько элементов в коллекции. Вы могли заметить, что цикл начинается в точке 0 и заканчивается в точке –1. Это одна из тех ситуаций, когда важно понимать, что такое индексация. А это не что иное, как выявление начальной точки. Как правило, это 0 или 1. В коллекции такого типа первый элемент списка обычно начинается с нуля, а не единицы.

Томас Фицджеральд (Thomas Fitzgerald) — старший консультант по внедрению решения Inventor в сфере автоматизации и управления данными. Он консультировал большое количество компаний как с небольшими, так и крупными отделами инженерного проектирования. У Томаса двадцатилетний опыт в сфере проектирования и промышленного производства изделий с помощью программ Autodesk. Он является сертифицированным инструктором Autodesk и сертифицированным системным администратором Microsoft.

Хотите узнать больше? Скачайте полный раздаточных материалов по мастер-классу.

Сопутствующее занятие

As iLogic turns 10, and as more companies embrace Inventor Automation, there are many perspectives as to the best way to write iLogic code. Take it from someone who has worked with large enterprise engineering departments and small specialty fabrication houses: Everyone wants some level of automation. In this class, you’ll learn how to write your iLogic code using industry best practices. You’ll also walk away with knowledge of the fundamentals for success when developing your iLogic rules. Do...

Поделиться статьей

Комментарии