Oregano migra a GtkPrint!

September 6th, 2006 | by | oregano, programación

Sep
06

Si señores, ya era hora de tener un motor de impresión como la gente :-) . Luego de varias consultas por parte de mis beta-testers me decidí migrar el soporte de impresión a la nueva API de impresión de Gtk+.

La migración fue simple, por lo menos para dar un soporte básico. Lo primero que hice fue borrar print.[h|c] que tenían el código de soporte de GnomePrint. Luego portá las funciones de modelo a Cairo (en lugar de usar las viejas API de Art) y por último le agregué el código para que se abra el diálogo de impresión.

oreganoprint.png

No se ilusionen mucho que faltan bastantes cosas por hacer antes de que tenga alguna utilidad :-) . Una ventaja de esta migración es que ya tengo el código en el modelo para poder exportar el esquemático a un PNG, PDF, PS, SVG o cualquier otro backend que soporte Cairo, cosa que creo que varios van a agradecer :-) .

Por ahora no voy a subir los cambios al repositorio principal, ya que esto me obliga a depender de Gtk+ 2.10, recién salida del horno, por lo que voy a mantener un branch privado hasta completar el código.

Mi pequeño TODO :

  • Agregar Labels de los componentes y textos.
  • Impresión Color y B&W (Qué colores te gustarían???!!)
  • Rótulo y orientación default de la página. (El tamaño es configurable y el circuito se adapta a la página)
  • Si ves algo que debería soportar, y no está en esta lista, dejó un comentario :-)

UPDATE:

Ya tengo funcionando el diálogo y la código para exportar el esquemático. Actualmente hay soporte (dependiendo si la versión de Cairo instalada lo soporta) para PDF, PS, PNG y SVG (el Inkscape no lo abre bien, pero otros programas si). El ónico que anda realmente bien es el de PNG, el resto tiene varios problemas que sospecho que son de Cairo (ya sean bugs o que me está faltando llamar alguna función).

1 Comment »

Models y SubCkt

September 4th, 2006 | by | oregano, programación

Sep
04

Una cosa que le venía faltando a Oregano era la posibilidad de utilizar modelos complejos para la simulación, y que por suerte ya quedó en el pasado ;) .

Hoy luego de mucho leer sobre Spice, NgSpice y GnuCap logré entender un poco como se usan los modelos (a través del comando .model) y los subcircuitos (a través del comando .subckt). Esto sumado a la magia del .include hacen posible, por ejemplo, utilizar un componente “Diode Bridge” en lugar de tener que poner cuatro diodos :-) .

La historia empieza modificando el componente “Diode Bridge” de la biblioteca default para que en lugar de usar el template que no andaba utilice : X_@refdes %1 %2 %3 %4 @model, siendo Mode = DiodeBridge. El X_ le dice al backend que es una llamada a un subcircuito y @refdes es completado con el nombre elegido.

El siguiente paso es crear un archivo DiodeBridge.model en el directorio data/models que contenga la descripción del circuito. El resto de la mágia está ya en el código de generación de la netlist.

El objetivo ahora es tratar de extender más aún este nuevo feature y para eso voy a empezar con los ejemplos que encontró acá. Un punto importante y que yo realmente desconozco, es qué componentes son sumamente necesarios y deberían funcionar out-of-the-box. Si fuera por mí con resistencias ideales me sobra :P , por lo que escucho ofertas!.
El screenshot obligado (perdón, la ventana de plot ocupa mucho lugar y me tapa el fondo :-) )

oreganomodels.png

4 Comments »

O.L.E. screencast!

July 20th, 2006 | by | mono, oregano

Jul
20

Para aquellos curiosos hice un pequeño screencast de editor de componentes. Lo nuevo respecto de mi último post es la habilidad de modificar los puntos de control de los elementos y darles nuevas y alocadas formas :) .

Por razones de sueño, no pude completar los puntos de control de lo elipces, por lo que no lo muestro en el video.

El screencast lo hice, como siempre, con vnc2swf y está acá y pesa casi 3Mb.

1 Comment »

Oregano Library Editor!

July 11th, 2006 | by | mono, oregano, programación

Jul
11

Así como lo leen, ya estoy trabajando en un editor para las bibliotecas de componentes de Oregano. En principio para poder cambiar algunas que no me gustan mucho o que tienen detalles, después veré si la aplicación queda lo suficientemente linda como para hacerla crecer :-) .

OreganoLibraryEditor.pngLuego de una frustrada búsqueda de algún Canvas (no iba a repetir los errores del pasado y usar GnomeCanvas :-) ) decidí hacer uno minimalista, que soporte las operaciones básicas que requiero : Agregar cosas, moverlas y rotarlas. Salvo esta última, las demás están andando, con soporte Group y UnGroup

Y si, como ya se pueden imaginar la aplicación está escrita en C#, con Gtk# y Cairo#. Como el buildsystem depende enteramente de Monodevelop, no creo que libere código alguno por el momento.
En la captura se puede ver el diseño de un componente místico, conocido como Futirifoken :-D

UPDATE: Unos toque mágicos con el Stetic, un poco de magia de System.Xml.Serialization y un par de hacks para sacar la cosa más rápido y …

OreganoLibraryEditorWorking.png

No Comments »

Oregano “Plotting Is Not Easy” 0.50.0 Liberado!!

May 24th, 2006 | by | oregano

May
24

Y si, alguna vez tenía que pasar :-) . Luego de un largo período de idas y vuelvas, ya está la última versión de Oregano lista para bajar.

Lo nuevo en pocas palabras :

  • Nueva ventana de ploteo.
  • Nuevo ventana para editar las propiedades de los componentes.
  • Mejoras en las operaciones de rotar y espejar (No andan al 100%, pero peor es no tenerlas).
  • Build System migrado a Scons

El ChangeLog completo estará en los archivos para descargar el fin de semana. Por ahora pueden obtener un smapshot fresquito desde el repositorio darcs :

#> darcs get --partial http://www.gazer.com.ar/repos/oregano-stable/ (readme)

Para compilar :

#> scons [PREFIX=path/to/prefix] [DESTDIR=path]

Para instalar :

#> scons [PREFIX=path/to/prefix] [DESTDIR=path] install

Enjoy It! :-)

No Comments »