Utilize as funções iPart e iAssembly para conduzir as configurações iPart e iAssembly em uma montagem. É possível utilizar uma regra para alterar a configuração atual de uma iPart ou iAssembly com base nas condições e lógica que definir.
Estas funções funcionam para iAssemblies da mesma maneira como fazem para iParts, exceto que os parâmetros personalizados podem ser utilizados apenas para iParts. Para utilizar a função para uma iAssembly, é possível, opcionalmente, substituir iPart com iAssembly ao especificar a função.
Para acessar as funções iPart e iAssembly, expanda o nó iPart na guia Sistema na área Trechos.
Funções similares estão disponíveis para iFeatures. Veja funções iFeature para mais informações.
Altera a linha ativa em uma tabela de iPart ou iAssembly.
Sintaxe
iPart.ChangeRow(" iChangedComponentName:1", " memberName")
"iChangedComponentName:1”
O nome do componente conforme exibido no navegador de montagem do Autodesk Inventor. Alterar o nome do componente padrão atribuído pelo inventor para estabilizá-lo e impedir que o nome altere quando uma linha diferente é escolhida na tabela.
"memberName”
O nome atribuído à linha na coluna Membro da tabela.
Para uma iPart com parâmetros personalizados, utilize esta sintaxe para listar os parâmetros personalizados depois "memberName" Mostre-os na mesma ordem em que aparecem na tabela:
iPart.ChangeRow("iChangedComponentName:1", "memberName", customParam1,customParam2)
Utilize esta sintaxe para especificar um número de linha em vez de nome do membro. O número de linha é um número inteiro, começando em 1 para a primeira linha (somente para iParts padrão):
iPart.ChangeRow("iChangedComponentName:1", rowNumber)
Exemplo
Neste exemplo, a configuração de iPart atual é alterada com base em uma declaração condicional que avalia um parâmetro de usuário do Inventor Port_1_Size A função requer somente o nome do componente de iPartport_1_Flange_screw e o nome do Membro da tabela iPart Screw-01 para conduzir a configuração da iPart ativa:
If Port_1_Size = .50 Then iPart.ChangeRow("port_1_flange_screw", "Screw-01") ElseIf Port_1_Size = .75 Then iPart.ChangeRow("port_1_flange_screw", "Screw-02") ElseIf Port_1_Size = 1.00 Then iPart.ChangeRow("port_1_flange_screw", "Screw-03") End If
Pesquisa a tabela de iPart ou iAssembly por coluna para a linha contendo um valor específico ou aproximado e define a configuração ativa para a linha encontrada.
Sintaxe
i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=",4.1,"|",customParam1,customParam2)
i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)
“i”
Uma variável local que pode ser utilizada para testar se uma linha válida é encontrada.
“iChangedComponentName:1”
O nome do componente como exibido no navegador de montagem do Inventor. Alterar o nome do componente padrão atribuído pelo inventor para estabilizá-lo e impedir que o nome altere quando uma linha diferente é selecionada na tabela.
“columnName”
A coluna para pesquisar na tabela iPart. Utilize o nome de cabeçalho de coluna exatamente como aparece na tabela de iPart.
Exemplo
Este exemplo pesquisa por uma tabela de iPart para uma linha com valores de coluna que são iguais aos ou maiores que os valores especificados. O iLogic altera a configuração da iPart atual para a linha encontrada:
iPart.FindRow("port_1_flange_screw", "Thread_Diameter", ">=", 0.45, "Thread_Length", ">=", 2.0)
Uma vez que uma linha foi encontrada utilizando iPart.FindRow, esta função lê valores de coluna associados daquela linha. esta função lê somente valores numéricos. Utilize iPart.CurrentRowStringValue para ler colunas contendo valores de texto.
Sintaxe
d0 = iPart.CurrentRowValue("columnName")
Qualquer um dos seguintes define a linha atual:
iPart.FindRow or iPart.ChangeRow.
“columnName”
O nome da coluna de tabela do iPart que deseja.
Exemplo
Neste exemplo, pesquisamos pela coluna Port_Size de port_1_flare_flange tabela de iPart por um valor exato que corresponda ao valor do parâmetro do Inventor port_1_size. Uma vez que a linha é encontrada, utilizamos iPart.CurrentRowValuepara recuperar as cotas das colunas A_dim e B_dim da tabela. Então, atribuímos seus valores para os parâmetros do Inventor nomeados Port_1_screw_A_dim e Port_1_screw_B_dim:
i = iPart.FindRow("port_1_flare_flange", "Port_Size", "=", Port_1_Size) Port_1_screw_A_dim = iPart.CurrentRowValue("A_dim") Port_1_screw_B_dim = iPart.CurrentRowValue("B_dim")
Uma vez que uma linha foi encontrada utilizando iPart.FindRow, utilize esta função para ler valores de coluna associados daquela linha. Esta função é como iPart.CurrentRowValue, exceto que lê somente valores de texto. Utilize iPart.CurrentRowValue para ler colunas contendo valores numéricos.
Sintaxe
iPart.CurrentRowStringValue("PartNumber")
Sintaxe alternativa para o nome do componente
Para especificar o nome do componente que não é alterado quando a linha de iPart é alterada.
iPart.ChangeRow("iParentFileName:1", "memberName")
iPart.FindRow("iParentFileName:1","columnName","<=",d1,"columnName","<=",d2)
“iParentFileName:1”
O nome do arquivo principal de iPart, onde ":1" substitui a extensão .ipt ou .iam habitual. Altere o ":1" para o número do componente com o qual está trabalhando.
Embora esta sintaxe é suportada, ela não é recomendada. Um método mais padrão é alterar o nome do componente para estabilizá-lo.
Obtém o nome do membro da linha ativa em uma instância de componente de iPart ou iAssembly. Esta função é útil em regras desencadeadas pelo evento Alterar componentes de iPart ou iAssembly. Utilize iPart.AlterarLinha ou iPart.LocalizarLinha para selecionar uma linha automaticamente de uma regra. Se quiser permitir que o usuário selecione uma linha manualmente, é possível combinar aquele evento com esta função para reagir à alteração.
Sintaxe
iPart.RowName("iChangedComponentName:1")
Exemplo
memberName = iPart.RowName("port_1_flange_screw:1")
Obtém o número da linha da linha ativa em uma instância de componente de iPart ou iAssembly.
Sintaxe
iPart.RowNumber("iChangedComponentName:1")
Exemplo
rowNumber = iPart.RowNumber("port_1_flange_screw:1")
Utilizado com a função iPart.FindRow, esta função permite que pesquise por um valor dentro de um intervalo em vez de pesquisar por um valor exato. Há sempre uma tolerância para esta pesquisa. A tolerância padrão é 0,0000001 e não é dependente de unidades de documento.
Sintaxe
iPart.Tolerance = <value>
Defina uma tolerância maior para expandir o intervalo de valores aceitáveis.
Exemplo
Suponha que use as declarações a seguir:
iPart.Tolerance = 0.001 i = iPart.FindRow("Block:1","length", "=", 2.3)
Juntas, essas declarações se tornam equivalentes a seguinte pesquisa sem tolerância:
i = iPart.FindRow("Block:1", "length", ">=", 2.299, "length","<=", 2.301)
Para substituir um membro de iPart com um membro de uma família diferente, utilize Component.ReplaceiPart.