Cómo copiar atributos entre variantes de paquetes en el editor de la biblioteca eagle

1

He ingresado un conjunto de atributos en una biblioteca águila. Sin embargo, comencé a ingresar los datos después de haber dibujado todas las variantes del paquete. Las variantes del paquete son solo diferentes diseños de almohadilla que utilizo para facilitar el diseño. El resultado fue que los atributos se mostraron solo en la combinación de tecnología / paquete que estaba editando en ese momento. Copiarlos a todas las tecnologías (con los diferentes atributos cambiados) fue sencillo.

Ahora quiero hacer lo mismo para todas las variantes de paquetes. Encontré la ULP "copy-attribute-at-deviceset.ulp". Pero lo hace solo parcialmente, lo que necesito. De hecho, genera todos los atributos en todos los paquetes para todas las tecnologías. Pero no copia valores reproducibles. Logré copiar los valores de una tecnología una vez, pero se copió a una tecnología diferente en todos los paquetes y abrí la tecnología predeterminada "" que no pretendía usar.

¿Sabe un script diferente o algún truco? ¿O tengo que recurrir a escribir mi propia ULP?

    
pregunta Ariser

2 respuestas

3

Utilice el poder de los scripts y los ULP.

Cuando quiero que todas las tecnologías y combinaciones de paquetes tengan el mismo atributo, uso mi ATTR_ALL ULP:

#usage "<b><h1>Apply attribute to all package/technology variants</h1></b>\n"
  "<pre><b>attr_all</b> <i>name</i> '<i>value</i>'</pre>"
  "<p>"
  "Sets the indicated attribute for all package and technology combinations of "
  "a device.&nbsp;  This ULP must be run in the device editor of a library."

string fnam;                           //script output file name
string cmd;                            //command to execute at end of ULP
string pack;                           //package variant name string
string techs[];                        //list of technologies
int ntechs;                            //number of technologies in list
int i;                                 //scratch integer and loop counter
//
//   Start of executable program.
//
fnam = argv[0];                        //init temp script name to full ULP pathname
fnam = filesetext (fnam, ".scr");      //make script file of same generic name
output (fnam, "wtD") {                 //open temporary script output file
  deviceset (devset) {
    devset.devices (dev) {

      pack = dev.name;
      if (pack == "''") pack = "";
      printf ("package '%s';\n", pack);

      ntechs = strsplit(techs, dev.technologies, ' ');
      for (i = 0; i < ntechs; i++) {
        printf ("technology %s;\n", techs[i]);
        printf ("attribute %s '%s' constant;\n", argv[1], argv[2]);
        }                              //back for next technology this device
      }                                //back for next DEV in device set
    }                                  //end of device set
  }                                    //done with output file
cmd = "script " + fnam;
exit (cmd);                            //run the temporary script

Para los casos en que las diferentes variantes tienen atributos ligeramente diferentes, utilizo un script para configurar los atributos de la forma en que los quiero para una variante, luego replicar y editar esa parte del código del script para las otras variantes. De esa manera, solo dedicará tiempo a aquellas cosas que son diferentes entre las variantes.

Tener un script también es bueno cuando te equivocas. Cuando no te gusta el resultado, puedes realizar pequeños cambios incrementales en el script y volver a ejecutarlo todo.

Mantengo el último script que usé para este propósito como un recordatorio de la sintaxis. Eso hace que hacer algo similar la próxima vez sea más sencillo. También tengo un script de plantilla que contiene todo para crear una variante de un dispositivo. Copio la plantilla a un script temporal y edito según sea necesario. La mayoría de las veces no necesita la creación completa de dispositivos arbitrarios, así que simplemente elimine las partes que no necesita. Eso es mucho más fácil que buscar los detalles de sintaxis de los comandos que no están allí.

Aquí está mi script de plantilla:

#   Templage script for creating a new device in a library.
#
edit 'xxx.dev';
description '--- description ---';
prefix 'ZZ';
value On;

#   ADD symbol swaplevel add-type coordinate;
#
add SYNAME 0 next (0 0);

package PKNAME 'variant';
technology '';

attr manuf 'Megacorp:ABC-123';
attr supplier 'Mouser:666-ABC-123';
# attr qty '1';
# attr bom 'no';
attr valstat 'val';
# attr subst 'no';
attr desc '-- BOM description --';
attr dval '-- BOM value --';

# conn <pin function name> <pad number>
#
#   Pad number must be upper case.
#
conn 'name1' '1';
conn 'name2' '2';
    
respondido por el Olin Lathrop
1

Estaba buscando el mismo tipo de funcionalidad y encontré el programa e-attributverwaltung.ulp ([email protected]) . Esto parecía manejar todo tipo de funcionalidades de atributos diferentes, pero el problema es que está en alemán, así que hice mi mejor esfuerzo y traduje los diálogos / texto usando el traductor de Google.

  • Para usarlo, guarde AttributeManager.ulp en el directorio [Eagle Install] / ulp .
  • En un SCH, BRD o biblioteca (quizás otros), haga clic en el icono "ULP" en la barra de menú
  • El AttributeManager.ulp ahora debería aparecer en la lista, haga doble clic en el archivo y aparecerá el programa.

Hay formas de guardar atributos predeterminados (guardados en un archivo .lst) y varias otras funciones, ¡un ahorro de tiempo real! Espero que esto ayude.

    
respondido por el Andy Braham

Lea otras preguntas en las etiquetas