Функции параметрических элементов в iLogic

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

Функции параметрических элементов действуют внутри детали, в которую помещен параметрический элемент (экземпляр). Их синтаксис аналогичен синтаксису, используемому для функций GoExcel и Параметрическая деталь.

Чтобы перейти к функциям iFeature, разверните узел "iFeature" на вкладке "Система" в области "Фрагменты".

iFeature.ChangeRow

Меняет активную строку табличного параметрического элемента.

Синтаксис

iFeature.ChangeRow("ИмяПараметрическогоЭлемента", "имяСтроки")

"ИмяПараметрическогоЭлемента"

Имя параметрического элемента в том виде, как оно отображается в дереве модели.

"имяСтроки"

Требуемое значение ключевого параметра в таблице параметрических элементов.

Если параметрический элемент имеет несколько ключевых параметров, укажите их все в текстовой строке в виде [КлючевойПараметр1=Значение1][КлючевойПараметр2=Значение2]. Например:

[Size=A0][CutLength=0.4375000 in]

Это пример свойства iFeatureTableRow.MemberName, как оно описано в документации по Inventor API. Также можно задать несколько значений параметров с помощью функции iFeature.FindRow.

Можно также использовать целочисленный номер строки:

iFeature.ChangeRow("ИмяПараметрическогоЭлемента", "номерСтроки")

Пример

В этом примере текущая конфигурация параметрического элемента изменяется на основе условного оператора, который оценивает размер, который является текстовым параметром. Для функции iFeature.ChangeRow требуется указать только имя компонента параметрического элемента RectangularPocket1 и название ключевого столбца таблицы параметрических элементов Pocket-01, чтобы применить активную конфигурацию параметрического элемента.

If size = "small" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-01")
ElseIf size = "medium" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-02")
ElseIf size = "large" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-03")
ElseIf size = "very large" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-04")
End If

iFeature.FindRow

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

Синтаксис

i = iFeature.FindRow("ИмяПараметрическогоЭлемента", "имяСтолбца", "<=", 0,2, "имяСтолбца", "<=", 4,1)

"ИмяПараметрическогоЭлемента"

Имя табличного параметрического элемента.

"имяСтолбца"

Заголовок столбца, поиск которого выполняется.

Операторы

В качестве значения можно использовать число или текстовую строку. Его можно задать непосредственно или с использованием параметра или локальной переменной.

Возвращаемый результат

iFeature.CurrentRowValue(имя столбца)

Считывается значение из строки, найденной с помощью функции iFeature.FindRow, где имяСтолбца — это заголовок столбца. Функция возвращает значение ячейки в текущей строке, которая была возвращена функцией iFeature.FindRow. Например:

i = iFeature.FindRow("RectangularPocket1", "pocketdepth", "=", 0.250)
pocketlength = iFeature.CurrentRowValue("pocketlength")
pocketwidth = iFeature.CurrentRowValue("pocketwidth")

Если в параметрическом элементе отсутствует такой столбец, правило отображает сообщение об ошибке.

iFeature.CurrentRowStringValue(имя столбца)

Используйте эту, функцию при поиске в таблице параметрических элементов текстовой строки. Например:

Part_number = iFeature.CurrentRowStringValue("Part Number")

iFeature.Tolerance

Эта функция используется вместе с функцией iFeature.FindRow и позволяет искать не точное значение, а значение, находящееся в диапазоне. Для этого поиска всегда существует допуск. Значение допуска по умолчанию составляет 0,0000001 и не зависит от единиц измерения документа.

Синтаксис

iFeature.Tolerance = <значение>

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

Пример

iFeature.Tolerance = 0.001
i = iFeature.FindRow("insertpocket", "pocketlength", "=", 2.0)

В этом примере строка сопоставляется со значением pocketlength, равным 2,0004.