Uma função é uma instrução realizada no âmbito de um programa. A instrução pode incluir argumentos ou requerer certas entradas para executar com êxito.
As funções são arrumadas normalmente em uma certa ordem para alcançar um resultado desejado. Por exemplo, uma função recupera um pedaço de informação de um banco de dados e a próxima função executa alguma operação naqueles dados. Normalmente, cada função é independente do código restante em um programa.
O iLogic fornece várias funções para utilizar nas regras. As funções são agrupadas em categorias.
A seguir está um exemplo de como uma função pode aparecer em uma regra:
returnValue = Category.FunctionName(argument1, argument2, ...)
Um argumento pode ser uma sequência de texto, valor booleano de verdadeiro ou falso ou número.
Um valor de sequência de texto é especificado em um par de aspas duplas “ComponentName:1” e “Hole2” são exemplos de sequências de texto. Utilizando nosso exemplo anterior, se argumentos são sequências de texto, a função aparece como:
returnValue = Category.FunctionName(“ComponentName:1”,“Hole2”)
Um parâmetro de texto do iLogic pode ser utilizado como um argumento para uma função que aguarda uma sequência de texto. Um parâmetro numérico do Inventor pode ser utilizado como um argumento para uma função que aguarda um número.
Um valor de retorno pode ser uma sequência de texto, valor booleano de verdadeiro ou falso ou número. Muitas vezes, é algo que você quer ler ou recuperar a partir do modelo. É possível testar o valor de retorno, ou atribuí-lo a um parâmetro ou uma variável local na regra.
Algumas funções não possuem um valor de retorno. No VB.NET, este tipo de função é chamada de Sub. Ele muitas vezes altera o modelo. Por exemplo:
Category.FunctionName(argument1, argument2, ...)
Outro tipo de função pode ser utilizado para gravar ou atribuir um valor a algo no modelo do Inventor. No VB.NET, este tipo de função é chamada de Propriedade. Por exemplo:
Category.FunctionName(argument1, argument2, ...) = value
Neste exemplo, a função está escrevendo o valor para o modelo.
Como utilizar funções no iLogic?
O iLogic fornece funções para modificar o modelo do Inventor ou ler alguns dados do modelo e retorná-lo a você. Estas funções estão disponíveis como trechos de códigos na caixa de diálogo Editar regra. É possível inserir funções em regras (programas Visual Basic pequenos) que define para o modelo. Quando uma regra é executada, as funções nesta regra são executadas.
Adicione uma função a uma regra
É possível editar uma função em uma regra utilizando técnicas de edição de texto padrão. Utilize a barra de ferramentas acima da área de texto de regra ou do menu de contexto para a assistência com certas operações.
Se está adicionando uma função, algumas vezes é mais rápido e mais eficiente editar uma cópia de uma função semelhante que existe na regra. Utilize Copiar/Colar para criar uma cópia de uma função existente que pode ser editada.
Para acessar as funções de parâmetros, expanda o nó Parâmetros na guia Sistema na área de trechos.
Esta função altera diretamente os valores de parâmetro.
Em montagens, é possível acessar parâmetros em componentes suprimidos. Entretanto, se um componente é suprimido, não será possível acessar seus parâmetros diretamente com uma declaração de atribuição, como o seguinte:
PartA.ipt.d12 = 6.3
Ao invés, é possível utilizar:
Parameter("PartA:1", "d12") = 6.3Observe que um nome de componente é especificado ao vez de um nome do arquivo. Apesar de dar à função um número de componente específico, a alteração de parâmetro afeta todas as instâncias do componente. O nome do componente é apenas um caminho para a função identificar o arquivo.
Renomear o componente manualmente para preservar seu nome se o componente for substituído.
Também é possível utilizar a função MakePath para o nome do componente:
Parameter(MakePath("SubAssem1:1", "Part1:1"), "d12") = 6.3É possível ler o valor atual de um parâmetro utilizando a sintaxe de uma das seguintes declarações:
param_val = Parameter("PartA:1", "d0")
Como mostrado nestes exemplos, o parâmetro pode estar no documento atual. É possível utilizar o nome de qualquer parâmetro que pode ser acessado da regra.
Em um componente que não está suprimido, é possível especificar o nome do arquivo em vez do nome do componente: É possível utilizar esse método para alterar um parâmetro em uma peça de base que não aparece como um componente em uma montagem:
Parameter("PartA.ipt", "d12") = 6.3Se um parâmetro não é encontrado, a função Parâmetro gera uma mensagem de erro. É possível suprimir a mensagem de erro utilizando o seguinte:
Parameter.Quiet = True
Utilize esta técnica se tem conhecimento de que o parâmetro está faltando e está preparado para aquela condição.
É possível acessar parâmetros em uma peça de base a partir de uma peça derivada ou montagem. Também é possível acessá-los de uma montagem que contém uma peça derivada da peça de base.
Às vezes, é útil para conduzir os parâmetros na peça de base de regras na assembléia. Esta técnica é conhecida como modelagem descendente Quando alterar um parâmetro de base, os parâmetros vinculados em todas as peças derivadas também são alteradas. Quando alterar um parâmetro de base, os parâmetros vinculados em todas as peças derivadas também são alteradas.
A peça e seus parâmetros não estão sempre visíveis na árvore Modelo na caixa de diálogo Editar regra. É possível acessá-los utilizando a função Parameter. Por exemplo, para alterar um parâmetro em uma peça de base, utilize:
Parameter("BaseShaft.ipt”, ”Diameter") = 0.125 inNormalmente, não é necessário ler os valores dos parâmetros da peça de base. Os parâmetros já estão vinculados na peça ou montagem no qual está trabalhando.
Funções de parâmetro avançadas
Utilize a função Parameter.Param para ter acesso direto a um parâmetro do Inventor. O objeto retornado é do tipo Parâmetro, do API do Autodesk Inventor:
param = Parameter.Param("parameterName")
If (param IsNot Nothing) Then
param.Expression = "5.0 in"
param.Tolerance.SetToDeviation(0.002 * 2.54, -0.004 * 2.54)
param.Comment = "Equation and Tolerance set by a rule"
End IfAlternativamente, é possível utilizar linha única:
Parameter.Param("foo").Comment = "Comment set by a rule"
É possível acessar mais propriedades de um parâmetro do Autodesk Inventor utilizando o seguinte:
param = Parameter.Param("parameterName")param = Parameter.Param("componentName", "parameterName")
Estes parâmetros fornecem um objeto da Inventor.Parameter classe. Veja a Ajuda de programação do Inventor para mais informações nesta classe.
Utilize funções Multi valores para acessar e alterar a lista de valores armazenados com um parâmetro com vários valores. Os exemplos seguintes demonstram suas utilidades:
MultiValue.SetList(“d0”, 0.5, 0.75, 1.0, 1.25)
Define a lista de valores disponíveis para o parâmetrod0.
MultiValue.SetList(“d0”, “3/8”, “d1 * 2”, “d1 * 3”)
Define equações em vez de valores. É possível misturar equações e valores na lista.
MultiValue.SetList(“filename.ipt.str0”, “Value1”, “Value2”)
Define uma lista de valores para um parâmetro de texto em uma peça.
MultiValue.SetList(“Part1:1”, “d0”, 0.5, 0.75, 1.0, 1.25)
Define a lista de valores de um parâmetro em um componente.
values = MultiValue.List(“d0”)
Recebe a lista de variáveis atual, onde a variável values é um objeto do tipo do VB.NETArrayList.
MultiValue.SetValueOptions(True, DefaultIndex := 0, NumericCompare := “=”)
Força o parâmetro a possuir um valor que está em sua lista com vários valores. Se em seguida, alterar a lista de multi-valores, ela também define o valor atual do parâmetro para um dos valores na lista. Esta função não altera o valor se for encontrado na nova lista.
Se o valor do parâmetro não está na lista nova, o parâmetro é definido para o primeiro valor (Índice 0) na lista.
Testa para igualdade. Também é possível utilizar "<=" ou ">=".
MultiValue.SetValueOptions(False)
Quando alterar a lista multi-valor do parâmetro, o valor atual do parâmetro não altera. Este comportamento é o comportamento padrão de MultiValue.
MultiValue.List(“MyStringParam”) = iProperties.Materials
Define um parâmetro de teste para uma lista de valores equivalentes à lista de materiais disponíveis no padrão atual ativo.
MultiValue.List(“d0”) = New Double() {0.5, 0.75, 1.0, 1.25}
Utiliza um método alternativo de definição da lista de valores.
Exemplos que utilizam valores do Microsoft ® Excel podem ser encontrados na seção descrevendo GoExcel.CellValues.
MultiValue.UpdateAfterChange = True
Como configuração Parameter.UpdateAfterChange para Verdadeiro, esta declaração atualiza o modelo do Inventor imediatamente.
Suprime a mensagem de erro exibida quando um parâmetro não é localizado. Utilize esta função se tem conhecimento de que o parâmetro está faltando e está preparado para aquela condição. Por exemplo, é possível que o parâmetro não exista em toda peça na qual a regra se aplica.
foundVal = MultiValue.FindValue(aList, "<=", 4.0)
Localiza o valor em uma lista que mais se aproxima a uma condição. aList pode ser uma lista matriz ou matriz. O argumento para comparação pode ser "<=", "=" ou ">=".
O próximo exemplo localiza o valor que é menor ou igual a 4,o. Se existe mais de um valor, o valor mais próximo de 4,0 retorna. Se um valor correspondente não existe, este exemplo retorna a "Nothing" VB constante.
foundVal = MultiValue.FindValue(MultiValue.List("d0"), "<=", 4.0)iLogic fornece funções que definem ou lêem estados, cores, e designações de rosca de supressão de operação.
Utilize as funções de operação para roscas para definir ou ler propriedades de operações de rosca ou furos roscados. estas propriedades também aparecem na caixa de diálogo de edição para uma operação de rosca ou furo roscado.
Para acessar as funções de operação, expanda o nó operações na guia Sistema na área de trechos.
Feature.IsActive (com o nome da operação)
Define ou lê o estado de supressão para uma operação de peça ou montagem. Utilize esta função para suprimir ou não suprimir qualquer operação de uma peça ou montagem do Inventor. Quando alterar o estado de ativação de uma operação, as operações dependentes também são alteradas. Este efeito elimina a necessidade de especificar operações dependentes na sua regra.
Se alterar o nome de uma operação depois de escrever uma regra que inclui esta função, edite a regra. Substitua o nome antigo com o novo nome. Altere nomes de operação (se necessário) antes de escrever regras.
Os nomes de operação devem estar sempre entre aspas.
Feature.IsActive(“featurename”)
if bracket_width >= 3 then
Feature.IsActive("flange_hole_pattern") = true
Feature.IsActive("base_hole_pattern") = true
else
Feature.IsActive("flange_hole_pattern") = false
end ifFeature.IsActive (com nome de componente e operação)
Esta variação da função Feature.IsActive define ou lê o estado de supressão de operações em uma peça ou submontagem especificando o nome de componente e operação. Utilize esta sintaxe para controlar o estado de ativação de operações em peças de dentro de uma regra no nível de montagem.
Feature.IsActive(“componentname”, “featurename”)
Definir o estado de supressão:
Feature.IsActive("PartA:1", "Hole:1") = falseMyBooleanParameter = Feature.IsActive("PartA:1","Hole:1")Define ou lê a cor de uma operação de peça especificando o nome da operação. esta função não funciona para operações de montagem.
O valor da cor é uma sequência de texto. O texto deve ser colocado entre aspas. Ele também deve corresponder à ortografia exata e à caixa das cores disponíveis na norma ativa do documento Autodesk Inventor atual.
Feature.Color("Hole:1") = "Green"
Feature.Color("Hole:2") = "Aluminum (Cast)
"Feature.Color("Hole:3") = "As Material"MyStringParameter = Feature.Color("Chamfer:1")Definir ou ler a cor de operações de submontagem ou peça especificando o nome do componente e o nome da operação:
Feature.Color("componentName", "featurename")Define ou lê a designação da rosca de uma operação de rosca em um documento de peça ou montagem. A designação de rosca é uma sequência de texto. Deve ser especificada com a sequência exata como ela aparece no campo Designação da caixa de diálogo edição de operação roscada.
Para uma rosca cônica, especificar o valor que iria aparecer no campo Tamanho da caixa de diálogo Rosca. Este valor normalmente é uma versão abreviada da designação de rosca completa.
Feature.ThreadDesignation("featurename") = "<designation value>"
Opcionalmente, utilize a sintaxe seguinte para mostrar a designação de rosca atual, no formato necessário para defini-lo:
threadDes = Feature.ThreadDesignation("Thread1")
Quando definir a designação de rosca para um furo com uma regra, o tamanho do furo ajusta automaticamente.
Para uma haste roscada, é possível utilizar uma regra para alterar o diâmetro da haste e a designação da rosca ao mesmo tempo. O diâmetro da haste deve ser compatível com a designação da rosca.
If rod_type = "small" Then
Feature.ThreadDesignation("Thread1") = "3/8-16 UNC"
rod_diameter = 0.375
ElseIf rod_type = "large" Then
Feature.ThreadDesignation("Thread1") = "1/2-13 UNC"
rod_diameter = 0.500
End IfTambém é possível definir ou ler a designação da rosca de uma operação de rosca em um documento de peça ou montagem de uma regra no nível de montagem. Especifique o componente ou nome do arquivo e o nome da operação de rosca:
Feature.ThreadDesignation("PartA.ipt", "featurename") = "1/2-13UNC"Feature.ThreadDesignation("PartA:1", "featurename") = "1/2-13UNC"Faz grandes mudanças de um furo ou operação de rosca. Define tipo, designação e classe. Utilize esta função para alternar entre roscas de polegada e métricas. Não é possível alternar entre uma rosca reta e uma cônica.
Feature.SetThread("featurename", "thread type", "thread designation", "thread class")
Como alternativa, utilize a sintaxe seguinte para fazer alterações importantes de um furo ou operação roscada em um componente:
Feature.SetThread("componentName", "featurename", "thread type", "thread designation", "thread class")
Obter o tipo de rosca de um furo ou operação roscada. Os exemplos incluem "Roscas de parafuso unificadas ANSI", "Perfil M métrico ANSI", e assim por diante. Para alterar o tipo, utilize SetThread, e defina a designação e classe ao mesmo tempo.
currentType = Feature.ThreadType("featurename")
Como alternativa, utilize esta sintaxe para obter o tipo de rosca de um furo ou operação roscada em um componente:
currentType = Feature.ThreadType("componentName", "featurename")
Defina a classe da rosca de um furo ou operação roscada. Quanto maior o número, mais alto o grau de precisão.
Feature.ThreadClass("featurename") = "3B"
Utilize esta sintaxe para obter a classe da rosca de um furo ou operação roscada:
currentClass = Feature.ThreadClass("featurename")
Utilize esta sintaxe para definir a classe da rosca de um furo ou operação roscada em um componente:
Feature.ThreadClass("componentName", "featurename") = "3B"
Obter a classe da rosca de um furo ou operação de rosca em um componente.
currentClass = Feature.ThreadClass("componentName", "featurename")
O iLogic fornece funções de regra para a definição e leitura de estados de supressão de componentes e cores, assim como uma função para a substituir um componente por outro. Estas funções são úteis para conduzir diferentes configurações de peças ou montagens.
É possível criar um modelo (peça ou montagem) que inclui os componentes necessários para representar todas as configurações válidas possíveis de um produto. Este método é conhecido como "super modelagem". Quando os componentes de peça ou montagem são muito complexos ou numerosos, e a super modelagem torna-se impraticável, utilize a função Component.Replace.
Para acessar as funções de componente, expanda o nó componente na guia Sistema na área de trechos.
Personalize todos os nomes de componentes antes de referenciar os nomes em uma regra. Quando você altera o nome do componente a partir do nome padrão atribuído pelo Autodesk Inventor, você garante que ele não o altera quando o arquivo .ipt ou .iam referenciado o altera.
É possível alterar o componente de volta ao seu nome original e ainda preservar sua estabilidade. Para alterar o componente, faça uma alteração pequena no nome e, a seguir, altere-o de volta para o original.
Para um componente do Centro de conteúdo, uma alteração de nome é requerida para a função Component.IsActive, assim como a função Component.Replace.
Define ou lê o estado de supressão e estrutura da lista de material de um componente de montagem. Utilize esta função para incluir ou excluir um componente de uma configuração de montagem.
A função funciona em um componente único ou em padrões de componentes. Para padrões, utilize o nome padrão. O padrão deve estar no mesmo nível da montagem como a regra e não em uma submontagem.
Não suprima componentes. Uma alternativa melhor é executar a supressão de uma regra dentro do componente.
Por exemplo, uma montagem nomeada TopAssembly contém SubAssembly:1 e esta submontagem contém SamplePart:1.
Utilize uma regra dentro de SubAssembly para suprimir Sample Part:1. esta regra pode ter um parâmetro que conduz o estado de supressão e é possível conduzir o parâmetro com uma regra no TopAssembly.
Quando utilizar iLogic para suprimir um componente, a estrutura de lista de material do componente é definida para Referência. Esta ação previne-o de aparecer na lista de material. Ele aparece na vista Modelo de dados, mas não nas vistas Estruturado ou Somente peças. Se o componente está com a supressão anulada. o iLogic retorna o componente ao seu estado antes da supressão (Normal, Inseparável, Adquirido ou Fantasma).
Antes de utilizar uma regra do iLogic para alterar o estado de supressão de um componente de montagem, crie e ative um novo Nível de detalhe personalizado.
Component.IsActive("ComponentName")
É possível utilizar 1 em vez de true e 0 em vez de false.
Para definir o estado de supressão e estrutura de lista de material:
Component.IsActive("PartA:1") = false
Component.IsActive("PartB:1") = 0
Component.IsActive("PartC:1") = false
Component.IsActive("PartD:1") = 0Para ler o estado de supressão e estrutura de lista de material:
MyBooleanParam = Component.IsActive("ComponentName:1)
If Component.IsActive("PartE") Then
' do something
End IfUma variação de Component.IsActive, esta função define ou lê o estado de supressão de um componente do iPart ou iAssembly. Se não alterar manualmente o nome do componente, então iPart e iAssembly requerem o uso desta sintaxe específica.
É recomendado que altere o nome do componente. Se o fizer, será possível então, utilizar Component.IsActive em vez desta função.
Define ou lê a cor de um componente.
Component.Color("iPartA:1") = "Green"
Component.Color("iPartA:2") = "Aluminum (Cast)"
Component.Color("iPartA:3") = "As Material"MyStringParameter = Component.Color("iPartA:1")Define ou lê a visibilidade de um componente. Esta função não altera a estrutura da lista de material do componente.
Component.Visible("componentName")
Component.Visible("Plate") = true
Component.Visible("Bearing") = falseparameter = Component.Visible("Plate")
parameter = Component.Visible("Bearing")If Component.Visible("PartE") Then
do something
End IfEspecifica se um documento de componente é salvo se é alterado e é, então suprimido por uma regra.
Component.SkipDocumentSave = True
Quando definido para True, o documento de componente não é salvo.
O valor padrão é False (Component.SkipDocumentSave = False); o documento de componente é salvo.
Substitui uma peça ou submontagem com outra. Esta função também pode ser utilizada para substituir padrões de componentes.
Utilize iMates em componentes que estão sendo trocados para manter as restrições de montagem intactas. É possível trocar uma peça por uma peça, uma peça por uma montagem ou uma montagem por uma peça.
A função pesquisa em vários diretórios (pastas) pelo arquivo a ser utilizado como uma substituição:
O nome do arquivo pode ser um caminho relativo (em relação a qualquer um destes locais de pesquisa).
Component.Replace(“ComponentToReplaceName”, “OtherPartfilename.ipt”, <replaceAll>)
O nome da peça ou submontagem sendo substituído.
A peça ou submontagem para ser utilizado como a substituição.
Definir este valor booleano para True para substituir todas as instâncias deste componente. Definir o valor para False para substituir somente a instância nomeada única.
If PartType = "Type A" Then
Component.Replace("Widget","PartA.ipt", True)
ElseIf PartType = "Type B" Then
Component.Replace("Widget","PartB.ipt", True)
End IfComponent.Replace (com nível de detalhe especificado)
Esta variação da função Component.Replace substitui um componente em uma montagem com outro componente em um nível de detalhe específico.
Component.Replace("SubAssem:1", "OtherAssemFilename.iam<Level of Detail>", <replaceAll>)
Nesta função, o argumento <substituirTodos> é o mesmo que o descrito para a função Component.Replace mais genérica.
Também é possível substituir uma submontagem com a mesma submontagem em um nível de detalhe diferente.
Necessário para iParts com parâmetros personalizados, esta função também é recomendada para iParts padrão. Utilize em vez de Component.Replace quando o componente é um iPart. É possível utilizar iPart.ChangeRow ou iPart.FindRow após a substituição para alterar a configuração do iPart específico.
Para uma iPart com parâmetros personalizados, liste valores para os parâmetros personalizados após a rowNumber. Os valores devem ser listados na ordem em que são encontrados na tabela.
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber)
Utilize rowNumber para substituir o componente e escolher uma linha de iPart ao mesmo tempo.
Para definir os parâmetros personalizados, repita os valores personalizados em Component.ReplaceiPart e novamente em iPart.ChangeRow ou iPart.FindRow mais tarde na regra.
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2)
iPart.ChangeRow("iPart1:1", rowNumber, customParam1, customParam2)Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2)
i = iPart.FindRow("iPart1:1", "Dia", ">=", 3.0, "r;|", customParam1, customParam2)define o caminho para um nome de componente em uma submontagem. Para especificar o caminho, liste todos os níveis de submontagem na ordem em que aparecem na árvore. Esta função é necessária se deseja especificar um nome de componente quando o mesmo nome também existe em outras partes da montagem.
MakePath(“SubassemblyComponentName”,“PartComponentName”)
Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green”
Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”O iLogic fornece regra de funções para configurar ou receber o iProperties de documentos de peça, montagem e desenho do Inventor. As regras são utilizadas para morph ou modificar projetos em novas configurações, manter os iProperties dos documentos de projeto atualizados. Os iProperties devem estar atualizados para que a lista de materiais esteja certa. As regras também podem ser utilizadas para ler os valores de iProperties de um documento e reagir a eles. Por exemplo, é possível ter uma regra que altera a espessura de uma peça quando a propriedade de material é alterada. Uma regra pode causar alterações se a massa da peça exceder o máximo ou mínimo. Qualquer iProperty que pode ser definido manualmente pode ser definido ou lido utilizando a regra.
Para acessar as funções de iProperty, expanda o nó iProperty na guia Sistema na área de trechos.
iProperties.Value("property tab name", "property name")
Lê ou define um valor de propriedade no documento que contém a regra.
iProperties.Value("filename.ipt", "property tab name", "property name")
Utilizado em uma regra de nível de montagem para acessar o iProperties de uma peça ou submontagem.
Se o nome do arquivo da peça ou submontagem é alterado, o texto da regra também deve ser alterado.
O melhor é utilizar o nome do componente (após personalizá-la) ao invés do nome do arquivo.
iProperties.Value("custom component name", "property tab name", "property name")
Define ou lê os valores de propriedade em um componente. Esta função utiliza o nome do componente ao invés do nome do arquivo. Personalize o nome do componente (alterá-lo em seu nome padrão original) para que ele não altere se a referência de arquivo alterar.
iProperties.Value("Project", "Stock Number") = "302A"MyStringParam = iProperties.Value("Project", "Stock Number")Definir o valor do iProperty padrão:
iProperties.Value("Custom", "Age") = 41 'number type
iProperties.Value("Custom", "Company") = "Autodesk, Inc" 'text type
iProperties.Value("Custom", "Date") = CDate("11/1/2008") ' date type
iProperties.Value("Custom", "Insured") = true 'yes or no typeLer o valor do iProperty padrão:
age = iProperties.Value("Custom", "Age")
company = iProperties.Value("Custom", "Company")
thedate = CStr(iProperties.Value("Custom", "Date"))
insured = iProperties.Value("Custom", "Insured")Work_In_Progress = 1
Pending = 2
Released = 3
iProperties.Value("Status", "Design State") = PendingVersões anteriores de iLogic utilizaram as seguintes funções para pegar os iProperties de peças em montagens:
iProperties.ValueInDoc("filename.ipt", "property tab name", "property name")
Faz referência ao nome do arquivo.
iProperties.ValueInComponent("custom component name", "property tab name", "property name")
Faz referência ao nome do componente.
Embora estas funções não estão disponíveis na área de trechos da caixa de diálogo Editar regra, elas funcionam se forem utilizados em uma regra. Entretanto, a função iProperties.Value é preferível, em vez destas funções mais antigas.
Esta função suporta a utilização do mesmo documento em diferentes versões de idiomas do Autodesk Inventor. Seu modelo é mais portátil quando utilizar nomes em inglês para os materiais e cores em suas regras. Se definir esta função para True, então qualquer função que retorna qualquer nome de material ou cor retorna os nomes em inglês. É possível utilizar nomes no idioma de sua instalação do Autodesk Inventor para definir um nome de material ou cor. Mas é recomendado que utilize nomes em inglês para a consistência. As funções seguintes retornam nomes em inglês quando define o valor iProperties.StylesInEnglish para True:
Define ou lê o material de um documento.
Ao definir o material, utilize o nome de material exato (maiúsculas e minúsculas) como aparece na lista de materiais físicos padrão ativa. Os valores de material são sempre sequências de texto, entre aspas.
iProperties.Material = "Gold"
MyStringParam = iProperties.Material
iProperties.Material(“filename.ipt”)
Define ou lê a cor atual de uma peça. Os valores de cor de peça são sequências de texto entre aspas. Alterar a cor não afeta o valor de material atual.
Esta função funciona somente para peças.
iProperties.PartColor = "Green" iProperties.PartColor = "As Material"
MyStringParam = iProperties.PartColor
Lê ou grava a massa do documento de peça ou montagem contendo a regra.
Se gravar para a massa, ela substitui a massa calculada. Para restaurar o valor calculado, defina a massa para -1.
iProperties.Mass("nome_do_arquivo.ipt")
Lê ou grava a massa de uma peça ou submontagem em uma montagem, especificando o nome do arquivo.
iProperties.Mass("nome do componente:1")
Lê ou grava a massa de um componente em uma montagem, especificando o nome do componente. Esta função também pode ser utilizada para ler ou gravar para a massa de um componente virtual.
MyMassParam = iProperties.Mass
MyMassParam = iProperties.Mass("component:1")
MyMassParam = iProperties.Mass("mypart.ipt")Para definir a massa (substituir cálculo automático):
iProperties.Mass = 3 kg
iProperties.Mass("virtual_component") = 233 g
iProperties.Mass("mypart.ipt") = 4.2 lb
massiProperties.Mass = -1 'set the mass back to automatic calculationLê ou grava o volume do documento contendo a regra.
iProperties.Volume("nome_do_arquivo.ipt")
Lê ou grava o volume da peça ou submontagem contendo a regra, especificando o nome do arquivo.
iProperties.Volume("componente:1")
Lê ou grava o volume de um componente em uma montagem, especificando o nome do componente. Esta função também pode ser utilizada para ler ou gravar para o volume de um componente virtual.
MyVolumeParam = iProperties.Volume
MyVolumeParam = iProperties.Volume("component:1")
MyVolumeParam = iProperties.Volume("mypart.ipt")Para definir o volume (substituir cálculo automático):
iProperties.Volume = 12.4 in^3
iProperties.Volume("virtual_component") = 542 cm^3
iProperties.Volume("mypart.ipt") = 12.8 in^3
iProperties.Volume = -1 'set it back to automatic calculationLê o centro da gravidade do modelo no documento contendo a regra.
pt = iProperties.CenterOfGravity
pt é do tipo Inventor.Point, que é descrito na Ajuda para Inventor API. É possível ler os valores X, Y e Z do ponto, expresso nas unidades do documento de regra:
cx = pt.X cy = pt.Y cz = pt.Z
pt = iProperties.CenterOfGravity ("componente")
Lê o centro da gravidade de um componente em uma montagem, especificando o nome do componente.
funções de vínculo de dados do Excel
O iLogic fornece funções de regra para ler e escrever para documentos da planilha do Excel ® da Microsoft. Para acessar as funções de Vínculo de dados do Excel, expanda o nó Vínculos de dados do Excel na guia Sistema na área de trechos.
Dois tipos de funções de vínculo de dados do Excel estão disponíveis:
Para ler e gravar para outros formatos de arquivo, adicione o código VB.NET personalizado às suas regras.
Utilize a função dedicadaThisBOM.Export para exportar uma montagem Lista de material para o Microsoft® Excel e outros formatos.
Especifique o arquivo do Excel
É possível inserir dados do Microsoft® Excel ou vinculá-lo em um documento do Autodesk Inventor, ou mantê-lo como um arquivo externo. As funções necessitam de um nome do arquivo ou de uma especificação de um arquivo vinculado ou incorporado do Excel.
Para um nome do arquivo, é possível especificar um caminho relativo ou absoluto. No entanto, utilizar caminhos absolutos pode tornar difícil enviar o modelo para outro usuário em um computador diferente. Se um caminho não é especificado, iLogic supõe que o documento do Excel está na mesma pasta que o documento do Inventor atual. Um caminho relativo é interpretado como relativo para a pasta contendo o documento do Inventor.
O iLogic também pesquisa pelo arquivo no projeto caminho de espaço de trabalho. É possível utilizar um caminho relativo no projeto caminho de espaço de trabalho.
As extensões de nome do arquivo suportadas incluem .xls, .xlsx, .xlsm, e .xlsb.
Também é possível especificar uma planilha vinculada ou incorporada ao invés de um nome do arquivo. Utilize a sintaxe 3rd Party:Embedding# para planilhas incorporadas.
Utilize a sintaxe 3rd Party:LinkedName.xls para planilhas vinculadas. Especifique o nome que é exibido na árvore de modelo do Autodesk Inventor, em Terceira pessoa.
Se utilizar uma tabela incorporada, incorpore-a utilizando Vínculo na caixa de diálogo Parâmetros. Não altere o nome de tabela incorporada do nome padrão dado a ela pelo Autodesk Inventor (por exemplo, Incorporando 1). GoExcel exige o nome original.
Para vincular um arquivo, clique na 
ou utilize a opção vínculo na caixa de diálogo Parâmetros.
Pesquisa por uma linha com base em um ou mais critério de valor de coluna.
GoExcel.FindRow("filename", "sheetname", "first column title", "operator", value to look for, "second column title", "operator", value to look for, "third column title",...)
Especifica o arquivo de dados.
A folha no documento do Excel contendo a tabela a ser pesquisada. A folha pode ser qualquer folha existente.
O título da primeira coluna na tabela a ser pesquisada. Os títulos de coluna geralmente são inseridos na linha 1, começando na coluna A.
Encontre uma linha com um valor na coluna que é menor ou igual ao valor especificado.
Encontre uma linha com um valor de coluna maior ou igual ao valor especificado.
Encontre uma linha com um valor de coluna numérico ou de texto igual ao valor especificado.
Um valor de coluna numérico ou de texto que pode ser especificado com um valor explícito, um parâmetro ou uma variável local.
O título da segunda coluna na tabela a ser pesquisada.
Encontre uma linha com base em vários critérios.
O número de linha (um inteiro) que corresponde ao critério de pesquisa. O valor é -1 se uma linha correspondente não é encontrada.
Requerimentos da tabela do Excel
Esses exemplos definem o valor da variável de parâmetro i para o número da linha na tabela. Dia é igual a 0.2 e Len é maior que ou igual a 4.1. O primeiro exemplo faz referência a uma planilha externa e o segundo exemplo faz referência a uma planilha incorporada.
i = GoExcel.FindRow("mytable.xls", "Sheet1", "Dia", "=", 0.2, "len", ">=",4.1)i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "Dia", "=", 0.2, "len",">=", 4.1)
Nestes exemplos, as linhas 5, 6, e 7 correspondem a condição que Dia=.2. Entretanto, somente a linha 7 corresponde aos dois critérios que Dia=.2 e len>=4.1.
Lê um valor da linha encontrada utilizando a função GoExcel.FindRow.
GoExcel.CurrentRowValue("column name")
O nome de título da coluna para o valor da célula para recuperar da linha atual.
O valor da célula da coluna da linha atual, encontrada anteriormente com a função GoExcel.FindRow.
Retorna uma mensagem de erro se a coluna não for encontrada.
i = GoExcel.FindRow("iLogic_SCHS.xls", "Sheet1", "thread_diameter", "=", Screw_Size, "screw-length", ">=",
screw_length_required)
thread_diameter = GoExcel.CurrentRowValue("thread_diameter")
screw_length = GoExcel.CurrentRowValue("screw_length")
head_diameter = GoExcel.CurrentRowValue("head_diameter")
head_thickness = GoExcel.CurrentRowValue("head_thickness")
socket_size = GoExcel.CurrentRowValue("socket_size")
thread_pitch = GoExcel.CurrentRowValue("thread_pitch")Lê ou grava valores para células de planilha.
GoExcel.CellValue("filename", "sheetname", "cellnumber")
Veja Especificar o arquivo do Excel
Nome da folha no documento do Excel que contém a célula alvo. A folha pode ser qualquer folha existente.
Endereço de célula para ler ou gravar para (como "A7" ). Também é possível especificar um intervalo nomeado no âmbito da planilha.
Requerimentos do formato da tabela do Excel
Os valores de célula podem ser numéricos ou de texto.
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")Gravar para uma planilha embutida:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_radhead_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5")
message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")Gravar para uma planilha externa:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World"
GoExcel.SaveGoExcel.CurrentCellValue, GoExcel.CellValue
Lê a partir do ou grava para um endereço de célula em uma planilha subsequente ao uso da função GoExcel.CellValue ou GoExcel.Open. Esta função utiliza o arquivo e a folha abertos anteriormente.
GoExcel.CurrentCellValue("cellnumber")
GoExcel.CellValue("cellnumber") (without specifying a filename and sheet name)
Endereço de célula ou intervalo nomeado do valor da célula para ler a partir da ou gravar para a planilha atual.
O valor da célula do número da célula especificada.
Leia uma série de células de uma planilha única:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1")
head_thick = GoExcel.CellValue("B1")
pin_length = GoExcel.CellValue("C1")
shaft_rad = GoExcel.CellValue("D1")Grave para uma série de células em um documento de planilha:
GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") = head_rad
GoExcel.CellValue("B1") = head_thick
GoExcel.CellValue("C1") = pin_length
GoExcel.CellValue("D1") = shaft_rad
GoExcel.SaveFunciona como a função CellValue. Ao invés de um endereço de célula, especifique um intervalo de nome definido no livro de trabalho do Excel. O nome deve ser um nome de dentro do livro de trabalho, e o intervalo deve estar confinado a uma única célula. É possível acessar intervalos nomeados da planilha ampliada utilizando a sintaxe CellValue padrão, utilizando o nome ao invés de um endereço de célula.
Utilize GoExcel.CellValue ou GoExcel.Open para abrir o arquivo do Excel antes de utilizar NamedRangeValue em uma regra.
Abre a planilha especificada do Excel e opcionalmente ativa uma planilha nomeada. É possível então utilizar funções como GoExcel.FindRow e GoExcel.CellValuepara extrair informações da ou modificar a planilha.
GoExcel.Open("filename", “sheetname”)
Veja Especificar o arquivo do Excel
Nome da folha no documento do Excel para ativar. A folha pode ser qualquer folha existente.
Arquivo do Excel não localizado.
Quando não está especificado nome da folha, "Folha1" é suposto.
GoExcel.Open("Spreadsheet.xls")Uma planilha diferente também pode ser especificada.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")Salva o documento do Excel atual. Utilize esta função se modificou células com as funções GoExcel.CellValue ou GoExcel.CurrentCellValue.
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!"
GoExcel.CellValue("A2") = 5.42
GoExcel.SaveEsta função serve a dois propósitos:
Ler a partir de uma planilha do Excel
É possível ler a partir de um intervalo de células orientado verticalmente. A função lê valores começando na primeira célula e continua para baixo até que a segunda célula especificada na função seja alcançada.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")Se uma sequência vazia ("") substitui o endereço da segunda célula, comece a ler no endereço da primeira célula e continue para baixo até que uma célula vazia seja encontrada.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")É possível ler a partir de um intervalo de células orientado horizontalmente.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")Se a planilha foi referenciada anteriormente na regra, também é possível omitir o nome do arquivo e nome da folha:
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")Gravar para uma planilha do Excel:
É possível gravar valores para um intervalo de células orientado verticalmente. A função grava valores começando na primeira célula e continua para baixo, gravando valores até que a segunda célula especificada na função seja alcançada.
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")É possível gravar valores para um intervalo de células orientado verticalmente. Se uma sequência vazia ("") substitui o endereço da segunda célula, o iLogic utiliza tantas células quantas forem necessárias para conter todos os membros da lista de multi valores:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")É possível gravar valores para um intervalo de células orientado horizontalmente.
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")Se a planilha foi referenciada anteriormente na regra, também é possível omitir o nome do arquivo e nome da folha:
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")Utilizado antes GoExcel.FindRow para especificar o número da linha na planilha que contém os nomes de coluna. O número de linha padrão é 1. Altere este valor se tiver linhas extras acima da sua linha de nome da coluna.
GoExcel.TitleRow = 2
Utilizado antes da função GoExcel.FindRow para especificar o nome da primeira linha na planilha que contém os dados. O número padrão da linha é 2.
A linha em que os dados se iniciam.
O valor padrão de 2 indica que os dados iniciam na linha 2 e segue uma linha de título:
GoExcel.FindRowStart = 2
Se tiver duas linhas de título, adicione a seguinte declaração à regra antes do argumento contendo GoExcel.FindRow:
GoExcel.FindRowStart = 3
Fornece acesso das regras do iLogic para a operação Alterar origem.
Esta função substitui uma planilha do Excel que atualmente está conduzindo o modelo com outra planilha. Os valores contidos na nova planilha, então, conduzem as cotas do modelo.
changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName)
Porção do nome da planilha para substituir.
partialOldName pode ser uma sequência vazia "" para corresponder ao primeiro arquivo do Excel vinculado. Muitas vezes, uma peça ou montagem tem apenas um arquivo do Excel.
O nome da nova planilha inteira, que pode ser um nome do arquivo absoluto ou relativo.
If size = "small" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe"," smallpipe.xlsx")
ElseIf size = "medium" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe", "mediumpipe.xlsx")
ElseIf size = "large" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe", "largepipe.xlsx")
End IfUtilizado com a função GoExcel.FindRow para pesquisar por um valor em um intervalo ao invés de um valor exato. A tolerância padrão é 0,0000001 e não é dependente de unidades de documento.
GoExcel.Tolerance = <tolerance>
Defina uma tolerância maior para expandir o intervalo de valores aceitáveis.
A declaração é utilizada para pesquisar da seguinte forma:
GoExcel.Tolerance = 0.001
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)A declaração se torna equivalente a seguinte pesquisa sem tolerância:
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)Previne a exibição de caixas de diálogo de prompts do Excel.
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.
iPart.ChangeRow("iChangedComponentName:1", "memberName")
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.
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)
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 IfPesquisa 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.
i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=", 4.1,"|",customParam1,customParam2)
i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)
Uma variável local que pode ser utilizada para testar se uma linha válida é encontrada.
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.
A coluna para pesquisar na tabela iPart. Utilize o nome de cabeçalho de coluna exatamente como aparece na tabela de iPart.
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 a 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.
d0 = iPart.CurrentRowValue("columnName")
Qualquer um dos seguintes define a linha atual:
iPart.FindRow ou iPart.ChangeRow.
O nome da coluna de tabela do iPart que deseja.
Neste exemplo, pesquisamos pela Port_Size coluna da 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.
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)
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.
iPart.RowName("iChangedComponentName:1")
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.
iPart.RowNumber("iChangedComponentName:1")
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.
Defina uma tolerância maior para expandir o intervalo de valores aceitáveis.
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.
Utilize as funções de iFeature para escolher uma linha em uma iFeature com base em tabela. Cada linha tem um conjunto de valores parâmetros para conduzir a iFeature.
As funções iFeature trabalham dentro de uma peça em que a iFeature é inserida (instanciada). Sua sintaxe é como a sintaxe utilizada para as funções GoExcel e iPart.
Para acessar as funções de iFeature, expanda o nó iFeature na guia Sistema na área de trechos.
Altera a linha ativa de uma iFeature com base em tabela.
iFeature.ChangeRow("iFeatureName", "rowName")
O nome da iFeature como exibido na árvore de modelo.
O valor desejado do parâmetro chave na tabela de iFeature.
Se a iFeature possui mais de um parâmetro chave, especifique todos em uma sequência de texto da forma [Key1=Value1][Key2=Value2]. Por exemplo:
[Size=A0][CutLength=0.4375000 in]
Este exemplo é a propriedade iFeatureTableRow.MemberName, como descrito na documentação API do Inventor. Para uma maneira alternativa para especificar vários valores de parâmetros, utilize iFeature.LocalizarLinha.
Também é possível utilizar um número de linha inteiro:
iFeature.ChangeRow("iFeatureName", rowNumber)
Neste exemplo, a configuração de iFeature atual é alterada com base em uma declaração condicional que avalia size, que é um parâmetro de texto. iFeature.ChangeRow requer apenas o nome do componente iFeature RectangularPocket1 e o nome Key Columnda tabela de iFeature "Pocket-01" para conduzir a configuração de parâmetro ativa:
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 IfPesquisa por uma linha com base em um ou mais critério de valor de coluna. Se ela encontra uma linha, ela altera a linha ativa da iFeature para aquela linha.
i = iFeature.FindRow("iFeatureName", "columnName", "<=", 0.2, "columnName", "<=", 4.1)
O nome da tabela com base em iFeature.
O título da coluna a ser pesquisada.
O valor pode ser um valor numérico ou uma sequência de texto. Pode ser especificada utilizando um valor, parâmetro ou variável local explícito.)
iFeature.CurrentRowValue(“columnName”)
Lê o valor da linha encontrada utilizando a função iFeature.FindRow, onde "columnName" é o nome do título da coluna. Ele retorna o valor da célula do valor da célula atual retornado pela função iFeature.FindRow. Por exemplo:
i = iFeature.FindRow("RectangularPocket1", "pocketdepth", "=", 0.250)
pocketlength = iFeature.CurrentRowValue("pocketlength")
pocketwidth = iFeature.CurrentRowValue("pocketwidth")Se a coluna não existe na iFeature, a regra exibe uma mensagem de erro.
iFeature.CurrentRowStringValue("columnName")
Utilize esta função quando a entrada sendo procurada na tabela de iFeature é uma sequência de texto. Por exemplo:
Part_number = iFeature.CurrentRowStringValue("Part Number")Utilizado com a função iFeature.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.
Defina uma tolerância maior para expandir o intervalo de valores aceitáveis.
iFeature.Tolerance = 0.001
i = iFeature.FindRow("insertpocket", "pocketlength", "=", 2.0)Este exemplo corresponde a uma linha com um valor pocketlength de 2,0004.
Funções de restrições de montagem
O iLogic fornece funções de regra para conduzir o estado de supressão de restrições de montagem. Estas funções são úteis quando definir configurações de nível de montagem com regras de iLogic.
Por exemplo, suponha que esteja definindo posições alternativas para um componente em uma montagem. É possível definir todas as coincidências necessárias para restringir o componente em cada localização. Então, é possível utilizar uma regra para suprimir e anular a supressão das coincidências conforme necessário para mover o componente em cada configuração.
O Autodesk Inventor não permite restrições que entram em conflito. Criar as restrições para uma posição de um componente, e seguida, suprimi-los manualmente antes de criar conjuntos de restrições adicionais para posições de componente alternativo. Depois de ter criado todas as restrições necessárias para posicionar o componente para cada configuração, é possível gravar as regras que escolhe entre as restrições.
Para acessar as funções de restrição, expanda o nó Restrição na guia Sistema na área de trechos.
Define ou lê o estado de supressão de uma restrição de montagem de alto nível.
Atribua para cada restrição referenciada em uma regra um nome personalizado único:
Se alterar manualmente o estado de supressão de uma restrição, não causa regras que fazem referência a ele para ativar automaticamente.
Constraint.IsActive(“SubAssem.iam”, “Mate:1”)
Definir o estado de supressão:
If ConfigStyle = “A” Then
Constraint.IsActive("MateLeftSide:1") = true
Constraint.IsActive("MateRightSide:2") = false
ElseIf ConfigStyle = “B” Then
Constraint.IsActive("MateLeftSide:1") = false
Constraint.IsActive("MateRightSide:2") = true
End IfIf Constraint.IsActive("MateLeftSide:1") Then (Do something)Definir ou ler o estado da supressão de uma restrição em uma montagem (especifique o nome do arquivo de submontagem e o nome da restrição):
Constraint.IsActiveInDoc("SubAssem.iam", "Mate:1")Para copiar e renomear todos os arquivos em uma montagem enquanto mantém todas as regras intactas, utilize Constraint.IsActiveInComponent e especifique um nome de submontagem ao invés de nome do arquivo.
Definir utilizando nome de submontagem:
If ConfigStyle = “A” Then
Constraint.IsActiveInDoc("SubAssem.iam", “LeftMate”) = true
Constraint.IsActiveInDoc("SubAssem.iam", “RightMate”) = false
ElseIf ConfigStyle = “B” Then
Constraint.IsActiveInDoc("SubAssem.iam", “LeftMate”) = false
Constraint.IsActiveInDoc("SubAssem.iam", “RightMate”) = true
End IfLer utilizando nome de submontagem:
Constraint.IsActiveInDoc("SubAssem.iam",”LeftMate”) = true then (Do something)Suprime ou anula uma supressão uma definição de iMate.
Constraint.iMateDefIsActive(“iMate:1”) = False
Suprime a definição de iMate com o nome iMate:1 no documento de regra atual. O resultado é o mesmo que suprimi-lo com o menu de contexto na interface do usuário. Enquanto suprimida, a definição de iMate não está disponível para fins de coincidência.
Constraint.iMateDefIsActive(“SubAssem:1”,“iMate:1) = False
Suprime a definição de iMate com o nome iMate:1, no componente SubAssem:1.
Constraint.iMateDefIsActive(PartA:1”,“iMate:1”) = True
Anula a supressão da definição de iMate com o nome iMate:1, na peça de componente PartA:1.
Utilize as funções de medição para localizar e retornar valores para cotas de distância, ângulo, área, perímetro e extensões.
Para acessar as funções de medição, expanda o nó Medição na guia Sistema na área Trechos.
É possível medir a distância ou ângulo entre duas (ou três para ângulo) entidades. Especifique as entidades em cada extremidade da medição pelo nome. Um nome pode se referir a:
As entidades podem estar na mesma peça ou montagem ou em componentes diferentes dentro da montagem.
Também é possível medir entre dois componentes em uma montagem, encontrando os pontos mais próximos de cada componente e relatando a distância entre eles.
Inclua as funções RuleParametersOutput e InventorVb.DocumentUpdate() (nesta ordem) antes das funções de medição em uma regra. A utilização destas funções garante que a função de medição está analisando uma versão atualizada do modelo do Inventor.
Mede a distância mínima entre dois pontos, planos ou eixos. A função também pode medir a distância entre um plano e um ponto, um plano e um eixo ou um ponto e um eixo.
Measure.MinimumDistance("entityName1","entityName2")
distance = Measure.MinimumDistance("Work Point1", "Work Point2")
(1) Ponto de referência1 (2) Ponto de referência2
distance = Measure.MinimumDistance(“Work Point1”, “Work Axis1”)

