Espansione e personalizzazione delle funzionalità di iLogic

Memorizzazione delle regole in file esterni

È possibile posizionare le regole iLogic in file esterni anziché memorizzarle nel modello Inventor. Questo metodo di memorizzazione consente di utilizzare la stessa regola in diverse posizioni.

Per archiviare le regole in un file esterno, è necessario impostare l'estensione file di default per i nuovi file. L'estensione di default scelta dipende dal modo in cui si desidera modificare il file. Ad esempio, è possibile impostare l'estensione di default su .vb se si desidera modificare i file in Visual Studio. L'estensione .txt consente di modificare la regola con un editor di testo quale il Blocco note Microsoft. In alternativa, è possibile impostare l'estensione di default su .iLogicVB se i file contengono codice standard di regole iLogic che deve essere preelaborato da iLogic.

Le regole iLogic possono utilizzare codice di altri assiemi .NET. È possibile specificare la directory in cui si trovano tali assiemi .NET. È possibile creare un assieme .NET con strumenti di programmazione quali Visual Studio 2008. Vedere Programmazione avanzata delle regole per ulteriori informazioni sull'utilizzo di assiemi .NET nelle regole.

Interfaccia di automazione per accedere a parametri e regole

iLogic dispone di un'interfaccia di automazione. È possibile utilizzare questa interfaccia da Inventor VBA, oppure da codice VB6 o .NET per accedere a parametri e regole.

La classe iLogicAutomation consente questa funzionalità.

In un progetto VB o VBA, è possibile utilizzarla come tipo ad associazione tardiva (dichiarata come Oggetto) senza l'aggiunta di un riferimento. Poiché non si tratta di un oggetto .COM completo, non è possibile consultare relativi i metodi.

Tipo dati DoubleForEquals

iLogic utilizza un tipo di dati personalizzato denominato DoubleForEquals per memorizzare i valori del parametro. DoubleForEquals supporta il confronto semplice tra numeri. Questo parametro è simile al tipo Double VB.NET standard. Fa eccezione il fatto che i valori DoubleForEquals vengono confrontati come se fossero valori Single (7 posizioni decimali anziché 15). Per default, i parametri nelle regole vengono dichiarati come DoubleForEquals.

DoubleForEquals rende più facile ignorare gli errori di arrotondamento durante i confronti. Si supponga, ad esempio, che la parte utilizzi i pollici come unità del documento e che si disponga di un parametro con un valore di 13/16 pollici. La parte non è esattamente uguale a 13/16 in una regola, perché il valore del parametro è memorizzato in centimetri nel modello. Il valore viene convertito in pollici per essere utilizzato nella regola. Prendere in considerazione il seguente confronto:

if d0 = 13/16 then ... 

In questo esempio, il confronto non riesce se d0 è di tipo Double. Tuttavia, se d0 è di tipo DoubleForEquals, il confronto riesce.

DoubleForEquals memorizza il valore come tipo Double ed esegue i calcoli come valori Double. Solo il confronto viene eseguito come un Single.

È possibile convertire un valore di parametro in un Double utilizzando la funzione CDbl, se necessario.

DoubleForEquals è una Structure (un tipo di valore) in VB.NET.

Confronto DoubleForEquals di un valore con zero

DoubleForEquals considera i confronti con zero come casi speciali. Quando uno dei numeri di cui si deve verificare l'uguaglianza equivale esattamente a zero, il test riesce se l'altro numero è minore di 0,0000001 (in valore assoluto).

Tale confronto rende più semplice ignorare errori di arrotondamento con valore prossimo a zero. Ad esempio, il seguente confronto determina che x = 0:

angle = PI/2
x = cos(angle)
If (x = 0) Then
...
End If

Quando disabilitare DoubleForEquals

DoubleForEquals è il tipo di default per tutti i parametri di Inventor utilizzati nelle regole. È possibile disattivare questa impostazione per i seguenti motivi: