Michele Liberi software

versione 1.04, giugno 2026

Michele Liberi
mail: mliberi@gmail.com
cell: +393485211456
telegram: @MicheleLiberi

liberix

dview, visualizzatore HPGL

Tra il 1990 ed il 2002 ho lavorato come sistemista in IBM, e mi occupavo principalmente di sistemi UNIX, in particolare di IBM AIX.

In quel periodo lavoravo principalmente negli uffici tecnici dove si usavano vari CAD.

Il problema tipico nelle aziende era che il CAD non poteva essere dato a tutti i dipendenti dell'azienda per vari motivi:

D'altra parte c'era l'esigenza di distribuire in azienda, a fornitori e clienti, documenti generati dall'ufficio tecnico in un formato non modificabile. Serviva uno strumento semplice ed economico, che potesse essere installato su qualunque PC, con il quale visualizzare e stampare i disegni generati dal CAD.

Fu così che nel 1991 decisi di sviluppare un visualizzatore HPGL/2, un linguaggio universale per la definizione di immagini in formato vettoriale, usato da tutti i CAD per la stampa su plotter.

HPGL sta per Hewlett Packard Graphic Language ed è un marchio registrato della Hewlett Packard. È un linguaggio usato per stampare su plotter o stampanti che è diventato, essendo lo standard adottato dalla IBM per i suoi plotter, uno standard internazionale.

Quando scrivo che è un linguaggio universale intendo che tutti i CAD con i quali avevo a che fare avevano la possibilità di produrre file in formato HPGL/2.

In particolare WDVIEW è stato testato con file generati da:

La prima versione, che funzionava in ambiente DOS, è del febbraio 1991.

L'ultima versione DOS del programma DVIEW risale al 1995.

Infatti nel frattempo si era diffuso il sistema Windows che stava soppiantando il DOS, e quindi le versioni successive girano su sistemi Windows 16-bit.

Il pacchetto di installazione conteneva questi file:

-readme.txt:documentazione
-default.mtf:esempio di definizione di un font vettoriale
-hpglsamp.plt:esempio disegno HPGL, utile per testare il programma
-dview00.exe:eseguibile per scheda grafica VGA, senza coprocessore matematico 8087
-dview01.exe:eseguibile per scheda grafica VGA, con coprocessore matematico 8087
-dview10.exe:eseguibile per scheda grafica TSENG et/4000, senza coprocessore matematico 8087
-dview11.exe:eseguibile per scheda grafica TSENG et/4000, con coprocessore matematico 8087

Questa versione del visualizzatore non implementa il set completo di primitive HPGL descritte nel libro The HP-GL/2 Reference Guide. A handbook for program developers, edito dalla Addison Wesley Publishing Company con codice ISBN 0-201-56308-8. Sono state implementate solo le primitive effettivamente contenute nei file generati dai CAD menzionati sopra, cioè:

**********************************************************************
*******   Lista delle istruzioni hpgl/2 e relativa sintassi    *******
**********************************************************************

CONFIGURATION group
  DF                            Default values
  IN [1]                        Initialize
  IP [x1 y1 [x2 y2]]            Input Absolute P1 & P2
  IR [x1 y1 [x2 y2]]            Input Relative P1 & P2
  IW [x1 y1 x2 y2]              Input Window
  PG [n]                        Advance full page
  RO [0|90|180|270]             Rotate Coordinate system
  RP [n]                        Replot
  SC [x1 x2 y1 y2[type[le,bo]]] Scale instruction

VECTOR group
  AA Xc Yc [alfa [chord]]       Arc Absolute
  AR Xc Yc [alfa [chord]]       Arc Relative
  AT Xb Yb Xe Ye [chord]        Absolute Arc 3 point
  CI r [chord]                  Circle
  PA [x y]...                   Plot Absolute
  PD [x y]...                   Pen Down
  PE [flag][value/xy]...;       Polyline Encoded
  PR [x y]...                   Plot Relative
  PU [x y]...                   Pen Up
  RT Xb Yb Xe Ye [chord]        Relative Arc 3 point