(1) Ponto de referência1 (2) Eixo de referência1
distance = Measure.MinimumDistance("Work Axis1", "Work Axis2")
(1) Eixo de referência1 (2) Eixo de referência2
distance = Measure.MinimumDistance(“Work Plane1”, “Work Plane2”)

(1) Plano de referência1 (2) Plano de referência2
Measure.MinimumDistance("componentName1", "entityName1", "componentName2", "entityName2")
Mede a distância entre entidades dentro de dois componentes em uma montagem. Estas entidades podem ser pontos, planos ou eixos.
Por exemplo, para medir a distância entre planos em dois componentes em uma montagem:
distance = Measure.MinimumDistance(“Wheel1”, “Workplane1”, “Wheel2”, Workplane2”)

(1) Círculo1 Plano de referência1 (2) Círculo2 Plano de referência2
Measure.MinimumDistance("componentName1", "componentName2")
Mede a distância mínima entre os dois componentes de uma montagem. Ele olha para os componentes como um todo, e encontra os pontos mais próximos em qualquer localização nos componentes, como mostrado nos exemplos a seguir:
distance = Measure.MinimumDistance("partA:1", "partB:1")
distance = Measure.MinimumDistance("Wheel1", "Wheel2")
(1) Círculo1 (2) Círculo2
Utilize cautela ao medir eixos não paralelos!
Suponha que sua montagem consiste de dois blocos. O ângulo entre as faces dos blocos é de 60 graus. Cada bloco tem um furo no lado de frente para o outro bloco. O eixo destes dois furos são linhas coplanares não paralelas que efetuam a interseção. A sua função é gravada como:
distance = Measure.MinimumDistance("Block1","Axis1","Block2","Axis1")É possível esperar que a medida a ser feita como se as linhas tivessem um comprimento infinito, o que resultaria em uma distância de zero. Entretanto, quando a funçãoMeasure.MinimumDistance é utilizada, a distância é medida dos pontos de extremidades dos dois marcadores utilizados para representar a localização dos eixos. Portanto, a medição é feita sobre as linhas do infinito, e o valor retornado é 1,36 polegadas.

