Расширение и адаптация iLogic

Можно разместить правила iLogic во внешних файлах, а не сохранять их в модели Inventor, и импортировать или экспортировать внешние правила.

Хранение правил во внешних файлах

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

Правила iLogic могут использовать код в других сборках .NET. Можно задать каталог, где хранятся эти сборки .NET. Сборку .NET можно создать с помощью таких средств программирования, как Visual Studio. См. дополнительные сведения об использовании сборок .NET в правилах в разделе "Расширенные возможности программирования правил".

Конфигурация импорта/экспорта внешних правил

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

Настройки конфигурации внешних правил используются и сопоставляются в процессе создания развертываний.

Глобальные формы обновляются через параметр контекстного меню для отражения последних версий.

Интерфейс автоматизации для получения доступа к параметрам и правилам

iLogic предлагает интерфейс автоматизации. Этот интерфейс можно использовать из кода Inventor VBA, VB6 или .NET для получения доступа к параметрам и правилам.

Эту возможность обеспечивает класс iLogicAutomation.

В проекте VBA или VB можно использовать его в качестве типа позднего связывания (объявляемого как объект), не добавляя ссылки. Поскольку он не является полным объектом .сом, его методы просматривать невозможно.

Пример кода для интерфейса автоматизации

Пример макроса VBA для доступа к iLogic можно найти в следующей папке:

В этом примере кода функция GetiLogicAddin демонстрирует способ доступа к объекту автоматизации iLogic в VBA или VB.

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

Используйте iLogicAuto.ParamValue для извлечения или задания значения параметра. Внутри он используйте свойство iLogic Parameter.

Тип данных DoubleForEquals

Для хранения значений параметров в iLogic используется пользовательский тип данных, называемый DoubleForEquals. DoubleForEquals поддерживает простое сравнение чисел. Этот параметр аналогичен стандартному типу VB.NET Double. Однако значения DoubleForEquals сравниваются, как если бы они были значениями одинарной точности (7 знаков после запятой, а не 15). По умолчанию параметры в правилах объявляются как DoubleForEquals.

DoubleForEquals позволяет игнорировать ошибку округления в операциях сравнения. Например, предположим, что в качестве единиц изменения в детали используются дюймы, и значение одного из параметров составляет 13/16 дюйма. В правиле деталь не в точности равна 13/16 дюйма, поскольку в модели значение параметра хранится в сантиметрах. Затем значение преобразуется в дюймы, чтобы использовать его в правиле. Рассмотрим следующее сравнение:

if d0 = 13/16 then ... 

В этом примере условие не выполняется, если переменная d0 объявлена как переменная типа Double. Однако если объявить d0 как переменную типа DoubleForEquals, условие выполняется.

DoubleForEquals хранит значение как значение типа Double и выполняет все вычисления со значениями двойной точности. При этом сравнение выполняется для переменных одинарной точности.

При необходимости значение параметра можно преобразовать в величину двойной точности с помощью функции CDbl.

DoubleForEquals в VB.NET является структурой (тип значений).

Сравнение значения DoubleForEquals с нулем

DoubleForEquals рассматривает сравнение с нулем как особый случай. Если одно из сравниваемых значений в точности равно нулю, то проверка считается успешной, если другое число отличается от нуля меньше чем на 0,0000001 (по модулю).

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

angle = PI/2
x = cos(angle)
If (x = 0) Then
...
End If

В каких случаях DoubleForEquals можно отключить

DoubleForEquals — это тип по умолчанию для всех параметров Inventor, используемых в правилах. Этот параметр можно отключить по следующим причинам:

Дополнительные ресурсы для обучения по VB

Выполните поиск учебных пособий VB и информации в Интернете с использованием веб-браузера.

Добавление конфигураций iLogic в развертывания

Параметры конфигурации iLogic можно использовать в рамках развертывания Inventor.

  1. В диалоговом окне «Расширенная конфигурация iLogic» выберите «Экспорт».

    Параметры экспортируются в папку C:\Users\[имя пользователя]\AppData\Local\Autodesk\Inventor [версия]\iLogicPreferences\ iLogicOptions.xml

  2. В окне Мастера развертывания Inventor добавьте файл в развертывание с помощью функции «Дополнительные файлы».
    1. Щелкните «Добавить папку» и создайте новую папку с именем iLogicPreferences.
    2. Нажмите кнопку «Обзор» и перейдите в папку C:\Users\[имя пользователя]\AppData\Local\Autodesk\Inventor [версия]\iLogicPreferences\ iLogicOptions.xml для добавления файла.