É possível gravar regras do iLogic utilizando somente declarações de atribuição de parâmetros do Inventor, funções do iLogic predefinidas e código VB.NET simples. Também é possível usar a API do Inventor diretamente.
No entanto, você não está limitado a essas técnicas. O iLogic é baseado em VB.NET. É possível usar recursos mais avançados de VB.NET e o NET Framework nas regras.
Cabeçalhos são instruções que precisam ser inseridas antes do código de regra na caixa de diálogo Editar regra. É possível inserir instruções de cabeçalho diretamente no Editor de cabeçalho ou no Editor principal. Se as declarações forem inseridas no Editor principal, o iLogic as moverá para o Editor de cabeçalho.
Para acessar o Editor de cabeçalho, execute um dos seguintes procedimentos:
As seguintes instruções são compatíveis com o Editor de cabeçalho:
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 sub-rotina "implícita". Para adicionar mais sub-rotinas, 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 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 Inventor (por exemplo, C:\Arquivos de programas\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 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 EsteAplicativo ou outros objetos do Inventor forem utilizados, então o iLogic adicionará 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 ThisDoc.Document 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.