guia de referencia del lenguaje de macros - copia

104
Guía de Referencia del Lenguaje de Macros GibbsCAM 2007 julio 2007

Upload: andres-cano-salvatierra

Post on 07-Dec-2015

39 views

Category:

Documents


6 download

DESCRIPTION

GibbsCAM

TRANSCRIPT

Page 1: Guia de Referencia Del Lenguaje de Macros - Copia

Guía de Referencia del Lenguaje de MacrosGibbsCAM 2007

julio 2007

Page 2: Guia de Referencia Del Lenguaje de Macros - Copia

Aviso de PropiedadEste documento contiene información perteneciente a Gibbs and Associates y sólo se utilizará conforme a y en conjunción con la licencia otorgada al licenciatario correspondiente al software patentado de Gibbs and Associates que se adjunta. Con excepción de lo permitido expresamente en la licencia, ninguna parte de este documento puede ser reproducida, transmitida, transcripta o almacenada en un sistema de recuperación ni traducida a ningún idioma o lenguaje informático, de ninguna forma ni por medio alguno, ya sea electrónico, magnético, óptico, químico, manual o de algún otro tipo, sin contar con el expreso permiso previo por escrito de Gibbs and Associates o de un representante debidamente autorizado por la firma.

Se recomienda especialmente que los usuarios revisen cuidadosamente la licencia con el fin de comprender las obligaciones y los derechos relacionados con este software patentado y con la documentación adjunta.

El uso del software informático y de la documentación de usuario se brinda conforme a un acuerdo de licencia de Gibbs and Associates.

© 2006-2007 Gibbs and Associates. Todos los derechos reservados. El logotipo de Gibbs, GibbsCAM, el logotipo de GibbsCAM, CAM von Gibbs, Virtual Gibbs, Gibbs SFP, MTM, SolidSurfacer y “Powerfully Simple. Simply Powerful.” son marcas comerciales o marcas comerciales registradas de Gibbs and Associates en los Estados Unidos y/u otros países. Microsoft, Windows y el logotipo de Windows son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y/o otros países. Todos los demás nombres de marcas o productos son marcas comerciales o marcas comerciales registradas de sus respectivos dueños.

Aviso de Propiedad:

Escrito por Will. Gaffga

Gracias a Bill Gibbs, Mike O’Neill, Steve Aughinbaugh, Bob Dunne y Daniel Remenak por su colaboración y ayuda.

Impreso en los Estados Unidos de América

Gibbs and Associates323 Science Drive

Moorpark, CA 93021

Modificado: julio 19, 2007

Page 3: Guia de Referencia Del Lenguaje de Macros - Copia

Tabla de Contenidos

Ta b l a d e C o n t e n i d o s

Referencia del Lenguaje de Macros . . . . . . . . . . . . . . . . . . 1El Lenguaje de Macros de GibbsCAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

Acerca de la Función de Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3Acerca de Este Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3Acerca del Lenguaje de Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

Descripción del Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Control de Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Funciones, Operadores y Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Operadores Matemáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Comandos Lógicos Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Funciones con Valores de Cadena Devueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Comandos de Entrada del Usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Comandos de Creación de Cuadros de Diálogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Comandos de Manipulación de Piezas de Gibbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Comandos de Manejo de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Datos de Piezas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Comandos de Post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Comandos de Creación de Geometría . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Comandos de Grupo de Trabajo y Sistema de Coordenadas. . . . . . . . . . . . . . . . . . . . 28Comandos de Sólidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Comandos de Herramientas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32Comandos de Grupo de Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33Comandos del Proceso de Mecanizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Comandos de Operaciones de Mecanizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Comandos de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Comandos para Trabajar con Datos Externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Archivos de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Archivos de Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Comandos Misceláneos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Macros de Depuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Parámetros de GibbsCAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Datos de Piezas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Datos de Configuración de MTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Datos de Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

i

Page 4: Guia de Referencia Del Lenguaje de Macros - Copia

Tabla de Contenidos

