Можно расширить функциональные возможности, предусмотренные для файлов проекта станка, с помощью программного интерфейса (API). Эта программная среда позволяет настраивать и улучшать возможности дизайна станка с помощью языка программирования BASIC.
Некоторая функциональность, добавленная с помощью API, в различных ситуациях включает:
Как правило, довольно просто программировать один из этих сценариев. Часто можно копировать одинаковые блоки кода с другого станка и немного их изменять, чтобы они работали на новом станке. На самом деле мы рекомендуем использовать копирование-редактирование для любых стандартных функций.
Сценарий BASIC, который связан с файлом дизайна станка, полностью управляется FeatureCAM. То есть, у вас нет отдельного файла, который можно просмотреть в обозревателе файлов. Он доступен только из FeatureCAM следующим способом:
Важные замечания
В качестве небольшого примера BASIC сценария для MD файла ниже показан код для открытия кулачков основного шпинделя. Примечания, идущие после кода, описывают некоторые ключевые аспекты, которые нужно учесть.
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
Показанная программа MachineSim_spindle — это функция, необходимая для обеспечения контроля над действиями шпинделя.
Несмотря на то что для станка задаются метрические или британские единицы измерения, специалисты, работающие с данным файлом, могут запускать проекты FeatureCAM в любых единицах. То есть MD файл должен вычислять или конвертировать все единицы измерения для любой системы.
Перечень eSimAction_Open показывает, что генерируется действие «Открыть». Другие типы включают eSimAction_Close и eSimAction_Position. Смотрите руководство по API, чтобы увидеть весь список.
Главный шпиндель идентифицируется как 0, противошпиндель — как 1. То есть этот блок отлавливает события, которые сигнализируют только об открытии основного шпинделя.
Выключает проверку зарезов, которой нужно управлять вручную в сценарии.
Перемещение обычно сделано циклом, чтобы разбить движения на маленькие шаги. В данном случае кулачки открываются за три шага. Обычно можно использовать более крупные шаги для вещей, которые вряд ли столкнутся. При закрытии кулачков, однако, можно использовать 50 шагов, чтобы остановиться именно тогда, когда кулачки коснутся заготовки.
Это основная команда для поступательного движения тела. (Аналогичная команда SimCutRotate используется для вращательного движения.) Все тела-потомки, объявленные в MD файле, следуют соответственно. Имя тела - это первый аргумент, который должен соответствовать имени тела в MD файле. Движение выполняется относительно ЛСК, определенной для тела, или относительно системы координат стола, если нет заданной ЛСК.
Выполняет все перемещения, которые были заданы, и в то же время выполняет проверку на зарезы. Обратите внимание, что перемещения выполняются одновременно, а не последовательно.
Проверяет, были ли ошибка. Иногда может быть полезным отключить проверку ошибок для отладки, но нужно вернуть это условие обратно при работе с моделью.
Обновить отображение графики, только если нет ошибки.