Está Vd. en: FAQ Hoja2 >>Part Design > 082_¿Macros?.
He recibido muchos correos electrónicos donde el personal dice cosas, que me ponen los pelos de punta, como esta:
“Hola Juanri: Estoy empezando con esto del CATIA y quiero saber para que sirven y como se hace una macro”.
¡Pa haberse matáo!!!
Claro, a mí me cabe la duda de si cuando dice: “Estoy empezando” lo dice “porque es por la mañana y está empezando HOY a trabajar, pero lleva muchos años en esto”..O es que hoy ha descubierto que existe el catia v5?.
Yo pongo la siguiente analogía (nada que ver con ano):
Es como si yo fuera “profe” de una escuela primaria (ya sabéis: esos seres pequeños de 5-8 años) y de pronto llegara uno de ellos y me dijera: “Juanri: ¿me va a enseñar hoy integrales dobles?” Y yo asustado le diría: “Si..las galletas que son integrales…jejeje”.
Que no es que yo no sepa integrales, que debo saberlo (en mi cabeza estaban al menos…), pero que antes hay que aprender a sumar, restar y demás cosas para abordar con cierta base las integrales dobles (Gusanito, gusanito, palito cruzado, que decíamos entonces), no?
Porque yo, al anónimo lector de esta página (y por ser anónimo desconozco sus conocimientos) le preguntaría:
A.- ¿Sabes que una macro es en el fondo (y sin fondo) un programa?
B.- ¿Sabes que para programar hay que tener unos estudios de programación, al menos básicos?
C.- ¿Sabes que estos programas tocan objetos que son features de catia mediante unas “digamos APIS” de catia?
Si a todas estas preguntas has respondido “Si; se programar y conozco catia a fondo”, entonces pasamos a la segunda parte:
Es el caso en que en la “escuela primaria que hablaba antes” se me ha “colado” un “niño con bigote, algo calvo y de 1,75 de altura” y quiere que yo le explique (entre tabla de 3 x 4 =12; 3x 5=15 …) como se lleva la contabilidad de un almacén que él tiene..
Está claro que no tengo “capacidad para eso”… no “en esa escuela”.
Pues es lo que digo: No es que no sepa; que sé. Es que este “lugar” no es el adecuado para eso, porque está pensado para el que empieza y tengo que sostener preguntas de un nivel mas sencillo.
Además esta el tema que “algunos programas y utilidades enfocadas para automatizar” yo las hago para “ganar dinero” y enfocadas a empresas y no a particulares. Recordar que el contenido de esta web está acogido a las normas Creative Commons (http://creativecommons.org/licenses/by-nc-sa/2.5/es/) es decir:
“Usted es libre de:
Siempre que:
Y demás cosas que figuran en la licencia….
Pero algunos lectores insisten:
“Es que como en Tools
Macro.. hay un comando que es “Start Recording..” que graba una macro…”
Si: efectivamente. Pero te voy a explicar (y será lo único que haga en esta web) como funciona:
Supongamos que tenemos una pieza como esta:

Y queremos hacer una macro para dibujar una línea entre el origen y el vértice superior (donde está la mano). Veamos como se hace y cual es el resultado:

que sirve para detener el proceso de “copia” de la macro.Vamos a ver que ha grabado catia, en esta ocasión:

¿Quién entiende esto? Pues los programadores, porque si no hay que empezar por la A en la programación. ¡Ah, que eres programador!!. Bueno pues ya sabes: una serie de declaraciones de variables de tipos específicos de catia (As Part; As Bodies; etc..)
Y después asocia a estas variables valores, por ejemplo:
Set reference1 = part1.CreateReferenceFromBRepName("FVertex:(Vertex:(Neighbours:(Face:(Brp:(AxisSystem.1;2);None:();Cf11:());Face:(Brp:(AxisSystem.1;3);None:();Cf11:());Face:(Brp:(AxisSystem.1;1);None:();Cf11:()));Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", axisSystem1)
Esta asocia a la Reference1, el vértice del origen de sistema de ejes AxisSystem.1.
Set assemble1 = shapes1.Item("Assemble.1")
Esta asocia a la variable assemble1, el Nodo llamado Assemble.1.
Set hybridBody1 = hybridBodies1.Item("Patata")
Esta asocia a la variable hybridBody1, el Geometrical Set llamado Patata.
Y que pasa si damos Alt+F8 y damos al botón [Run]? Pues que creará una línea como esa tantas veces como le demos al botón Run.
¿Y si queremos que en vez de a ese vértice apunte a otro vértice?.
Pues a ver quien es el guapo que averigua como se crea, a mano, este “chorizo”:
Set reference2 = part1.CreateReferenceFromBRepName("FVertex:(Vertex:(Neighbours:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;5)));None:();Cf11:());Face:(Brp:(Pad.1;2);None:();Cf11:());Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;4)));None:();Cf11:()));Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", assemble1)
Claro, para copiar una línea está el socorrido “Copy & Paste”. Y para un grupo de elementos geométricos está el Power Copy.
¿Y puedo utilizarlo para otra pieza, como esta?

Pues va ha ser que NO. ¿Por qué? Porque fallaría por ejemplo en esta sentencia:
Set assemble1 = shapes1.Item(“Assemble.1”)
Dado que este part no tiene la operación booleana “Assemble.1”

Entonces: ¿para que sirven las macros?
Pues a no ser que sean cosas genéricas, como: Seleccionar todos los puntos existentes en el Part y ocultarlos,
Solo sirven, para los programadores, para saber como se llama a la función Line Point-Point:
Set hybridShapeLinePtPt1 = hybridShapeFactory1.AddNewLinePtPt(reference1, reference2)
Cosa que también se sabe con la ayuda que trae el programa, pero aquí se puede ver mas claro.
Espero que esto deje claro el asunto de las macros y no volvamos “con la burra al carril” ![]()
| Dirija sus preguntas a: juanri@muchocatia.es | CATIA V5 R16 |