Vous pouvez étendre la fonctionnalité qui est fournie pour les fichiers de conception machine en accédant à l'interface de programmation d'application (API). Cet environnement de programmation vous permet de personnaliser et d'améliorer les capacités de conception machine en utilisant le langage de programmation BASIC.
Quelques fonctionnalités qui ont été ajoutées en utilisant l'API dans diverses situations incluent :
Généralement, il est plutôt simple de programmer un de ces scripts. Vous pouvez souvent copier un bloc de code similaire à partir d'une autre machine et l'éditer légèrement pour le faire fonctionner sur une nouvelle machine. En fait, nous vous recommandons d'utiliser copier-et-éditer pour n'importe quelle fonction standard.
Le script BASIC qui est associé au fichier de conception machine est complètement géré par FeatureCAM. A savoir, vous n'avez pas de fichier séparé que vous pouvez voir dans l'explorateur de fichiers. Vous pouvez y accéder uniquement à partir de FeatureCAM de la façon suivante :
Notes importantes
En tant que petit exemple d'un script BASIC pour un fichier MD, un code pour l'ouverture des mors de la broche principale est montré ci-dessous. Des annotations suivant le code, décrivent quelques aspects clés que vous devez prendre en considération.
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 montrée constitue le moyen fourni pour prendre le contrôle sur les actions de broche.
Bien que vous définissiez la machine en unités métriques ou impériales, celles qu'utilisent le fichier peuvent lancer des documents de FeatureCAM dans l'un ou l'autre des types d'unités. Le fichier MD doit donc calculer ou convertir toutes les unités pour l'un ou l'autre des systèmes.
L'énumération eSimAction_Open indique que l'action générée est 'Ouverte'. D'autres types incluent eSimAction_Close et eSimAction_Position. Voir le guide API pour une liste complète.
La broche principale est identifiée par 0, la contre-broche par 1. Ce bloc attrape donc les événements qui signalent l'ouverture de la broche principale uniquement.
Désactive la vérification de collision, que vous devez gérer manuellement dans le script.
Le mouvement est généralement fait en boucle pour casser le mouvement en petits incréments. Dans ce cas, les mors sont ouverts en trois étapes. Généralement, nous pouvons utiliser des incréments plus grands pour des choses qui n'ont pas tendance à entrer en collision. Lors de la fermeture des mors, cependant, vous aurez à utiliser 50 étapes pour s'arrêter exactement quand les mors touchent le brut.
Il s'agit de la commande de base pour déplacer un solide avec un mouvement linéaire. (Une commande similaire, SimCutRotate, est utilisée pour le mouvement de rotation). Tous les solides enfants déclarés dans le fichier MD suivent le mouvement. Le nom du solide est le premier argument et doit correspondre au nom d'un solide dans le fichier MD. Le mouvement est respect avec le SCL défini pour le solide ou avec le système de coordonnées de la table si aucun SCL n'est spécifié.
Effectuez tous les mouvements qui ont été spécifiés et effectuez la vérification de collision en même temps. Notez que les mouvements sont effectués simultanément, pas chacun leur tours.
Vérifiez s'il y a eu une erreur. Quelques fois, il peut être utile de désactiver la vérification d'erreurs pour de débogage, mais vous devriez remettre la condition quand le modèle fonctionne.
Mettez à jour l'affichage graphique uniquement s'il n'y a aucune erreur.