XEROX HPGL 2 4 1 HPGL 1 4 By: Christopher Lane (Lane@Sumex-Aim.Stanford.Edu) Requires: COLOR INTRODUCTION HPGL defines an additional Interlisp-D ImageStream type which generates output files for plotters (and other output devices) which use the Hewlett-Packard Graphics Language. The package does not define any user functions, the HPGL streams are accessed via OPENIMAGESTREAM and the various window hardcopy functions. The file extensions HPGL and PLOT are recognized by the system as plotter output file types. PLOTTERS Some plotters which use HPGL either as their primary language or as an optional extra: Hewlett-Packard (most) Epson America HI-80 (option) Facit 4551 Western Graphtec MP1000 and FP5301 (option) Gould Color-writer 6120 and 6320 Houston Instrument DMP-29 (option) Taxan 710 Nicolet Zeta 8 (option) IBM 7371 Roland DYX-880 and 980 (source: PC, Volume 4, Number 26, December 84) IMPLEMENTATION The driver was implemented using an HP 7475A Plotter, a number of the driver's variables and options may need adjustment for other types of HPGL plotters. Options The driver accepts the following in the OPTIONS argument to OPENIMAGESTREAM: SCALE Image scaling; value should be a POSITION record which indicates where the second scaling point should be placed (the initial scaling point is at 0,0). By default, uses (SCREENWIDTH . SCREENHEIGHT). ROTATE Paper rotation; value should be 0 or 90. By default LANDSCAPE plotting (0) is used. PAPER Paper size; value should be a small integer (the HP 7475A accepts 3 or 4 (for size A3 or A4). TERMINATOR Label terminator character; value should be a character, the default is ^A. VELOCITY Pen velocity; plotter specific. Variables The driver uses the following variables: HPGL.FONTS An ALST of font names and (small integer) plotter font numbers. HPGL.OPTIONS An ALST of plotter specific options that can be passed to OPENIMAGESTREAM and the corresponding HPGL command to print. HPGL.DASHING An ALST of HPGL line types (small integers) and Interlisp-D dashing lists. HPGL.TERMINATOR The END-OF-LABEL terminator character, initially ^A. COLORNAMES A variable in the Interlisp COLOR package, used by the plotter driver to convert between RGB triples and pen numbers. Dashing To minimize the complexity of the driver and maximize the speed of the plotting, the driver only uses the built-in dashing types of the plotter. The correspondences between the dashing style and HPGL line type number are kept in the HPGL.DASHING variable which can be extended for plotters with different or extended dashing styles. The dashing styles are displayed below: ((SKETCH NIL SKETCHCONTEXT ((ROUND 1 0) (HELVETICA 10) (CENTER BASELINE) (LINE 30.0 12) NIL NIL (CENTER CENTER) (NIL NIL) T NIL NIL 1.0)) ((.05 13.0 NIL) (TEXT (56.0 . 184.0) ("2") 1.0 ( CENTER BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((53.0 180.5 6.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (56.0 . 160.0) ("3") 1.0 (CENTER BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((53.0 156.5 6.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (56.0 . 136.0) ("4") 1.0 ( CENTER BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((53.0 132.5 6.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (56.0 . 112.0) ("5") 1.0 (CENTER BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((53.0 108.5 6.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (56.0 . 88.0) ("6") 1.0 ( CENTER BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((53.0 84.5 6.0 13.0)) NIL)) ((0.0 124.0 NIL) (WIRE ((72.0 . 88.0) (320.0 . 88.0)) (ROUND 1 0) NIL (25 5 5 5 5 5) 1.0)) ((0.0 124.0 NIL) (WIRE ((72.0 . 112.0) (320.0 . 112.0)) (ROUND 1 0) NIL (35 5 5 5) 1.0)) ((0.0 124.0 NIL) (WIRE ((72.0 . 136.0) (320.0 . 136.0)) (ROUND 1 0) NIL (39 5 1 5) 1.0)) ((0.0 124.0 NIL) (WIRE ((72.0 . 160.0) (320.0 . 160.0)) (ROUND 1 0) NIL (35 15) 1.0)) ((0.0 124.0 NIL) (WIRE ((72.0 . 184.0) (320.0 . 184.0)) (ROUND 1 0) NIL (25) 1.0)) ((0.0 124.0 NIL) ( WIRE ((72.0 . 64.0) (320.0 . 64.0)) (ROUND 1 0) NIL NIL 1.0)) ((.05 13.0 NIL) (TEXT (56.0 . 208.0) ("1") 1.0 (CENTER BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((53.0 204.5 6.0 13.0)) NIL)) ((0.0 124.0 NIL) (WIRE ((72.0 . 208.0) (320.0 . 208.0)) (ROUND 1 0) NIL (1 49) 1.0)) ((.05 13.0 NIL) (TEXT (336.0 . 208.0) ("(1 49)") 1.0 (LEFT BASELINE) (TERMINAL 10 ( MEDIUM REGULAR REGULAR)) ((336.0 204.5 36.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (336.0 . 184.0 ) ("(25)") 1.0 (LEFT BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((336.0 180.5 24.0 13.0 )) NIL)) ((.05 13.0 NIL) (TEXT (336.0 . 160.0) ("(35 15)") 1.0 (LEFT BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((336.0 156.5 42.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (336.0 . 136.0) ("(39 5 1 5)") 1.0 (LEFT BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((336.0 132.5 60.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (336.0 . 112.0) ("(35 5 5 5)") 1.0 (LEFT BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((336.0 108.5 60.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (336.0 . 88.0) ("(25 5 5 5 5 5)") 1.0 (LEFT BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) (( 336.0 84.5 84.0 13.0)) NIL)) ((.05 13.0 NIL) (TEXT (336.0 . 64.0) ("NIL") 1.0 (LEFT BASELINE) (TERMINAL 10 (MEDIUM REGULAR REGULAR)) ((336.0 60.5 18.0 13.0)) NIL))) (53.0 60.5 367.0 157.0) 1.0 8.0 If the driver code is loaded after SKETCH, the dashing types are added to SKETCH's menu of dashing styles.(LIST ((PAGE NIL (FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))) (Ô (Ô (lÔ (Ô ( (È(ŠŠ8(È (ŠŠ8DÈÈ PAGEHEADING RUNNINGHEADMODERNMODERNMODERN MODERN MODERN MODERNLOGO   HRULE.GETFNMODERN   HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN 4 —W6;E&  #›NÑ^fX+ )L†YE‚w " SKIO.GETFN.2MODERN jåezº