В iLogic содержатся функции для правил, позволяющие задавать и читать состояния подавления и цвета компонентов, а также функцию, позволяющую заменить один компонент другим. Эти функции можно применять, чтобы задавать различные конфигурации деталей и сборок.
Можно создать модель (деталь или сборку), содержащую компоненты, необходимые для представления всех возможных допустимых конфигураций продукта. Этот метод называется "супермоделированием". Когда детали или компоненты сборки слишком сложны или слишком многочисленны и супермоделирование становится нецелесообразным, используйте функцию Component.Replace.
Чтобы перейти к функциям Component, разверните узел "Components" на вкладке "Система" в области "Фрагменты".
Имена компонентов
Выполняйте изменение всех имен компонентов до включения этих имен в правило. Изменяя имя компонента по умолчанию, назначенное Autodesk Inventor, можно обеспечить его неизменность при изменении связанного файла IPT или IAM.
Исходное имя компонента можно восстановить и при этом сохранить его стабильность. Чтобы изменить компонент, слегка измените его имя, а затем замените его исходным именем.
При использовании компонента из Библиотеки компонентов для функций Component.IsActive и Component.Replace требуется изменить его имя.
Задает или читает состояние подавления или структуру спецификаций компонента сборки. Используйте эту функцию, чтобы включить компонент в конфигурацию сборки или исключить его из нее.
Эту функцию можно применять для отдельного компонента или для массивов компонентов. В случае массивов компонентов используйте имя массива. Массив должен принадлежать тому же уровню сборки, что и правило, и не может находиться в узле.
Не подавляйте подкомпоненты. Лучше всего выполнить подавление из правила внутри компонента.
Например, сборка с именем TopAssembly содержит узел SubAssembly:1, а этот узел содержит деталь SamplePart:1.
Чтобы подавить SamplePart:1 используйте правило внутри узла. Это правило может иметь параметр, задающий состояние подавления. Пользователь может задать параметр с помощью правила в TopAssembly.
При использовании iLogic для подавления компонента структуре спецификации компонента присваивается значение Reference. Это приводит к тому, что он не появляется в спецификации. Он появляется в представлении "Данные моделей", но не включается в представления "Структурированный" или "Только детали". Если подавление компонента отключено, то iLogic возвращает компоненту состояние до подавления ("Нормальный", "Неразделимый", "Приобретенный" или "Фантомный").
До использования правила iLogic для изменения состояния подавления компонента сборки создайте и активизируйте новый пользовательский уровень детализации.
Синтаксис
Component.IsActive("ComponentName")
Примеры
Можно использовать 1 вместо True и 0 вместо False.
Чтобы задать состояние подавления и структуру спецификации, используйте следующий синтаксис:
Component.IsActive("PartA:1") = false Component.IsActive("PartB:1") = 0 Component.IsActive("PartC:1") = false Component.IsActive("PartD:1") = 0
Чтобы прочитать состояние подавления и структуру спецификации, используйте следующий синтаксис:
MyBooleanParam = Component.IsActive("ComponentName:1) If Component.IsActive("PartE") Then ' do something End If
Эта функция является разновидностью функции Component.IsActive и используется для задания или чтения состояния подавления компонента параметрической детали или параметрической сборки. Если не менять имя компонента вручную, то для параметрических деталей и сборок необходимо использовать этот специальный синтаксис.
Рекомендуется изменить имя компонента. В этом случае вместо этой функции можно использовать Component.IsActive.
Синтаксис
Component.iComponentIsActive("iPartParentName:1")
iPartParentName
Имя стандартной детали без расширения файла .ipt.
Задает или читает цвет компонента.
Синтаксис
Component.Color("iPartA:1")
Примеры
Задать цвет:
Component.Color("iPartA:1") = "Green" Component.Color("iPartA:2") = "Aluminum (Cast)" Component.Color("iPartA:3") = "As Material"
Читать цвет:
MyStringParameter = Component.Color("iPartA:1")
Задает или читает видимость компонента. Эта функция не меняет структуру спецификации компонента.
Синтаксис
Component.Visible("componentName")
Примеры
Задать видимость:
Component.Visible("Plate") = true Component.Visible("Bearing") = false
Читать видимость:
parameter = Component.Visible("Plate") parameter = Component.Visible("Bearing")
If Component.Visible("PartE") Then do something End If
Задает, должно ли правило сохранять документ компонента при его изменении, а затем подавлять.
Синтаксис
Component.SkipDocumentSave = True
Если задать значение True, документ компонента не сохраняется.
По умолчанию используется значение False (Component.SkipDocumentSave = False), то есть документ компонента сохраняется.
Заменяет одну деталь другой или один узел другим. Эту функцию можно также использовать для замены массивов компонентов.
В заменяемых компонентах используйте iMates, чтобы оставить неизменными зависимости сборки. Можно заменить одну деталь другой, деталь сборкой или сборку деталью.
Функция выполняет поиск файла, который следует использовать для замены, в нескольких папках:
В качестве имени файла можно использовать относительный путь (относительный относительно любого их этих каталогов поиска).
Синтаксис
Component.Replace("ComponentToReplaceName", "OtherPartfilename.ipt", <replaceAll>)
ComponentToReplaceName
Имя заменяемой детали или заменяемого узла.
OtherPartfilename
Деталь или узел, которые следует использовать в качестве замены.
<replaceAll>
Присвойте логической переменной значение True для замены всех экземпляров компонента. Присвойте ей значение False, чтобы заменить только один именованный экземпляр.
Пример
If PartType = "Type A" Then Component.Replace("Widget","PartA.ipt", True) ElseIf PartType = "Type B" Then Component.Replace("Widget","PartB.ipt", True) End If
Этот вариант функции Component.Replace используется для замены компонента в сборке другим компонентом на определенном уровне детализации.
Синтаксис
Component.Replace("SubAssem:1", "OtherAssemFilename.iam<Level of Detail>", <replaceAll>)
В этой функции аргумент <replaceAll> — это тот же аргумент, что был описан для более общей функции Component.Replace.
Можно также заменить узел тем же самым узлом на другом уровне детализации.
Эта функция необходима для параметрических деталей с пользовательскими параметрами, но она также рекомендуется для стандартных параметрических деталей. Если компонент является параметрической деталью, то используйте ее вместо Component.Replace. Чтобы изменить конфигурацию определенной параметрической детали, после замены можно использовать iPart.ChangeRow или iPart.FindRow.
Для параметрической детали с пользовательскими параметрами приведите список значений пользовательских параметров после аргумента rowNumber. Значения необходимо перечислить в том порядке, в котором они включены в таблицу.
Синтаксис
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber)
Используйте rowNumber, чтобы заменить компонент и одновременно выбрать строку параметрических деталей.
Примеры
Чтобы задать пользовательские параметры, повторите пользовательские значения в Component.ReplaceiPart и еще раз в iPart.ChangeRow или в правиле iPart.FindRow.
Для ChangeRow:
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) iPart.ChangeRow("iPart1:1", rowNumber, customParam1, customParam2)
Для FindRow:
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) i = iPart.FindRow("iPart1:1", "Dia", ">=", 3.0, "r;|", customParam1, customParam2)
Определяет путь к имени компонента в узле. Чтобы задать путь, перечислите все уровни узлов в том порядке, в котором они появляются в дереве. Эта функция необходима, когда требуется задать имя компонента, когда точно такое же имя существует в другом месте в сборке.
Синтаксис
MakePath("SubassemblyComponentName","PartComponentName")
Примеры
Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green” Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”