(1) Eixo1 (2) Bloco1 (3) Eixo2 (4) Bloco2
Para produzir um valor diferente, é possível estender as linhas manualmente representando os eixos dos furos. A função Measure.MinimumDistance agora retorna um valor de 0 polegadas, como esperado para linhas que efetuam a interseção.

(1) Bloco1 (2) Eixo1 (3) Eixo2 (4) Bloco2
Mede o ângulo entre duas entidades ou como definido por três pontos.
ângulo = Measure.Angle("entityName1", "entityName2")
Mede o ângulo entre duas entidades em uma peça ou montagem. Pode medir o ângulo entre dois eixos, dois planos ou um eixo e um plano. As entidades podem ser operações de referência ou iMates.
ângulo = Measure.Angle ("componentName1", "entityName1", "componentName2", "entityName2")
Mede o ângulo entre duas entidades em dois componentes no nível de montagem. Pode medir o ângulo entre dois eixos, dois planos ou um eixo e um plano.
ângulo = Measure.Angle("point1", "point2", "point3")
Mede o ângulo definido por três pontos. Este valor é equivalente ao ângulo entre duas linhas:
Neste caso, "point2" é o vértice do ângulo. Por exemplo:
angle = Measure.Angle("Work Point1", "Work Point2", "Work Point3")
(1) Ponto de trabalho1 (2) Ponto de trabalho2 (vértice) (3) Ponto de trabalho3
angle = Measure.Angle("componentName1", "point1", "componentName2", "point2", "componentName3", "point3")Mede o ângulo definido por três pontos. "point2" define o vértice do ângulo. Cada ponto pode estar em um componente diferente.

