Sie können die Funktionalität, die für Maschinenkonstruktionsdateien bereitgestellt wird, erweitern, indem Sie auf die Anwendungsprogrammierschnittstelle (API) zugreifen. Die Programmierungsumgebung ermöglicht Ihnen, die Maschinenkonstruktionsfunktionen mithilfe der BASIS Programmiersprache anzupassen und zu erweitern.
Einige Funktionalitäten, die unter Verwendung der API in verschiedenen Situationen hinzugefügt wurden, beinhalten:
Typischerweise ist das Programmieren einer dieser Skripte relativ einfach. Häufig ist es möglich, einen ähnlichen Codeblock von einer anderen Maschinen zu kopieren und ihn leicht zu ändern, damit er auch auf einer neuen Maschine funktioniert. Tatsächlich empfhehlen wir, Kopieren-und-Änden für alle Standardfunktionen zu verwenden.
Das BASIS-Skript, das mit einer Maschinenkonstruktionsdatei verknüpft ist, wird komplett von FeatureCAM verwaltet. Dadurch haben Sie keine separate Datei, die im Datei-Browser angezeigt wird. Sie können auf sie nur innerhalb FeatureCAMs und folgendermaßen zugreifen:
Wichtige Anmerkungen
Ein kleines Beispiel für ein BASIS-Skript für eine MD-Datei, Code zum Öffnen der Backen auf der Haupspindel, finden Sie untenstehend. Annotationen nach dem Code beschreiben einige Schlüsselaspekte, die Sie beachten müssen.
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
The MachineSim_spindle routine shown is the hook provided for getting control over spindle actions.
Obwohl Sie Ihre Maschine auf metrische oder imperiale Maßeinheiten festlegen, können andere, die Ihre Datei verwenden, FeatureCAM Dokumente in beiden Maßeinheiten ausführen. Dies bedeutet, dass die MD-Datei alle Einheiten für beide Systeme berechnen oder sie umwandeln muss.
The eSimAction_Open enum weist darauf hin, dass die erzeugte Aktion 'Open' ist. Andere Typen beinhalten eSimAction_Close and eSimAction_Position. Weitere Informationen bezüglich einer vollständigen Liste finden Sie im API-Handbuch.
Die primäre Hauptspindel wird als 0, die Gegenspindel als 1 identifiziert. Dieser Block erfasst also Ereignisse, die nur die Öffnung der Hauptspindel signalisieren.
Schaltet die Kollisionsüberprüfung ab, die Sie manuell im Skript verabeiten müssen.
Bewegungen werden gewöhnlich in einer Schleife ausgeführt, um die Bewegung in kleine Inkremente zu unterteilen. In diesem Fall werden die Backen in drei Schritten geöffnet. Typischerweise können Sie größere Inkremente für Dinge verwenden, bei denen eine Kollision unwahrscheinlich ist. Beim Schließen der Backen jedoch müssen Sie möglicherweise 50 Schritte verwenden, um genau dann zu stoppen, wenn die Backen das Rohteil berühren.
Dies ist der grundlegenden Befehl, um ein Volumen mit linearen Bewegung zu verschieben. (Ein ähnlicher Befehl, SimCutRotate, wird für rotierende Bewegungen verwendet). Alle Kindvolumen, die in der MD-Datei deklariert sind, folgen entsprechend. Der Name des Volumen ist das erste Argument und muss mit dem Namen eines Volumen in der MD-Datei übereinstimmen. Die Bewegung läuft mit Bezug auf das für das Volumen festgelegte LKS ab oder auf das Tischkoordinatensystem, wenn kein LKS definiert ist.
Führen Sie alle spezifizierten Bewegungen aus und führen Sie gleichzeitig eine Kollisionsprüfung durch. Beachten Sie, dass die Bewegungen simulatan und nicht nacheinander durchgeführt werden.
Überprüfen Sie, ob ein Fehler aufgetreten ist. Es kann sich gelegentlich als nützlich erweisen, die Fehlerüberprüfung für das Debuggen abzuschalten. Sie sollten Sie aber wieder aktivieren, sobald das Modelll ordnungsmäßig arbeitet.
Aktualisieren Sie die Grafikanzeige nur, wenn ein Fehler aufgetreten ist.