envos HPGL 2 4 1 HPGL 1 4 By: Christopher Lane (Lane@Sumex-Aim.Stanford.Edu) HPGL defines a Lisp image stream type that generates output for plotters (and other devices) which use the Hewlett-Packard Graphics Language. The module does not define any user functions, the HPGL streams are accessed via OPENIMAGESTREAM and the hardcopy functions. 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 1984) The file extensions HPGL and PLOT are recognized by the system as plotter output file types. 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, defaults to landscape plotting (0). PAPER Paper size; value is a small integer, the HP 7475A accepts 3 (A3) or 4 ( A4). TERMINATOR Label terminator character; value should be a character, the default is ^A. VELOCITY Pen velocity; plotter specific. IMPLEMENTATION The driver was implemented using an HP 7475A plotter but the plotter output conforms to the more restrictive HP 9872 syntax to be more widely applicable. The driver uses the following variables which may need adjustment for other types of plotters: 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 dashing lists. HPGL.FONT.EXPANSIONS An ALST of font face expansions (REGULAR, COMPRESSED and EXPANDED) and the relative scale of each. HPGL.TERMINATOR The default end of instruction terminator character, initially ;. HPGL.SEPARATOR The default parameter separator character, initially ,. HPGL.TEXT.TERMINATOR The default end of label terminator character, initially ^A. HPGL.CHORD.ANGLE The chord angle used by the circle and arc instructions. Defaults to NIL which causes the plotter's default to be used. HPGL.PATTERN.LENGTH The default pattern length for the hardware dashing. Defaults to NIL which causes the plotter's default to be used. COLORNAMES System variable used to convert between RGB triples and pen numbers. The order of entries affects the pen number to color correspondences. DASHING To minimize the complexity of the driver and maximize the speed of plotting, for operations other than DRAWLINE, 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 modified or extended for plotters with different dashing styles than those 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) VERSION 3) ((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)) ((0.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)) ((0.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)) ((0.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)) ((0.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 NIL NIL)) ((0.0 124.0 NIL) (WIRE ((72.0 . 112.0) (320.0 . 112.0)) (ROUND 1 0) NIL (35 5 5 5) 1.0 NIL NIL)) ((0.0 124.0 NIL) (WIRE ((72.0 . 136.0) (320.0 . 136.0)) (ROUND 1 0) NIL (39 5 1 5) 1.0 NIL NIL)) ((0.0 124.0 NIL) (WIRE ((72.0 . 160.0) (320.0 . 160.0)) (ROUND 1 0) NIL (35 15) 1.0 NIL NIL)) ((0.0 124.0 NIL) (WIRE ((72.0 . 184.0) (320.0 . 184.0)) (ROUND 1 0) NIL (25) 1.0 NIL NIL)) ((0.0 124.0 NIL) (WIRE ((72.0 . 64.0) (320.0 . 64.0)) (ROUND 1 0) NIL NIL 1.0 NIL NIL)) ((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 NIL NIL)) ((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)) ((0.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)) ((0.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)) ((0.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)) ((0.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)) ((0.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)) ((0.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 is loaded after SKETCH, the dashing types are added to SKETCH's dashing menu .(LIST ((PAGE NIL (PAPERSIZE LETTER FOLIOINFO (ARABIC "" "") STARTINGPAGE# 109) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 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)))))2,-T2``222,2, ,,8,8H PAGEHEADING RUNNINGHEAD CLASSICCLASSICCLASSICTERMINAL MODERN MODERNMODERNMODERN MODERN MODERN MODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN    HRULE.GETFNMODERN      HRULE.GETFNMODERN    HRULE.GETFNMODERN   4  K !  W 4 7 D "    % \ M   <  T Y (  K  L x T I T      V SKIO.GETFN.2MODERN \  nz