(1) Ponto de trabalho1 Componente1 (2) Ponto de trabalho2 Componente 2 (vértice do ângulo) (3) Ponto de trabalho3 Componente3 (4) 74,02 graus
Mede a área de um esboço. Esta função mede a soma das áreas das regiões delimitadas pelos perfis fechados em um esboço.
Para um perfil fechado único, a função calcula a área delimitada pelo perfil:

Área: 3,14 = m². pol.
Se o esboço contém vários perfis fechados, a função calcula a soma das áreas delimitadas pelo perfil:

Área:6,28 = m². pol.
Se os perfis fechados efetuam a interseção, então a função calcula a soma das áreas delimitadas, independentemente se as áreas se sobreponham:

Área:6,28 = m². pol.
Se o esboço contém vários perfis, com um dos perfis completamente contido no outro, a função Measure.Area retorna a diferença entre as duas áreas:

Área: 1,37 = m². pol.
Measure.Perimeter("SketchName")
Mede a soma dos perímetros do perfil fechado em um esboço. Para um esboço contendo um perfil fechado único, esta função calcula o comprimento do perímetro do perfil.
size = Measure.Perimeter("Sketch1")
Para um esboço contendo um perfil fechado único, esta função calcula o comprimento do perímetro do perfil.

Perímetro: 6 polegadas
Para um esboço contendo vários perfis fechados de não-interseção, a função calcula a soma dos comprimentos de todos os perímetros de perfil.