POLYGON group
  EA x y                        Edge Rectangle Absolute
  ER x y                        Edge Rectangle Relative
  EW r alfa sweep [chord]       Edge Wedge
  EP                            Edge Polygon
  FP                            Fill Polygon
  PM n                          Polygon Mode
  RA x y                        Fill Rectangle Absolute
  RR x y                        Fill Rectangle Relative
  WG r alfa sweep [chord]       Fill Wedge

LINE & FILL group
  AC [x y]                      Anchor Corner
  FT type [opt1 [opt2]]         Fill Type
  LA [kind value]...            Line attributes
  LT [type [len [mode]]]        Line Type
  PW [width [pen]]              Pen Width
  RF [index [w h pen...]        Raster fill Definition
  SM [string]                   Symbol mode
  SP [pen]                      Select Pen
  UL [index [gap...]]           User defined line type
  WU [type]                     Pen Width unit selection

CHARACTER group
  AD [kind value]...            Alternate font def.
  CF [mode [pen]]               Character fill mode
  CP [spaces lines]             Character Plot
  DI [run rise]                 Absolute Direction
  DR [run rise]                 Relative Direction
  DT [char [mode]];             Label Terminator
  DV                            Define Variable Text path
  ES [w [h]]                    Extra Spaces
  LB [ch]... terminator         Label
  LO [position]                 Label Origin
  SA                            Select alternate font
  SD [kind value]...            Standard font def.
  SI [w h]                      Absolute char size
  SL [tg]                       Char Slant
  SR [w h]                      Relative char size
  SS                            Select standard font
  TD [mode]                     Transparent data

TECHNICAL GRAPHICS Ext group
  BP [kind value]...            Begin plot
  CT [mode]                     Chor Tolerance mode
  DL [ch [[up] x y]...]         Download char
  EC [n]                        Enable cutter
  FR                            Frame advance
  MC [mode]                     Merge control
  MG [message]                  Message
  MT [type]                     Media Type
  NR [timeout]                  Not Ready
  OE                            Output Error
  OH                            Output Hard clip limits
  OI                            Output Identification
  OP                            Output P1 & P2
  OS                            Output Status
  PS [len w]                    Plot Size
  QL [quality]                  Quality Level
  ST [switches]                 Start
  VS [velocity [pen]]           Velocity Select

PALETTE group
  CR [r g b R G B]              Set Color Range
  NP [n]                        Number of Pens
  PC [pen [r g b]]              Pen Color Assignment
  SV [type [opt1 [opt2]]        Screened Vectors
  TR [n]                        Transparency Mode

DUAL Context Extensions
  FI [fontID]                   Primary font selection
  FN [fontID]                   Secondary font selection
  SB [n]                        Scalable bitmap fonts
  DC                            Digitize Clear
  DP                            Digitize Point
  OD                            Output Digitized Points

Sintassi del comando

Uso: DVIEW { Opzione | Nomefile | @Nomefile }...
  Nomefile : Nome del file HPGL da processare. Pu~U contenere wildcards
  @Nomefile: Nomefile contiene, uno per linea, i nomi dei disegni. No wildcards

OPZIONI: Il valore tra parentesi ~J il valore di default');
  -A4        Disegno in formato A4                (-B430,200 -T10430, 7400)
  -A3        Disegno in formato A3                (-B380,430 -T15580,10430)
  -Bx,y      Setta il punto basso-sinistra al punto x,y                (A3)
  -Tx,y      Setta il punto alto-destra al punto x,y                   (A3)
  -Cc        Colore del foglio da disegno = c [0..15]                (nero)
  -Nc        Tutte le penne sono del colore c [0..15]
  -Pnc       Penna numero n [1..8] del colore c [0..15]
  -Enomefile Gli errori vengono riportati su nomefile            (HPGL.ERR)
  -Fnomefile Vengono lette le opzioni da nomefile: una per riga
  -Gnomefile Carica il font grafico presente in nomefile
  -Rnomefile Print Screen interno sul file specificato               (LPT1)
  -D         Print Screen a carico di un TSR esterno
  -OString   Mode string per il PrintScreen
  -K         Keyboard Selection. Non usa il mouse anche se presente
  -I         Zoom IsoTropici on/off                                    (ON)

(c) M. Liberi, last updated: 2026-06-18