Datos del Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Todos los Tipos de Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Procesos de Fresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Procesos de Torno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Datos del Proceso de Utilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Datos de Operación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Todos los Tipos de Operaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Operaciones Tipo Fresa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Operaciones Tipo Torno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Datos de Posts (Archivos de posprocesamiento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Uso de Macros de GibbsCAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Configuración del menú Personalizar Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Macros de Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Muestras del Lenguaje de Macros . . . . . . . . . . . . . . . . . . 57Medidas de Programación Adecuadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Muestras de Macros de GibbsCAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Muestras Rápidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Ejemplo de Entrada de Usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Ejemplo de Creación de Geometría . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Ejemplo Simple de Selección de Geometría y Rotación . . . . . . . . . . . . . . . . . . . . . . . . 60Ejemplo de Mecanizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Ejemplo Avanzado de Creación de Geometría y Transformación. . . . . . . . . . . . . . . . 60Obtener Información de Lista de GT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Obtener Información de Lista de SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Calcular la Extensión de la Geometría de Pieza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Crear una Copia de Seguridad de la Pieza Actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Crear y Embolsar Sólidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Convertir una Pieza Alternando entre las Opciones Pulgadas y Métrico. . . . . . . . . . 69Guardar Datos de Geometría en un Archivo de Texto . . . . . . . . . . . . . . . . . . . . . . . . . .71Ejecutar un Postprocesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Ejemplo de Bucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Ejemplos de Macros Completas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Primer Ejemplo - “Macro3” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Segundo Ejemplo - “Macro2” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

ii

Page 5: Guia de Referencia Del Lenguaje de Macros - Copia

REFERENCIA DEL LENGUAJE DE MACROS

Page 6: Guia de Referencia Del Lenguaje de Macros - Copia
Page 7: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

CAPÍTULO 1:

Referencia del Lenguaje de Macros

EL LENGUAJE DE MACROS DE GIBBSCAMACERCA DE LA FUNCIÓN DE MACROSGibbsCAM tiene una función de macros que se puede utilizar para crear la geometría,importar procesos guardados y crear operaciones. El uso original de la función de Macrosde GibbsCAM estaba orientado a la programación de la familia de piezas. Con laincorporación de nuevas funciones, es probable que encuentre otros usos para la funciónde macros, además del mencionado anteriormente.

ACERCA DE ESTE MANUALEste documento es una guía de referencia para el lenguaje de macros y su uso. Estedocumento está diseñado bajo la suposición de que el usuario cuenta con un manejocompetente de GibbsCAM y está familiarizado con la programación de macros o tieneexperiencia en programación general.

ACERCA DEL LENGUAJE DE MACROSLas macros de GibbsCAM son archivos de texto que se interpretan en tiempo de ejecución.No existe una etapa de compilación para las macros de GibbsCAM y el lenguaje utilizado essimilar a Basic. Todos los archivos de macros deben ser archivos de texto ASCII sin formato.Puede utilizar el Bloc de notas o el editor de texto que desee para crear las macros. Losarchivos de macros se pueden guardar en cualquier lugar, ya que se ejecutan desde unmenú en GibbsCAM. Para agregar macros al menú, se utiliza el plug-in de macros.

La entrada del usuario está disponible a través de un indicador simple para un valor único ode un cuadro de diálogo definido por el usuario (un archivo .DLG) que puede contenercuadros de entrada, casillas de verificación y botones de opción.

A continuación, se brinda información general acerca de las Macros de GibbsCAM y susrespectivas sintaxis.

• Las Macros de GibbsCAM no distinguen entre mayúsculas y minúsculas.

• Las tabulaciones no se reconocen y las sangrías se deben realizar con espacios.

• Debe haber una coma y un espacio entre los argumentos en un comando.

• Los valores de ángulo deben especificarse en radianes o grados.

• Las macros pueden activar otras macros.

3

Page 8: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

DESCRIPCIÓN DEL LENGUAJEVARIABLESSi bien no es necesario declarar las variables de Macros de GibbsCAM, es posible hacerlo. Siuna variable no se declara, se define automáticamente cuando se utiliza y es global. Todaslas variables numéricas son números de punto flotante de precisión doble (“númerosfloat”).

GLOBAL <NOMBRE DE VARIABLE>, <NOMBRE DE VARIABLE>..., <NOMBRE DE VARIABLE>: Lasvariables globales se encuentran disponibles para todas las macros desde la primeraejecución en una instancia. No es necesario declararlas, a menos que sean grupos. Si unavariable no se declara, es decir, no se identifica específicamente como “global” o “local”, seconsidera global.

GLOBAL XVAL(10), YVAL(5), ABC, DEF$

En este ejemplo de un grupo, “XVAL” es un grupo con 10 valores, “YVAL” tiene 5valores, “ABC” es un valor numérico único y “DEF$” tiene una cadena única decaracteres de texto.

LOCAL <NOMBRE DE VARIABLE>, <NOMBRE DE VARIABLE>..., <NOMBRE DE VARIABLE>: Unavariable local sólo se encuentra disponible para la macro determinada donde fue definida.Las variables que son locales en relación con una macro deben declararse antes de suutilización. Al salir de la macro, la variable se pierde.

ARGS <NOMBRE DE VARIABLE>, <NOMBRE DE VARIABLE>..., <NOMBRE DE VARIABLE>: Alactivar otra macro, puede transferirle valores o variables. Dentro de la macro activada, debedeclarar estos valores utilizando el comando ARGS. Esto definirá las variables locales enrelación con la macro activada que conservarán los valores transferidos a dicha macro.

CALL “example.mac”, 1, ABC

Dentro de la macro “example.mac”:

ARGS NUM, COUNTER

En la macro “example.mac”, la variable local NUM se iniciará con el valor 1 (el primervalor que se le transfirió) y la variable local COUNTER conservará el valor de la variableABC en la macro activadora. Cuando la macro “example.mac” finalice, volverá atransferir el valor actual de COUNTER a la variable ABC.

4

Page 9: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

CONTROL DE FLUJOGOTO <NOMBRE DE ETIQUETA>: El comando Goto ordena a la computadora pasar a otropunto de la macro, especificado por un nombre de etiqueta.

CALL <NOMBRE DE ARCHIVO DE MACRO>: La instrucción de activación Call ordena a lamacro que se remita a otra macro, cuyo nombre se especifica en la sentencia.

FUNCIONES, OPERADORES Y EXPRESIONESOperadores MatemáticosDe forma predeterminada, todas las funciones de trigonometría funcionan en radianes, noen grados. Puede cambiar esto durante una macro mediante el uso del comando “grados”;el comando “radianes” volverá a cambiar los valores a radianes. En la descripción de lasfunciones, los paréntesis angulares ( < > ) indican cualquier expresión válida que califica unnúmero.

Las Macros de GibbsCAM utilizan los operadores matemáticos estándar +, -, /, *, <, > y =.Las expresiones siguen el orden estándar de las operaciones. Los paréntesis son optativospero se recomienda su uso para garantizar que el cálculo sea correcto y para maximizar lalegibilidad.

**: Este operador aumentará un valor a una potencia.

a = x**3

<>: Este operador especifica “distinto de”.

if dir<>1 then message "Rotate"

INT <NÚMERO>: Cuando este comando se ubica frente a un valor o a una variable numérica,el número se truncará en un entero.

SQRT <NÚMERO>: Muestra la raíz cuadrada del número dado.

ABS <NÚMERO>: Muestra el valor absoluto del número dado.

SIN <NÚMERO>: Muestra el seno del número dado. De forma predeterminada, el resultadose expresa en radianes.

x= r1 * sin(a)

COS <NÚMERO>: Muestra el coseno del número dado. De forma predeterminada, elresultado se expresa en radianes.

5

Page 10: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

x= r1 * cos(a)

TAN <NÚMERO>: Muestra la tangente del número dado. De forma predeterminada, elresultado se expresa en radianes.

x= r1 / tan(a)

ASIN <NÚMERO>: Calcula el arco seno del número dado. De forma predeterminada, elresultado se expresa en radianes.

ACOS <NÚMERO>: Calcula el arco coseno del número dado. De forma predeterminada, elresultado se expresa en radianes.

ATAN <NÚMERO>: Calcula el arco tangente del número dado. De forma predeterminada, elresultado se expresa en radianes.

GRADOS: Este comando cambiará todas las funciones de trigonometría para que funcionenen grados.

RADIANES: Este comando cambiará todas las funciones de trigonometría para quefuncionen en radianes.

CadenasAcerca de las CadenasConcatenaciónLa mayoría de los operadores de macros (-, *, /, etc.) no funcionan en las cadenas. Laexcepción es +, que actúa como un operador de concatenación.

var$ = "un poco de texto"msg$ = "Esta cadena " + var$

En este ejemplo, msg se establecerá en "Esta cadena y un poco de texto".

Incrustación de VariablesLas variables pueden incrustarse en las cadenas durante el tiempo de ejecución mediante lasintaxis "%variable".

a = 3b = 4s = a * a + b * bc = sqrt(s)Message "La hipotenusa de un triángulo recto con lados de %a y %b de largo es%c."

6

Page 11: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

En este ejemplo, el mensaje se establecerá en "La hipotenusa de un triángulorecto con lados de 3 y 4 de largo, es 5.".

Caracteres EspecialesLos saltos de línea pueden representarse con la secuencia de caracteres especiales "\n".

msg$ = "esto\ny aquello"

En este ejemplo, el mensaje se establecerá en:

estoy aquello

Es posible que determinados caracteres no se incluyan en los literales de cadena. En estepunto, los siguientes caracteres originarán errores: signo de porcentaje (%), comillas dobles(") y signo de exclamación (!).

Comandos con CadenasA continuación, se muestran los comandos que manejan cadenas.

LEN <CADENA>: Muestra la longitud de una cadena.

Ilen = len(“abc”)

el valor de ilen se establecerá en 3

Ilen = len(a$)

el valor de ilen se establecerá en el número de caracteres en la variable a$

LEFT$ <CADENA>, <NÚMERO DE CARACTERES>: Muestra el número de caracteres de unacadena ubicados en el extremo izquierdo.

B$ = left$(“ABCDE,” 3)

B$ se establecerá en “ABC”

RIGHT$ <CADENA>, <NÚMERO DE CARACTERES>: Muestra el número de caracteres de unacadena ubicados en el extremo derecho.

B$ = right$(“ABCDE,” 3)

B$ se establecerá en “CDE”

7

Page 12: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

MID$ <CADENA>, <PRIMER CARÁCTER>, <NÚMERO DE CARACTERES>: Muestra los caracteresde la parte media de una cadena.

B$ = mid$(“ABCDE,” 3, 2)

B$ se establecerá en “CD”

LTRIM$ <CADENA>: Muestra la cadena sin espacios iniciales (ubicados a la izquierda)

RTRIM$ <CADENA>: Muestra la cadena sin los espacios finales (ubicados a la derecha)

TRIM$ <CADENA>: Muestra la cadena sin los espacios iniciales y finales

UCASE$ <CADENA>: Muestra la cadena con los caracteres en mayúscula

LCASE$ <CADENA>: Muestra la cadena con los caracteres en minúscula

FMT$ <CADENA>, <FORMATO>: Muestra un valor numérico, formateado como una cadenade texto. El formato puede contener:

B$ = fmt(123.45, ”0000.000”)

B$ se establecerá en “0123.450”

COMANDOS LÓGICOS CONDICIONALESIF <EXPRESIÓN> THEN <EXPRESIÓN>: El bucle if/then es bastante estándar. Un comandológico básico tiene la siguiente sintaxis:

IF <valor 1> <condición> <valor 2> THEN <comando macro>

A continuación, se presentan diversos ejemplos de comandos lógicos.

IF a = b THEN c = d

IF (a+2) > (b * cos(c+d/2)) THEN call macro2

IF abc <> 3 THEN goto label10

0 Un dígito

# Un dígito si no se trata de un cero inicial o final

. Un punto decimal

+ Un signo más si el número es positivo

8

Page 13: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

IF messages=1 THEN IF dir<>1 THEN message "Rotate"

FOR <VARIABLE> = <COMIENZO> TO <TÉRMINO>, [STEP <NÚMERO ENTERO>]: Los bucles Forson muy sencillos. El parámetro STEP tiene el valor predeterminado 1; por lo tanto, nonecesita declarar el STEP si el incremento es 1. A continuación, se presentan diversosejemplos de bucles FOR.

FOR I = 1 TO 10A = A + 1

NEXT I

FOR I=2 TO 6 STEP 2FOR J = (I+1) TO 2

A = I + JNEXT J

NEXT I

El primer ejemplo incrementa “A” en 1 diez veces. El segundo ejemplo tiene un FOR enun FOR.

NEXT <NOMBRE DE VARIABLE>: El comando next modifica la variable FOR por el pasoespecificado y vuelve a ejecutar el contenido del bucle.

CONTINUE: Cuando el comando continue se encuentra dentro de un bucle, deja de ejecutarla iteración actual del mismo y vuelve a la parte superior de su siguiente iteración.

for i = 1 to 3message "Este mensaje aparecerá tres veces."if i = 2 then continuemessage "Este mensaje aparecerá dos veces, for i = 1 y 3; se omite para2"

next i

COMANDOSLos comandos que requieren argumentos utilizan una coma como el delimitador entrecada argumento. En la descripción de los comandos, los paréntesis angulares ( < > ) indicancualquier expresión válida que califica un número. Los corchetes ( [ ] ) indican losargumentos optativos. El carácter de barra vertical ( | ) indica entradas de parámetroválidas individuales, como “CW | CCW” que indica en dirección de las agujas del reloj y endirección contraria de las agujas del reloj y “0 | 1” que indica “verdadero o falso” o “activadoo desactivado”. Algunos pocos comandos descritos aquí tienen los parámetros “Izquierda” y“Arriba”. El parámetro “Izquierda” describe la distancia desde el lado izquierdo deGibbsCAM o el cuadro de diálogo en que se encuentra el parámetro. El parámetro “Arriba”

9

Page 14: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

describe la distancia desde el lado superior de GibbsCAM o el cuadro de diálogo en que seencuentra el parámetro.

Funciones con Valores de Cadena DevueltosLa mayoría de los comandos de macro no devolverán ningún valor o devolverán un númerode punto flotante. Sin embargo, hay un número de comandos que devuelven una cadena.Estas funciones se indican mediante un signo $ luego del nombre del comando. Estoscomandos se documentan en la sección “Comandos con Cadenas” de este manual. Estasfunciones deben activarse colocando los parámetros entre paréntesis.

msg$ = " AB CD "msg2$ = rtrim$(msg$)

En este ejemplo, la variable msg2 se establecerá en "AB CD"

Comandos de Entrada del UsuarioINPUT “SOLICITUD”, <VARIABLE>, <VALOR PREDETERMINADO>: Este comando, que se activadentro del archivo de macro, mostrará un cuadro de diálogo que contiene un cuadro deentrada para que el usuario ingrese un valor. Tenga en cuenta que este comando esdiferente del comando input (entrada) utilizado dentro de un cuadro de diálogo, que sedocumenta en la página 12.

INPUT “Enter Width”, w1, 10

Los resultados de este código se presentan en un cuadro de diálogo con un cuadro deentrada que le solicita al usuario que ingrese un valor predeterminado “10”. Este valorse asignará a la variable w1.

YESNO “TEXTO DE SOLICITUD”, <VARIABLE>, [“TÍTULO”]: Este comando activa un cuadro dediálogo con los botones “Sí” y “No”. La variable se establece en “0” para “No” y “1” para “Sí”.Si no se establece un título, parte superior del cuadro de diálogo simplemente rezará“Macro personalizada”.

YESNO “¿Desea hacerlo?”, doit1, “Necesita elegir una opción.”

Esto mostrará un cuadro de diálogo con el título “Necesita elegir una opción” y elmensaje “Desea hacerlo?”. Habrá botones SI y NO. Si presiona “sí”, la variable doit1 seestablecerá en 1, si presiona“no” o cierra el cuadro de diálogo, se establecerá en 0.

DIALOG “NOMBRE DE ARCHIVO”: Puede configurar una técnica para obtener una entrada através de un cuadro de diálogo personalizado. Cuando se ejecuta este comando, se abrirá elcuadro de diálogo especificado.

10

Page 15: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

DIALOG “MyMacro.dlg”

Comandos de Creación de Cuadros de DiálogoComo se describió en la sección “dialog “nombre de archivo””, puede recopilar entradas deun usuario creando un cuadro de diálogo personalizado. El cuadro de diálogo se debedefinir como un archivo de texto individual. Un archivo de texto de cuadro de diálogo debecomenzar con el comando “dialog “título”, <izquierda>, <superior>, <ancho>, <altura>”. Uncuadro de diálogo puede contener cualquier combinación de etiquetas de texto, cuadros deentrada, casillas de verificación y botones de opción. Puede haber hasta 10 de cada uno delos controles. Un cuadro de diálogo puede contener un botón “Aceptar” y “Cancelar”.También puede contener una imagen de mapa de bits optativa.

DIALOG “TÍTULO”, <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>: Este comando definelas posiciones izquierda y superior de un cuadro de diálogo y luego el ancho y la altura.Debe ser el primer comando de un archivo de texto de cuadro de diálogo.

DIALOG "Plaquita Rómbica" 30, 50, 530, 390

Este comando crea un cuadro de diálogo denominado Plaquita Rómbica que tiene 530 x390 píxeles y se abrirá a 30 píxeles desde la izquierda y a 50 píxeles desde la partesuperior de la ventana de GibbsCAM.

FONT <NOMBRE>, <TAMAÑO>: De forma predeterminada, la función Macros utiliza lafuente predeterminada del sistema para todo texto en una macro. Este comando le permiteespecificar la fuente utilizada. Si la fuente especificada no se encuentra instalada en elsistema del usuario, la macro utilizará la fuente predeterminada del sistema.

FRAME <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, “TEXTO”: Este comando le permitecolocar un marco en un cuadro de diálogo para poder incluir una etiqueta de texto. Losmarcos son útiles para organizar grupos de controles.

FRAME 20, 240, 250,100, "Definición de Ángulo"

Este comando crea un marco dentro de un cuadro de diálogo que tiene la etiquetaDefinición de Ángulo. El marco tiene 250 x 100 píxeles y está colocado a 20 píxelesdesde la izquierda y a 240 píxeles desde la parte superior del cuadro de diálogo.

LABEL “TEXTO”, <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>: Este comando le permitecolocar una etiqueta de texto en un cuadro de diálogo. Usted define la posición izquierda ysuperior dentro del cuadro de diálogo, el tamaño del texto y el texto propiamente dicho. Acada etiqueta creada se le asigna automáticamente un nombre que se va incrementando, esdecir, la primera etiqueta del cuadro de diálogo es “label1”, la segunda etiqueta es “label2”,etc.

11

Page 16: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

LABEL "Introducir un valor" 310, 39, 100, 24

Este comando crea el texto Introducir un valor. El texto se coloca a 310 píxeles desde laizquierda y a 39 píxeles desde la parte superior del cuadro de diálogo. El texto tiene unárea máxima de 100 x 24 píxeles. Si el texto ocupa más espacio que éste, se reducirá.

INPUT <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, “TÍTULO”, <VARIABLE>, [<VALORPREDETERMINADO>]: Este comando le permite colocar un cuadro de entrada de texto en uncuadro de diálogo. Usted define la posición izquierda y superior dentro del cuadro dediálogo, el tamaño del cuadro, el nombre de la variable y, opcionalmente, un valorpredeterminado. A cada entrada creada se le asigna automáticamente un nombre que se vaincrementando, es decir, la primera entrada del cuadro de diálogo es “input1”, la segundaentrada es “input2”, etc.

INPUT 420, 35, 70, 24, “Nº de Grados”, a1, 10

Este comando crea un cuadro de entrada de texto que se coloca a 420 píxeles desde laizquierda y a 35 píxeles desde la parte superior del cuadro de diálogo. Este cuadro tiene70 x 24 píxeles. Lo que el usuario escribe en este cuadro será asignado a la variable “a1”.Este cuadro tiene el valor predeterminado “10”.

CHECK <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, “ETIQUETA”, <NOMBRE DEVARIABLE>, [<0|1>]: Este comando le permite colocar una casilla de verificación dentro deun cuadro de diálogo. Usted define la posición izquierda y superior dentro del cuadro dediálogo, el tamaño de la casilla de verificación, el texto que aparecerá, el nombre de lavariable y, por último, el estado predeterminado. “0” indica que la casilla de verificaciónestá desactivada y “1”, que está activada. Si no se utiliza un valor predeterminado, la casillade verificación se desactiva automáticamente. A cada casilla de verificación creada se leasigna automáticamente un nombre que se va incrementando, es decir, la primera casillade verificación del cuadro de diálogo es “check1”, la segunda casilla de verificación es“check2”, etc.

CHECK 420, 35, 20, 20 “¡Oh! ¡Oh! ¡Seleccióname! ¡Seleccióname!” check1, 1

RADIO <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, “ETIQUETA”, <NOMBRE VAR>,[<0|1>, <Nº GRUPO>]: Este comando le permite colocar uno o más botones de opción en uncuadro de diálogo y agruparlos juntos. Usted define la posición izquierda y superior dentrodel cuadro de diálogo, el tamaño del botón, el texto que aparecerá y el nombre de lavariable. De manera opcional, puede especificar si el elemento está desactivado (0, el valorpredeterminado) o activado (1) y asignar el botón a un grupo, que es un valor entero. Acada botón de opción creado se le asigna automáticamente un nombre que se vaincrementando, es decir, el primer botón de opción del cuadro de diálogo es “radio1”, elsegundo botón de opción es “radio2”, etc.

12

Page 17: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

RADIO 40, 260, 200, 24 "Relieve de Cara", opt1, 1, 1RADIO 40, 285, 200, 24 "Relieve de Diámetro", opt2, 0, 1

Este código crea dos botones de opción; el primero está seleccionado y el segundo no.Los botones están colocados a 40 píxeles del cuadro de diálogo y a 260 y 285 píxeles dela parte superior del cuadro de diálogo. Ambos botones ocupan un área de 200 x 24, queincluye el texto de la etiqueta. El primer botón establece la variable “opt1” y el segundobotón establece la variable “opt2”. La opción Relieve de Cara está activada de manerapredeterminada y ambos botones de opción se encuentran en el grupo 1. Vea elcomando “ON_EVENT” para obtener un ejemplo de la activación y desactivación debotones de opción.

IMAGE <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, <NOMBRE DE ARCHIVO>: Estecomando le permite colocar una imagen dentro de un cuadro de diálogo. Usted define laposición izquierda y superior dentro del cuadro de diálogo, el tamaño de la imagen y elnombre de la imagen. El nombre puede ser simplemente el nombre del archivo o puede serla ruta completa al archivo. La imagen debe ser un archivo de mapa de bits (.BMP). A cadaimagen creada se le asigna automáticamente un nombre que se va incrementando, es decir,la primera imagen del cuadro de diálogo es “image1”, la segunda imagen es “image2”, etc.

IMAGE 20, 20, 250, 200, "UpLeft.bmp"

Este código coloca la imagen “UpLeft.bmp” a 20 píxeles desde la izquierda y a 20 píxelesdesde la parte superior del cuadro de diálogo. A la imagen se le otorga un área de 250 x200 píxeles.

OK <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, [“TÍTULO”]: Este comando le permitecolocar el botón “Aceptar” dentro de un cuadro de diálogo. Usted define la posiciónizquierda y superior en el cuadro de diálogo y el tamaño del botón. La opción TÍTULO lepermite cambiar el texto en el botón.

OK 420, 316, 70, 24

Este código crea un botón “Aceptar” que tiene 70 x 24 píxeles. El botón se coloca a 420píxeles desde la izquierda y a 316 píxeles desde la parte superior del cuadro de diálogo.

CANCEL <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, [“TÍTULO”]: Este comando lepermite colocar un botón “Cancelar” dentro de un cuadro de diálogo. Usted define laposición izquierda y superior en el cuadro de diálogo y el tamaño del botón. La opciónTÍTULO le permite cambiar el texto en el botón.

CANCEL 310, 316, 70, 24

13

Page 18: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Este código crea un botón “Cancelar” que tiene 70 x 24 píxeles. El botón se coloca a 310píxeles desde la izquierda y a 316 píxeles desde la parte superior del cuadro de diálogo.

BUTTON <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>, “ETIQUETA”, <VALOR>: Estecomando le permite colocar un botón personalizado en un cuadro de diálogo. Usted definela posición izquierda y superior dentro del cuadro de diálogo, el tamaño del botón y el textoque aparecerá. Este comando define una variable denominada “botón” que puede utilizarsepara transferir el valor.

BUTTON 250, 100, 40, 20, “Hágalo” 1

Esto crea un botón de 40 x 20 píxeles denominado “Hágalo” que establece un valor de 1al presionarlo.

ON_EVENT <NOMBRE DE CONTROL>, <NOMBRE DE CONTROL>, <“ACTIVAR” | “DESACTIVAR” |“MOSTRAR”>: Este comando se utiliza para controlar la activación y la desactivación decontroles. Por ejemplo, cuando se selecciona un botón de opción, se deben deseleccionarlos otros. A continuación, se muestran dos ejemplos del uso de este comando. El primerejemplo ilustra la visualización de una imagen cuando se selecciona un botón de opción. Elsegundo ejemplo muestra la acción de alternancia entre los botones de opción.

ON_EVENT radio3, image3, SHOW

ON_EVENT radio1, input1, ENABLEON_EVENT radio1, input2, DISABLEON_EVENT radio2, input1, DISABLEON_EVENT radio2, input2, ENABLE

Podemos ver dos usos distintos del comando on_event. El primero (“on_event radio3,image3, show”) mostrará la imagen 3 al hacer clic en el botón de opción 3. El segundoejemplo muestra la interactividad de los botones de opción. Cuando se hace clic en elbotón de opción 1, se activará “input1” y se desactivará “input2”. Cuando se hace clic enel botón de opción 2, se desactivará “input1” y se activará “input2”.

DROPDOWN_NEW <Nº DESPLEGABLE>, <IZQUIERDA>, <SUPERIOR>, <ANCHO>, <ALTURA>,<VARIABLE>: Este comando le permite crear un menú desplegable dentro de un cuadro dediálogo. Los argumentos <izquierda> y <superior> especifican en qué lugar del cuadro dediálogo se colocará la esquina superior izquierda del menú. El argumento <altura> es laaltura total del menú al desplegarse, que es diferente de la <altura> de otros usos; por lotanto, el valor debe ser lo suficientemente alto como para ajustarse a múltiples entradas enel menú. El argumento <variable> se utiliza para establecer una selección predeterminadaen un menú desplegable. Puede definir hasta veinte menús en un cuadro de diálogo.

DROPDOWN_NEW 1, 20, 20, 250, 100, drop1

14

Page 19: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Este comando crea el menú desplegable Nº 1 a 20 píxeles de la parte superior e izquierdade un cuadro de diálogo. El menú tiene 250 píxeles de ancho y 100 píxeles de alto alimplementarse. La selección se asignará a la variable drop1.

DROPDOWN_ADD <Nº DESPLEGABLE>, <TÍTULO>, <VALOR>: Este comando coloca unaentrada en un menú desplegable.

DROPDOWN_ADD 1, "Crear un Punto", 10DROPDOWN_ADD 1, "Crear una Línea", 20DROPDOWN_ADD 1, "Crear un Círculo", 30

Este menú desplegable tiene tres entradas. Si se selecciona el elemento “Crear unCírculo” en el menú, la variable se establece en “30”.

DROPDOWN_VAL <Nº DESPLEGABLE>, <VALOR>: Es un comando opcional que le permiteespecificar una entrada preseleccionada en la lista desplegable. Si este comando no seutiliza, el menú mostrará automáticamente el primer elemento definido por“dropdown_add”.

DROPDOWN_VAL 1, 20

El menú desplegable que estamos definiendo, mostrará de manera predeterminada laentrada con el valor “20”.

DROPDOWN_EXCEL <Nº DESPLEGABLE>, <NÚMERO DE RANGO>: Este comando asigna unrango de Excel, que se establece mediante el comando “excel_get_range”. El comando“excel_get_range” se utiliza en la macro que activa el cuadro de diálogo. Vea el archivo demuestra de la macro de Excel para obtener un ejemplo del uso de este comando.

LOAD_DEFAUTS: Este comando no tiene ningún argumento. Cuando el cuadro de diálogo secierre, guardará todos sus valores en un archivo que tenga el mismo nombre que el nombrede archivo de la macro, pero que finalice en “_in.ini” o “_mm.ini”, según las unidadesactuales pertenezcan al estándar métrico o inglés (pulgadas)

SAVE_DEFAULTS: Este comando no tiene ningún argumento. Establecerá todas las variablesdel cuadro de diálogo en los valores que éstas contenían cuando el cuadro de diálogo seutilizó por última vez. Los valores se leerán del archivo guardado anteriormente medianteel comando SAVE_DEFAULTS.

COMENTARIOS! Los comentarios se indican con un signo de exclamación inicial. Para realizar uncomentario con múltiples líneas, asegúrese de colocar un signo de exclamación en el inicio

15

Page 20: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

de cada línea. Los comentarios se pueden colocar en línea con los comandos pero la macrono leerá todo lo que se incluya después del signo de exclamación.

RADIO 40, 260, 200, 24, "Face Relief", opt1, 1 ! 1 = default

Aquí podemos ver la definición de un botón de opción. Al final de la línea, hay uncomentario.

ETIQUETASETIQUETAS: Una etiqueta se utiliza como un indicador de referencias. Se designa como unalínea de texto con dos puntos (:) al comienzo de la línea.

if <value 1>=<value 1> goto option2(...):option2 ! dia relief anglea1 = 90-a2-a3a4 = a1+(a2/2)

Aquí podemos ver una prueba lógica y, si la prueba es verdadera, la macro irá a“option2”. Más abajo en la macro, encontramos “:option2” que es la etiqueta para esasección del código. Hay un comentario que nos ayuda a realizar un seguimiento de loque hace el código. Las últimas dos líneas corresponden al código para option2.

COMANDOS DE MANIPULACIÓN DE PIEZAS DE GIBBSComandos de Manejo de ArchivosNEW_PART: Este comando iniciará un nuevo archivo. Este comando no tiene ningúnargumento.

OPEN_PART “NOMBRE DE ARCHIVO”: Este comando abrirá un archivo existente. Si elarchivo reside en el mismo directorio que la macro, no es necesario que el nombre secoloque entre comillas. Como alternativa, el nombre de archivo puede ser una variable.

open_part “c:\Piezas de Gibbs\Mi Hermosa Pieza Generada por la macro.vnc”

SAVE_PART: Este comando guardará la pieza actual. Este comando no tiene ningúnargumento.

SAVE_PART_AS <“NOMBRE DE ARCHIVO”>: Este comando guardará la pieza actual con unnuevo nombre de archivo especificado o datos de una variable. El nombre del archivo sedebe especificar entre comillas.

FILE_DIALOG_NEW <TÍTULO>: Este comando crea un nuevo Cuadro de Diálogo Común deWindows con el título dado.

16

Page 21: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

FILE_DIALOG_EXTENSION <DESCRIPCIÓN>, <EXTENSIÓN>: Este comando agrega un valor a lasección del filtro del nombre de archivo del cuadro de diálogo.

FILE_DIALOG_SHOW OPEN|SAVE <NOMBRE DE VARIABLE>: Este comando muestra el cuadrode diálogo creado en el modo “Abrir” o “Guardar”.

FILE_DIALOG_NEW "Abrir Archivo de GibbsCAM"FILE_DIALOG_EXTENSION "Archivos de Piezas de GibbsCAM (*.vnc)", "*.vnc"FILE_DIALOG_EXTENSION "Todos los archivos (*.*)", "*.*"FILE_DIALOG_SHOW OPEN, filename$OPEN_PART filename$

Datos de PiezasGET_PART_DATA <PARÁMETRO>, <NOMBRE DE VARIABLE>: Este comando se utiliza paraobtener datos específicos de la pieza. Se proporciona una lista de los parámetrosdisponibles en la sección “Datos de Piezas” en la página 42.

SET_PART_DATA <PARÁMETRO>, <VALOR>: Este comando se utiliza para configurar datosespecíficos de la pieza. Se proporciona una lista de los parámetros disponibles en la sección“Datos de Piezas” en la página 42.

GET_SPINDLE_NUM <NOMBRE DE VARIABLE>: Este comando se utiliza para obtener elnúmero del husillo actualmente seleccionado.

SET_SPINDLE_NUM <NÚMERO DE HUSILLO>: Este comando se utiliza para configurar elnúmero del husillo actualmente seleccionado.

GET_MTM_DATA <PARÁMETRO>, <NOMBRE DE VARIABLE>: Este comando se utiliza paraobtener datos específicos de la pieza exclusivos del MTM. Se proporciona una lista de losparámetros disponibles en la sección “Datos de Configuración de MTM” en la página 42.

SET_MTM_DATA <PARÁMETRO>, <VALOR>: Este comando se utiliza para configurar datosespecíficos de la pieza exclusivos del MTM. Se proporciona una lista de los parámetrosdisponibles en la sección “Datos de Configuración de MTM” en la página 42.

Comandos de PostGET_POST_DATA <PARÁMETRO>, <NOMBRE DE VARIABLE>: Este comando se utiliza paraobtener datos del cuadro de diálogo de registro. Se proporciona una lista de los parámetrosdisponibles en la sección “Datos de Posts (Archivos de posprocesamiento)” en la página 53.

SET_POST_DATA <PARÁMETRO>, <VALOR>: Este comando se utiliza para configurar datos enel cuadro de diálogo de registro. Se proporciona una lista de los parámetros disponibles enla sección “Datos de Posts (Archivos de posprocesamiento)” en la página 53.

17

Page 22: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

RUN_POST [<NOMBRE DE ARCHIVO DE POST>, <NOMBRE DE ARCHIVO DE SALIDA>]: Estecomando se utiliza para ejecutar un post.

Comandos de Creación de GeometríaLa función de Macros de GibbsCAM tiene la habilidad de crear geometría. Al crear unpunto, una línea o un círculo, debe especificar el número de característica. Estos númerosse crean dentro de la memoria de la macro y no dentro de GibbsCAM. Esto se realiza paraque se pueda seleccionar la característica. El sistema permite hasta 100 puntos, 100 líneas y100 círculos.

Nota Acerca del Argumento <Opción>Algunos pocos comandos de creación de geometría tienen el argumento <opción>. Esteargumento se encuentra presente en comandos que pueden dar como resultado más de unasolución, como una línea tangente a un círculo en un ángulo específico, que tiene dossoluciones. El argumento <opción> permite al sistema elegir la solución que se utilizará.

Cada solución se calcula en forma matemática, de modo que mediante un procedimientode ensayo y error puede ver cuál de ellas necesitará. Por ejemplo, la intersección de unalínea y un círculo para obtener un punto le permitirá obtener dos opciones. La opción 1siempre será la primera intersección al mirar a lo largo de la dirección de la línea. Laintersección de dos círculos tendrá dos soluciones. La opción 1 siempre será el mismo ladode la línea desde el centro del círculo 1 al centro del círculo 2.

PuntosPOINT <X>, <Y>: Este comando creará un punto en la posición determinada.

POINT x1, y1POINT 10, 15

Aquí podemos ver dos ejemplos diferentes. El primero utiliza variables; se creará unpunto en la posición especificada por las variables desde una entrada de usuario. Elsegundo ejemplo utiliza un valor no modificable; se creará un punto en x10 y15. Losvalores se encuentran en unidades de pieza.

CREATE_POINT <NÚMERO DE PUNTO>: En una macro, es posible crear internamente puntos,líneas y círculos que estén en la memoria pero que no se hayan trazado. Estascaracterísticas de geometría se utilizan para calcular geometría, por ejemplo para quepueda crear un punto en la intersección de una línea y un círculo. Este comando toma ladefinición de un punto que está en la memoria y crea un punto real en dicha ubicación.

POINT_XY <NÚMERO DE PUNTO>, <X>, <Y>: Este comando creará un punto en la posicióndeterminada.

18

Page 23: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

POINT_CA <NÚMERO DE PUNTO>, <CÍRCULO>, <ÁNGULO>: Este comando creará un punto enun círculo en un determinado ángulo.

POINT_2L <NÚMERO DE PUNTO>, <LÍNEA>, <LÍNEA>: Este comando creará un punto en laintersección de dos líneas.

POINT_LC <NÚMERO DE PUNTO>, <LÍNEA>, <CÍRCULO>, <OPCIÓN>: Este comando creará unpunto en la intersección de una línea y un círculo.

POINT_2C <NÚMERO DE PUNTO>, <CÍRCULO>, <CÍRCULO>, <OPCIÓN>: Este comando crearáun punto en la intersección de dos círculos.

POINT_2P <NÚMERO DE PUNTO>, <PUNTO>, <PUNTO>: Este comando creará un punto entredos puntos especificados.

POINT_GET_DATA <NÚMERO DE PUNTO>, <X>, <Y>: Este comando adquiere los datos delpunto especificado.

point_get_data 10, xx, yy

Este ejemplo nos muestra la obtención de las coordenadas X e Y para el punto Nº 10. Losdatos de la coordenada se incluyen en las variables xx e yy.

POINT_COPY <NÚMERO DE PUNTO>, <NUEVO NÚMERO DE PUNTO>: Este comando crearáuna copia del punto especificado. Se suministra un número al punto copiado.

point_copy 1, 99

Este ejemplo muestra que el punto 1 se duplica y el nuevo punto se establece como elpunto 99.

POINT_TRANSLATE <NÚMERO DE PUNTO>, <DX>, <DY>: Este comando moverá el puntoespecificado por una cantidad en X e Y.

point_translate 1, 3, -5

Este ejemplo muestra que el punto 1 se mueve por tres unidades de pieza en X y por -5unidades de pieza en Y.

POINT_ROTATE <NÚMERO DE PUNTO>, <XC>, <YC>, <ÁNGULO>: Este comando girará elpunto alrededor de una ubicación especificada en un ángulo. Los valores negativos sonválidos.

point_rotate 1, 0, 0, 45

19

Page 24: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

point_rotate 2, -3, -3, -45

Este ejemplo muestra que el punto 1 gira alrededor de X0Y0 a 45 grados y que el punto2 gira alrededor de X-3Y-3 a -45 grados.

POINT_MIRROR <NÚMERO DE PUNTO>, <EJE>, <VAL>: Este comando reflejará el puntoespecificado a través del eje especificado, en un valor determinado.

point_mirror 1, x, 0point_mirror 2, y, 5

Este ejemplo muestra que el punto 1 se refleja por el eje X y el punto 2 lo hace por Y5,desde su posición actual.

POINTS: Este comando no toma ningún argumento y le permite crear un grupo de puntospreseleccionados. Dentro de los corchetes, defina los diversos puntos en el grupo mediantecualquier combinación de los comandos de creación de puntos.

POINTS [POINT 1, 2POINT 3, 2POINT 3, 5]

Luego de estos comandos, habrá tres puntos [en (1,2), (3,2) y (3,5)] y todos estaránseleccionados. En este momento, puede cargar un proceso de taladrado para crear unaoperación correspondiente.

LíneasLINE_2P <NÚMERO DE LÍNEA>, <PUNTO>, <PUNTO>: Este comando creará una línea a travésde 2 puntos.

line_2p 1, 3, 4line_2p 2, varp1, varp2

El primer ejemplo muestra que la línea Nº 1 se crea a través de los puntos 3 y 4. Elsegundo ejemplo muestra que la línea Nº 2 se crea a través de puntos que son variables.

LINE_HP <NÚMERO DE LÍNEA>, <PUNTO>: Este comando creará una línea horizontal a travésde un punto.

line_hp 5, 1

Este ejemplo muestra que la línea horizontal Nº 5 se crea a través del punto Nº 1.

20

Page 25: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

LINE_VP <NÚMERO DE LÍNEA>, <PUNTO>: Este comando creará una línea vertical através de un punto.

line_vp 5, 1

Este ejemplo muestra que la línea vertical Nº 5 se crea a través del punto Nº 1.

LINE_PA <NÚMERO DE LÍNEA>, <PUNTO>, <ÁNGULO>: Este comando creará una línea através de un punto en un ángulo.

line_pa 2, 1, 30

Este ejemplo muestra que la línea Nº 2 se crea a través del punto Nº 1 a 30 grados.

LINE_PC <NÚMERO DE LÍNEA>, <PUNTO>, <CÍRCULO>, <OPCIÓN>: Este comando creará unalínea a través de un punto tangente a un círculo.

LINE_CA <NÚMERO DE LÍNEA>, <CÍRCULO>, <ÁNGULO>, <OPCIÓN>: Este comando creará unalínea tangente a un círculo en un ángulo específico.

LINE_2C <NÚMERO DE LÍNEA>, <CÍRCULO>, <CÍRCULO>, <OPCIÓN>: Este comando creará unalínea tangente a dos círculos.

LINE_LD <NÚMERO DE LÍNEA>, <LÍNEA>, <DISTANCIA>: Este comando creará undesplazamiento de línea desde otra línea a una distancia especificada.

LINE_COPY <NÚMERO DE LÍNEA>, <NUEVO NÚMERO DE LÍNEA>: Este comando creará unacopia de la línea especificada. Se suministra un número a la línea copiada.

line_copy 1, 99

Este ejemplo muestra que la línea 1 se duplica y la nueva línea se establece como la línea99.

CREATE_LINE <NÚMERO DE LÍNEA>: En una macro, es posible crear internamente puntos,líneas y círculos que estén en la memoria pero que no se hayan trazado. Estascaracterísticas de geometría se utilizan para calcular geometría, por ejemplo para quepueda crear un punto en la intersección de una línea y un círculo. Este comando toma ladefinición de una línea que está en la memoria y crea una línea real en dicha ubicación.

LINE <X1>, <Y1>, <X2>, <Y2>: Este comando se ha desaprobado. Utilice uno de los otroscomandos de creación de línea.

21

Page 26: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

CírculosCIRCLE <XC>, <YC>, <RADIO>: Este comando creará un círculo con un punto central y unradio determinados. Durante la creación, CircleRef(+1) define el círculo.

CIRCLE cpx, cpy, rad1

CIRCLE x0, y0, 10

Aquí podemos ver dos ejemplos diferentes. El primero utiliza variables; se creará uncírculo con un radio definido por rad1 con su centro en cpx, cpy. Estas variables sedeterminarán en tiempo de ejecución a partir de la entrada del usuario. El segundoejemplo utiliza un valor no modificable; se creará un círculo con un radio de unidad depieza 10 en el origen de la pieza.

CREATE_CIRCLE <NÚMERO DE CÍRCULO>: En una macro, es posible crear internamentepuntos, líneas y círculos que estén en la memoria pero que no se hayan trazado. Estascaracterísticas de geometría se utilizan para calcular geometría, por ejemplo para quepueda crear un punto en la intersección de una línea y un círculo. Este comando toma ladefinición de un círculo que está en la memoria y crea un círculo real en dicha ubicación.

CIRCLE_CR <NÚMERO DE CÍRCULO>, <Nº DE PUNTO>, <RAD>: Este comando creará un círculoutilizando un punto existente para el punto central con un radio especificado.

CIRCLE_CP <NÚMERO DE CÍRCULO>, <PUNTO 1>, <PUNTO 1>: Este comando creará un círculomediante dos puntos; el primero es el punto central y el segundo especifica el radio.

CIRCLE_2P <NÚMERO DE CÍRCULO>, <PUNTO>, <PUNTO>: Este comando creará un círculoutilizando dos puntos para definir el diámetro.

CIRCLE_2PR <NÚMERO DE CÍRCULO>, <PUNTO>, <PUNTO>, <RAD>, <OPCIÓN>: Este comandocreará un círculo utilizando dos puntos que se encuentran en el radio con un valor de radiodeterminado.

CIRCLE_2LR <NÚMERO DE CÍRCULO>, <LÍNEA>, <LÍNEA>, <RAD>, <OPCIÓN>: Este comandocreará un círculo con un radio especificado tangente a dos líneas.

CIRCLE_3P <NÚMERO DE CÍRCULO>, <PUNTO>, <PUNTO>, <PUNTO>: Este comando creará uncírculo a través de tres puntos.

CIRCLE_PL <NÚMERO DE CÍRCULO>, <PUNTO>, <LÍNEA>: Este comando creará un círculo conel punto especificado en el centro, que es tangente a una línea.

22

Page 27: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

CIRCLE_PLR <NÚMERO DE CÍRCULO>, <PUNTO>, <LÍNEA>, <RAD>, <OPCIÓN>: Este comandocreará un círculo con el punto especificado en el centro, que es tangente a una línea y tieneun radio especificado.

CIRCLE_PC <NÚMERO DE CÍRCULO>, <PUNTO>, <CÍRCULO>: Este comando creará un círculocon el punto especificado en el centro, que es tangente a un círculo.

CIRCLE_PCR <NÚMERO DE CÍRCULO>, <PUNTO>, <CÍRCULO>, <RAD>, <OPCIÓN>: Estecomando creará un círculo con el punto especificado en el centro, que es tangente a otrocírculo y tiene un radio especificado.

CIRCLE_LCR <NÚMERO DE CÍRCULO>, <LÍNEA>, <CÍRCULO>, <RAD>, <OPCIÓN>: Este comandocreará un círculo con un radio especificado que es tangente a una línea y a un círculo.

CIRCLE_2CR <NÚMERO DE CÍRCULO>, <CÍRCULO>, <CÍRCULO>, <RAD>, <OPCIÓN>: Estecomando creará un círculo con un radio especificado que es tangente a dos círculos.

CIRCLE_GET_DATA <NÚMERO DE CÍRCULO>, <CX>, <CY>, <RAD>: Este comando adquiere losdatos del círculo especificado.

circle_get_data 10, xx, yy, rr

Este ejemplo nos muestra la obtención de las coordenadas X e Y, y el valor de radio delcírculo Nº 10. Los datos de las coordenadas se incluyen en las variables xx, yy y rr.

CIRCLE_COPY <NÚMERO DE CÍRCULO>, <NUEVO NÚMERO DE CÍRCULO>: Este comando crearáuna copia del círculo especificado. Se suministra un número al círculo copiado.

circle_copy 1, 99

Este ejemplo muestra que el círculo 1 se duplica y el nuevo círculo se establece como elcírculo 99.

CIRCLE_TRANSLATE <NÚMERO DE CÍRCULO>, <DX>, <DY>: Este comando moverá el círculoespecificado por una cantidad en X e Y.

circle_translate 1, 3, -5

Este ejemplo muestra que el círculo 1 se mueve por tres unidades de pieza en X y por -5unidades de pieza en Y.

CIRCLE_ROTATE <NÚMERO DE CÍRCULO>, <XC>, <YC>, <ÁNGULO>: Este comando girará elcírculo alrededor de una ubicación especificada en un ángulo. Los valores negativos sonválidos.

23

Page 28: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

circle_rotate 1, 0, 0, 45circle_rotate 2, -3, -3, -45

Este ejemplo muestra que el círculo 1 gira alrededor de X0Y0 en 45 grados y que elcírculo 2 gira alrededor de X-3Y-3 en -45 grados

CIRCLE_MIRROR <NÚMERO DE CÍRCULO>, <EJE>, <VAL>: Este comando reflejará el círculoespecificado a través del eje determinado, con un valor en particular.

circle_mirror 1, x, 0circle_mirror 2, y, 5

Este ejemplo muestra que el círculo 1 se refleja a través del eje X y el círculo 2 lo hace através de Y5, desde su posición actual.

Otra GeometríaCONTOUR [ ]: La función de macros le permite crear un contorno que consiste en líneas y/oarcos circulares. Entre corchetes, usted define la posición inicial de la figura, junto con laslíneas y los arcos que definen dicha figura. La definición del contorno termina con uncorchete ].

contour [start r1, 0line l1-r1, 0line l1, h2-r2line l2+r2, h2line l2, h1-r2line r1, h1line 0, r1]

<REF> = CONTOURREF: Una vez finalizada la definición del contorno, la variable ContourRefse establece en el número de referencia del contorno.

myShape = ContourRef

START <X>, <Y>: Corresponde a la posición inicial del contorno que se define.

START 0, 0

LINE <X>, <Y>: Corresponde a la posición inicial de una línea en una figura de contorno.

LINE varx1, vary1

LINE 0, 0

24

Page 29: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Aquí podemos ver dos ejemplos diferentes. El primero utiliza variables; se creará unalínea que comienza en la intersección de varx1 y vary1. Estas variables se determinaránen tiempo de ejecución a partir de la entrada del usuario. El segundo ejemplo utiliza unvalor no modificable; se creará una línea que comienza en el origen de la pieza. Losvalores se encuentran en unidades de pieza.

ARC <XC>, <YC>, <X>, <Y>, “EN DIRECCIÓN DE LAS AGUJAS DEL RELOJ” | “EN DIRECCIÓNCONTRARIA A LAS AGUJAS DEL RELOJ”: Este comando establece el punto central, el radiodefinido por una posición y la dirección de un arco.

ARC xc2, yc2, x2+tx2, y2+ty2, ccw

ARC 9, 1, 9, 0, ccw

Aquí podemos ver dos ejemplos diferentes. El primero utiliza variables; un arco en ladirección contraria de las agujas del reloj cuyo punto central se encuentra en laintersección de xc2, yc2, con un punto final en (x2+tx2), (y2+ty2). Estas variables sedeterminarán en tiempo de ejecución a partir de la entrada del usuario. El segundoejemplo utiliza un valor no modificable; un arco en la dirección contraria de las agujasdel reloj cuyo punto central se encuentra en X9, Y1 con un punto final en X9, Y0. Losvalores se encuentran en unidades de pieza.

FIT_CURVE <TOLERANCIA>, <UNIFORME | CHORD_LEN | FOLEY | ACELERACIÓN CENTRÍPETA>:Este comando creará una curva entre puntos mediante uno de los cuatro modos: uniforme,longitud de cuerda, de Foley o aceleración centrípeta. Vea el manual Creación deGeometría para obtener más información sobre las diferencias entre estos tipos de curvas.

Selección de Geometría y Comandos de TransformaciónLa selección de geometría se controla mediante comandos.

SELECT_GEO <REF NUM>: Seleccione la característica de geometría determinada y ésta seagregará a la geometría actualmente seleccionada. Una vez seleccionada, la geometríapuede transformarse mediante las funciones Trasladar, Girar, Escalar o Simetría.

SELECT_GEO line1

SELECT_ALL_GEO: Este comando seleccionará toda la geometría en el grupo de trabajoactual. No hay argumentos para este comando. Una vez seleccionada, la geometría puedetransformarse mediante las funciones Trasladar, Girar, Escalar o Simetría.

SELECT_SHAPE <REF>: Este comando seleccionará una figura. El número de referencia de lafigura puede ser el número de una característica en dicha figura; la función Macros deGibbsCAM seleccionará automáticamente todas las características conectadas a la

25

Page 30: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

característica dada. Una vez seleccionada, la geometría puede transformarse mediante lasfunciones Trasladar, Girar, Escalar o Simetría.

SELECT_SHAPE myShape

DESELECT_ALL_GEO: Este comando deseleccionará toda la geometría. Por lo general, seutiliza al final de una macro y antes de seleccionar figuras para garantizar que no existanselecciones múltiples/incorrectas. No hay argumentos para este comando.

DESELECT_GEO <NUM REF>: Este comando deseleccionará la característica de la geometríadada.

DESELECT_GEO line1

SELECT_REF <REF>: Este comando ha sido desaprobado por “select_geo <ref num>”.

GET_SELECTION_LIST <NÚMERO DE LISTA>: Este comando obtiene una lista de toda lageometría actualmente seleccionada y guarda dicha lista para un uso posterior. Porejemplo, usted puede tener una matriz de puntos seleccionada. La creación de una lista deselección le permite guardar esta agrupación determinada para un uso posterior, como porejemplo, luego de crear más geometría. El comando “get_selection_list” guarda la selecciónactual. Puede tener hasta 10 listas de selección.

SET_SELECTION_LIST <NÚMERO DE LISTA>, [<OPCIÓN>]: Seleccione la geometría guardadaanteriormente en el número de lista de selección dado. Si establece la opción en 1, toda lageometría actualmente seleccionada permanecerá seleccionada y si la establece en 0 (valorpredeterminado) toda la geometría se deseleccionará antes de seleccionar la que seencuentra en la lista.

TRANSLATE_GEO <DX>, <DY>, [ <DZ>, <Nº DE COPIAS>]: Este comando moverá la geometríaseleccionada por el valor dado. Los números pueden ser positivos o negativos. De maneraopcional, también puede cambiar la profundidad de la geometría y/o trasladar la geometríavarias veces.

TRANSLATE_GEO 5, -2, 2

Este comando moverá la geometría seleccionada por 5 unidades de piezas en X, -2unidades en Y y 2 unidades en Z. Por lo general, este comando se utiliza con variablescuyos valores se definen en tiempo de ejecución.

ROTATE_GEO <XC>, <YC>, <ÁNGULO EN GRADOS>, [<Nº DE COPIAS>]: Este comando girará lageometría seleccionada alrededor de la posición especificada, según la cantidad de gradosespecificada. Los números pueden ser positivos o negativos. De manera opcional, tambiénpuede girar la geometría varias veces.

26

Page 31: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

ROTATE_GEO 5, 0, 45

Este comando girará la geometría seleccionada 45 grados en X5, Y0. Por lo general, estecomando se utiliza con variables cuyos valores se definen en tiempo de ejecución.

SCALE_GEO <FACTOR>: Este comando escalará la geometría seleccionada.

SCALE_GEO 0.1

SCALE_GEO 25.4

El comando del primer ejemplo escalará la geometría seleccionada a 10% de su tamañoactual. El comando del segundo ejemplo escalará la geometría seleccionada a 25,4 vecessu tamaño actual. Por lo general, este comando se utiliza con variables cuyos valores sedefinen en tiempo de ejecución.

MIRROR_GEO <EJE>, <VALOR DE EJE>, [<Nº DE COPIAS>]: Este comando invertirá lageometría seleccionada en el punto especificado por un eje específico. El parámetro “eje”para el comando de simetría es X o Y. De manera opcional, también puede crear más de unacopia de la geometría con simetría.

MIRROR_GEO X, 5

MIRROR_GEO Y, 0

El comando del primer ejemplo invertirá la figura seleccionada en X5. El comando delsegundo ejemplo invertirá la geometría en Y0. Por lo general, este comando se utilizacon variables cuyos valores se definen en tiempo de ejecución.

DELETE_GEO <REF GEO>: Elimina una característica de la geometría.

DELETE_SHAPE <REF FORMA>: Elimina una figura completa.

Comandos de Información de GeometríaEstos comandos le permiten adquirir datos de una característica.

GET_NUM_FEAT_SELECTED <NOMBRE DE VARIABLE>: Obtiene el número de característicasactualmente seleccionadas.

GET_SELECTED_GEO_REF <NÚMERO>, <NOMBRE DE VARIABLE>: Obtiene el número dereferencia de la característica de GibbsCAM para una de las características actualmenteseleccionadas. <NÚMERO> es un valor entre 1 y el número de características seleccionadas.

GET_NUM_FEAT_SELECTED inum

27

Page 32: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

FOR I = 1 to inumGET_SELECTED_GEO_REF i, irefDEBUG iref

NEXT i

En el ejemplo anterior, supongamos que había tres características actualmenteseleccionadas. La variable inum se establecería en 3 y la macro realizaría un bucle tresveces mostrando el número de característica de GibbsCAM correspondiente a laprimera característica seleccionada, luego la segunda y a continuación, la tercera.

GET_FEAT_TYPE <NÚMERO>, <NOMBRE DE VARIABLE>: Obtiene el tipo de característicaseleccionada. La variable se establecerá en:

GET_FEAT_START <GEO_REF>, <SC>, <XS>, <YS>, [<ZS>]: Obtiene los datos correspondientes ala posición inicial de la característica seleccionada. Si <SC> se establece en 0, esto indicaráque la posición se encuentra en el SC local, mientras que cualquier otro valor indicará quelas posiciones se encuentran en el SC global.

GET_FEAT_END <REF GEO>, <SC>, <XE>, <YE>, [<ZE>]: Obtiene los datos correspondientes a laposición final de la característica seleccionada.

GET_CIRCLE_DATA <REF GEO>, <SC>, <RAD>, <XC>, <YC>, [<ZC>]: Obtiene los datoscorrespondientes a la posición central de la característica seleccionada. Si la característicano es un círculo, la macro dejará de procesar.

GET_ARC_DATA <REF GEO>, <SC>, <RAD>, <DIR>, <XC>, <YC>, [<ZC>]: Obtiene los datoscorrespondientes a la posición central de la característica seleccionada. Si la característicano es un arco, la macro dejará de procesar.

Comandos de Grupo de Trabajo y Sistema de CoordenadasNEW_CS [XY, <NOMBRE>, <X>, <Y>, <Z>] | [XZ, <NOMBRE>, <X>, <Y>, <Z>] | [YZ, <NOMBRE>,<X>, <Y>, <Z>] | [3P, <NOMBRE>, <X1>, <Y1>, <Z1>, <X2>, <Y2>, <Z2>, <X3>, <Y3>, <Z3>]: Estecomando crea un nuevo sistema de coordenadas. Existen cuatro maneras de definir el SC.En cada caso, suministre el nombre del nuevo SC como texto entre comillas dobles o comouna variable de cadena que contenga el nombre del SC. GibbsCAM asignará el número deSC, que se guardará en la variable CsNumber.

1. Basado en el plano XY [xy, <nombre>, <x>, <y>, <z>] Este SC se alineará con elplano XY y su origen estará en las coordenadas XYZ especificadas.

1 = Punto 2 = Línea 3 = Círculo4 = Arco 5 = Curva

28

Page 33: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

2. Basado en el plano XZ [xz, <nombre>, <x>, <y>, <z>]. Este SC se alineará con elplano XZ y su origen estará en las coordenadas XYZ especificadas.

3. Basado en el plano YZ [yz, <nombre>, <x>, <y>, <z>]. Este SC se alineará con elplano YZ y su origen estará en las coordenadas XYZ especificadas.

4. Basado en 3 puntos [3p, <nombre>, <x1>, <y1>, <z1>, <x2>, <y2>, <z2>,<x3>, <y3>, <z3>]. Esta opción le permite crear un SC alineado con tres puntosarbitrarios. El nuevo origen del SC se ubicará en el primer punto. El segundo punto y eltercer punto definen una posición a lo largo del eje H y V, respectivamente.

SET_CS <CS NUMBER>: Seleccione el número de SC dado.

GET_CS <NOMBRE DE VARIABLE>: Obtiene el número del SC actualmente seleccionado.

GET_CS_LIST: Este comando es uno de los tres comandos utilizados para iterar mediante lalista de SC. Una vez activado, permite el uso de los comandos number_of_css ynext_cs_number. Vea la macro de ejemplo “Obtener Información de Lista de SC” en lapágina 64 para obtener un buen ejemplo de éste y otros comandos relacionados.

NUMBER_OF_CSS: Este comando es el segundo de los tres comandos utilizados para iterarmediante la lista de SC. Guarda una variable para el número de sistemas de coordenadas enuna pieza.

NEXT_CS_NUMBER: Este comando es el tercero de los tres comandos utilizados para iterarmediante la lista de SC e itera al SC siguiente.

GET_CS_NAME <NÚMERO DE SC>, <VARIABLE>: Este comando se utiliza para adquirir elnombre de un SC determinado. La primera y la segunda variables corresponden al númerode SC y al nombre del SC, respectivamente.

SET_CS_NAME <NÚMERO DE SC>, <NOMBRE DE VARIABLE>: Muestra el nombre del SC dado.

GET_GEO_CS <REF GEO>, <NOMBRE DE VARIABLE>: Obtiene el número de SC asociado con elnúmero de característica dado y lo muestra en la variable.

SET_GEO_CS <REF GEO>, <VALOR>: Cambia el SC de una característica de geometría.

GET_GEO_AIR <REF GEO>, <NOMBRE DE VARIABLE>: Obtiene el atributo Pared/Aire de unacaracterística de geometría. Si es Aire, la variable se establecerá en 1; si no lo es, seestablecerá en 0.

29

Page 34: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

SET_GEO_AIR <REF GEO>, <VALOR>: Cambia el atributo Pared/Aire de una característica degeometría. 1 la establecerá en Aire y 0 en Pared.

NEW_WG <NÚMERO DE GT>: Este comando crea un nuevo grupo de trabajo. Generalmente,se utilizará una variable para que el número de grupo de trabajo se incremente al grupo detrabajo siguiente.

SET_WG <NÚMERO DE GT>: Establece el Grupo de Trabajo actual en el número de grupo detrabajo dado.

GET_WG <NOMBRE DE VARIABLE>: Obtiene el número del Grupo de Trabajo actualmenteseleccionado.

GET_WG_NAME <NÚMERO DE GT>, <NOMBRE DE VARIABLE>: Muestra el nombre delnúmero de Grupo de Trabajo dado.

GET_CS_SPINDLE <SC>, <VARIABLE>: Este comando recupera el número de husillo asociadocon un SC dado.

Comandos de SólidosEXTRUDE <ZS>, <ZE>: Este comando creará un sólido extruido a partir de una figura cerradaseleccionada. Defina los valores iniciales y finales de Z, en relación con el sistema decoordenadas actual. El orden de los valores no es importante, es decir, +Z o -Z pueden serprimeros o últimos.

extrude 10, -10extrude -10, 10

Los ejemplos que se muestran aquí crearán sólidos idénticos, extruidos por 10 unidadesde pieza.

REVOLVE H <VALOR>, <ÁNGULO> | V <VALOR>, <ÁNGULO>: Este comando creará un sólidogirado alrededor del eje horizontal o vertical a partir de geometría seleccionada. Elparámetro <valor> indica la posición alrededor de la cual se girará la figura y el parámetro<ángulo> especifica de cuántos grados será la revolución o el giro, siendo 360 el valormáximo.

revolve v, 0, 360revolve h, 1, 180

Estos ejemplos crearán una figura girada 360 grados alrededor del eje vertical y otragirada 180 grados alrededor de H+1.

30

Page 35: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

TRANSLATE_SOLID <DX>, <DY>, [ <DZ>, <NÚM COPIAS>]: Este comando moverá el sólidoseleccionado por el valor dado. Los números pueden ser positivos o negativos. De maneraopcional, también puede mover el sólido a lo largo del eje de profundidad y/o trasladarlovarias veces.

ROTATE_SOLID <XC>, <YC>, <ÁNGULO>, [<NÚM COPIAS>]: Este comando girará el sólidoseleccionado alrededor de la posición especificada, según la cantidad de gradosespecificada. Los números pueden ser positivos o negativos. De manera opcional, tambiénpuede girar el sólido varias veces.

MIRROR_SOLID <EJE>, <VALOR DE EJE>, [<Nº DE COPIAS>]: Este comando invertirá el sólidoactualmente seleccionado por el punto especificado, a lo largo de un eje específico. Elparámetro “eje” para el comando de simetría es X o Y. De manera opcional, también puederealizar más de una copia del sólido con simetría.

SCALE_SOLID <FACTOR DE ESCALA>: Este comando escalará el sólido seleccionado.

SCALE_SOLID 0.1

SCALE_SOLID 25.4

El comando del primer ejemplo escalará el sólido seleccionado a 10% de su tamañoactual. En el segundo ejemplo, el sólido seleccionado se escalará a 25,4 veces su tamañoactual. Por lo general, este comando se utiliza con variables cuyos valores se definen entiempo de ejecución.

SOLID_UNION <REF SÓLIDO>, <REF SÓLIDO>: Este comando ejecutará la función boleanaUnión en los dos sólidos especificados.

SOLID_SUBTRACT <REF SÓLIDO>, <REF SÓLIDO>: Este comando ejecutará la función boleanaResta en los dos sólidos especificados.

SOLID_INTERSECT <REF SÓLIDO>, <REF SÓLIDO>: Este comando ejecutará la función boleanaIntersección en los dos sólidos especificados.

SELECT_SOLID <REF SÓLIDO>: Este comando seleccionará el sólido especificado.

SELECT_ALL_SOLIDS: Si este comando se abre, seleccionará todos los sólidos, tanto en elespacio de trabajo como en la Bolsa de Sólidos. No tiene ningún argumento.

DELETE_SOLID <REF SÓLIDO>: Este comando deseleccionará el sólido especificado.

DESELECT_ALL_SOLIDS: Si este comando se abre, deseleccionará todos los sólidos, tanto enel espacio de trabajo como en la Bolsa de Sólidos. No tiene ningún argumento.

31

Page 36: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

GET_SOLID_BAGGED <REF SÓLIDO>, <NOMBRE DE VARIABLE>, <0 | 1>: Este comandoverificará si el sólido dado está dentro o fuera de la bolsa de sólidos. 1 significa que está enla bolsa y 0, que no lo está.

SET_SOLID_BAGGED <REF SÓLIDO>, <0 | 1 >: Este comando colocará un sólido especificadoen la Bolsa de Sólidos o lo sacará de ella. “0” saca el sólido de la Bolsa de Sólidos mientrasque “1” lo introduce en ella.

Comandos de HerramientasGET_TOOL_LIST [0 | 1]: Este comando crea una Lista de Herramientas y no necesita ningúnargumento; de forma predeterminada se observa la lista completa (que es “0”). Comoalternativa, puede utilizar “1” en el argumento y el comando creará una lista únicamente delas herramientas seleccionadas. Una vez que se genere la lista, la macro establece lasvariables number_of_tools, first_tool_number, last_tool_number yfirst_free_tool_number. Esto le permite a la macro determinar cuántas herramientashay y cuáles son los números de la primera herramienta y el primer mosaico vacío. Luego,puede utilizar la variable next_tool_number. La primera vez que la utilice, se estableceráen el número de la primera herramienta, la próxima vez, en el número de la segundaherramienta y cada vez que la utilice, el número se incrementará a la siguienteherramienta. Por lo tanto, puede utilizar un bucle FOR/NEXT para observar cadaherramienta.

GET_TOOL_LIST 1

Este comando crea en la memoria una lista de las herramientas seleccionadas en la listade herramientas. También establece cuatro variables que le permiten observar a travésde la lista de herramientas seleccionadas.

CREATE_MILL_TOOL <NÚMERO>: Este comando crea una nueva herramienta tipo fresa. Estaherramienta se crea en la Lista de Herramientas en el número de mosaico especificado

CREATE_LATHE_TOOL <NÚMERO>: Este comando crea una nueva herramienta tipo torno.Esta herramienta se crea en la Lista de Herramientas en el número de mosaico especificado

DELETE_TOOL <NÚMERO>: Este comando elimina la herramienta que ocupa la posiciónespecificada en la Lista de Herramientas.

NUMBER_OF_TOOLS: No tiene ningún argumento.

GET_TOOL_STATUS <NÚMERO DE HERRAMIENTA>, <NOMBRE DE VARIABLE>: Este comandodetermina el estado de un mosaico de herramienta. Un valor devuelto de “0” significa quela posición del mosaico está vacía, “1”, que la herramienta está definida y es válida, y “-1”,que no se han definido todos los datos necesarios para definir la herramienta.

32

Page 37: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

GET_TOOL_DATA <NÚMERO DE HERRAMIENTA>, <NOMBRE DE PARÁMETRO>, <NOMBRE DEVARIABLE>: Este comando se utiliza para obtener datos específicos de la herramienta. Seproporciona una lista de los parámetros disponibles en la sección “Datos de Herramientas”en la página 42.

SET_TOOL_DATA <NÚMERO DE HERRAMIENTA>, <PARÁMETRO>, <VALOR>: Este comando seutiliza para configurar datos específicos de la herramienta. Se proporciona una lista de losparámetros disponibles en la sección “Datos de Herramientas” en la página 42.

GET_TOOL_SELECTED <NÚMERO DE HERRAMIENTA>, <NOMBRE DE VARIABLE>: Estecomando se utiliza para verificar si un número de herramienta dado se encuentraactualmente definido. Si lo está, la variable se establece en 1; si no lo está, se establecerá en0.

SELECT_TOOL <NÚMERO>: Este comando selecciona la herramienta que ocupa la posiciónespecificada en la Lista de Herramientas.

SELECT_ALL_TOOLS: Este comando selecciona todas las herramientas en la lista deherramientas. No tiene ningún argumento.

DESELECT_TOOL <NÚMERO DE HERRAMIENTA>: Este comando deselecciona la herramientaque ocupa la posición especificada en la Lista de Herramientas.

DESELECT_ALL_TOOLS: Este comando deselecciona todas las herramientas en la lista deherramientas. No tiene ningún argumento.

Comandos de Grupo de HerramientasGET_TG_DATA <Nº HUSILLO>, <Nº GRUPO HERRAMIENTAS>, <PARÁMETRO>, <NOMBRE DEVARIABLE>: Este comando se utiliza para obtener la posición del cambio de herramientapara un grupo de herramientas dado. El comando requiere especificar el husillo al queactualmente se hace referencia, el número del grupo de herramientas y un nombre deparámetro y variable para almacenar los datos. Los parámetros válidos para este comandoson tool_change_x, tool_change_y y tool_change_z.

SET_TG_DATA <Nº HUSILLO>, <Nº GRUPO HERRAMIENTAS>, <PARÁMETRO>, <VALOR>: Estecomando se utiliza para configurar la posición del cambio de herramienta para un grupo deherramientas dado. El comando requiere especificar el husillo al que actualmente se hacereferencia, el número del grupo de herramientas, un parámetro y un valor para el mismo.Los parámetros válidos para este comando son tool_change_x, tool_change_y ytool_change_z.

33

Page 38: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Comandos del Proceso de MecanizadoLos procesos se utilizan para realizar operaciones. Este conjunto de comandos le permitedefinir y manipular datos de proceso, además de crear una o más operaciones.

GET_PROC_LIST [0 | 1]: Este comando crea una lista de procesos en la Lista de Procesos y nonecesita ningún argumento; de forma predeterminada se observa la lista completa (que es“0”). Como alternativa, puede utilizar “1” en el argumento y el comando creará una listaúnicamente de procesos seleccionados. Una vez que se genere la lista, la macro establecelas variables number_of_procs, first_proc_number, last_proc_number yfirst_free_proc_number. Esto le permite a la macro determinar cuántos procesos hay ycuáles son los números del primer proceso y el primer mosaico vacío. Luego, puede utilizarla variable next_proc_number. La primera vez que la utilice, se establecerá en el númerodel primer proceso, la próxima vez, en el número del segundo proceso y cada vez que lautilice, el número se incrementará al siguiente proceso. Por lo tanto, puede utilizar unbucle FOR/NEXT para observar cada proceso.

GET_PROC_LIST 1

Este comando crea en la memoria una lista de los procesos seleccionados en la Lista deProcesos. También establece cuatro variables que le permiten observar a través de la listade procesos seleccionados.

CREATE_PROC <NÚMERO>: Este comando crea un proceso. A continuación del mismo, debeagregar comandos que le permitan establecer el tipo y los valores del proceso (comandosSET_PROC_DATA).

DELETE_PROC <NÚMERO DE PROCESO>: Este comando elimina el número de procesoespecificado en la Lista de Procesos.

GET_PROC_STATUS <NÚMERO DE PROCESO>, <NOMBRE DE VARIABLE>: Este comandoverifica el estado de un número de proceso dado. La variable se establecerá en 0 si elmosaico de proceso está vacío, en 1 si contiene una definición de proceso válida y en -1 sicontiene un proceso parcialmente completo.

GET_PROC_DATA <NÚMERO DE PROCESO>, <PARÁMETRO>, <NOMBRE DE VARIABLE>: Estecomando se utiliza para obtener datos específicos del proceso. Se proporciona una lista delos parámetros disponibles en la sección “Datos del Proceso” en la página 44.

SET_PROC_DATA <NÚMERO DE PROCESO>, <PARÁMETRO>, <VALOR>: Este comando seutiliza para configurar datos específicos del proceso. Se proporciona una lista de losparámetros disponibles en la sección “Datos del Proceso” en la página 44.

34

Page 39: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

GET_UTIL_PROC_DATA <NÚMERO DE PROCESO>, <PARÁMETRO>, <NOMBRE DE VARIABLE>:Este comando se utiliza para obtener datos de un proceso de utilidad. Se proporciona unalista de los parámetros disponibles en la sección “Datos del Proceso de Utilidad” en lapágina 48.

SET_UTIL_PROC_DATA <NÚMERO DE PROCESO>, <PARÁMETRO>, <VALOR>: Este comando seutiliza para configurar datos para un proceso de utilidad. Se proporciona una lista de losparámetros disponibles en la sección “Datos del Proceso de Utilidad” en la página 48.

CLEAR_PROC_LIST: Este comando eliminará todos los procesos en la Lista de Procesos. Notiene ningún argumento.

LOAD_PROC <“NOMBRE DE ARCHIVO”>: Este comando le permite a una macro cargar unproceso almacenado/guardado. El nombre puede ser simplemente el nombre del archivo opuede ser la ruta completa al archivo. Este comando desaprueba “load_process”.

LOAD_PROC “c:\Documents and Settings\wilg\Desktop\SavedProcess3.prc”

CALC_PROC: Este comando le permite a una macro calcular la trayectoria y crear una o másoperaciones. Se ha definido o cargado un proceso para que este comando funcione. Estoequivale a hacer clic en el botón “Iniciar”. Este comando desaprueba “calc_process”.

GET_PROC_SELECTED <NÚMERO DE PROCESO>, <NOMBRE DE VARIABLE>: Este comando seutiliza para verificar si un proceso dado se encuentra actualmente seleccionado. La variablese establecerá en 1 si lo está y en 0 si no lo está.

SELECT_PROC <NÚMERO DE PROCESO>: Este comando seleccionará el Mosaico de Procesoespecificado.

SELECT_ALL_PROCS: Este comando seleccionará todos los procesos en la Lista de Procesos.No tiene ningún argumento.

DESELECT_PROC <NÚMERO DE PROCESO>: Este comando deseleccionará el Mosaico deProceso especificado.

DESELECT_ALL_PROCS: Este comando deseleccionará todos los procesos en la Lista deProcesos. No tiene ningún argumento.

SET_MARKERS <0 | 1 | 2 (LADO DE HERRAMIENTA)>, <CARACT INICIAL>, <DIST INICIAL>,<CARACT FINAL>, <DIST FINAL>, [<DIRECCIÓN>, <CARACTERÍSTICA ÚNICA>]: Este comando lepermite especificar cómo se establecen los marcadores de mecanizado antes de crear latrayectoria.

35

Page 40: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Los valores de <lado de herramienta> pueden ser “0” (sin desplazamiento), “1” (a laizquierda de la herramienta) o “2” (a la derecha de la herramienta).

<Start feat> especifica en qué característica de geometría se debe iniciar. Los valores válidosson números enteros; “1” corresponde a la primera característica del contorno, “2”corresponde a la segunda característica, etc.

<Start dist> especifica la distancia a lo largo de la característica inicial en la que se debeiniciar el mecanizado. Los valores válidos equivalen a un porcentaje a lo largo de lacaracterística expresado como un número decimal, en el que “-0,1” es el 10% de la longitudde la característica antes del inicio de la característica, “0,5” es la mitad de la longitud y“0,9” es el 90% de la longitud.

<End feat> especifica en qué característica de geometría se debe finalizar. Los valoresválidos son números enteros; “1” corresponde a la primera característica del contorno, “2”corresponde a la segunda característica, etc.

<End dist> especifica la distancia a lo largo de la característica final en la que se debedetener el mecanizado. Los valores válidos equivalen a un porcentaje a lo largo de lacaracterística expresado como un número decimal, en el que “-0,1” iniciará antes de lacaracterística a un 10% de la longitud de la característica, “0,5” es la mitad de lacaracterística y “1,1” es el 10% de la longitud de la característica más allá del final de lamisma.

<Dirección> se establece en 1 para mecanizar en la dirección en que se creó la figura y en 0para mecanizar en la dirección contraria.

<Característica Única> se establece en 1 si la figura va a cortarse como una figura decaracterística única.

SET_MARKERS 0, 1, -0.05, 4, 1.05 1 0

Este ejemplo define los marcadores de mecanizado para cortar en el centro;comenzando por la primera característica en el 5% de la longitud de la característica. Lacuarta característica es la última que se corta y la trayectoria terminará fuera del finalde la característica en un 5% de su longitud. Los marcadores se establecen para girarpor todo el diámetro y cortar en la dirección en que se creó la figura.

Comandos de Operaciones de MecanizadoLas operaciones contienen datos de la trayectoria y son renderizadas y postprocesadas porGibbsCAM. Este conjunto de comandos le permite manipular los datos de operación.

36

Page 41: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

GET_OP_LIST [0 | 1]: Este comando crea una lista de operaciones en la Lista de Operacionesy no necesita ningún argumento; de forma predeterminada se observa la lista completa(que es “0”). Como alternativa, puede utilizar “1” en el argumento y el comando creará unalista únicamente de procesos seleccionados. Una vez que se genere la lista, la macroestablece las variables number_of_ops, first_op_number, last_op_number yfirst_free_op_number. Esto le permite a la macro determinar cuántas operaciones hay ycuáles son los números de la primera operación y el primer mosaico vacío. Luego, puedeutilizar la variable next_op_number. La primera vez que la utilice, se establecerá en elnúmero de la primera operación, la próxima vez, en el número de la segunda operación ycada vez que la utilice, el número se incrementará a la siguiente operación. Por lo tanto,puede utilizar un bucle FOR/NEXT para observar cada operación.

GET_OP_LIST 1

Este comando crea en la memoria una lista de las operaciones seleccionadas en la Lista deOperaciones. También establece cuatro variables que le permiten observar a través de lalista de operaciones seleccionadas.

GET_OP_STATUS <NÚMERO>, <NOMBRE DE VARIABLE>: Este comando obtiene el estado delnúmero de mosaico de operación dado. 0 significa que está vacío, 1, que contiene unaoperación válida y –1 que es un mosaico de operación parcialmente completo.

DELETE_OP <NÚMERO>: Este comando elimina el número de operación especificado en laLista de Operaciones.

GET_OP_DATA <NÚMERO>, <PARÁMETRO>, <NOMBRE DE VARIABLE>: Este comando seutiliza para obtener datos de un proceso de operación. Se proporciona una lista de losparámetros disponibles en la sección “Datos de Operación” en la página 50.

SET_OP_DATA <NÚMERO>, <PARÁMETRO>, <VALOR>: Este comando se utiliza paraconfigurar datos para un proceso de operación. Se proporciona una lista de los parámetrosdisponibles en la sección “Datos de Operación” en la página 50.

GET_OP_SELECTED <NÚMERO>, <NOMBRE DE VARIABLE>: Este comando se utiliza paraverificar si un mosaico de operación dado se encuentra actualmente seleccionado. Lavariable se establecerá en 1 si lo está y en 0 si no lo está.

SELECT_OP <NÚMERO>: Este comando seleccionará el Mosaico de Operación especificado.

SELECT_ALL_OPS: Este comando seleccionará todas las operaciones en la Lista deOperaciones. No tiene ningún argumento.

37

Page 42: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

DESELECT_OP <NÚMERO>: Este comando deseleccionará el Mosaico de Operaciónespecificado.

DESELECT_ALL_OPS: Este comando deseleccionará todas las operaciones en la Lista deOperaciones. No tiene ningún argumento.

DESELECT_OPS: Este comando ha sido desaprobado por “deselect_all_ops”. Utilice dichocomando en su lugar.

Comandos de visualizaciónSET_VIEW <SUPERIOR | FRONTAL | IZQUIERDA | DERECHA | POSTERIOR | ISO | INICIAL>: Estecomando establecerá la vista de la pieza en una de las siete vistas estándar (superior,frontal, izquierda, derecha, posterior, isométrica o inicial) del SC actual.

ZOOM_VIEW <(FACTOR DE ZOOM)>: Este comando le permite acercar o alejar la imagen delas piezas según el factor de zoom especificado. Un valor de “0” quitará el zoom, lo quesignifica que el límite del stock se ajustará a la pantalla. El factor de zoom debe ser un valorde punto flotante positivo. Un factor de “0,5” establecerá la vista en la mitad de su tamañoactual, “1” es el tamaño actual de la vista “2” es el doble del tamaño actual.

SHRINK_WRAP: Este comando aplicará la función Acción de Encogimiento, permitiendoque el stock se contraiga o se expanda a los límites de toda la geometría y todos los sólidos.No tiene ningún argumento.

REDRAW: Este comando redibujará la pantalla. Por lo general, se utiliza al final de la macropara garantizar que el usuario vea lo que ha realizado si el sistema no impulsa un nuevotrazado.

COMANDOS PARA TRABAJAR CON DATOS EXTERNOSLa función de Macros de GibbsCAM puede leer y escribir en archivos de texto, al igual queextraer datos de las hojas de cálculo de Microsoft Excel®.

RUN_EXE “NOMBRE DE ARCHIVO DE APLICACIÓN”, [“TEXTO” | <NOMBRE VAR>]: Estecomando iniciará la aplicación especificada. Es necesario especificar la ruta de acceso a laaplicación. El parámetro opcional simplemente se transfiere al archivo EXE que se estáejecutando como un argumento de línea de comando. Puede ser una cadena de texto entrecomillas o una variable de texto.

En el ejemplo que se incluye, el resultado es el mismo que se obtiene al ejecutar el Bloc deNotas con un argumento de línea de comando que consiste en el contenido de la variable$output_file. En lugar de una variable, simplemente podría tener el segundo argumentocomo una cadena de texto entre comillas dobles (por ejemplo run_exe"\Windows\System32\Notepad.exe", "c:\myfile.txt")

38
Page 43: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

run_exe “c:\Program Files\Microsoft Office\Office10\EXCEL.EXE”

run_exe "\Windows\System32\Notepad.exe", "c:\myfile.txt"

run_exe "\Windows\System32\Notepad.exe", output_file$

El primer ejemplo simplemente inicia Excel. El segundo, inicia el Bloc de Notas y abreun archivo específico. El tercero, inicia el Bloc de Notas y abre el archivo cuyo nombrese guarda en una variable. Consulte la macro “Ejecutar un Postprocesador” para obtenerun ejemplo operativo de este proceso.

Archivos de TextoEl lenguaje de macros ofrece la posibilidad de crear, abrir, leer y escribir en archivos detexto. Los archivos de texto deben delimitarse con espacios.

FILE_OPEN <NÚMERO DE ARCHIVO>, “NOMBRE DE ARCHIVO”: Este comando abrirá unarchivo para tareas de lectura y escritura. Es posible abrir un máximo de 10 archivos y elnúmero de archivo debe incluirse entre 1 y 10.

FILE_CLOSE <NÚMERO DE ARCHIVO>: Este comando cerrará un archivo abiertoanteriormente mediante el comando FILE_OPEN.

FILE_DELETE “NOMBRE DE ARCHIVO”: Este comando eliminará el nombre de archivo dado.

FILE_READ_VARS <NÚMERO DE ARCHIVO>, <NOMBRE VAR 1>, ..., <NOMBRE VAR 10>: Estecomando leerá una línea de un número de archivo dado y dividirá los datos de dicha líneaen un conjunto de valores. Cada valor se mostrará en los nombres de variables utilizados eneste comando.

FILE_WRITE_VARS <NÚMERO DE ARCHIVO>, <NOMBRE VAR 1>, ..., <NOMBRE VAR 10>: Estecomando escribirá una línea de texto en un archivo que contendrá los valores de lasvariables en este comando.

FILE_READ_TEXT <NÚMERO DE ARCHIVO>, <VARIABLE>: Este comando leerá una línea detexto de un archivo y guardará el contenido de la variable de cadena suministrada en estecomando.

FILE_WRITE_TEXT <NÚMERO DE ARCHIVO>, <TEXTO>: Este comando escribirá una línea detexto en un archivo.

Archivos de ExcelEl lenguaje de macros brinda la posibilidad de abrir una hoja de cálculo de Excel, examinarlas celdas de la misma en el archivo XLS y extraer datos de celdas específicas.

39

Page 44: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

EXCEL_OPEN “NOMBRE DE ARCHIVO”: Este comando abrirá la hoja de cálculo de Excelespecificada. Es necesario especificar la ruta de acceso al archivo.

excel_open “c:\My Archive\Macros\point matrix.xls”

EXCEL_CLOSE: Este comando cerrará Excel. No tiene ningún argumento.

EXCEL_SELECT_SHEET <NOMBRE HOJA CÁLC>: Este comando seleccionará todos los datos enla hoja de cálculo especificada de un archivo de Excel abierto. Tenga en cuenta que losarchivos de Excel tienen tres hojas de cálculo de forma predeterminada que se denominan“Hoja de cálculo1”, “Hoja de cálculo2” y “Hoja de cálculo3”, que éstas pueden renombrarse yque la macro requiere el nombre de hoja de cálculo correcto.

EXCEL_FIND_CELL <FILA1>, <COL1>, <FILA2>, <COL2>, <TEXTO CELDA>, <VARIABLE FILA>,<VARIABLE COL>: Este comando busca una celda que contenga un valor determinado dentrode un rango especificado y sólo coincide con el valor exacto.

fila1, col1 - coordenadas superior/izquierda del rango de búsqueda

fila2, col2 - coordenadas inferior/izquierda del rango de búsqueda

texto celda - el texto que se desea buscar

variable fila - salida; fila de la celda encontrada

variable col - salida; columna de la celda encontrada

EXCEL_GET_CELL <FILA>, <COL>, <NOMBRE DE VARIABLE>: Este comando extraerá datos deuna celda determinada. Debe especificar la fila y la columna para identificar la celda. Losdatos de la celda se asignarán a una variable dada.

EXCEL_GET_CELL 3, e, data3

EXCEL_GET_RANGE <NÚMERO DE RANGO>, <FILA 1>, <COL 1>, <FILA 2>, <COL 2>: Estecomando extraerá datos de un rango de celdas. Debe especificar la celda inicial (fila ycolumna) seguida de la celda al final del rango.

EXCEL_GET_RANGE 1, 1, a, 1, jEXCEL_GET_RANGE 2, 2, a, 11, j

El primer ejemplo anterior obtiene el texto de las primeras 10 celdas (a-j) en la primeracolumna. El segundo ejemplo de rango obtiene el texto de un rango de celdas de 10 x 10,de las filas 2-11 y de las columnas a-j.

40

Page 45: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

COMANDOS MISCELÁNEOSSLEEP <TIEMPO EN SEGUNDOS>: Este comando provocará que la macro espere undeterminado período de tiempo. Esto hace que la macro “duerma” o se mantenga inactivapor unos segundos, brindando al sistema operativo el tiempo suficiente para cerrararchivos y borrar búferes al crear y/o leer datos desde aplicaciones externas.

MACROS DE DEPURACIÓNEstos comandos se proporcionan para ayudar con la depuración.

MESSAGE “TEXTO”, [“TÍTULO”]: Este comando mostrará un cuadro de mensaje con un textodeterminado. Opcionalmente, puede incluir un título en el mensaje. Para esto, incluya eltexto en un segundo grupo de comillas. Generalmente, este comando se utiliza con unainstrucción lógica.

MESSAGE "Crear Contorno", "Creemos una Trayectoria"

DEBUG <VARIABLE>, <VARIABLE>... Este comando mostrará un cuadro de mensaje con elvalor de una o más variables dadas.

STOP “TEXTO”, [<TÍTULO>]: Este comando detendrá la macro y mostrará un cuadro dediálogo con el texto que haya elegido. Generalmente, este comando se utiliza con unainstrucción lógica para la verificación de errores. El texto debe estar entre comillas. Demanera opcional, puede otorgarle al cuadro de mensaje un título personalizado.

STOP “This is not used properly. RTFM.”

CHECK <PARÁMETRO>, <TEXTO MENS ERROR>: Este comando puede verificar si hay unapieza actualmente abierta en GibbsCAM y de qué tipo de pieza se trata. El comando tienetres parámetros, “part_open”, “part_mill”, “part_turn” y “part_mtm”. En cada caso, siexiste una pieza abierta, la variable se establece en “1”. Si el tipo de pieza y el parámetro nocoinciden, la macro se detendrá y aparecerá un mensaje de error.

TRACE <ACTIVADO | DESACTIVADO>: Este comando mostrará cada macro en un cuadro demensaje. Necesitará presionar Aceptar para continuar procesando la macro.

PART_OPEN Se detiene si no hay una pieza actualmente abiertaPART_MILL Se detiene si la pieza actual no es MILL (Fresa)PART_LATHE Se detiene si la pieza actual no es LATHE (Torno)PART_MTM Se detiene si la pieza actual no es MTM (Mecanizado Multitarea)

41

Page 46: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

PARÁMETROS DE GIBBSCAMDATOS DE PIEZASSe puede acceder a los siguientes parámetros mediante los comandos get_part_data yset_part_data.

DATOS DE CONFIGURACIÓN DE MTMSe puede acceder a los siguientes parámetros mediante los comandos get_mtm_data yset_mtm_data.

DATOS DE HERRAMIENTASSe puede acceder a los siguientes parámetros mediante los comandos get_tool_data yset_tool_data.

Todos los Tipos de Piezastype units radiusauto_clear num_flows num_tool_groupsnum_spindles cp1 clear_radauto_clear graphic_part_dist_on graphic_part_dist_valpart_name (variable de cadena)

part_file (variable de cadena) mdd_name (variable de cadena)

mdd_file (variable de cadena) comment (variable de cadena)

alloy (variable de cadena)

family (variable de cadena) hardness (variable de cadena)Piezas de Fresatool_change_x tool_change_y stock_x1stock_y1 stock_z1 stock_x2stock_y2 stock_z2Piezas de Tornotool_change_x tool_change_z stock_radstock_z1 stock_z2

Datos de MTM Generalesspindle_used stock_z1 stock_z2stock_rad chuck_width chuck_part_len

Todas las Herramientastype material offsetspindle_dir id use_id

42

Page 47: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

LTOOL_ORIENTATION: Este elemento tiene ocho valores, del 0 al 7, quecorresponden a una posición en el cuadro de diálogo de configuración deherramientas, como se muestra aquí.

tool_group_pos tool_group prime_spindlecomment (variable de cadena)Herramientas de Fresamtool_type mtool_num_flutes mtool_len_offsetmtool_options mtool_length mtool_flute_lengthmtool_radius mtool_shank_rad mtool_top_corner_radmtool_corner_rad mtool_draft_angle mtool_non_cut_diamtool_orientation mtool_tip_angle mtool_pitch_tpimtool_preset mtool_tc_shift mtool_lead_tipmtool_tip_rad mtool_inner_top_corner_rad mtool_bottom_radmtool_top_rad holder_type holder_solid_refHerramientas de Tornoltool_type ltool_isize ltool_orientationltool_holder ltool_thread_style ltool_thread_typeltool_thread_id_od ltool_thread_dir ltool_offsetltool_cut_side ltool_face_up ltool_neg_sideltool_other ltool_holder_option ltool_sizeltool_thick ltool_length ltool_tip_radltool_insert_angle ltool_tip_offset ltool_preset_pt_xltool_preset_pt_z ltool_turret_shift_x ltool_turret_shift_zltool_face_angle ltool_side_angle ltool_tip_widthltool_tip_length ltool_thread_pitch ltool_thread_flat_lenltool_thread_insert_width ltool_thread_edge_pos ltool_mid_angleltool_tip_centre_to_preset ltool_face_relief ltool_dia_reliefltool_holder_thickness ltool_b_axis ltool_util_lenltool_util_dia ltool_util_angle

Todas las Herramientas

43

Page 48: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

LTOOL_TYPE: Este elemento tiene 17 valores, del 1 al 17, que corresponden a una posición enel cuadro de diálogo de configuración de herramientas, como se muestra aquí.

MTOOL_ORIENTATION: Este elemento tiene cuatro valores, 0, 1, 2 y 3 quecorresponden a una posición en el cuadro de diálogo de configuraciónde herramientas, como se muestra aquí.

MTOOL_TYPE: Este elemento tiene 20 valores, del 1 al 20, quecorresponden a una posición en el cuadro de diálogo de configuraciónde herramientas, como se muestra aquí.

DATOS DEL PROCESOTodos los Tipos de ProcesosSe puede acceder a los siguientes parámetros mediante los comandos get_proc_data yset_proc_data al hacer referencia a un tipo de pieza.

Parámetros de Proceso Estándartype mill_type lathe_typetool_num prog_stop rapid_inmaterial_only spring_passes cut_type

9

10 11 12

13 14 15

9 10 11 12

13 14 15

44

Page 49: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Procesos de FresaSe puede acceder a los siguientes parámetros mediante los comandos get_proc_data yset_proc_data al hacer referencia a una pieza tipo Fresa.

repeats tool_change cs_numpath_cs crc coolant

Parámetros de Proceso de Fresadoentry_clear exit_clear entry_lineexit_line entry_rad exit_radentry_feed contour_feed surf_ztip_z z_step_wanted cut_widthstock boss_stock overhangoverlap open_clearance rpmdrill_feed prefer_subs cp1curve_tol auto_entry_cp auto_entry_clear_radauto_exit_cp auto_exit_clear_rad axis_infogeo_rad min_rad z_stepfm_clear fm_cut_width cut_anglestepover_feed clear_feed scallop_feedmin_cut msurf_clear mstock_tolmfix_tol mzshiftParámetros de Proceso de Taladrado de Fresadodrill_type drill_pos_approach drill_clear_planedrill_dwell drill_peck_amount drill_peck_clearancedrill_tap_percent drill_bore_pulloff drill_peck_retractParámetros de Proceso de Cajera y Contorneadofeed_connect crc_offset len_offsetcustom_cbset pattern_on pattern_indexround_corners entry_perp exit_perpignore_tools depth_first fm_use_shapefm_hplus fm_vplus fm_movehfm_before_zigzag fm_back_and_forth fm_typeentry_type start_on_right retractshit_parallel stay_clear cut_backsame_stroke full_dia stepover_feed_lockclear_feed_lock scallop_feed_lock clear_periphpast_stock pocket_type wall_modehit_flats

Parámetros de Proceso Estándar

45

Page 50: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Parámetros de Entrada de Cajerapocket_entry_ramp_type pocket_entry_helix_typepocket_entry_plunge_pt pocket_entry_ramp_slopepocket_entry_ramp_start_z pocket_entry_ramp_max_cutpocket_entry_ramp_wall_clear pocket_entry_ramp_anglepocket_entry_helix_slope pocket_entry_helix_anglepocket_entry_helix_start_z pocket_entry_helix_max_cutpocket_entry_helix_wall_clear pocket_entry_helix_diapocket_entry_helix_cp pocket_entry_periph_start_zpocket_entry_periph_slope wall_topwall_angle wall_bottomwalli_top walli_anglewalli_bottom wall_user_stepwall_shape_step wall_ridge_heightParámetros de Proceso de Superficiesurface_type surface_cut_type surface_back_and_forthsurface_lace_cut_dir surface_output_pref surface_efeedsurface_cfeed surface_stock surface_fix_clearsurface_stepover surface_ridge_height surface_cut_anglesurface_desired_z surface_const_faces_clear surface_cut_tolsurface_stock_tol surface_fix_tol surface_constraint_tolsurface_smooth_tol surface_arc_fit_tol surface_spline_approx_tolParámetros de Corte de Enlacesurface_cut_opt surface_offsets_surfs surface_one_passsurface_constrain surface_retract_option surface_stay_in_stocksurface_clear_stock surface_clear_stock_type surface_cut_over_edgessurface_skip_flats surface_normal_angle surface_step_cut_ratioParámetros de Flujo entre 2 Curvascurve_cut_dir surface flowsurface_flow_mach_dir surface_flow_mach_z_ordersurface_flow_travel_around_mode surface_flow_cut_typeParámetros de Intersecciónsurface_intersect_type surface_cuts_type surface_passes_typesurface_cleanup_type surface_passes_per_side surface_corner_radsurface_max_cut_angleParámetros de Entrada de Proceso de Superficiesurface_entry_type surface_entry_ramp_type wall_stepwall_top_to_bottom wall_same_dir wall_same_dcep_sidewall_swept_pocket wall_swept_island s_use_adv_tol

46

Page 51: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Procesos de TornoSe puede acceder a los siguientes parámetros mediante los comandos get_proc_data yset_proc_data al hacer referencia a una pieza tipo Fresa.

m_use_adv_tol cut_side md_from_toolmd_vary_with_geo md_vary_with_feat md_retract_levelmd_process_load_h1z_feat surface_entry_plunge_pt rapid_clearancesurface_stockParámetros de Entrada de Proceso de Contorneadocontour_entry_ramp_type contour_entry_helix_typecontour_entry_ramp_slope contour_entry_ramp_start_zcontour_entry_ramp_max_cut contour_entry_ramp_anglecontour_entry_helix_slope contour_entry_helix_start_zcontour_entry_helix_max_cut contour_entry_helix_diaParámetros de Proceso de Fresado de Roscamthread_traverse_cp1 mthread_id_od mthread_thread_dirmthread_rapid_in mthread_start_thread mthread_end_threadmthread_cut_dia mthread_clear_dia mthread_pitchmthread_feed

Parámetros de Proceso de Tornolathe_prefer_canned lathe_clear_idParámetros de Proceso de Taladrado de Tornoldrill_entry ldrill_dwell ldrill_peckldrill_clearance ldrill_retract ldrill_tap_percentldrill_feed ldrill_tip_z ldrill_surface_zParámetros de Proceso de Desbaste de Tornolrough_round_corners lrough_cut_off lrough_cut_dirlrough_entry_perp lrough_exit_perp lrough_rough_typelrough_css lrough_rapid_step lrough_monotoniclrough_avoid_air lrough_xplus lrough_xminuslrough_zplus lrough_zminus lrough_autofinlrough_spindle_dir lrough_finish_last lrough_center_outlrough_constant_step lrough_peck lrough_plunge_typelrough_constant_path lrough_fixed_sp lrough_num_passeslrough_min_rad lrough_stock lrough_stock_xlrough_stock_z lrough_entry_line lrough_entry_radlrough_exit_rad lrough_exit_line lrough_rough_start

Parámetros de Entrada de Proceso de Superficie

47

Page 52: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

DATOS DEL PROCESO DE UTILIDADSe puede acceder a los siguientes parámetros mediante los comandos get_util_proc_data yset_util_proc_data.

lrough_max_rpm lrough_sfpm lrough_feedlrough_clearance lrough_turn_cut_width lrough_ramp_anglelrough_plunge_angle lrough_cut_width lrough_feed_percentlrough_peck lrough_retract lrough_cut_xlrough_cut_z lrough_shift_cut_width lrough_cycle_spParámetros de Proceso de Roscado en Tornolthread_style lthread_cut_dir lthread_cut_typelthread_css lthread_balanced_in_feed lthread_alternatelthread_last_cut lthread_nominal_pitch_index lthread_taper_indexlthread_num_spring_passes lthread_num_starts lthread_max_rpmlthread_sfpm lthread_z_start lthread_z_endlthread_nominal lthread_pitch lthread_major_dialthread_minor_dia lthread_thread_height lthread_taperlthread_thread_angle lthread_cut_depth lthread_last_cutlthread_z_start_ext lthread_z_end_ext lthread_x_start_extlthread_x_end_ext

Nombres del Proceso de Utilidadload_spindle unload_spindle part_shiftsub_spindle_in sub_spindle_return parts_catcher_inparts_catcher_out all_stop move_toolgroupCargar Husillo - Portabrocas Manualspindle_num timeCargar Husillo - Portabrocas Automáticospindle_num timeCargar Husillo - Avance Barraspindle_on forward spindle_speedz_clearance x_position feedrateinitial_face_zCargar Husillo - Auto Avance Barraflow_num spindle_on forwardspindle_speed feedrate feed_distanceCargar Husillo - Sacar Barraz_clearance x_position feedrateinitial_face_z grip_z

Parámetros de Proceso de Desbaste de Torno

48

Page 53: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Descargar Husillospindle_num timeCambio Pieza - Avance Barraspindle_on forward spindle_speedz_clearance x_position feedrateinitial_face_z shift_distanceCambio Pieza - Sacar Barraz_clearance x_position feedrateinitial_face_z grip_z shift_distanceCambio Pieza - Sacar Barraspindle_on forward spindle_speedfeedrate shift_distanceEntrada Subhusilloflow_1 flow_2 fromworkpieceto_workpiece c_synched spindle_speedforward sub_in_unload part_in_mainpart_in_sub z_clearance z_gripfeedrate orientation

Tenga en cuenta que las opciones utilizadas para casillas de verificación sólo tendrán un valor de 0 ó 1.

Retorno Subhusillospindle_on forward with_partopen_main_collet main_loaded spindle_speedColector Piezas Dentrospindle_num z_position timeColector Piezas Fueraspindle_num time spindle_unloadedMover GrupoHtasspindle_num location x_homex_value z_home z_valuecs control_pointParar TodoEsta operación de utilidad no tiene ninguna variable

49

Page 54: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

DATOS DE OPERACIÓNTodos los Tipos de OperacionesSe puede acceder a los siguientes parámetros mediante los comandos get_op_data yset_op_data.

Operaciones Tipo FresaSe puede acceder a los siguientes parámetros mediante los comandos get_op_data yset_op_data al hacer referencia a una pieza tipo fresa.

Tipomill_type lathe_typeTodos los Tipos de Operacionestool_num proc_group proc_idproc_op wg_num cs_numpath_cs locks num_repeatscrc_dir crc_offset coolantcut_type css crc_sidemach_engineCadena de Comentarioop_start (variable de cadena) op_end (variable de cadena)

Todas las Operaciones de Fresadoentry_clear exit_clear entry_feedcontour_feed len_offset wrapwrap_dups prog_stop pocket_typetool_group workpiece flowspin_control wrap_start_angle wrap_dup_anglecut_width stock boss_stockrpms time del cortecss surf_stockOperaciones de Taladrado de Fresadodrill_type drill_clear_plane drill_pos_approachmaterial_only rapid_in drill_clear_planedrill_dwell drill_tap_percent drill_peck_clearancedrill_peck_amount drill_peck_retract drill_bore_pulloffdrill_cb_start_riz drill_cb_end_riz drill_clear_plane_loc_csOperaciones de Cajera y Contorneado de Fresafeed_connect crc_offset pattern_onpattern_index round_corners entry_perp

50

Page 55: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

exit_perp ignore_tools depth_firstfm_use_shape fm_hplus fm_vplusfm_moveh zig_zag back_forthfm_type entry_type start_on_rightretracts hit_parallel stay_clearcut_back same_stroke full_diastepover_feed_lock clear_feed_lock scallop_feed_lockclear_periph hit_flats cp1curve_tolerance auto_entry_cp auto_entry_clear_radauto_exit_cp auto_exit_clear_rad geo_radmin_rad z_step fm_clearfm_cut_width cut_angle stepover_feedclear_feed scallop_feed min_cutpast_stock pocket_entry_plunge_point pocket_entry_ramp_slopepocket_entry_ramp_start_z pocket_entry_ramp_max_cut pocket_entry_ramp_wall_clearpocket_entry_ramp_angle pocket_entry_helix_slope pocket_entry_helix_anglepocket_entry_helix_start_z pocket_entry_helix_max_cut pocket_entry_helix_wall_clearpocket_entry_helix_dia pocket_entry_helix_cp pocket_entry_periph_start_zpocket_entry_periph_slope entry_line_len exit_line_lenentry_rad exit_rad z_step_wantedoverhang overlap open_clearancemsurf_clear msurf_stock_tol mfixture_tolm_zshift contour_entry_ramp_slop contour_entry_ramp_start_zcontour_entry_ramp_max_cut contour_entry_ramp_angle contour_entry_helix_slopecontour_entry_helix_start_z contour_entry_helix_max_cutcontour_entry_helix_diaOperaciones de Pared de Cajera y Contorneado de Fresawall_step wall_top_to_bottom wall_same_dirwall_dcep_side wall_swept_pocket wall_swept_islandwall_top wall_ang wall_botwall_itop wall_iang wall_ibotwall_user_step wall_shape_step wall_ridge_heightcut_side s_use_adv_tol m_use_adv_tolwall_mode inter_op_override util_typemd_from_tool md_vary_with_geo md_vary_with_featmd_retract_levelInformación de Entrada de Contorneadocontour_entry_ramp_type contour_entry_helix_type prefer_subs

Operaciones de Cajera y Contorneado de Fresa

51

Page 56: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

Operaciones Tipo TornoSe puede acceder a los siguientes parámetros mediante los comandos get_op_data yset_op_data al hacer referencia a una pieza tipo torno.

Información de Entrada de Cajerapocket_entry_ramp pocket_entry_helix_typeFresado de Roscamthread_traverse_cp1 mthread_id_od mthread_thread_dirmthread_start_thread mthread_end_thread mthread_cut_diamthread_clear_dia mthread_pitch mthread_feedInformación de Superficie - Generalsurface_type surface_cut_type surface_back_forthsurface_lace_cut_dir surface_output_pref surface_depthsurface_entry_plunge_pt rapid_clearance surface_step_oversurface_ridge_height surface_cut_angle surface_desired_zsurface_constraint_faces_clear surface_stock_tol surface_fix_tolsurface_constraint_tol surface_smooth_tol surface_arc_fit_tolsurface_spline_tol surface_normal_angle surface_step_cut_ratiosurface_corner_rad surface_max_cut_angleInformación de Superficie - Corte de Enlacesurface_cut_opt surface_offset_surfs surface_one_passsurface_constrain surface_retract_opt surface_stay_in_stocksurface_clear_stock surface_clear_stock_type surface_cut_over_edgessurface_skip_flatsInformación de Superficie - Flujo entre 2 Curvassurface_curve_cut_dirInformación de Superficie - Flujo de Superficiesflow_mach_dir sflow_mach_zordersflow_travel_around_mode sflocut_typeInformación de Superficie - Intersecciónintersect_type intersect_cuts_type intersect_pass_typeintersect_cleanup_from intersect_passes_per_sideInformación de Entrada de Superficiesurface_entry_type surface_entry_ramp_type

Todas las Operaciones de Torneadomaterial_only_clearance lplunge_max_cut lplunge_anglelplunge_peck_amount lplunge_peck_clearance lplunge_peck_retractlplunge_feed_percent lplunge_entry_type lathe_pattern_shift_cutlathe_pattern_shift_point lathe_max_rpm lathe_xz_stock

52

Page 57: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

DATOS DE POSTS (ARCHIVOS DE POSPROCESAMIENTO)Se puede acceder a los siguientes parámetros mediante los comandos get_post_data yset_post_data.

lathe_cut_width cut_tol stepdepth od_id_face lathe_depthRoscado en Tornolthread_balanced lthread_angle_alt lthread_startslthread_last_cut lathe_prefer_canned lathe_canned_autofinlthread_type lathe_cut_dir num_spring_passesDesbaste de Tornolathe_rough_type lathe_pull_off_wall lathe_plunge_cut_typelathe_plunge_center_out lathe_plunge_type lathe_plunge_entry_typelathe_pat_shift_fixed_srt lathe_pat_shift_passes lathe_square_cornerslathe_no_drag lathe_cut_off lathe_od_id_facelathe_cut_other_side lrough_round_corners lrough_exit_perplrough_xplus lrough_xminus lrough_zpluslrough_zminus lrough_autofin lrough_spindle_dirlrough_constant_path lrough_min_rad lrough_entry_linelrough_entry_rad lrough_exit_rad lrough_exit_linelrough_start lrough_cut_width lrough_ramp_angleRoscado en Tornolthread_stype lthread_alternate lthread_nom_pitch_indexlthread_angle lthread_nominal_xd lthread_tpilthread_pitch lthread_slope lthread_minor_xdlthread_height_xr lthread_run_in lthread_run_outlthread_first_cut lthread_last_cut lthread_z_startlthread_z_end lthread_major_dia lathe_surface_z

Todos los Datos de Posprocesamientostart_prog_num seq_from seq_byabs_moves comments op_stopsnum_parts work_fixtures one_part_all_toolsinter_part_full_up minimize selected_opspref_header pref_sub pref_oppref_footer num_flows num_tool_groupsnum_spindles part_spacing_x part_spacing_ypart_spacing_z post_file (variable de cadena) output_file (variable de

cadena)

Todas las Operaciones de Torneado

53

Page 58: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

USO DE MACROS DE GIBBSCAMLa función de macros seencuentra en la secciónGeometría del menúPlug-ins. La opciónConfigurar le permiteinformar alcomplemento de macrosdónde estánalmacenadas las macros.Las macros que detectael complementoaparecerán en el menú.Simplemente seleccioneuna macro en el menúpara ejecutarla.

CONFIGURACIÓN DEL MENÚ PERSONALIZAR MACROSEl menú Personalizar Macros muestra todas las macros que el sistema detecta. Para agregary personalizar estas entradas, seleccione el elemento de menú Configurar.

Una vez que se abra el cuadro de diálogo Personalizar Macros, puede agregar y organizarlas macros. Para agregar una macro, simplemente seleccione un campo vacío, ingrese elnombre que desea mostrar en la macro e ingrese la ruta del archivo de macro. Puedeutilizar la función Examinar para señalar el archivo que desea agregar o puede ingresar laruta manualmente. Una vez que haya ingresado la ruta, haga clic en el botón Actualizarpara guardar esta información. Por último, haga clic en el botón Aceptar. Se cerrará el

54

Page 59: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

cuadro de diálogo Personalizar Macros y las macros que agregó estarán disponibles lapróxima vez que inicie GibbsCAM.

Se pueden reorganizar los elementos de la lista.Simplemente seleccione una entrada y haga clicen el botón Mover hacia arriba o Mover haciaabajo, según sea necesario. Además, puede crearun divisor colocando un guión (-) en unaentrada. Esto lo ayudará a organizar los gruposde macros.

SUGERENCIA

Puede evitar el proceso de ingreso de macros cada vez que obtiene una versión nueva de GibbsCAM. La información se guarda en el archivo “Macros.ini” que está ubicado en la carpeta de datos de aplicación de GibbsCAM. Simplemente puede copiar este archivo en la carpeta de la nueva versión.

Desde esta ubicación: C:\Documents and Settings\All Users\ApplicationData\Gibbs\GibbsCAM\8.0\plugins\dataA esta ubicación: C:\Documents and Settings\All Users\ApplicationData\Gibbs\GibbsCAM\8.1\plugins\data

55

Page 60: Guia de Referencia Del Lenguaje de Macros - Copia

Referencia del Lenguaje de Macros

MACROS DE INICIOSe accede a las macros desde elmenú Plug-Ins de GibbsCAM. Vea laGuía de Plug-Ins para obtenerinformación sobre la incorporaciónde macros al menú. Además, seejecutará una macroautomáticamente cuandoGibbsCAM se inicie mediante unparámetro de línea de comando.Para utilizar esta función, el nombrede archivo de la macro debeespecificarse como una ruta deacceso absoluta. El comando puedeejecutarse desde la interfaz de líneade comando, agregarse al accesodirecto a GibbsCAM (vea la imagen ala derecha) o agregarse a un archivopor lotes.

-m "x:\path\to\macro.mac"

56

Page 61: Guia de Referencia Del Lenguaje de Macros - Copia

MUESTRAS DEL LENGUAJE DE MACROS

Page 62: Guia de Referencia Del Lenguaje de Macros - Copia
Page 63: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

CAPÍTULO 2: Muestras del Lenguaje de Macros

MEDIDAS DE PROGRAMACIÓN ADECUADASAl escribir una macro, recuerde que quizás necesite volver a ella posteriormente parasolucionar errores o modificar el código. También es posible que desee ver macrosanteriores para reutilizar partes del código en otros proyectos. Por lo tanto, es convenientetomarse el tiempo necesario para lograr que su código sea de fácil lectura y comprensiónmediante las siguientes reglas sencillas:

• Utilice nombres de variables significativos

• Divida el código con líneas en blanco entre bloques de comandos

• Agregue comentarios para describir lo que está haciendo

• Establezca una sangría en el código para que los bucles identifiquen el código repetido

• Agregue verificaciones de errores para asegurarse de que los datos sean válidos

MUESTRAS DE MACROS DE GIBBSCAMMUESTRAS RÁPIDASEjemplo de Entrada de UsuarioA continuación, se presenta un ejemplo de una definición de cuadro de diálogo.

DIALOG 100,250,200,120IMAGE 200, 30, 50, 50, “c:\macros\pic1.bmp”LABEL 30, 30, 80, 20, “Width”LABEL 30, 60, 80, 20, “Height”INPUT 120, 30, 60, 20, w1, 10INPUT 120, 60, 60, 20, h1, 6CANCEL 30, 90, 60, 20OK 120, 90,60, 20

Ejemplo de Creación de GeometríaA continuación, se presenta un ejemplo de una definición de contorno.

CONTOUR [START 1, 2LINE 1, 4ARC 2, 4, 2, 5, CW

59

Page 64: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

LINE 4, 5ARC 4, 4, 5, 4, CWLINE 5, 2LINE 2, 2

]

Ejemplo Simple de Selección de Geometría y RotaciónA continuación, se presenta un ejemplo de creación y rotación de una figura.

CONTOUR [START x, yLINE (x+10), yLINE (x+10), (y+6)LINE x, (y+6)LINE x, y

]refnum = ContourRefCLEAR_SELECTSELECT_SHAPE refnumROTATE_GEO x, y, 30

Ejemplo de MecanizadoComo ejemplo, podríamos seguir el contorno creado en “Ejemplo Simple de Selección deGeometría y Rotación” con lo siguiente:

LOAD_PROCESS “c:\macros\process1.prc”CALC_PROCESSSET_MARKERS 1, 1, 0.5, 1, 0.5

Esto se iniciará y finalizará en la mitad de la primera característica y se cortará conherramienta a la izquierda.

Ejemplo Avanzado de Creación de Geometría y TransformaciónEn este ejemplo, se creará una figura simple y luego se aplicarán transformaciones sucesivasa la geometría.

a1$ = "Esta macro utilizará las transformaciones de geometría"a2$ = "trasladar, girar, crear simetría, escalar y copiar"message "%a1$\n%a2$"

! ---------------------------------------! inicia una nueva pieza y establece el tamaño de stock

new_part "Example.vnc"set_part_data mdd_name, "VMill3a"

! fresa vertical de 3 ejes

60
Page 65: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

set_part_data units, 1 ! pulgadas

set_part_data stock_x1, -10set_part_data stock_y1, -10set_part_data stock_z1, -1set_part_data stock_x2, 10set_part_data stock_y2, 10set_part_data stock_z2, 1

set_view topzoom_view 0

! zoom totalmessage "Crear un contorno", "Transformación de Geometría", 1contour [

start 0, 0line 5, 0line 4, 2line 4, 1line 0, 1line 0, 0

]iref = ContourRef

! ---------------------------------------! Inicia las transformaciones

message "Seleccionar el contorno", "Transformación de Geometría", 1

clear_selectselect_shape irefredrawget_selection_list 1

! guarda la lista de la geometría actualmente seleccionada

! ---------------------------------------! Trasladar

message "Trasladar por X 3, Y 4", "Transformación de Geometría", 1translate_geo 3, 4, 0redraw

! ---------------------------------------! Girar

message "Girar 30 grados en dirección de las agujas de reloj","Transformación de Geometría", 1

rotate_geo 0, 0, 30redraw

61

Page 66: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

! ---------------------------------------! Simetría

message "Crear simetría en X, acerca de Y 0", "Transformación deGeometría", 1

mirror_geo x, 0redraw

! ---------------------------------------! Trasladar

message "Copiar Traslado por X 6, Y 0", "Transformación de Geometría",1

translate_geo 6, 0, 0, 1redraw

get_selection_list 2 ! guarda la lista de la geometría actualmente seleccionada

message "Seleccionar ambas figuras", "Transformación de Geometría", 1

set_selection_list 1! selecciona la figura original

set_selection_list 2, 1! agrega la copia

redraw

! ---------------------------------------! Simetría

message "Copiar Simetría en Y alrededor de Y 1,5", "Transformación deGeometría", 1

mirror_geo y, 1.5, 1redraw

! ---------------------------------------! Escalar

message "Escalar toda la geometría a la mitad del tamaño","Transformación de Geometría", 1

select_all_geoscale_geo 0.5redraw

message "Terminada", "Transformación de Geometría"

62

Page 67: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

Obtener Información de Lista de GTEn este ejemplo, se creará una lista de todos los grupos detrabajo en la pieza actual. La macro luego solicita al usuarioque agregue un nuevo GT de manera opcional.

a1$ = "Esta macro obtendrá una lista de todoslos GT,"

a2$ = "creará un GT nuevo y lo seleccionará."message "%a1$\n%a2$"

check part_open, "Debe tener una piezaabierta para ejecutar esta macro"

get_wg_list

inum = number_of_wgsif inum<1 then stop "No se encontró ningún GT"if inum>20 then inum = 20

! sólo se muestran datos de los primeros 20 grupos de trabajoa$ = "Número de GT = %inum\n"

for i=1 to inumn = next_wg_numberget_wg_name n, wg$a$ = a$ + "\n" + format$(n, "###0") + " " + wg$

next i

a$ = a$ + "\n\n¿Desea agregar uno nuevo?"yesno a$, iyesnoif iyesno=0 then stop "Terminada"

new_wg "GT Macro"iwg = WgNumberset_wg iwgupdate_wg_window

a$ = "Se creó un nuevo GT, número " + format$(iwg, "###0") + " = 'GTMacro'"

stop "Terminada\n"+a$

63

Page 68: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

Obtener Información de Lista de SCEn este ejemplo, se creará una lista de todos los sistemas decoordenadas en la pieza actual, incluyendo el husillo al queel SC se encuentra asignado. La macro luego solicita alusuario que agregue un nuevo SC de manera opcional (unelemento no modificable en este ejemplo), que será el SCactual al finalizar la macro.

a1$ = "Esta macro obtendrá una lista de losSC e indicará"

a2$ = "qué número de husillo se asocia concada SC."

a3$ = "Finalmente puede crear un SC nuevo alfinal de la macro."

message "%a1$\n%a2$\n%a3$"

check part_open, "Debe tener una piezaabierta para ejecutar esta macro."

get_cs_list

inum = number_of_cssif inum<1 then stop "No se encontró ningún SC"if inum>20 then inum = 20

! sólo se muestran datos de los primeros 20a$ = "Número de SC = %inum\n"

for i=1 to inumn = next_cs_numberget_cs_name n, cs$get_cs_spindle n, ispin

a$ = a$ + "\n" + format$(n, "###0") + " " + cs$a$ = a$ + " : husillo "+format$(ispin,"0")

next i

a$ = a$ + "\n\n¿Desea agregar un nuevo SC?"

! Esta sección es para agregar un nuevo SC.! La inserción de comentarios en todos los elementos entre este punto ! y el comando “stop” hará que la ! macro sólo genere una lista de los SC.

yesno a$, iyesnoif iyesno=0 then stop "Terminada"

new_cs 3P, "SC de Macro", 0, 0, 0, 1, 0, 0, 0, 1, 1

64

Page 69: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

ics = CsNumber

set_cs icsupdate_cs_window

a$ = "Se creó un nuevo SC, número " + format$(ics, "###0") + " = 'SCde Macro'"

stop "Terminada\n"+a$

Calcular la Extensión de la Geometría de PiezaEsta macro calculará la extensión (valores mínimos y máximos) en los ejes X e Y de lageometría seleccionada en una pieza de fresa y puede crear geometría que limite con dichaamplitud de manera opcional.

a1$ = "Esta macro calculará la extensión"a2$ = "(X e Y mín/máx) de la geometría seleccionada"

message "%a1$\n%a2$"

check part_open, "Debe tener una pieza abierta para ejecutar estamacro"

check part_mill, "Esta macro no está diseñada para piezas giradas"

global xmin, ymin, xmax,ymax ! estas variables son utilizadas portodas las macros

global ics

xmin=99999ymin=99999xmax=-99999ymax=-99999

! cuando se obtienen los datos de cada característica, se pueden obtener losvalores xyz en el sc global o en el sc local de cada una.

ics = 1! sc global (el sc local será cero)! -----------------------------------

65

Page 70: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

! obtiene el número de características seleccionadasget_num_feat_selected inumif inum<1 then stop "No hay ninguna geometría seleccionada"

! --------------------------------------! realiza un bucle por las características seleccionadas y actualiza los datos de

xy mín/máx según los datos xy de cada característicafor i=1 to inum

! ------------------------------------! obtiene el número de referencia de la característica correspondiente a la

característica 'i' seleccionadaget_selected_geo_ref i, iref

! -------------------------------------! obtiene el tipo de esta característica

get_feat_type iref, itypeif itype=1 then call "Check_Point_Data.mac"if itype=2 then call "Check_Line_Data.mac"if itype=3 then call "Check_Circle_Data.mac"if itype=4 then call "Check_Arc_Data.mac"

next i

! -------------------! visualice los resultados

xmin$=format$(xmin,"####0.0###")ymin$=format$(ymin,"####0.0###")xmax$=format$(xmax,"####0.0###")ymax$=format$(ymax,"####0.0###")

msg$="X Min = %xmin$\n"msg$=msg$+"Y Min = %ymin$\n"msg$=msg$+"X Max = %xmax$\n"msg$=msg$+"X Max = %ymax$"

message msg$, "Extensión de Geometría"

! -------------------------------------! obtiene el tipo de esta característica

yesno "¿Desea trazar un rectángulo alrededor de la geometría?", iyesno

if iyesno=0 then stop "Terminada"

contour [start xmin, yminline xmax, yminline xmax, ymaxline xmin, ymaxline xmin, ymin

66

Page 71: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

]

redrawstop "Terminada"

Crear una Copia de Seguridad de la Pieza ActualEsta macro de ejemplo creará una copia de seguridad de la pieza actual mediante lacreación de un nuevo nombre de archivo basado en el actual.

a1$ = "Esta macro creará una copia de seguridad de la"a2$ = "pieza actual guardándola con un nombre de archivo igual" a3$ = "al nombre de archivo actual, pero con la extensión '_backup'

agregada."! se definen algunas cadenas de variables.

message "%a1$\n%a2$\n%a3$"! Define un mensaje que se abrirá al ejecutarse la macro.

check part_open, "Debe tener una pieza abierta para ejecutar estamacro"

! Verificación de error en caso de que una pieza no se encuentre abierta.get_part_data part_name, pname$get_part_data part_file, pfile$

! El nombre de la pieza y su ruta de acceso se asignan a las cadenas.ilen=len(pfile$)

! elimina /vnc de la parte final del nombre de archivo f$=left$(pfile$,ilen-4)+"_backup.vnc"

! luego se agrega "_backup.vnc"a$="Es correcto guardar la pieza actual como\n%f$"yesno a$, iyesnoif iyesno=0 then stop "No se creó la copia de seguridad"

! Se le pregunta al usuario si desea guardar el archivo o no.

message "Se creó la copia de seguridad"! Se abre un cuadro de diálogo informando al usuario que se ha realizado la

copia de seguridad.save_part_as f$

! guarda la pieza actual con el nombre de archivo original ! si no lo hacemos en este momento, al utilizar archivo > guardar, se

sobrescribirá el archivo de copia de seguridad que acabamos de guardar

67

Page 72: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

save_part_as pfile$stop "Terminada"

! Se abre un cuadro de diálogo informando al usuario que la macro estácompleta.

Crear y Embolsar SólidosEsta muestra creará 2 sólidos, los colocará en la bolsa de sólidos y luego sacará uno. Estamacro no necesita de una pieza abierta.

! Primero, crearemos un mensaje que describa lo que sucederá.a1$ = "Esta macro creará 2 sólidos y los mostrará"a2$ = "entrando y saliendo de la bolsa de sólidos."message "%a1$\n%a2$"

! Ahora, realizaremos una nueva pieza de fresa vertical de 3 ejes que mida 4 x3 x 1 pulgadas.

new_part "Example.vnc"set_part_data mdd_name, "VMill3a" set_part_data units, 1 set_part_data stock_x1, 0set_part_data stock_y1, 0set_part_data stock_z1, 0set_part_data stock_x2, 4set_part_data stock_y2, 3set_part_data stock_z2, 1

! La vista se establece en isométrica y la pieza se agranda con el zoom paraajustarse a su pantalla.

set_view isozoom_view 0

! Realizamos una figura triangular y la extruimos a lo largo del eje deprofundidad +1 pulgada. La geometría se elimina luego de la creación delsólido.

contour [start 0, 0line 2, 0line 1, 3line 0, 0

]iref = ContourRefdeselect_all_geoselect_shape irefredrawextrude 0, 1solref1 = SolidRefdeselect_all_geodelete_shape iref

68

Page 73: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

! Se crea una segunda figura triangular que se extruye a lo largo del eje deprofundidad +1 pulgada. La geometría se elimina luego de la creación delsólido.

contour [start 2, 3line 3, 0line 4, 3line 2, 3

]iref = ContourRefdeselect_all_geodeselect_all_solidsselect_shape irefextrude 0, 1solref2 = SolidRefdeselect_all_geodelete_shape irefredraw

! Ahora, comenzaremos a mover los sólidos dentro y fuera de la Bolsa deSólidos.

message "Colocar el primer sólido en la bolsa", "Bolsa de Sólidos", 1set_solid_bagged solref1, 1redraw

! Generamos un mensaje para mostrar si los sólidos se encuentran en la bolsao no.

message "Verificar si los 2 sólidos están dentro o fuera de la bolsa","Bolsa de Sólidos", 1

get_solid_bagged solref1, bag1get_solid_bagged solref2, bag2message "Sólido 1 dentro de la bolsa = %bag1\nSólido 2 dentro de la

bolsa = %bag2", "Bolsa de Sólidos", 1! Ahora, cambiamos el estado de cada sólido.

message "Desembolsar el primer sólido y embolsar el segundo", "Bolsade Sólidos", 1

set_solid_bagged solref1, 0set_solid_bagged solref2, 1redrawstop "Terminada"

Convertir una Pieza Alternando entre las Opciones Pulgadas y Métrico! cambia las unidades de la pieza actual de pulgadas a métrico

! o de métrico a pulgadas, es decir, cambia las unidades actuales

a1$ = "Esta macro cambiará las unidades de la pieza actual"a2$ = "de pulgadas a métrico o de métrico a pulgadas, escalando"

69

Page 74: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

a3$ = "la geometría y los sólidos en consecuencia"message "%a1$\n%a2$\n%a3$"

check part_open, "Debe tener una pieza abierta para ejecutar estamacro"

get_part_data units, iunitsif iunits=1 then goto inch

yesno "Esta pieza es métrica. ¿Desea convertirla a pulgadas?", iyesno,"Macro Pulgadas Métrico"

if iyesno=0 then stop "Terminada - se tomó ninguna acción"

! ---------------------------! convierte de métrico a pulgadas

scale = 1/25.4iunits= 1

goto scale

! ---------------------------! convierte de métrico a pulgadas

:inchscale = 25.4iunits= 0

:scale

set_part_data units, iunits! cambia las unidades de la pieza! ---------------------------! los sólidos se escalarán al cambiar las unidades de la pieza, ! ahora, escala la geometría

select_all_geoscale_geo scale

yesno "¿Desea escalar el stock ?", iyesno, "Macro Pulgadas Métrico"if iyesno=0 then redrawif iyesno=0 then stop "Terminada - el tamaño del stock no se modificó"

! ---------------------------! obtiene el stock actual

get_part_data stock_x1, x1get_part_data stock_y1, y1get_part_data stock_z1, z1

70

Page 75: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

get_part_data stock_x2, x2get_part_data stock_y2, y2get_part_data stock_z2, z2

! estas variables se utilizarían para una pieza girada!get_part_data stock_z1, z1!get_part_data stock_z2, z2!get_part_data stock_rad, rr

! ---------------------------! cambia el stock actual

set_part_data stock_x1, x1*scaleset_part_data stock_y1, y1*scaleset_part_data stock_z1, z1*scaleset_part_data stock_x2, x2*scaleset_part_data stock_y2, y2*scaleset_part_data stock_z2, z2*scale

! estas variables se utilizarían para una pieza girada!get_part_data stock_z1, z1!get_part_data stock_z2, z2!get_part_data stock_rad, rr

zoom_view 0

message "Terminada"

Guardar Datos de Geometría en un Archivo de TextoEsta macro tiene en cuenta la geometría seleccionada y exporta los datos geométricos a unarchivo de texto. Es un buen ejemplo de manipulación de archivos fuera de GibbsCAM.

a1$ = "Esta macro analiza la geometría seleccionada e"a2$ = "imprime los datos de la misma en un archivo de texto,"a3$ = "con el nombre de archivo seleccionado por el usuario."message "%a1$\n%a2$\n%a3$"

check part_open, "Debe tener una pieza abierta para ejecutar estamacro"

check part_mill, "Esta macro no está diseñada para piezas giradas"get_num_feat_selected inumif inum<1 then stop "No hay ninguna geometría seleccionada"

! -------------------------! crea un cuadro de diálogo de apertura de archivo

file_dialog_new "Seleccionar nombre de archivo de salida"file_dialog_extension "Archivos de texto (*.txt)", "txt"file_dialog_extension "Todos los archivos (*.*)", "*"

71

Page 76: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

file_dialog_show save, f$

! -------------------------! abre el archivo en la unidad 1 para escritura

file1_open=0file_open 1, f$, writeif FileError<>0 then goto file_errorfile1_open=1

! -------------------------! realiza un bucle por las características seleccionadas y actualiza los datos ! de xy mín/máx según los datos xy de cada característica! intenta establecer fmt$ en una de las siguientes tres opciones! para obtener diferentes formatos de números

fmt$ = "+~~~0.0~~"! ! se muestran espacios en lugar de los ceros iniciales/finales

!fmt$ = "+###0.0##"! no se muestran ceros iniciales/finales

!fmt$ = "+0000.000"! se muestran ceros iniciales/finales

for i=1 to inum

! -------------------------! obtiene el número de referencia de la característica correspondiente a la

característica 'i' seleccionada get_selected_geo_ref i, iref

! -------------------------! obtiene el tipo de esta característica

get_feat_type iref, itypeif itype=1 then goto label_pointif itype=2 then goto label_lineif itype=3 then goto label_circleif itype=4 then goto label_arc

continue

:label_pointget_feat_start iref, 1, xs, ys, zs

xs$ = format$(xs, fmt$)ys$ = format$(ys, fmt$)zs$ = format$(zs, fmt$)

a$ = "Punto X =%xs$ Y =%ys$ Z =%zs$"goto label_print

72

Page 77: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

:label_lineget_feat_start iref, 1, xs, ys, zsget_feat_end iref, 1, xe, ye, ze

xs$ = format$(xs, fmt$)ys$ = format$(ys, fmt$)zs$ = format$(zs, fmt$)xe$ = format$(xe, fmt$)ye$ = format$(ye, fmt$)ze$ = format$(ze, fmt$)

a$ = "Línea Xs=%xs$ Ys=%ys$ Zs=%zs$"a$ = a$ + " Xe=%xe$ Ye=%ye$ Ze=%ze$"goto label_print

:label_circleget_circle_data iref, 1, rad, xc, yc, zc

xc$ = format$(xs, fmt$)yc$ = format$(ys, fmt$)zc$ = format$(zs, fmt$)rr$ = format$(rad, fmt$)

a$ = "Círculo Xc=%xs$ Yc=%ys$ Zc=%zs$ R =%rr$"goto label_print

:label_arcget_feat_start iref, 1, xs, ys, zsget_feat_end iref, 1, xe, ye, zeget_arc_data iref, 1, rad, dir, xc, yc, zc

xc$ = format$(xc, fmt$)yc$ = format$(yc, fmt$)zc$ = format$(zc, fmt$)xs$ = format$(xs, fmt$)ys$ = format$(ys, fmt$)zs$ = format$(zs, fmt$)xe$ = format$(xe, fmt$)ye$ = format$(ye, fmt$)ze$ = format$(ze, fmt$)rr$ = format$(rad, fmt$)

a$="Arco en dirección contraria a las agujas del reloj"if dir=1 then a$ = ""Arco en dirección de las agujas del reloj"a$ = a$ + " Xc=%xc$ Yc=%yc$ Zc=%zc$ R =%rr$"a$ = a$ + "\n Xs=%xs$ Ys=%ys$ Zs=%zs$"a$ = a$ + " Xe=%xe$ Ye=%ye$ Ze=%ze$"

73

Page 78: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

goto label_print

:label_printfile_write_text 1, a$if FileError<>0 then goto file_error

next i

file_close 1if FileError<>0 then goto file_error

stop "Terminada"

:file_errorierr=FileErrorif file_open=1 then file_close 1stop "Error de archivo, código = %FileError"

Ejecutar un PostprocesadorEsta macro establece parámetros de registro, solicita al usuario el postprocesador que seutilizará y ejecuta el post. El usuario puede optar por ver el código registrado al final. Estamuestra es un buen ejemplo de interacción entre el usuario y el archivo.

a1$ = "Esta macro solicitará un post, establezca algunos"a2$ = "parámetros de posts y ejecute el post para crear código"message "%a1$\n%a2$"check part_open, "Debe tener una pieza abierta para ejecutar esta

macro"

! -----------------------------------------------! crea un cuadro de diálogo de apertura de archivo y obtiene el nombre de

archivo del postfile_dialog_new "Seleccionar Post"file_dialog_extension "Archivos Post (*.pst)", "pst"file_dialog_show open, post_file$

! -----------------------------------------------! crea un cuadro de diálogo para guardar el archivo y obtiene el nombre de

archivo del códigofile_dialog_new "Archivo de Salida de Post"file_dialog_extension "Todos los archivos (*.*)", "*"file_dialog_show open, output_file$

! -----------------------------------------------! obtiene algunos parámetros de registro

get_post_data, start_prog_num, post_start_prog_numget_post_data, seq_from, post_seq_fromget_post_data, seq_by, post_seq_by

74

Page 79: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

a$ = "Parámetros de Post Originales\n"b$ = "Número de Programa Inicial = " + format$(post_start_prog_num,

"#####0")a$ = a$ + "\n" + b$b$ = "Secuencia De = " + format$(post_seq_from, "#####0")a$ = a$ + "\n" + b$b$ = "Secuencia Por = " + format$(post_seq_by, "#####0")a$ = a$ + "\n" + b$

! -----------------------------------------------! cambia estos parámetros de registro

set_post_data, start_prog_num, 1234set_post_data, seq_from, 12set_post_data, seq_by, 15

! -----------------------------------------------! los obtiene nuevamente para mostrar que han cambiado

get_post_data, start_prog_num,post_start_prog_num

get_post_data, seq_from, post_seq_fromget_post_data, seq_by, post_seq_by

b$ = "Nuevos Parámetros de Post\n"a$ = a$ + "\n\n" + b$b$ = "Número de Programa Inicial = " +

format$(post_start_prog_num, "#####0")a$ = a$ + "\n" + b$b$ = "Secuencia De = " +

format$(post_seq_from, "#####0")a$ = a$ + "\n" + b$b$ = "Secuencia Por = " +

format$(post_seq_by, "#####0")a$ = a$ + "\n" + b$

! -----------------------------------------------! ejecuta el post

run_exe "\Windows\System32\Notepad.exe", output_file$

75

Page 80: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

Ejemplo de BucleA continuación, se proporciona unejemplo del funcionamiento de unavariable "Bucle For/Next" (for i=1 a 3).En el ejemplo, realizaremos un bucle devariable para crear un círculo de pernoscomo puede verse a la derecha. Dichocírculo tendrá un radio de 1,3 con 8agujeros separados a la misma distancia.El primer agujero se ubicará a 22,5°. Ladirección positiva de la rotación es endirección de/en dirección contraria a lasagujas del reloj.

Valores conocidos• 1,3 = r1 (radio).

• 8 = n1 (número de agujeros).

• 22.5° = a1 (ángulo de agujero 1)

• 360/8 = 45°

Ejecutar el BucleEl bucle se ejecuta con las siguientes 10 líneas de código: Tenga en cuenta que los númerosde líneas no deben utilizarse en la macro.

1. aa = a1

2. da = (360/n1)

3. points[

4. for i=1 to n1

5. xx = r1*cos(aa)

6. yy = r1*sin(aa)

7. point xx,yy

8. aa = aa + da

! 22,5°

! 45°

! comienza a crear un conjunto de puntos

! realiza un bucle 8 veces

! posición x del agujero

! posición y del agujero

! puntos 1 al 8

! ángulo del siguiente agujero en dirección contraria a las agujas del reloj

76

Page 81: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

9. next i

10. ]

Resultados del Primer Bucle1. La variable aa se inicia como 0°. La variable a1 se inicia como 22,5°.

2. La variable da se inicia como 45° (360°/8).

3. Comando de macro para iniciar la creación de un conjunto de puntos

4. Inicia el bucle, establece la variable i en 1.

5. Establece la variable xx en un valor igual a 1,3* coseno (22,5°) o xx1,2010.

6. Establece la variable yy en un valor igual a 1,3* seno (22,5°) o yy0,4975.

7. Crea un punto en la ubicación X,Y utilizando valores xx,yy.

8. Restablece la variable aa en un valor igual al valor anterior aa + da o 22,5°+45°.

9. Agrega 1 a la variable I, convirtiéndola en 2. Puesto que 2 es un valor menor que o igual a8 (n1), vuelve a la línea 5.

Resultados del segundo bucleTenga en cuenta que los bucles 2 al 8 comienzan en la línea 5.

5. Establece la variable xx en un valor igual a 1,3* coseno (67,5°) o xx0,4975.

6. Establece la variable yy en un valor igual a 1,3* seno (67,5°) o yy1,2010.

7. Crea un punto en la ubicación X,Y utilizando valores xx,yy.

8. Restablece la variable aa en un valor igual al valor anterior aa + da o 67,5°+45°.

9. Agrega 1 a I, convirtiéndola en 3. 3 aún es <= 8, así que vuelve a la línea 5.

Resultados del bucle final5. Establece la variable xx en un valor igual a 1,3* coseno (337,5°) o xx1,2010.

6. Establece la variable yy en un valor igual a 1,3* seno (337,5°) o yy-0,4975.

7. Crea un punto en la ubicación X,Y utilizando valores xx,yy.

! incrementa el recuento de bucle a i

! finaliza la creación del conjunto de puntos

77

Page 82: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

8. Restablece la variable aa en un valor igual al valor anterior aa + da o 337,5°+45°.

9. Agrega 1 a I, convirtiéndola en 9. Puesto que 9 es mayor que 8 (n1), finaliza el bucle ycontinúa con la línea 10.

10. Fin del conjunto de puntos

Operadores Matemáticosi1 = 000,0° + 022,5° = 022,5° = x1,2010 y0,4975

i2 = 022,5° + 045,0° = 067,5° = x0,4975 y1,2010

i3 = 067,5° + 045,0° = 112,5° = x-0,4975 y1,2010

i4 = 112,5° + 045,0° = 157,5° = x-1,2010 y0,4975

i5 = 157,5° + 045,0° = 202,5° = x-1,2010 y-0,4975

i6 = 202,5° + 045,0° = 247,5° = x-0,4975 y-1,2010

i7 = 247,5° + 045,0° = 292,5° = x0,4975 y-1,2010

i8 = 292,5° + 045,0° = 337,5° = x1,2010 y-0,4975

EJEMPLOS DE MACROS COMPLETASEste ejemplo es un programa de macros en pleno funcionamiento. Este programa crea uncuadro de diálogo que acepta la entrada del usuario para crear un trapezoide, cargar unarchivo de proceso guardado y crear una trayectoria para mecanizar la figura. Para que estofuncione, se crea un archivo de macros (“Macro3.mac) que hace referencia a un archivo decuadro de diálogo accesorio (“Macro3.dlg). El cuadro de diálogo hace referencia a unarchivo de imagen que ayuda al usuario a visualizar la figura. El archivo de macros hacereferencia al archivo de proceso guardado de manera que se pueden cargar los datos deherramienta y proceso.

Primer Ejemplo - “Macro3”Éste es el código real correspondiente a la macro. Si usted no tiene la muestra, puede copiarel texto y guardarlo. El texto en verde indica nuestros comentarios que lo ayudarán acomprender el código.

78

Page 83: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

Código Macro3.macdialog "Macro3.dlg"

! a1 = incline angle! a2 = included angle! ww = width! ll = length! xs = start point! ys = start point

degrees ! switch all trig functions to degrees

d2 = (ll * tan(90-a2))w2= (ww-d2-d2) ! length of short end

if messages=1 then message "Create contour, without rotation"

contour [start xs, ysline xs+ll, ys+d2line xs+ll, ys+d2+w2line xs, ys+wwline xs, ys

]

iref = ContourRef

! Este comando abre el archivo de cuadro de diálogo. El archivo de macro esla base del programa pero el usuario interactúa con el cuadro de diálogo.Puesto que esta macro no puede funcionar hasta que tenga datos ingresadospor el usuario, primero se debe abrir el cuadro de diálogo. Se recomiendarevisar el archivo del cuadro de diálogo en este momento para familiarizarsecon los componentes. El código de “Macro3.dlg” puede encontrarse en lapágina 81.

! Estos son comentarios que lo ayudan a realizar un seguimiento de lo querepresentan las variables. Se recomienda especialmente utilizar loscomentarios con libertad.

! A continuación, podemos ver un comentario en línea que nos permite saberque estamos cambiando tipos de valores.

! Como dice el comentario, se calcula la longitud del extremo corto deltrapezoide. El usuario especifica la longitud del extremo largo y el ánguloincluido de los lados, y el sistema calcula el extremo corto.

! Si el usuario seleccionó la opción “MostrarMensajes”, se abrirá un mensaje que lomantendrá informado. Tenga en cuenta queel usuario debe hacer clic en el botón“Aceptar” para que la macro sigafuncionando.

! El comando contour crea el trapezoide a partir de los datos suministradospor el usuario.

! Al contorno se le asigna el nombre de variable “iref”.

79

Page 84: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

if messages=1 then message "select contour"

clear_selectselect_shape irefredraw

if messages=1 then message "Rotate to inclination angle"

rotate_geo xs,ys,a1redraw

if messages=1 then message "Set markers, load process and create ops"

set_markers 1, 1, 0.5, 1, 0.5

load_process "macro3.prc"

calc_processclear_selectredraw

if messages=1 then message "Finished"

! Si los mensajes están activados, se le informa al usuario que el sistema estáseleccionando la figura que recientemente creó.

! La macro primero se asegura de que no haya ningún elemento seleccionado,luego selecciona “iref” y finalmente redibuja la pantalla.

! Si los mensajes están activados, se le informa al usuario que se va a girar lafigura.

! La figura se gira alrededor del punto de inicio según el ángulo suministradopor el usuario.

! Si los mensajes están activados, se le informa al usuario que se va a crear latrayectoria.

! Los marcadores de mecanizado se establecen para cortar a la izquierda (“1”)así como para iniciar y finalizar en la mitad de la primera característica (“1.0.5”).

! Se carga el archivo de proceso guardado. Dado que sólo se hace referencia alnombre de archivo, el archivo de proceso debe estar en el mismo directorioque la macro.

! El proceso se aplica a la figura. La selección se anula y se vuelve a trazar lapantalla para que el usuario pueda ver los resultados.

! Si los mensajes están activados, se le informa al usuario que las macros hanrealizado su función. La macro no está configurada para guardar el archivo.Para obtener más información acerca de las macros, agregue un mensajeque le advierta al usuario que debe guardar el archivo o incluso agregarcódigo a este archivo que guardará la pieza.

80

Page 85: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

Código Macro3.dlgÉste es el código real correspondiente al cuadro de diálogo de la macro. Si usted no tiene lamuestra, puede copiar el texto y guardarlo. El texto en verde indica nuestros comentariosque lo ayudarán a comprender el código.

dialog "Example Macro 3",250,250,490,320

! a1 = incline angle! a2 = included angle! ww = width! ll = length! xs = position! ys = position

image 20, 20, 200,200,"Macro3.bmp"

frame 240, 16, 220,204, "User Data"

label 260, 39, 100, 24, "X position"label 260, 69, 100, 24, "Y position"label 260, 99, 100, 24, "Rotation Angle (A1)"label 260, 129, 100, 24, "Included Angle (A2)"

! Aquí se debe definir el nombre del cuadro de diálogo y su tamaño.

! Estos son comentarios que lo ayudan a realizar un seguimiento de lo querepresentan las variables. Se recomienda especialmente utilizar loscomentarios con libertad.

! Se coloca la imagen del cuadro de diálogo.

! Se coloca el marco que contiene los campos de entrada del usuario. Losmarcos son optativos pero resultan muy útiles para organizar los datos.

81

Page 86: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

label 260, 159, 100, 24, "Width"label 260, 189, 100, 24, "Length"

input 370, 35, 70, 24, xs, 0input 370, 65, 70, 24, ys, 0input 370, 95, 70, 24, a1, 15input 370, 125, 70, 24, a2, 80input 370, 155, 70, 24, ww, 4input 370, 185, 70, 24, ll, 5

check 20, 240, 200, 24, "Show Messages", messages, 1

cancel 260, 240, 70, 24

ok 370, 240, 70, 24

Resultados de la MacroEsta macro requiere un archivo abierto. Comenzaremos con una pieza de fresa de 3 ejesvacía.

! Se colocan las etiquetas de texto para la entrada del usuario.

! Se colocan los cuadros de entrada de texto. Registre los nombres devariables y los valores predeterminados.

! Se coloca una opción para el usuario. Si esta opción se activa, la macromostrará un mensaje de texto en ciertos momentos durante su ejecución.Los mensajes le informan al usuario lo que está sucediendo. Esto establecelos “mensajes” de variables en verdadero (“1”).

! Este comando crea el botón Cancelar que es obligatorio.

! Este comando crea el botón Aceptar que es obligatorio. Esto es todo lo quehay en el archivo de cuadro de diálogo. Todos los datos recopilados aquí setransmiten al archivo de la macro.

82

Page 87: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

El usuario ingresa datos.

El usuario obtiene una serie de mensajes.

83

Page 88: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

Los resultados finales. La macro crea la figura, las herramientas, los procesos y lasoperaciones.

Segundo Ejemplo - “Macro2”Macro2.macAl igual que el primer ejemplo, éste es el códigocompleto correspondiente a una macro. Este código nose comenta con tantos detalles. Los comentarios secentran en los elementos que la primera macro nocontiene. Esta macro recolecta datos ingresados por elusuario para crear una figura de seis lados y repite estafigura una cierta cantidad de veces.

dialog "Macro2.dlg"

dialog "Macro2repeats.dlg"

! Se abre el archivo “Macro2.dlg” para recopilar las dimensiones de la figura.“Macro2.dlg” se puede encontrar en la página 87.

! Una vez recolectados los datos de “macro2.dlg”, este cuadro de diálogo“Macro2Repeats.dlg” se abre para determinar la cantidad de repeticiones.“Macro2Repeats.dlg” se puede encontrar en la página 88.

X4, Y2

30˚

6”

8”

70˚

84

Page 89: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

! l1 = long length! l2 = short length! h1 = long height! h2 = short height! r1 = large fillet! r2 = small fillet

! xs = x start! ys = y start! dx = x spacing! dy = y spacing! nx = number in x! ny = number in y

if nx<2 then stop "Invalid number of parts in X (2 to 5)"if nx>5 then stop "Invalid number of parts in X (2 to 5)"

if ny<2 then stop "Invalid number of parts in Y (2 to 4)"if ny>4 then stop "Invalid number of parts in Y (2 to 4)"

x1=xs

for i=1 to nx

y1=ys

for j=1 to ny

contour [start x1+r1, y1line x1+l1-r1, y1arc x1+l1-r1, y1+r1, x1+l1, y1+r1, ccwline x1+l1, y1+h2-r2arc x1+l1-r2, y1+h2-r2, x1+l1-r2, y1+h2, ccwline x1+l2+r2, y1+h2arc x1+l2+r2, y1+h2+r2, x1+l2, y1+h2+r2, cwline x1+l2, y1+h1-r2arc x1+l2-r2, y1+h1-r2, x1+l2-r2, y1+h1, ccwline x1+r1, y1+h1arc x1+r1, y1+h1-r1, x1, y1+h1-r1, ccwline x1, y1+r1

! Estas son las variables recolectadas por “macro2.dlg”.

! Estas son las variables recolectadas por “macro2repeats.dlg”.

! La macro sólo puede crear hasta 5 figuras en una dirección X. Si se solicitanmenos de 2 piezas o más de 5, la macro se detendrá.

! La macro sólo puede crear hasta 4 figuras en una dirección Y. Si se solicitanmenos de 2 piezas o más de 4, la macro se detendrá.

! La variable “x1” se define igual a la posición inicial X que especificó elusuario.

! se inicia una cuenta

! La variable “y1” se define igual a la posición inicial Y que especificó elusuario.

! se inicia una cuenta

85

Page 90: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

arc x1+r1, y1+r1, x1+r1, y1, ccw]

y1 = y1 + dy

next j

x1 = x1 + dx

next i

clear_select

redraw

! Este código crea la figura a partir de los datos ingresados por el usuario,mediante un cálculo matemático simple.

! La variable “y1” se incrementa por el desplazamiento Y.

! El contorno siguiente se crea en Y. Esto se repetirá una cierta cantidad deveces, al igual que “ny”.

! La variable “x1” se incrementa por el desplazamiento X.

! El contorno siguiente se crea en X. Esto se repetirá una cierta cantidad deveces, al igual que “nx”. Básicamente, este código crea una cantidad defiguras en Y, luego omite X y crea la misma cantidad de figuras. Esto serepetirá hasta que se alcance “nx”.

! Esto deselecciona los elementos para garantizar que no se eliminen poraccidente.

! Esto impulsa un nuevo trazado para que el usuario pueda ver los resultadosde la macro.

86

Page 91: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

Macro2.dlgEste código establece el cuadro de diálogo “Example Macro 2” que recopila los datosingresados por el usuario para definir la figura que se repetirá.

dialog "Example Macro 2",250,250,440,320

! l1 = long length! l2 = short length! h1 = long height! h2 = short height! r1 = large fillet! r2 = small fillet

! xs = x start! ys = y start! dx = x spacing! dy = y spacing! nx = number in x! ny = number in y

image 20, 20, 200,200, "Macro2.bmp"

! Se define el tamaño y la posición del cuadro de diálogo.

! Simplemente son comentarios acerca de las variables y lo que éstasrepresentan.

! Simplemente son comentarios acerca de las variables y lo que éstasrepresentan. Estas variables se recolectan en “Macro2Reapeats.dlg”.

! Se sitúa el gráfico de ejemplo.

87

Page 92: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

frame 240, 16, 180,204, "Part Data"

label 260, 39, 70, 24, "L1"label 260, 69, 70, 24, "L2"label 260, 99, 70, 24, "H1"label 260, 129, 70, 24, "H2"label 260, 159, 70, 24, "R1"label 260, 189, 70, 24, "R2"

input 340, 35, 70, 24, l1, 5input 340, 65, 70, 24, l2, 3input 340, 95, 70, 24, h1, 4input 340, 125, 70, 24, h2, 2input 340, 155, 70, 24, r1, 0.6input 340, 185, 70, 24, r2, 0.3

cancel 260, 240, 70, 24ok 340, 240, 70, 24

Macro2Repeats.dlgEste código establece el segundo cuadro de diálogo “Example Macro 2”, que recolecta losdatos ingresados por el usuario para definir cómo se desplazará la figura.

! Se crea un marco que contiene la entrada del usuario.

! Se definen las etiquetas de texto correspondientes a los campos de entrada.

! Se crean los cuadros de entrada de texto. Se define una variable y un valorpredeterminado para cada campo.

! Se crean los botones “Cancelar” y “Aceptar” obligatorios. Cuando estecuadro de diálogo se cierre, la macro continuará ejecutándose, es decir, seabrirá Macro2Repeats.dlg.

88

Page 93: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

dialog "Macro de Ejemplo 2",250,250,440,320

! xs = x start! ys = y start! dx = x spacing! dy = y spacing! nx = number in x! ny = number in y

image 20, 20, 200,200, "Macro2repeats.bmp"frame 240, 16, 180,204, "Repeats"

label 260, 39, 70, 24, "X start"label 260, 69, 70, 24, "Y start"label 260, 99, 70, 24, "DX"label 260, 129, 70, 24, "DY"label 260, 159, 70, 24, "Num in X"label 260, 189, 70, 24, "Num in Y"input 340, 35, 70, 24, xs, 1input 340, 65, 70, 24, ys, 1input 340, 95, 70, 24, dx, 6input 340, 125, 70, 24, dy, 5input 340, 155, 70, 24, nx, 4input 340, 185, 70, 24, ny, 3

cancel 260, 240, 70, 24ok 340, 240, 70, 24

! Se define el tamaño y la posición del cuadro de diálogo.

! Simplemente son comentarios acerca de las variables y lo que éstasrepresentan.

! Se sitúa el gráfico y el marco de ejemplo.

! Se crean las etiquetas de texto para los campos de entrada y los cuadros deentrada de texto accesorios. Se define una variable y un valorpredeterminado para cada campo.

! Se crean los botones “Cancelar” y “Aceptar” obligatorios. Cuando estecuadro de diálogo se cierre con el botón “Aceptar”, la macro continuaráejecutándose con los valores correspondientes a todas las variables.

89

Page 94: Guia de Referencia Del Lenguaje de Macros - Copia

Muestras del Lenguaje de Macros

90

Page 95: Guia de Referencia Del Lenguaje de Macros - Copia

ÍNDICE

Page 96: Guia de Referencia Del Lenguaje de Macros - Copia
Page 97: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

SYMBOLS%variable: 6

AArco Coseno: 6Arco Seno: 6Arco Tangente: 6Args: 4Argumento Opción: 18

BBotón Sí o No: 10

CCaracteres Especiales: 7comando (botón) aceptar: 13comando (casilla de) verificación: 12, 82comando arco: 25comando botón: 14comando botón cancelar: 13comando calc_proc: 35comando calc_process: 35, 80comando cancel (botón): 82comando clear_select: 80comando contorno: 24, 79comando create_proc: 34comando depurar: 41comando detener: 41Comando Entrada: 10, 12, 82Comando Etiqueta: 11, 81comando extrude: 30comando fit_curve: 25comando girar (sólido): 30Comando Imagen: 13, 81comando inicial: 24comando lcase$: 8

comando left$: 7comando len: 7comando ltrim$: 8comando marco: 11, 81comando mensaje: 41, 79comando mid$: 8comando mirror_geo: 27comando new_part: 16comando ok (botón): 82comando on_event: 14comando opción: 12comando open_part: 16comando redraw: 38, 80comando right$: 7comando rotate_geo: 26, 80comando rotate_solid: 31comando rtrim$: 8comando run_exe: 38Comando scale_geo: 27comando scale_solid: 31comando set_geo_air: 30comando shrink_wrap: 38comando sleep: 41comando trazar: 41comando trim$: 8comando ucase$: 8comando verificar: 41comando yesno: 10comando zoom_view: 38Comandos boleanos de sólidos

solid_intersect: 31solid_subtract: 31solid_union: 31

Comandos de Archivofile_close: 39file_delete: 39file_dialog_extension: 17file_dialog_new: 16file_dialog_show open: 17file_open: 39file_read_text: 39file_read_vars: 39file_write_text: 39

93

wilg
Oval
Page 98: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

file_write_vars: 39Comandos de cadena: 7

lcase$: 8left$: 7len: 7ltrim$: 8mid$: 8right$: 7rtrim$: 8trim$: 8ucase$: 8

Comandos de cargaload_defauts: 15load_proc: 35load_process: 35, 80

Comandos de Círculocircle_2cr: 23circle_2lr: 22circle_2p: 22circle_2pr: 22circle_3p: 22circle_copy: 23circle_cp: 22circle_cr: 22circle_get_data: 23circle_lcr: 23circle_mirror: 24circle_pc: 23circle_pcr: 23circle_pl: 22circle_plr: 23circle_rotate: 23circle_translate: 23círculo: 22create_circle: 22

Comandos de configuraciónset_markers: 35, 38, 80set_mtm_data

comando: 17get_part_data: 17parámetros: 42

MTM General: 42

set_op_datacomando: 37parámetros: 50, 52

Cadena de Comentario: 50

Cajera y Contorneado de Fresa:

50

Desbaste de Torno: 53

Entrada de Cajera: 52

Entrada de Contorneado de Fre-sa: 51

Entrada de Superficie: 52

Fresado de Rosca: 52

Operaciones de Torneado: 52

Pared de Cajera y Contorneadode Fresa: 51

Roscado en Torno: 53

Superficie, Corte de Enlace: 52

Superficie, Flujo de Superficie:

52

Superficie, Flujo entre 2 Curvas:

52

Superficie, General: 52

Superficie, Intersección: 52

Taladrado de Fresado: 50

Tipo: 50

Todas las Operaciones: 50

Todas las Operaciones de Fresa-do: 50

set_part_datacomando: 17parámetros: 42

Piezas de Fresa: 42

Piezas de Torno: 42

Todos los Tipos de Piezas: 42set_post_data

comando: 17parámetros: 53

Datos de Posprocesamiento: 53set_proc_data

comando: 34parámetros: 44–45, 47

Cajera y Contorneado: 45

94

Page 99: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

Corte de Enlace: 46

Desbaste de Torno: 47

Entrada de Cajera: 46

Entrada de Contorneado, Fresa:

47

Entrada de Superficie: 46

Flujo entre 2 Curvas: 46

Fresado de Rosca: 47

Intersección: 46

Parámetros de Proceso de Fresa-do: 45

Parámetros de Proceso Gen-erales: 44

Proceso de Superficie: 46

Proceso de Torno: 47

Roscado en Torno: 48

Taladrado de Fresado: 45

Taladrado de Torno: 47set_selection_list: 26set_solid_bagged: 32set_tg_data: 33set_tool_data

comando: 33parámetros: 42

Herramientas de Fresa: 43

Herramientas de Torno: 43

Todas las Herramientas: 42set_util_proc_data

comando: 35parámetros: 48

Cambio Pieza, Avance Barra: 49

Cambio Pieza, Sacar Barra: 49

Cargar, Auto Avance Barra: 48

Cargar, Avance Barra: 48

Cargar, Portabrocas Auto: 48

Cargar, Portabrocas Manual: 48

Cargar, Sacar Barra: 48

Colector Piezas Dentro: 49

Colector Piezas Fuera: 49

Descargar: 49

Entrada Subhusillo: 49

Mover GrupoHtas: 49

Nombres del Proceso: 48

Parar Todo: 49

Retorno Subhusillo: 49set_view: 38

Comandos de Datos de Piezaget_part_data: 17set_part_data: 17

Comandos de eliminaciónclear_proc_list: 35delete_geo: 27delete_op: 37delete_proc: 34delete_shape: 27delete_solid: 31delete_tool: 32

Comandos de Excelexcel_close: 40excel_find_cell: 40excel_get_cell: 40excel_get_range: 40excel_open: 40excel_select_sheet: 40

Comandos de Grupo de Trabajoget_wg: 30get_wg_name: 30new_wg: 30set_wg: 30

Comandos de Guardarsave_defaults: 15save_part: 16save_part_as: 16

Comandos de Husilloget_spindle_num: 17set_spindle_num: 17

Comandos de Líneacreate_line: 21line: 21line_2c: 21line_2p: 20line_ca: 21line_copy: 21line_hp: 20

95

Page 100: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

line_ld: 21line_pa: 21line_pc: 21line_vp: 21línea (en un contorno): 24

Comandos de MTMget_mtm_data: 17set_mtm_data: 17

Comandos de obtencióncomando get_geo_air: 29comando get_tool_list: 32Comandos de obtención de característica

get_feat_end: 28get_feat_start: 28get_feat_type: 28

get_arc_data: 28get_circle_data: 28get_mtm_data

comando: 17parámetros: 42

MTM General: 42get_num_feat_selected: 27get_op_data

comando: 37parámetros: 50, 52

Cadena de Comentario: 50

Cajera y Contorneado de Fresa:

50

Desbaste de Torno: 53

Entrada de Cajera: 52

Entrada de Contorneado de Fre-sa: 51

Entrada de Superficie: 52

Fresado de Rosca: 52

Operaciones de Torneado: 52

Pared de Cajera y Contorneadode Fresa: 51

Roscado en Torno: 53

Superficie, Corte de Enlace: 52

Superficie, Flujo de Superficie:

52

Superficie, Flujo entre 2 Curvas:

52

Superficie, General: 52

Superficie, Intersección: 52

Taladrado de Fresado: 50

Tipo: 50

Todas las Operaciones: 50

Todas las Operaciones de Fresa-do: 50

get_op_list: 37get_op_selected: 37get_op_status: 37get_part_data

comando: 17parámetros: 42

Piezas de Fresa: 42

Piezas de Torno: 42

Todos los Tipos de Piezas: 42get_post_data

comando: 17parámetros: 53

Datos de Posprocesamiento: 53get_proc_data

comando: 34parámetros: 44–45, 47

Cajera y Contorneado: 45

Corte de Enlace: 46

Desbaste de Torno: 47

Entrada de Cajera: 46

Entrada de Contorneado, Fresa:

47

Entrada de Superficie: 46

Flujo entre 2 Curvas: 46

Fresado: 45

Fresado de Rosca: 47

Intersección: 46

Parámetros de Proceso Gen-erales: 44

Proceso de Superficie: 46

Proceso de Torno: 47

Roscado en Torno: 48

Taladrado de Fresado: 45

96

Page 101: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

Taladrado de Torno: 47get_proc_list: 34get_proc_selected: 35get_proc_status: 34get_selected_geo_ref: 27get_selection_list: 26get_solid_bagged: 32get_tg_data: 33get_tool_data

comando: 33parámetros: 42

Herramientas de Fresa: 43

Herramientas de Torno: 43

Todas las Herramientas: 42get_tool_selected: 33get_tool_status: 32get_util_proc_data

comando: 35parámetros: 48

Cambio Pieza, Avance Barra: 49

Cambio Pieza, Sacar Barra: 49

Cargar, Auto Avance Barra: 48

Cargar, Avance Barra: 48

Cargar, Portabrocas Auto: 48

Cargar, Portabrocas Manual: 48

Cargar, Sacar Barra: 48

Colector Piezas Dentro: 49

Colector Piezas Fuera: 49

Descargar: 49

Entrada Subhusillo: 49

Mover GrupoHtas: 49

Nombres del Proceso: 48

Parar Todo: 49

Retorno Subhusillo: 49Comandos de Post

get_post_data: 17run_post: 18set_post_data: 17

Comandos de Puntocreate_point: 18point_2c: 19point_2l: 19

point_2p: 19point_ca: 19point_copy: 19point_get_data: 19point_lc: 19point_mirror: 20point_rotate: 19point_translate: 19point_xy: 18points: 20punto: 18

Comandos de seleccióndeselect_all_geo: 26deselect_all_ops: 38deselect_all_procs: 35deselect_all_solids: 31deselect_all_tools: 33deselect_geo: 26deselect_op: 38deselect_ops: 38deselect_proc: 35deselect_tool: 33select_all_geo: 25select_all_ops: 37select_all_procs: 35select_all_solids: 31select_all_tools: 33select_geo: 25select_op: 37select_proc: 35select_ref: 26select_shape: 25, 80select_solid: 31select_tool: 33

Comandos de Sistema de Coordenadasget_cs: 29get_cs_list: 29get_cs_name: 29get_geo_air: 29new_cs: 28next_cs_number: 29number_of_css: 29set_cs: 29

97

Page 102: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

set_cs_name: 29set_geo_air: 29

Comandos de traslacióntranslate_geo: 26translate_solid: 31

Comentarios: 15, 79Concatenación: 6Contorno

ejemplo de definición: 59ejemplo de transformación: 60

ContourRef: 79Coseno: 5CounterRef: 24create_lathe_tool: 32create_mill_tool: 32Curva, creación de: 25

DDeseleccionar, vea Comandos de selecciónDiálogo

comando: 10, 79crear un: 11, 81ejemplo de definición: 59

Distinto de: 5

EEtiquetas: 16Exponente: 5

Ffont: 11Función de activación: 5

GGeometría de Pared/Aire: 29–30

get_cs_spindle: 30Goto: 5Grados: 5

comando: 6, 79Grupos: 4

IIf - Then

comando: 8Ejemplo de Bucle: 85

Incrustación de Variables: 6Instrucciones con Continue: 9Instrucciones con For: 9

Ejemplo de Bucle: 85Instrucciones con Next: 9Int: 5

LLista de selección: 26

MMarca de Comillas: 7Marcadores de Mecanizado: 35Menús desplegables

comando dropdown_add: 15comando dropdown_excel: 15comando dropdown_new: 14comando dropdown_val: 15

mirror_solid: 31

OOperadores Matemáticos: 5

98

Page 103: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

PProceso Mecanizado, ejemplo de definición: 60

RRadianes: 5

comando: 6Raíz Cuadrada: 5

SSalto de línea: 7Sangrías: 3Seno: 5Signo de Exclamación: 7signo de porcentaje: 7

TTabulaciones: 3Tangente: 6Transferencia de valores: 4

VValor Absoluto: 5Valores de Cadena Devueltos: 10Valores Devueltos, Cadena: 10Variable: 4Variables globales: 4Variables locales: 4

99

Page 104: Guia de Referencia Del Lenguaje de Macros - Copia

Índice

100