
Este tutorial está basado en una página web que habla de lo mismo
http://felixchenier.homelinux.com/doku.php?id=pcb:eagle3dnewpartLa idea es crear un tutorial en castellano, pero explicando mejor cada línea de código que se requiere para realizar un paquete sencillo en 3D, soy un principiante con el software PovRay, pero inicio este tema para que entre todos lleguemos a crear un buen tutorial y así ampliar la gama de paquetes para el gran software EAGLE3D
A: INTRODUCCIÓNYo llamo al software gratuito
EAGLE3D un plugin para EAGLE, utilizando un software tercero (PovRay también gratuito) nos sirve para crear un modelo aproximado en 3D de nuestra PCB y tratar de hacer algunas correcciones de la ubicación de los paquetes, pero hay otros software de pago $ con la ventaja de renderizar en tiempo real una PCB en 3D como:
Altium Designer http://www.altium.com/products/altium-designer/en/altium-designer_home.cfm
https://wiki.altium.com/display/ADOH/PCB+3D+Orthographic+ProjectionTINA
http://www.tina.com/English/tina/Yenka PCBs http://www.yenka.com/en/Yenka_PCBs
KIKAD
http://www.lis.inpg.fr/realise_au_lis/kicad/NI Ultiboard
http://zone.ni.com/devzone/cda/tut/p/id/4147http://www.zuken.com/products/cadstar.aspxSi conocen de otro me escriben
B: CREANDO UNA PCB3DSe requiere de dos software, EAGLE y
PovRay (trazador de rayos más popular del mundo),
mas el plugin EAGLE3D, un editor de texto, puede ser NOTEPAD++ y otro que utilizo es VISU3D
C: CREANDO UN PAQUETE 3DUn paquete virtual o en 3D, requiere de dos códigos principales
C.1: Código o macros en PovRay, este es un archivo con extensión .inc que se coloca dentro de la carpeta /POVRAY de EAGLE3D el cual contiene un código escrito en lenguaje C. Se hablara con más detalle posteriormente.
C.2: Código para identificar el nombre del paquete, nombre del macro y además para pasar parámetros a los macros, por ejemplo altura de un cristal, altura sobre la pcb, colores del resistor, etc (ver mas información en 6. File Formats
http://www.matwei.de/doku.php?id=en:eagle3d:documentation)
Este código es una línea de texto sin espacios excepto los comentarios, los parámetros se separan por dos puntos. esta línea de texto es única para cada nuevo paquete creado y se debe anexar al archivo 3dusrpac.dat de la carpeta ULP de EAGLE3D
Para realizar un paquete 3D, tomando como ejemplo el dispositivo “display de 7 segmentos “ (Device “HD-H103”) que está en la library “display-hp” de EAGLE, se debe tener en cuenta primero el nombre del paquete, es este caso “HDSP-M”
EL código de parámetros vacio es de la siguiente forma:
PackageName:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:MacroPackageName:DEinfo: SPN/ENG/FRinfo PackageName es el nombre del paquete de la bibiloteca de EAGLE, para el ejemplo a desarrollar es HDSP-M
MacroPackageName es el nombre del macro del paquete escrito en PovRay
DEinfo es un comentario en alemán del macro o paquete
SPN/ENG/FRinfo es un comentario en otro idioma, yo escribo acá el nombre de la biblioteca del paquete, de esta manera me sirve para identificar más fácilmente a que biblioteca pertenece el paquete.
Ahora, nuestro primer código es
HDSP-M:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:MacroPackageName:DEinfo:display-hp.lbrTodos los parámetros están en cero, es decir cuando se está creando el archivo para renderizar EAGLE3D no genera ninguna ventana de petición de datos, o EAGLE3D no incorporará nada automáticamente en el código final
Por ejemplo si se cambia HDSP-R:0:… por HDSP-R:1:... entonces EAGLE3D incorporara el nombre del paquete (segun EAGLE es >NAME) como parámetro inicial del macro.
Si HDSP-R:0:0:... fuera HDSP-R:0:1:... incluiría el valor del paquete (segun EAGLE es >VALUE) como segundo parámetro, igualmente si el tercer parámetro fuera un 1 HDSP-R:0:0:1:... definiría la banda de colores, para un paquete por ejemplo resistor o condensador de colores.
Como no se desea incluir ningún parámetro , todos estaran en 0
Un display de 7 segmentos simplememente es una caja rectangular (largo*ancho*alto) con unos pines y una imagen inclinada de un 8 en la parte de arriba
Una caja rectangular se dibuja a partir de dos coordenadas, una en la esquina de la base y otra la esquina opuesta de la tapa, como el centro del paquete tiene coordenadas tridimensionales <x,y,z> en <0,0,0> entonces la esquina de la base debe desplazarse negativamente y la esquina opuesta de la tapa debe desplazarse positivamente con respecto al centro
PovRay define a Y como la altura del los ejes tridimensionles, y el plano bidimensional X-Z con X igual a las absisas y Z a las ordenadas
ver imagen
http://felixchenier.homelinux.com/lib/exe/detail.php?id=pcb%3Aeagle3dnewpart&media=pcb:eagle_povray.pngSi L es el Largo (base del display), W el Ancho y H Es la altura desde la base y los valores para el display de 7seg. Son L=12.7 mm, W=19 milimetros, H=8mm
Entonces la coordenada de la base estaría ubicada en <-L/2, 0, -W/2>
-L/2 significa la mitad de la longitud y al lado izquierdo del centro <0,0,0> x=-L/2=-6.35
-W/2 significa la mitad del ancho y hacia abajo del centro <0,0,0> z=-W/2=-8.5
Y=0, por estar en la base, finalmente la coordenada de la base es <-6.35, 0, -8.5 > que se puede comprobar al editar la librería y mirar las coordenadas de esa esquina con una grilla de 0.3175 mm
La coordenada de la esquina opuesta de la tapa es <+L/2, H, +W/2> o <+6.35, 0, +8.5 > note el desplazamiento en Y de 8mm
Las sentencias para generar la caja y su color blanco son las siguientes (Nota doble eslas // a la derecha significa comentario)
box { // caja1 del componente
< -L/2, 0, -W/2 >, < +L/2, H, +W/2 >
pigment { White }
} // Fin de la caja1
para no tener que crear un código del 8 inclinado para el display, hay una forma de llamar un grafico ya sea en bmp o png en donde este la imagen del 8 inclinado, el código simplemente es hacer otra caja rectangular sobre la tapa de la anterior y si la definimos con una altura muy pequeña para que se mire como una película delgada (H+0.1)
Las sentencias para generar la piel (skin) de la caja son:
box { // Piel del componente
< -L/2, H, -W/2 >, < +L/2, H+0.1, +W/2 >
pigment {
image_map{"skin_simple_7seg_red_on.png" once}
rotate<90,0,0> scale<12.5,0,17> translate< -L/2, 0, -W/2 >
}
} // Fin de la caja2
La imagen también hay que trasladarla para que calce con la tapa de la caja, Todo el código anterior se lo mete dentro de una unión
union { // Inicio de la union
...
} // Fin de la union
Por favor pegar el siguiente código en un archivo llamado DIODE_LED_SIMPLE_7SEG.INC y colocarlo dentro del directorio de PovRay de EAGLE3D
#macro DIODE_LED_7SEG_19x13x8MM() // Inicio del macro con su respectivo nombre
// Definición de las dimensiones de la caja en milímetros como variables locales
#local L=12.7; //Length Largo
#local W=19; //width Ancho
#local H=8; //hight Alto
union { // Inicio de la union
box { // caja1 del componente
< -L/2, 0, -W/2 >, < +L/2, H, +W/2 >
pigment { White }
} // Fin de la caja1
box { // Piel del componente
< -L/2, H, -W/2 >, < +L/2, H+0.1, +W/2 >
pigment {
image_map{"DIODE_LED_7SEG.bmp" once}
rotate<90,0,0> scale<12.5, 0,1 7> translate< -L/2, 0, -W/2 >
}
} // Fin de la caja2
} // Fin de la union
#end // Fin del macro
//////////////////////////////////////////////////
link para descargar la imagen
http://www.startronics.nl/images/DIODE_LED_7SEG.bmpesta imagen debe colocarce en la carpeta PovRay de EAGLE3D
Como el nombre del macro anterior es DIODE_LED_7SEG_19x13x8MM entonces lo pegamos en el campo Macro-PovrayName de
HDSP-M:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:Macro-PovrayName:DEinfo:display-hp.lbr
Por favor anexar el siguiente código en el archivo llamado 3dusrpac.dat del directorio de ULP de EAGLE3D
HDSP-M:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0: DIODE_LED_7SEG_19x13x8MM:DEinfo:display-hp.lbr
Y por ultimo anexar en user.inc la línea
#include " DIODE_LED_SIMPLE_7SEG.INC "
Me cuentan como les va con este ejemplo, haciendo un sch con el paquete “HDSP-M”, dispositivo
(Device “HD-H103”) library “display-hp” de EAGLE
Próxima entrega, puesta de los pines al display de 7 segmentos
Links importates
Exporting Sketchup Objects to PovRay
http://blog.everythingrobotics.com/tutorials/eagle3d-tutorials/using-google-sketchup-to-create-components/Imágenes 3D de componentes
http://sketchup.google.com/3dwarehouse/search?tags=ElectronicsPOV-Ray en castellano
http://www.ignorancia.org/es/index.php?page=Traduccion