É possível gravar regras do iLogic utilizando somente declarações de atribuições de parâmetros do Autodesk Inventor, funções do iLogic predefinidas e código de VB.NET simples. No entanto, você não está limitado a estas técnicas. É possível utilizar mais operações avançadas de VB,NET em uma regra. Utilize o Visual Basic 2005 ou 2008 para criar arquivos de DLL externos que podem ser chamados a partir das regras. Também é possível chamar arquivos DLL gravados em C# ou C++.
A sintaxe de Visual Basic 2008 (.NET Framework 3.5) é suportada no código de regra.
Use as declarações a seguir no topo da regra, antes do código da regra principal:
Opção Explicit ativada
Opção Strict ativada
Opção Infer desativada
AdicionarReferência "filename.dll"
Importações...
AdicionarregraVB "Outra regra"
AdicionararquivoVB "filename.vb"
Adicionarrecursos "filename.resources"
Opção e importações são declarações padrão do VB.NET.
Opção Explicit desativada é o padrão. Permite que utilize variáveis locais sem declará-las
Opção Strict desativada é o padrão. Opção Strict ativada também funciona para a maioria das regras.
Opção Infer ativada é o padrão.
O código de regra principal é uma subrotina "implícita". Para adicionar mais subrotinas, funções, propriedades ou classes, declare uma Sub Main() como a seguir:
Sub Main()
' your main rule code here
End Sub
ASub Main pode ser utilizada em qualquer regra, independentemente da regra possuir código adicional. Para informações mais detalhadas sobre explicidade declarando sua classe de regra, consulte "Como uma regra é processada?"
Utiliza sintaxe de iLogic especial. Adicionar um nome DLL a uma declaração AdicionarReferência é como utilizar o comando AdicionarReferência e navegar por um DLL em Visual Studio ou Visual Basic Express.
Somente montagens .NET são suportadas. O DLL pode ser uma montagem da Microsoft padrão, como na pasta Microsoft.NET\Framework.
Por exemplo, considere a declaração a seguir:
AddReference "System.Drawing.dll"
Nesta declaração, a extensão .dll é opcional.
Também é possível especificar uma biblioteca de classe criada pelo usuário ou terceiros como referência. Os DLLs criados pelo usuário ou terceiros devem estar todos em uma pasta. Por padrão, esses DLLs estão localizados na pasta de instalação do Autodesk Inventor, em uma subpasta iLogicAdd, como:
C:\Program Files\Autodesk\Inventor [versão]\Bin\iLogicAdd
É possível alterar esta localização utilizando o comando de configuração de iLogic . Também é possível adicionar referências aos DLLs na pasta Bin principal do Autodesk Inventor (por exemplo, C:\Program Files\Autodesk\Inventor [versão]\Bin).
A declaração Adicionarreferência não suporta uma especificação de caminho completa. É possível especificar somente um nome do arquivo. Adicione referências às montagens no Global Assembly Cache (GAC), utilizando um nome qualificado como:
AddReference "VsWebSite.Interop, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”
Também é possível criar e acessar objetos COM registrados em uma regra utilizando CriarObjeto ou GetActiveObjet . Não é necessário utilizar AddReference para um COM DLL.
Inclui o código da regra especificada como código VB, compilada com a regra principal. A regra especificada não pode ser uma regra padrão. Deve possuir a opção Código VB reto ativada no painel Opções da caixa de diálogo Editar regra. O iLogic não pré-processa o código em tal regra. A regra contém classes ou módulos que podem ser chamados de outras regras. Utilize esta declaração para compartilhar código entre regras ou manter código modular.
Exemplo
AddVbRule "Other Rule"
Opera de forma semelhante ao AdicionarregraVB, exceto que o código VB é armazenado em um arquivo externo em vez de uma regra. Assim como com AdicionarregraVB, o código deve possuir a opção código VB reto ativado. Esta declaração é útil para compartilhar códigos comuns entre modelos. A especificação de arquivo deve ser um nome de caminho relativo. O iLogic pesquisa na pasta do documento atual do Autodesk Inventor e em outras pastas utilizando a mesma ordem de pesquisa utilizada para regras externas.
Exemplo
AddVbFile "fileName.vb"
Adiciona recursos como sequências e bitmaps. Os recursos devem ser compilados com Visual Studio.
Exemplo
AddResources "fileName.resources"
As declarações Duplicar importações não são permitidas. As declarações de importação a seguir são implicitamente utilizadas em todas as regras:
Se utilizar Caixa de mensagem em uma regra, então iLogic adiciona automaticamente a declaração seguinte:
Imports System.Windows.Forms
Se utilizar Este aplicativo ou outros objetos do Autodesk Inventor, então o iLogic adiciona automaticamente o seguinte:
Imports Inventor
O iLogic fornece funcionalidade avançada que permite passar informações do contexto, como argumentos de regra para as regras executadas pelo usuário. Essa informação pode ser usada para modificar o comportamento de uma regra sem ter de criar uma regra duplicada.
Passam-se os argumentos de regra utilizando-se as funções disponíveis na interface do IiLogicAutomation (para clientes externos) e do iLogicVB (para outros códigos de regra e para clientes internos). Esses argumentos são disponibilizados dentro de uma regra por meio da propriedade Argumentos de regra.
Para o IiLogicAutomation, as funções disponíveis incluem:
Função RunRuleWithArguments(ByVal doc As Inventor.Document, ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer
Função RunExternalRuleWithArguments(ByVal doc As Inventor.Document, ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer
Função RunRuleDirectWithArguments(ByVal rule As iLogicRule, ByVal ruleArguments As Inventor.NameValueMap) As Integer
Para o iLogicVB, as funções disponíveis incluem:
Função RunRule(ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer
Função RunRule(ByVal compoOrDocName As Object, ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer
Função RunExternalRule(ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer
Criar argumentos de regra
Para criar argumentos de regra, utilize a API do Inventor para criar um novo objeto NameValueMap Esse é, então, transferido para uma das funções ao executar a regra.
Acesse um argumento transferido para a regra
x = RuleArguments(“myArg”)
Determine se um argumento foi transferido para a regra
If RuleArguments.Exists(“myArg”) Then...
Transfira o conjunto de argumentos para outra regra utilizando RunRule
iLogicVB.RunRule(“someOtherRule”, RuleArguments.Arguments)
Se utilizar Sub Main, a regra segue o formato VB.NET padrão para uma classe, exceto que as declarações Classe... e Finalizar Classes não estão visíveis e as declarações antes de Sub Main () estão fora da classe. Assim, insira todas as declarações de atribuição dentro de uma sub, função ou propriedade. É possível incluir declarações de proclamação para variáveis de membro de classe, comoPrivate temp as Double = 4.5 fora de uma sub-rotina ou função.
É possível adicionar as definições Sub , Função , Propriedade e Classe após Sub Main ()... End Sub . Qualquer classe adicionada é aninhada na classe de regra principal para aquela regra e não pode ser utilizada a partir de outra regra. Para adicionar uma classe ou um módulo independentes, declare explicitamente a classe da regra conforme indicado a seguir:
Class ThisRule ' ... Sub Main End Sub ' ... End Class
Então, é possível adicionar outra classe ou módulo (ou mais de um) fora desse código. Class ThisRuletorna-se sua classe de regra principal, e o iLogic chama a Sub Main(dentro dela) para executar sua regra.
Para incluir um módulo ou uma classe que seja visível para várias regras, insira-o em uma montagem externa (DLL). É possível inserir mais de um no mesmo DLL. Também é possível utilizar AdicionarregraVB para colocá-los em uma regra identificada como "Código VB reto" dentro do documento () do Inventor. Ou, utilize AdicionararquivoVB para colocá-los em um arquivo VB externo.
Quando desenvolver código VB.NET avançado, utilize Visual Studio ou Visual Basic Express ao invés de codificar diretamente em uma regra. É possível, então, recortar e colar trechos relativamente pequenos de código do Visual Studio em uma regra. É possível até mesmo colar uma classe de caixa de diálogo inteira (embora os recursos não sejam suportados facilmente). Para unidades de código maiores, ou quando necessário, crie uma montagem e utilize-a como um DLL externo a partir de uma regra.
É possível armazenar objetos que sejam instâncias de uma classe definida pelo usuário utilizando as funções de Variáveis Compartilhadas da regra do iLogic. Para armazenar esses objetos, serialize a classe, ou ela deverá ser derivada de MarshalByRefObject.
É possível gravar seus próprios DLLs externos em .NET e chamá-los a partir de uma regra. Para depurar um DLL, defina o caminho de saída da construção em Propriedades de projeto Compilar para iLogicAdd (na pasta Bin do Inventor). Então, escolha INventor.exe para Iniciar programa externo nas suas propriedades de projeto no Visual Basic. Este método permite todos os benefícios do ambiente de depuração, incluindo Editar e Continuar.
Os DLLs externos são úteis quando utilizando uma regra para exibir uma caixa de diálogo para entrada de usuário.
Para acessar a API do Inventor a partir de uma regra, utilize a propriedade EsteAplicativo para acessar o aplicativo do Inventor. Utilize EsteDoc.Documento para acessar o documento que contém a regra atual. É possível criar e modificar operações. Utilize Parameter.Param para obter acesso direto a um Inventor.Parameter.
Para utilizar o API do Inventor do seu próprio DLL, adicione uma referência ao Autodesk.Inventor.Interop.dll no seu projeto de Visual Basic. Ele é exibido na caixa de diálogo Adicionar referência na guia .NET. Para Inventor 2011, a versão é 15.0.0.0.
Todas as funções iLogic são agrupados em objetos de interface como parâmetros, iProperties, iPart, e assim por diante. É possível passar objetos de interface do iLogic como argumentos para funções em DLLs externos. Para utilizar estes objetos em seu projeto, adicione uma referência ao Autodesk.iLogic.Interfaces.dll. Selecione a guia Navegador na caixa de diálogo Adicionar referência e navegue até a pasta iLogicBin, na pasta bin do Inventor (geralmente em C:\Program Files\Autodesk\Inventor [versão]\Bin\iLogicBin).
A documentação para interfaces de iLogic é fornecida em Autodesk.iLogic.Interfaces.xml. É possível utilizar Navegador de objetos no Visual Basic para ler as descrições de interface. Estas descrições incluem os nomes de objetos que implementam as interfaces nas regras. Por exemplo, o objeto de operações em uma regra implementa a interface ICadFeature.
Por padrão, os parâmetros numéricos em regras não são declarados como Duplos, mas como um tipo de iLogic padrão chamado DoubleForEquals.