Secuencias de comandos BASIC para ficheros MD

Es posible ampliar las funcionalidades ofrecidas por los ficheros de diseño de máquina accediendo a la Interfaz de Programación de la Aplicación (API). Este entorno de programación permite personalizar y mejorar las capacidades del diseño de máquina con el lenguaje de programación BASIC.

Algunas de las funcionalidades que se han añadido utilizando API en varias situaciones incluyen:

Por lo general, es bastante fácil programar una de estas secuencias de comandos. A menudo, se pueden copiar bloques de código similares de otras máquinas y modificarlos ligeramente para que funcionen en una máquina nueva. De hecho, se recomienda utilizar el método de copiar y editar en las funciones de tipo estándar.

La gestión de la secuencia de comandos BASIC asociada a los ficheros de diseño de máquina depende por completo de FeatureCAM. Es decir, no hay ficheros independientes visibles en el explorador de ficheros. Únicamente se puede acceder a estos ficheros desde dentro de FeatureCAM:

  1. Cargue el fichero de diseño de máquina en FeatureCAM.
  2. Pulse las teclas Alt+F11. Se abre una ventana con la secuencia de comandos BASIC asociada al fichero MD actual.

Notas importantes

A continuación se recoge un ejemplo de secuencia de comandos BASIC en un fichero MD para la apertura de las mordazas en el husillo principal. Las siguientes anotaciones del código describen algunos de los aspectos más relevantes.

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 rutina de MachineSim_spindle mostrada es el código hook con el que se controlan las acciones del husillo.

A pesar de que la máquina está configurada en unidades métricas o en imperiales, cuando se utiliza el fichero es posible ejecutar los documentos de FeatureCAM en cualquiera de los sistemas. Es por eso que el fichero MD calcula o convierte todo en ambas unidades.

La numeración electrónica (enum) de eSimAction_Open indica que la acción generada es la de abrir ('Open'). Otros tipos incluyen eSimAction_Close y eSimAction_Position. Consulte la guía de API para acceder a una lista completa.

El husillo principal se identifica con 0 y el subhusillo con 1. Así, el bloque únicamente captura los sucesos que indican la apertura del husillo principal.

Desactiva la verificación de colisiones, que se tiene que procesar manualmente en la secuencia de comandos.

El movimiento se realiza normalmente en un bucle para dividirlo en pequeños incrementos. En este caso las mordazas se abren en tres pasos. Por lo general, se puede emplear incrementos mucho mayores para los movimientos de las partes que sea poco probable que colisionen. Sin embargo, es posible que para cerrar las mordazas sea necesario utilizar hasta 50 pasos para poder detenerlas exactamente cuando toquen el bloque.

Este es el comando básico para mover sólidos de manera lineal. (Se utiliza un comando similar, SimCutRotate, para los movimientos rotacionales). Con todos los sólidos hijo declarados en el fichero MD sucede lo mismo. El nombre del sólido es el primer argumento y tiene que coincidir con el nombre de un sólido del fichero MD. El movimiento se realiza respecto al SCL definido para el sólido o al sistema de coordenadas de la mesa, en caso de que no se haya especificado ningún SCL.

Realizar todos los movimientos especificados y la verificación de colisiones al mismo tiempo. Observar que los movimientos se realizan simultáneamente y no de manera secuencial.

Comprobar si se ha producido algún error. En ocasiones puede ser útil desactivar la verificación de errores en la depuración, pero se recomienda restaurar dicha condición una vez que el modelo entre en funcionamiento.

Actualizar la visualización de los gráficos únicamente cuando no exista ningún error.