Armazenar regras em arquivos externos.
É possível inserir regras de iLogic em arquivos externos ao invés de armazená-los no modelo do Inventor. Este método de armazenamento permite que utilize a mesma regra em vários lugares diferentes.
Para armazenar as regras em um arquivo externo, primeiro defina a extensão de arquivo padrão para novos arquivos. A extensão padrão que escolher depende de como deseja editar o arquivo. Por exemplo, é possível definir a extensão padrão para .vb se quiser editar regras no Visual Basic. Uma extensão de .txt permite que edite a regra com um editor de texto como o bloco de notas da Microsoft. Ou, é possível definir a extensão padrão para .iLogicVB se os seus arquivos contêm código de regra de iLogic padrão a ser pré-processada por iLogic.
As regras de iLogic podem utilizar código em outra montagem .NET. É possível especificar o diretório onde estas montagens .NET estão localizadas. É possível desenvolver montagens .NET com ferramentas de programação como Visual Basic 2008. Consulte Programação de regra avançada para obter mais informações sobre a utilização de montagens .NET em regras.
Utilize a interface de automação
O iLogic fornece uma interface de automação É possível utilizar esta interface do código de VBA do Inventor ou VB6 ou .NET para acessar parâmetros e regras. É possível utilizar esta interface do código de VBA do Inventor ou VB6 ou .NET para acessar parâmetros e regras.
A classe iLogicAutomation ativa esta capacidade.
Em um projeto de VBA ou VB, é possível utilizá-lo como um tipo de ligação tardia (declarado como um objeto), sem adicionar uma referência. Porque não é um objeto .COM completo, não é possível navegar em seus métodos.
O iLogic utiliza um tipo de dado personalizado chamado DoubleForEquals para armazenar valores de parâmetro. O DoubleForEquals suporta a comparação fácil de números. Este parâmetro é como o tipo de VB.NET padrão Double. Exceto que valores DoubleForEquals são comparados como se fossem valores Únicos (7 casas decimais, em vez de 15). Por padrão, os parâmetros em regras são declarados como DoubleForEquals.
O DoubleFoEquals torna mais fácil ignorar o erro de arredondamento em comparações. Por exemplo, suponha que a sua peça utiliza polegadas como unidades de documento, e você tem um parâmetro com um valor de 13/16 polegadas. A peça não é exatamente igual a 13/16 em uma regra, porque o valor do parâmetro é armazenado em centímetros no modelo. O valor então é convertido para polegadas para uso na regra. Considere a seguinte comparação:
if d0 = 13/16 then ...
Neste exemplo, a comparação falha se d0 é do tipo DoubleForEquals. Entretanto, se d0 é do tipo DoubleForEquals, a comparação é bem-sucedida.
O DoubleForEquals armazena o valor como um tipo de DoubleForEquals e executa todos os cálculos como valores Doble. Somente a comparação é executada como uma única.
É possível converter um valor de parâmetro para um Doble utilizando a função CDbl, se necessário.
O DoubleForEquals é uma Estrutura (um tipo de valor) em VB.NET.
Como é que DoubleForEquals compara um valor com zero?
O DoubleForEquals trata as comparações com zero como casos especiais. Quando um dos números que estão sendo testados para a igualdade é exatamente zero, o teste é bem-sucedido quando o outro número é inferior 0.0000001 (em valor absoluto).
Esta comparação torna mais fácil ignorar erros de arredondamento que são próximos de zero em valor. Por exemplo, a seguinte comparação determina que x = 0:
angle = PI/2 x = cos(angle) If (x = 0) Then ... End If
Quando posso desativar DoubleForEquals?
DoubleForEquals é o tipo padrão para todos os parâmetros do Inventor utilizados em regras. É possível desativar esta configuração pelas seguintes razões:
Configurar localização para regras externas e arquivos DLL
Para acessar o objeto de automação de uma regra de iLogic, utilize a propriedade iLogicVb.Automation.
O objeto de automação implementa a interface Autodesk.iLogic.Interfaces.iLogicAutomation. A documentação para esta interface é fornecida no Autodesk.iLogic.Interfaces.xml.
DoubleForEquals é o tipo padrão para todos os parâmetros do Inventor utilizados em regras. Utilize a declaração seguinte no início de uma regra para desativar esta configuração:
iLogicOption DoubleForEquals Off
Esta declaração é como a declaração da Opção Visual Basic padrão.
Configuração de iLogic avançado
Configura configurações de localização avançada para regras externas e arquivos DLL.
Recursos de aprendizagem de VB adicionais
Código de exemplo para interface de automação
Um exemplo de macro VBA para acessar o iLogic pode ser encontrado na seguinte localização:
Program Files\Autodesk\Inventor [version]\Samples\iLogic Samples\API\iLogicAutoTest.ivb
Users\Public\Documents\Autodesk\Inventor [version]\Samples\ iLogic Samples\API\iLogicAutoTest.ivb
No código do exemplo, a função GetiLogicAddin demonstra como acessar o objeto de Automação iLogic em VBA ou VB.
Esse código do exemplo, inserido num VBA do Inventor, controla o valor de um parâmetro de texto. É requerido que um parâmetro de texto denominado text0 exista no modelo do Inventor atual. Ele também exibe todas as regras no modelo.
Utilize iLogicAuto.ParamValue para obter ou definir o valor de um parâmetro. Internamente, ele utiliza a propriedade iLogic Parameter.
Consulte Expanda e personalize capacidades iLogic para mais informações sobre interface de automação.