È possibile estendere la funzionalità che è offerta per i file machine design accedendo all'interfaccia di programmazione dell'applicazione (API - Application Programming Interface). Questo ambiente di programmazione permette di personalizzare e migliorare le potenzialità di machine design usando il linguaggio di programmazione BASIC.
Parte delle funzionalità che sono state aggiunte usando API in diverse situazioni include:
Di solito, è piuttosto semplice programmare uno di questi script. Spesso è possibile copiare un blocco simile di codice da un'altra macchina e modificarlo leggermente per farlo funzionare su una nuova macchina. Di fatto, si raccomanda di usare copia e modifica per qualsiasi funzione standard.
Lo script BASIC associato al file machine design è completamente gestito da FeatureCAM. Ovvero, non si ha un file distinto che è possibile vedere nel browser del file. Si può accedere solo dall'interno di FeatureCAM nel modo seguente:
Note importanti
Come piccolo esempio di script BASIC per un file MD, il codice per aprire le morse del mandrino principale è mostrato a seguire. Le annotazioni che seguono il codice descrivono alcuni aspetti chiave che è necessario considerare.
Public Sub MachineSim_spindle( Doc As FeatureCAM.MFGDocument, _
ByVal data As Double, _
ByVal Action As FeatureCAM.tagFMMachineSimSpindleActionType, _
ByVal spindle As Long)
Dim Vw As MFGWindow
Dim Err As Long
Dim i As Integer
Dim dOpen As Double
Dim dCls As Double
Set Vw = Doc.ActiveWindow
Err = 0
i = 0
If( Doc.Metric ) Then
dOpen = 4
dCls = -1
Else
dOpen = .25
dCls = -.125
End If
Vw.SimIgnoreClashes(0)
If( Action = eSimAction_Open And spindle = 0 ) Then
Vw.SimIgnoreClashes(1)
While Err = 0 And i<3
Vw.SimCutMove( "main_jaw_1", dOpen, 0, 0 )
Vw.SimCutMove( "main_jaw_2", dOpen, 0, 0 )
Vw.SimCutMove( "main_jaw_3", dOpen, 0, 0 )
Vw.SimPerformCut Err
If( Err = 0 ) Then
Vw.SimUpdateGraphics
End If
i = i + 1
Wend
End If
End Sub
La routine MachineSim_spindle mostrata è il gancio offerto per prendere controllo delle azioni del mandrino.
Sebbene si definisca la macchina in unità metriche o imperiali, il file può eseguire documenti FeatureCAM in qualsiasi tipo di unità. Perciò il file MD deve calcolare o convertire tutte le unità per ciascun sistema.
L'enum eSimAction_Open indica che l'azione generata è ''Aperta". Altri tipi includono eSimAction_Close e eSimAction_Position. Vedere la guida API per un elenco completo.
Il mandrino principale è identificato come 0, il contromandrino come 1. Perciò questo blocco prende eventi che segnalano l'apertura solo del mandrino principale.
Disattivare il controllo tallonamenti, che è necessario gestire manualmente nello script.
Il movimento viene solitamente eseguito in una curva chiusa per interrompere il movimento in piccoli incrementi. In questo caso le morse vengono aperte in tre passaggi. Di solito, si possono usare incrementi più grandi per cose che è improbabile che collidano. Quando vengono chiuse le morse, in ogni caso, si possono usare 50 passaggi per poter essere in grado di fermarsi esattamente quando le morse toccano il grezzo.
Questo è il comando base per muovere un solido con movimento lineare. (Viene usato un comando simile, SimCutRotate per un movimento di rotazione). Tutti i solidi figlio dichiarati nel file MD seguono in modo appropriato. Il nome del solido è il primo argomento e deve abbinarsi al nome del solido nel file MD. Il movimento avviene rispetto al LCS definito per il solido, o il sistema di coordinate se non è specificato nessun LCS.
Eseguire tutti i movimenti che sono stati specificati ed eseguire contemporaneamente il controllo tallonamenti. Si noti che i movimenti vengono eseguiti simultaneamente, non in sequenza.
Controllare se si è verificato un errore. A volte può essere utile disattivare il controllo errori per il debug, ma si deve ripristinare la condizione quando il modello funziona.
Aggiornare il display della grafica solo se non si è verificato un errore.