Perímetro: 9 polegadas
Para um esboço contendo vários perfis fechados de interseção, a função calcula a soma dos comprimentos de todos os perímetros de perfil.

Perímetro: 12 polegadas
Mede as cotas de X, Y ou Z das extensões em uma peça ou montagem. As extensões podem ser maiores do que as cotas exatas do modelo ao longo daquele eixo, especialmente se há formas curvas.
Mede a extensão X (ao longo do eixo vermelho) do modelo.
funções de operação de referência
Utilize as funções de operação de referência para modificar operações de trabalho existentes.
Para acessar as funções de operação de referência, expanda o nó Operação de referência na guia Sistema na área Trechos.
Condicionalmente inverte o vetor normal de um plano de referência. Esta ação inverte o plano de referência. Se um esboço é construído sobre o plano, ele também será invertido. Esta função pode ser utilizada para alterar uma operação de canhoto para destro. É mais útil para um plano de extrusão médio. A função não inverte o normal toda vez que utilizá-lo, em vez disso, ele garante que o normal está na direção que deseja. A função inverte o normal se não estiver "de acordo" com o eixo que especificou.
WorkPlane.FlipNormal(“workPlaneName”, “axisWanted”)
O nome do plano de referência a ser invertido.
O nome de eixos de uma peça, opcionalmente prefixados com um sinal negativo (-) para indicar a direção. Esta convenção fornece à função a direção aproximada para o normal de plano. Se o plano não está exatamente alinhado a um eixo no modelo, utilize o eixo mais próximo ao normal de plano desejado. Alinhamento dentro dos limites de 60 graus é aceitável.
WorkPlane.FlipNormal("Work Plane1", "X")WorkPlane.FlipNormal("Work Plane1", "-X")WorkPlane.FlipNormal("Work Plane1", "Y")WorkPlane.FlipNormal("Work Plane1", "-Y")WorkPlane.FlipNormal("Work Plane1", "Z")WorkPlane.FlipNormal("Work Plane1", "-Z")Redefine um esboço utilizando entradas alternativas. Esta função é mais eficaz para esboços auto-contidos que não contém qualquer geometria projetada. Restringir toda a geometria de esboço para a origem ou para um dos eixos de esboço, utilizando restrições de coincidência ou fixa ou cotas.
Esta função requer nomes como entradas, portanto, defina o esboço utilizando itens nomeados:
Sketch.Redefine(sketchName, planeName, originName, axisName, AxisIsX := True, NaturalAxisDirection := True )
Nome de uma entidade para utilizar como plano de esboço.
Nome de uma entidade para utilizar como ponto de origem do esboço.
Nome de uma entidade para utilizar como eixo de esboço (eixos X ou Y).
O valor padrão de True indica que o eixo de esboço especificado por axisName é o eixo X (horizontal). False indica que o eixo é o eixo Y (vertical).
O valor padrão de True indicates que o eixo de esboço está na mesma direção que a entidade axisName. False indica que o eixo de esboço está na direção oposta.
Utilize as funções de caixa de mensagem para criar caixas de mensagem e caixas de entrada de dados em uma regra.
MessageBox.Show e InputBox são funções de VB.NET padrão. Consulte sua documentação do VB.NET para mais informações.
MessageBox.Show é uma versão do VB.NET da função MsgBox do VB6 e VBA. Ainda é possível utilizar MsgBox nas regras de iLogic.
InputListBox e InputRadioBox são funções de iLogic.
Para acessar as funções de caixa de mensagem, expanda a caixa de mensagem na guia Sistema na área de trechos.
É possível utilizar o assistente de caixa de mensagem a partir da caixa de diálogo Adicionar regra para ajudá-lo a gravar código para uma caixa de mensagem.
Age como a base para funções de caixa de mensagem em iLogic. Utilize esta função para mostrar uma caixa de mensagem.
MessageBox.Show("Message", "Title")
Os conteúdos da área de texto da caixa de mensagem.
Os conteúdos da barra de título da caixa de mensagem.
É possível especificar os botões incluídos em uma caixa de mensagem utilizando o parâmetro MessageBoxButtons para especificar os valores na função MessageBox.Show.
MessageBox.Show("Message",'"Title", MessageBoxButtons.OK)Esta opção fornece uma simples caixa de mensagem com o botão Ok:

MessageBox.Show("Message",'"Title", MessageBoxButtons.OKCancel)MessageBox.Show("Message",'"Title", MessageBoxButtons.RetryCancel)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNo)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel)MessageBox.Show("Message",'"Title", MessageBoxButtons.AbortRetryIgnore)É possível adicionar um ícone a uma caixa de mensagem incluindo o parâmetro MessageBoxIcon na função MessageBox.Show.
MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Error)Esta opção adiciona um ícone de erro a caixa de mensagem:

MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.None)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning)É possível especificar o botão da caixa de mensagem para selecionar quando a caixa de mensagem é exibida pela primeira vez. Para especificar o botão, inclua o parâmetro MessageBoxDefaultButtonna função MessageBox.Show. Escolha entre os três botões em potencial na caixa de mensagem, dependendo do valor MessageBoxButtons utilizado.
MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2)Esta opção especifica que o segundo botão (Não) é selecionado por padrão:

MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button3)Cria uma caixa de mensagem que solicita para e aceita entrada.
myparam = InputBox("Prompt", "Title", "Default Entry")
Mensagem para aparecer na caixa.
Texto para aparecer na barra de título da caixa.
Texto para exibir no campo de entrada da caixa.

Exibe a caixa de mensagem com uma lista de valores disponíveis. Quando um valor é selecionado da lista, a função retorna aquele valor.
d0 = InputListBox("Prompt",MultiValue.List("listName"), defaultEntry, Title := "Dialog Title", ListPrompt := "List Prompt")
Mensagem para aparecer acima do botão Ok na caixa.
Nome da lista multi valores para utilizar.
Valor inicialmente selecionado na caixa de lista.
Texto para aparecer na barra de título.
Texto para aparecer acima da lista na caixa.
Valor da lista que estava selecionado.
material = InputListBox("Choose Part material", MultiValue.List("material"), _
material, Title := "Part material", ListName := "Available Standard materials")
Exibe uma caixa de mensagem que solicita para uma das duas opções disponíveis.
booleanResult= InputRadioBox("Prompt", "Button1 Label", "Button2 Label", booleanParam, Title :="Title")
Mensagem para aparecer na caixa.
Mensagem para aparecer para a primeira opção.
Mensagem para aparecer para a segunda opção.
Especifique Truepara selecionar a primeira opção ou False para selecionar a segunda opção.
O texto para aparecer na barra de título da caixa.
Verdadeiro se a primeira opção está selecionada, Falso se a segunda opção está selecionada.
booleanParam= InputRadioBox("Choose an Edge Treatment option", "Chamfer", "Fillet", true, Title :="Edge
Treatment")
Utilize as funções de documento para acessar documento de peça, montagem ou desenho do Inventor. As funções de documento permite que execute tarefas como obter o nome do arquivo e atualizar o modelo.
Em funções de documento, ThisDoc se refere ao documento do Autodesk Inventor onde a regra é gravada. Ele é muitas vezes o documento ativo, mas também pode ser uma peça dentro de uma montagem. Aonde quer que a regra esteja armazenada, ThisDoc fornece acesso àquele documento.
Para acessar as funções de documento, expanda o nó Documento na guia Sistema na área de trechos.
Retorna o nome do arquivo do documento.
A extensão de arquivo não está incluída quando False é fornecido como um argumento. Se deseja a extensão de arquivo, substitua True como o argumento.
Retorna o caminho e nome do arquivo do documento.
ThisDoc.PathAndFileName(False)
A extensão de arquivo não está incluída quando False é fornecido como um argumento. Para incluir a extensão de arquivo, substitua True dentro dos parênteses.
Retorna o caminho (nome da pasta) do espaço de trabalho do projeto de Autodesk Inventor ativo Se não há espaço de trabalho definido, esta função retorna uma sequência vazia (uma sequência sem caracteres, com comprimento = zero). Se não há espaço de trabalho definido, esta função retorna uma sequência vazia (uma sequência sem caracteres, com comprimento = zero).
Inicia um arquivo com base no caminho e nome do arquivo (incluindo extensão) fornecido. Se um arquivo de dados é especificado, ele abre no seu aplicativo nativo. Se um arquivo executável (.exe) é especificado, ele executa o programa. Se não especificar um caminho completo, o iLogic procura pelo arquivo na mesma pasta que o documento do Inventor. Também é possível especificar um nome relativo e caminho para a pasta de documento.
Salva o documento ativo atualmente. Esta função não funciona em uma regra desencadeada por um evento de alteração de parâmetro.
Atualiza o documento onde a regra está dentro, depois que a regra (e qualquer regra que ele desencadear) acaba de ser executada. Esta atualização é a mesma que clicar no botão Atualizar na interface do usuário.
Se sua regra alterou qualquer valor de parâmetro, esta função aplica novos valores de regra ao modelo do Inventor. Se esta função não é utilizada, as regras não são aplicadas até que a regra acabe de ser executada. Utilize esta função se precisar executar uma atualização utilizando DocumentUpdate. Utilize também esta função se estiver utilizando a função iLogicVb.RunRule, para que as outras regras obtenham novos valores dos parâmetros.
Executa uma atualização imediata no documento atual (o documento onde se localiza a regra) e atualiza a exibição. Utilize esta função se necessitar que a geometria seja reconstruída (por exemplo, está calculando a massa utilizando iProperties.Mass). Se a regra executa outras regras (alterando os parâmetros), ative a opção Regras dependentes de execução imediatamente para a regra na caixa de diálogo Editar Regra. Esta opção assegura que as outras regras já acabaram de ser executadas quando executar a atualização.
Executa uma atualização imediata no documento atual (o documento onde se localiza a regra) sem atualizar a exibição do documento. A função InventorVb.DocumentUpdate atualiza a exibição ao mesmo tempo que o modelo. Se não quiser que a exibição atualize, utilize esta função em vez disso.
Verifica os valores de parâmetros mas não altera nenhum valor.
Utilize esta função em situações como a seguinte:
Suponha que os seus parâmetros estão vinculados a uma peça de base, e na peça de base eles estão vinculados a uma planilha externa. É possível alterar os valores dos parâmetros na planilha e salvá-la sem estas alterações aparecendo na peça principal. Utilize esta função em uma regra na peça principal antes de utilizar GoExcel para alterar valores na planilha. Esta função garante que a peça base é carregada (no plano de fundo) e que as alterações se propaguem até a peça principal da montagem.
O iLogic fornece diversas variações de uma função que pode ser utilizada para executar outras funções. Normalmente, é possível alterar um parâmetro em uma regra para desencadear a regra. Esta função é útil para regras sem parâmetros, ou regras sinalizadas com a opção Não executar automaticamente.
Para acessar estas funções, expanda o nó Executar outro na guia Sistema na área de trechos.
Executa outra regra especificando somente o nome da regra. Utilize esta função para regras como geradores de relatório que não afetam o modelo, mas podem se referir a muitos parâmetros. É possível executar qualquer regra com esta função.
iLogicVb.RunRule(“Rule0”)
Executa outra regra armazenada em um componente em uma montagem.
iLogicVb.RunRule(“componentName”, “ruleName”)
iLogicVb.RunRule("PartA:1", "Rule0")Para outras funções listadas na categoria Executar outro da área Trechos, veja "Funções API avançadas” e "Programação de regras avançado".
Executa uma regra externa de uma regra padrão em um documento do Autodesk Inventor.
iLogicVb.RunExternalRule("ruleFileName")
Especifica o nome do arquivo de regra, com ou sem a extensão de arquivo. Também é possível especificar um caminho de arquivo aqui, embora possa afetar a portabilidade do arquivo. O iLogic procura pelo arquivo de regra nas seguintes pastas, na ordem listada:
Os nomes de arquivo de regras podem ser nomes de caminho relativos, com base em qualquer uma destas pastas.
As regras externas são executadas a partir de uma outra regra, não é necessário exibir no navegador de regra, no entanto, para editar a regra, adicione-o ao navegador da regra.
iLogicVb.RunExternalRule("color_by_vendor")Executa uma macro Básico de visualização para aplicativos do Inventor (VBA). As macros podem ser armazenados no documento ou em arquivos de .ivb separados. Utilize Alt + F11 para abrir o editor VBA da Microsoft e visualizar os macros disponíveis e para carregar ou editar os macros. Se a macro requer argumentos, adicione-os após o nome da macro.
É possível chamar uma função VBA, mas não é possível receber um valor de retorno.
InventorVb.RunMacro(“projectName”, “moduleName”, “macroName”)
InventorVb.RunMacro ("DocumentProject", "Module1", "DrawCustomLines" )
InventorVb.RunMacro ("ThreadMacros", "Module1", "ThreadsInit" )
InventorVb.RunMacro ("ThreadMacros", "Module1", "AddThreads", "3/8-16 UNC")Utilize as funções de lista de material para executar operações na lista de material em uma montagem.
É possível substituir a quantidade de componente calculado mostrado na lista de material Também é possível exportar dados da lista de material para formatos do Excel e outros. Também é possível exportar dados da lista de material para formatos do Excel e outros.
Para acessar as funções de lista de material, expanda o nó lista de material na guia Sistema na área de trechos.
Exporte a lista de material para um arquivo externo.
ThisBOM.Export(“BOMViewName”, filename, format)
O nome que aparece em uma guia na caixa de diálogo Lista de material do Inventor. Este valor pode ser Model Data, Structured ou Parts Only. Ative a vista que deseja utilizar antes de executar a regra pela primeira vez (clique com o botão direito do mouse na guia na tabela Lista de material).
Nome do arquivo de exportação para criar (com extensão de nome do arquivo). Se não especificar um caminho completo, a lista de material é exportada para a pasta onde a montagem está armazenada. Para uma exportação do Excel, a extensão de nome do arquivo deve ser .xls (.xlsx não é suportado).
ThisBOM.Export("Parts Only", "Bom353.xls", kMicrosoftExcelFormat)
ThisBOM.Export("Structured", "Bom631.xls", kTextFileTabDelimitedFormat)
ThisBOM.Export("Structured", ThisDoc.ChangeExtension(".mdb"), kMicrosoftAccessFormat)Substitui a quantidade por um componente. Esta função pode ser útil se mostrar somente algumas instâncias no modelo e a lista de material lista o número real. É como abrir a caixa de diálogo Lista de material e a seguir selecionar "Quantidade estática" em vez de "Calcular quantidade" na coluna Quantidade para um componente.
ThisBOM.OverrideQuantity(“Model Data”, partNumber, quantity)
O primeiro argumento nomeia a vista Lista de material e deve sempre ser "Model Data".
A propriedade de número de peça do componente. Este valor aparece como uma coluna na vista Lista de material.
Quantidade para definir para este componente.
ThisBOM.OverrideQuantity("Model Data", "Top Screw", 18)O iLogic fornece um conjunto de funções matemáticas que podem ser adicionadas as regras. Na caixa de diálogo Editar regra, utilize um dos métodos seguintes para acessar as funções matemáticas:
A biblioteca de matemática VB.NET padrão fornece a maioria das funções matemáticas utilizadas em iLogic:
| IsNumeric | PI |
| MinOfMany | Sqrt |
| MaxOfMany | Abs |
| Round | Sign |
| Arredondar com precisão decimal | Int |
| Arredondar mais próximo ao incremento | Fixo |
| Arredondar para cima do incremento | Log10 |
| Arredondar para baixo do incremento | Ln |
| Ceil | Pow |
| Floor | Mín |
| Sin | Máx |
| Cos | CDbl |
| Tan | EqualWithinTolerance |
O iLogic fornece algumas funções matemáticas. As funções seguintes emulam as funções disponíveis nas equações de parâmetro do Inventor padrão:
Ceil (same as Math.Ceiling) Sign0(a) = 1 if a > 0.0, = 0 otherwise Ln (same as Math.Log)
Como certas funções do Autodesk Inventor diferem das funções matemáticas padrão do VB.NET de mesmo nome, elas são convertidas quando capturadas para uso em uma regra iLogic:
| Sin(0) = 0 | Cos(PI) = -1 |
| Sin(PI) = 0 | Tan(0) = 0 |
| Sin(PI/2) = 1 | Tan(PI/4) = 1 |
| Cos(0) = 1 | PI = 3,1415926...... |
| Cos(PI/2) = 0 |
Sin(), Cos(), e Tan() são funções trigonométricas padrão com argumentos expressos em radianos (não em graus):
Se utilizar a opção Capturar estado atual em uma fórmula trigonométrica na caixa de diálogo Editar regra, não é para ser convertido em código VB.NET. Ao invés, a fórmula é deixada como uma fórmula do Inventor. É possível editar a fórmula manualmente para alterá-la em uma fórmula VB.NET (com ângulos em unidades radianas).
Para converter de graus para radianos, utilize a seguinte fórmula:
O iLogic fornece um conjunto de funções de sequência para parâmetros de texto que podem ser incluídos nas suas regras de iLogic. Para acessar as funções de sequência, expanda o nó Sequências na guia Sistema na área de trechos.
A maioria das funções de sequência utilizadas em iLogic são fornecidas como peça da biblioteca de sequência VB.NET padrão. Elas incluem:
| Left() | CStr() |
| Compare | Now() |
| Len() | DateString |
| Right() | TimeString |
| Mid() | Val(string) |
| LCase() | Ler todo o texto |
| UCase() |
A documentação para essas funções está disponível em http://msdn.microsoft.com/en-us/library/system.string_methods (VS.80).aspx
Funções de sequência do iLogic
Várias funções de sequência são específicos para iLogic:
Para acessar as funções variáveis, expanda o nó Variáveis na guia Sistema na área de trechos.
Funções de variável compartilhada
As variáveis compartilhadas do iLogic são compartilhadas entre regras e armazenadas na memória. Ao contrário dos parâmetros do Inventor, elas não estão associadas a qualquer peça ou montagem. É possível utilizar variáveis compartilhadas ao invés de parâmetros do Inventor para passar dados entre regras. Também é possível utilizá-las para armazenar dados que não podem ser armazenados nos parâmetros do Inventor. Os exemplos seguintes demonstram suas utilidades:
SharedVariable(“Thread1”) = “1/4-20 UNC”
Atribui um valor de texto para uma variável compartilhada nomeada Thread1. Se a variável não existe, ela é criada.
s0 = SharedVariable(“Thread1”)
Atribui o valor de uma variável compartilhada à um parâmetro de texto. O tipo de variável é conhecido por que o criou anteriormente.
SharedVariable(“Distance1”) = 7.2
Atribui um número a uma variável compartilhada.
d0 = SharedVariable(“Distance1”)
Atribui o valor de uma variável compartilhada à um parâmetro numérico.
if SharedVariable.Exists(“Thread1”) then
Testa se um parâmetro existe. Se o parâmetro foi criado em outra regra, esta função retorna verdadeira.
SharedVariable.Remove(“Thread1”)
Remove (exclui) uma variável compartilhada. Embora não seja necessário, esta função é recomendada se souber que não precisa mais da variável.
Remove todas as variável compartilhada. Utilize esta função com cuidado em uma regra. Se qualquer peça ou montagem independente são abertos que utilizam variáveis compartilhadas, utilize o comando de memória iLogic livre ao invés.
As funções de nova matriz são funções Visual Basic padrão que pode utilizar para definir diferentes tipos de matriz e definir valores iniciais. Para obter mais informações nestas funções, consulte a ajuda do Visual Basic.
Define uma matriz de tipo Duplo nova e define valores iniciais.
MyDoubleValues = new double(){1.2,2.2,3.3}Define uma matriz de tipo Inteiro nova e define valores iniciais.
MyIntegerValues = new integer(){1,2,3}Define uma matriz de tipo de sequência nova e define valores iniciais.
MyStringValues = new string(){string1,string2}Define uma matriz de tipo de objeto nova e define valores iniciais.
MyObjectValues = new object(){“string”,true,1.234}Define uma variável de tipo Listadematriz nova e adiciona alguns valores a ela.
Dim MyArrayList As New ArrayListMyArrayList.add(“string”)MyArrayList.add(1.234)MyArrayList.add(True)
Percorre os valores em uma matriz ou variável de Listadematriz.
for each oval in MyVariableHeremsgbox(oval)next
Funções propriedades de material
Utilize funções de chapa de metal para definir e/ou ler a regra de chapa de metal atual e FatorK em uma peça de chapa de metal. Estas funções permitem que altere a regra de chapa de metal atual automaticamente, com base em certas condições como no material atual ou espessura do material.
Para acessar as funções de chapa de metal, expanda o nó chapa de metal na guia Sistema na área de trechos.
Define a regra de chapa de metal ativa atual. esta função é equivalente a selecionar manualmente uma regra de chapa de metal da caixa de diálogo Padrões de chapa de metal
SheetMetal.SetActiveStyle(“styleName”)
Nome da regra de chapa de metal da caixa de diálogo Padrões de chapa de metal. O nome não é sensível.
SheetMetal.SetActiveStyle(“styleName”)
Especifica o nome de um estilo da lista de regras da chapa de metal:
SheetMetal.SetActiveStyle(MyStyleParameter)
Lê a regra de chapa de metal atualmente ativa. É possível atribuí-la a um parâmetro de texto do iLogic ou para uma variável local em uma regra. Utilize esta função para agir em um modelo ou alterar o modelo com base na regra de chapa de metal atual.
CurrentStyleParameter=SheetMetal.GetActiveStyle()
Funções de extensão de planificação
Utilize estas funções para obter as extensões das planificações desdobradas. Também é possível visualizar estes valores clicando com o botão direito do mouse na planificação na árvore de modelo para a peça de chapa de metal e extensões selecionadas.
Obtém a largura (cota X) das extensões de planificação.
Utilize funções de desenho para personalizar como as alterações ao modelo refletem nas folhas de desenho. As funções de desenho podem facilitar atualizações de modelo eficientes e podem ser incluídas em regras desencadeadas pelo evento Alteração de vista de desenho do iLogic.
Acessa a folha ativa em um desenho. Esta função é um pseudônimo para ThisDrawing.ActiveSheet. A maioria das operações são executadas na folha ativa, por que as outras folhas podem não estar atualizadas.
É possível atribuir uma sequência de nome do arquivo para esta propriedade para especificar o nome de outro desenho a partir do qual puxar bloco de título e definições de borda. Quando utilizar a função folha TitleBlock ou Border, o iLogic olha neste desenho por recursos que não são encontrados no desenho atual. Utilize um nome de caminho relativo pra este nome do arquivo. O iLogic pesquisa por este arquivo na pasta do desenho atual e na pasta de espaço de trabalho do projeto. É possível especificar as subpastas em relação a qualquer uma destas localizações.
ThisDrawing.ResourceFileName = “DrawingResources1.idw”
Defina esta propriedade para False se as cópias de recursos do arquivo de recursos externo não são guardadas no desenho atual.
Se definir esta propriedade para False, um recurso é excluído quando outro recurso o substitui. A exclusão somente ocorre se a ResourceFileName não está em branco. Supõe-se que todos os recursos que precisa podem ser encontrados no arquivo de recurso externo.
ThisDrawing.KeepExtraResources = False
As funções de chapa de metal para desenhos geralmente operam na folha ativa. Para restringir uma regra para que ela funcione somente para uma folha em particular, é possível adicionar código no topo de uma regra. Por exemplo:
If (ActiveSheet.Name <> "Sheet:2") Then Return
ChangeSize (utilizando valor de sequência de texto)
Altera o tamanho da folha, utilizando uma sequência de texto como valor do novo tamanho.
Sheet.ChangeSize (“value”,<MoveBorderItems = True>)
Este parâmetro é opcional. Se MoveBorderItems está definido para False, qualquer tabela e lista de peças localizadas atualmente na borda ou aresta da folha não são movidas para a borda nova.
ActiveSheet.ChangeSize (“A”)
ActiveSheet.ChangeSize (“B1”, MoveBorderItems := False)
ChangeSize (utilizando valores personalizados)
Altera o tamanho da folha, utilizando uma altura e largura personalizadas em unidades de documento.
Sheet.ChangeSize (customHeight, customWidth, <MoveBorderItems = True>)
A altura em unidades de documento.
A largura em unidades de documento.
Este parâmetro é opcional. Se MoveBorderItems está definido para False, qualquer tabela e lista de peças localizadas atualmente na borda ou aresta da folha não são movidas para a borda nova.
ActiveSheet.ChangeSize (7.2, 4)
ActiveSheet.ChangeSize ( 7.2, 4, MoveBorderItems = False)
Alterar a borda atual na folha especificando um nome diferente. O nome deve ser encontrado nos recursos de desenho do desenho atual ou no desenho Nomedearquivodorecurso se estiver especificado.
ActiveSheet.Border = “OtherBorder”
currentName = ActiveSheet.Border
Alterar o bloco de título atual na folha especificando um nome diferente. O nome deve ser encontrado nos recursos de desenho do desenho atual ou no desenho Nomedearquivodorecurso se estiver especificado..
ActiveSheet.TitleBlock = “ANSI - A”
currentName = ActiveSheet.TitleBlock
Exemplo quando se utiliza uma fonte externa de arquivo -
ThisDrawing.ResourceFileName = “DrawingResources1.idw” ActiveSheet.TitleBlock = “Custom - A”
As funções de vista para desenhos geralmente operam em folha ativa (recomendado).
View.SetCenter(centerX,centerY)
Define o ponto central da vista (move a vista). As coordenadas são especificadas em unidades de documento de desenho.
View.SetSpacingToCorner(distanceX, distanceY, corner)
Define a posição de vista (move a vista) especificando a distância de um canto de vista para o canto de vista mais perto. A variável corner pode ser um dos seguintes:
SheetCorner.BottomLeft SheetCorner.BottomRight SheetCorner.TopLeft SheetCorner.TopRight
As coordenadas são especificadas em unidades de desenho. O iLogic localiza o canto que está mais perto de um canto de folha.
View.SpacingBetween(“otherViewName”)
Define a posição de vista (move a vista) especificando o espaço entre esta vista e outra vista. O outro nome de vista é tipicamente uma vista adjacente na folha. O espaçamento entre arestas de vista, na direção X ou Y. Especifique um valor de espaçamento positivo para inserir esta vista para a direita ou acima da outra vista. Especifique um valor negativo para inserir esta vista para a esquerda ou abaixo da outra vista. Por exemplo: Por exemplo:
ActiveSheet.View("VIEW2").SpacingBetween("VIEW1") = 30 mm 'VIEW2 é para a direita de VIEW1.
ActiveSheet.View("VIEW3").SpacingBetween("VIEW1") = -40 mm 'Funções de balão de referência
As funções de balão de referência pra desenhos são vinculados a uma vista particular.
Para vistas de documentos de montagem, esta função verifica balões de referência não anexados na vista e os anexa à um componente se necessário. A primeira escolha é um componente na localização de seta. Se nenhum for localizado, o componente legível mais próximo sem balão de referência é utilizado. Se o balão de referência não pode ser anexado nesta hora, ele é movido para uma camada oculta. A camada oculta é uma camada criada (se necessário) para esta finalidade.
Balloons.AttachToComponent(“componentName”)
Especifica um componente que requer um balão de referência. O componentName especifica uma ocorrência de componente, como "Pin:1". Quando essa função é utilizada, os balões de referência são reanexados somente aos componentes especificados. Caso essa função não seja utilizada, os balões de referências serão reanexados a qualquer componente disponível (a não ser que sejam desqualificados pela DoNotAttachToComponent função).
Funções de API de desenho avançado
Utilize as funções de API de desenho avançado se desejar tirar proveito das funções de API. Observe os seguintes tipos de interface para objetos utilizados nas funções de desenho:
O objeto do aplicativo do Inventor para a sessão atual do Autodesk Inventor. Deste objeto, é possível acessar diretamente o API do Inventor. Para obter ajuda sobre API, consulte a ajuda de programação, que está sob Recursos adicionais no menu Ajuda.
Este objeto também é acessível utilizando a sintaxe mais antiga:
Obtém o documento no qual a regra atual está armazenada, como um objeto Inventor.Document . Ele pode fornecer um ponto inicial para examinar ou modificar o modelo. Este objeto é descrito na ajuda do API do Inventor.
Obtém o documento de modelo (peça ou montagem) que é mostrado em um documento de desenho. Se não existe nenhum documento de modelo, esta função retorna Nada. Se mais de um documento de modelo existe, ele retorna o primeiro encontrado.
Exigidos em uma regra antes de utilizar certas funções do API do Inventor como Documento.Selecionarconjunto.Selecionar. Se encontrar com um exemplo de VBA ou outro código de API que não funciona em uma regra, adicione esta declaração no início da regra.
ThisApplication.UserInterfaceManager.UserInteractionDisabled = False
Utilize esta função para obter acesso direto a um documento. Ele retorna um objeto do tipo Inventor.Ocorrênciadecomponente.
Obtém acesso direto para uma operação. Esta função retorna um objeto do tipo Inventor.Operaçãodepeça.