Blockdiag és un programari desenvolupat amb Python per a generar diagrames de flux al vol, simplement programant un fitxer de text pla amb el tipus de diagrama que volem.
Conec des de fa temps Dia, LibreOffice Draw, Inkscape, Umbrello i altres, però necessitava un programari generador de Diagrames de flux més fàcils de mantindre entre distintes persones, i amb Blockdiag considere que seria una bona solució. És programari lliure, molt flexible, rapidíssim i pots preparar-te plantilles alhora de generar Diagrames que mantinguen les mateixes proporcions, imatges i iciones, format dels nodes, colors, tipus de font, etc. No estic dient que és millor o pijtor que Dia o LibreOffice Draw, simplement són filosofies de treball distintes.
He conegut aquest programari per recomanació de José Carlos García del grup d'OpenBSD, que feia servir Blockdiag com a extensió del sistema de documentació Sphinx.
La web oficial del projecte és http://blockdiag.com on tenim molts exemples, tota la documentació, i a més a més un sorprenent shell interactiva per a crear diagrames de flux des del navegador a
Bàsicament, podem mirar l'ajuda i conèixer les possibilitats d'aquest programari:
joan@x201:~$ blockdiag3 --help
Usage: blockdiag3 [options] infile
.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-a, --antialias Pass diagram image to anti-alias filter
-c FILE, --config=FILE
read configurations from FILE
--debug Enable debug mode
-o FILE write diagram to FILE
-f FONT, --font=FONT use FONT to draw diagram
--fontmap=FONT use FONTMAP file to draw diagram
--no-transparency do not make transparent background of diagram (PNG
only)
--size=SIZE Size of diagram (ex. 320x240)
-T TYPE Output diagram as TYPE format
--nodoctype Do not output doctype definition tags (SVG only)
-s, --separate Separate diagram images for each group (SVG only)
joan@x201:~$
Aquest és l'exemple més bàsic, ens generarà el nostre diagrama de flux agafant la configuració del fitxer en format .diag:
blockdiag3 flu1.diag
I ara tindrem una imatge en format PNG amb el mateix nom, és a dir flu1.png.
Si volem, podem fer servir una tipografia distinta especificant-li una font (True Font Type en el meu cas) amb el paràmetre --font:
blockdiag3 --font=/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf password-caducado.diag
Per defecte ens genera imatges en format PNG amb el fons transparent. Si vullguèrem que el fons no siga transparent, farem servir el paràmetre --no-transparency:
blockdiag3 --font=/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf --no-transparency password-caducado2.diag
També podem generar un document en format PDF amb -Tpdf:
blockdiag3 -Tpdf --font=/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf flu1.diag
Ací uns exemples que he fet per a anar provant opcions amb els nodes, el text, les etiquetes, etc. Fes click per veure-ho més gran:
Aquest diagrama de flux (color verd) es fa amb el següent fitxer de text pla:
blockdiag {
orientation = portrait
default_fontsize = 9;
default_node_color = "#69b966";
span_height = 80;
//
// Dimension de los nodos
node_width = 220;
node_height = 100;
//
// Preparamos las etiquetas de los nodos
A [label = "Le ha caducado la contraseña"];
B [label = "¿Tiene certificado de la ACCV?", shape = flowchart.condition];
C [label = "Se lo puede cambiar desde\n http://cambio.dipcas.es" ];
D [label = "Cambiará su contraseña desde 'Gestion de usuarios y contraseñas' en la portada de la web de Asistencias."];
E,F [label = "Fin del procedimiento"];
//
A -> B;
B -> C [label = "Tiene"];
B -> D [label = "No tiene"];
C -> E;
D -> F;
}
I també el diagrama de flux (color blau) l'he fet amb el següent codi:
blockdiag {
orientation = portrait
default_fontsize = 9;
default_node_color = "#5080b2";
span_height = 80;
//
// Dimensión de los nodos
node_width = 220;
node_height = 100;
//
"No pueden imprimir" -> "¿La impresora está encendida?" -> "Si no está encendida hay que encenderla"
"Si no está encendida hay que encenderla" -> "Fin procedimiento"
"¿La impresora está encendida?" -> "Si está ok, ¿tiene los drivers?"
"Si está ok, ¿tiene los drivers?" -> "Si no, hay que instalar los drivers"
"Si está ok, ¿tiene los drivers?" -> "Si tiene los drivers, reiniciamos el ordenador"
"Si no, hay que instalar los drivers" -> "Fin procedimiento"
"Si tiene los drivers, reiniciamos el ordenador" -> "Fin procedimiento"
}
I bé, aquest ha segut un breu resum. Si vols saber totes les possibilitats d'aquest programari, visita la web oficial del projecte http://blockdiag.com.