Google+

082_¿Macros? Mejor empezamos por abajo, no? - MuchoCATIA

Buscar
Vaya al Contenido

Menu Principal:

082_¿Macros? Mejor empezamos por abajo, no?

Está Vd en: FAQ>>Part Design solidos>>082_¿Macros?

 

¿Macros? ¿Y que tal si empezamos por lo mas básico: Lineas, Power Copy’s y User Features?

 

  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 qué sirven y cómo 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”.

Ir arriba

  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/responder preguntas de un nivel más sencillo.

  Además esta el tema que “algunos programas y utilidades enfocadas para automatizar” yo las hago (o lo intento) 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 (https://creativecommons.org/licenses/by-nc-sa/2.5/es/) es decir:
Usted es libre de:

•    Copiar, distribuir y comunicar públicamente la obra.
Hacer obras derivadas.

Siempre que:

•    Reconocimiento:   Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).
No comercial.   No puede utilizar esta obra para fines comerciales, incluidos el dar formación mi costa!
Compartir bajo la misma licencia.   Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.

 

 

Y demás cosas que figuran en la licencia….

Pero algunos lectores insisten:

Es que como en ToolsflechaMacro.. 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:

Ir arriba

01

  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:

1.- Con la pieza en pantalla doy “ToolsflechaMacro..Start recording” y me aparece esta ventana donde yo selecciono donde lo voy a guardar y que tipo de macro quiero. La he llamado “MiMacro.CATScript” (porque la quiero grabar en ese lenguaje):

02
2.- Doy a OK y eso da lugar a que me aparezca en la zona gráfica un icono como este:  que sirve para detener el proceso de “copia” de la macro. 03
3.- Y empiezo a introducir “acciones” en mi macro: Doy al icono “Line” y selecciono la opción “Point-Point” haciendo clic en el origen y el vértice indicado. Doy OK para cerrar el panel y crear la línea.
4.- Doy al icono que me apareció para parar de grabar.

Vamos a ver que ha grabado catia, en esta ocasión:

5.-

Nos vamos a ToolsflechaMacrosflechaMacros ( o Alt+F8) y nos aparece el panel de las macros almacenadas en ese directorio.

Lista de macros

6.- Para ver lo escrito, con la macro seleccionada (en azul) damos al botón [Edit...] y vemos lo escrito:

listado del programa

 

Ir arriba

  ¿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 V5 (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?

otra pieza


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

07

 

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 cómo 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” pasando

Ir arriba

 

Piense en sus nietos!! Dirija sus preguntas a: juanri@muchocatia.es CATIA V5 R27

 

 
©Muchocatia. Todos los derechos reservados
Aviso legal
Política de privacidad
Mapa web
Contacto
contadores
Regreso al contenido | Regreso al menu principal