


                       G  R  A  F  I  A  S 


                           VERSION 1.0PD

                      vom 12. Oktober 1992



-----------------------------------------------------------------

fr den Atari ST.  Interpretiert HPGL-Befehle und erzeugt an  der 
parallelen   Schnittstelle   die  Impulse  fr   eine   2-Achsen-
Schrittmotorkarte  eines  Plotters,   inklusive  einer  flexiblen 
Stiftsteuerung.

-----------------------------------------------------------------



                             Autor:
                        Roland Reižmller
                         Hauptstraže 79
                       D-7076 Waldstetten
                        Tel.: 07171/42220
                        Copyright ½, 1992 



-----------------------------------------------------------------

Inhaltsverzeichniss zur Beschreibung von GRAFIAS


1      Einleitung
1.1    Allgemeines
1.2    Diese Version
1.3    Die Voll-Version
1.4    Diese Beschreibung
1.5    Rechtliches
1.6    Inhalt der Diskette

2      Installation der Software

3      Anpassungen
3.1    Prinzipieller Plotteraufbau
3.2    Endschalter
3.3    Plotter - Rechner - Kopplung
3.4    Stiftwechselmechanismus
3.4.1  Manueller Stiftwechsel      
3.4.2  Drei Stiftmagnete

4      Bedienung

5      Die Grafiksprache HPGL




1    E i n l e i t u n g

1.1  Allgemeines

Mittlerweile    sind    in   Fachzeitschriften    schon    einige 
Selbstbauplotter ver”ffentlicht worden. Mit GRAFIAS auf dem Atari 
ST  ist  es nun m”glich Selbstbauplotter durch  HPGL-Befehlen  zu 
steuern.  An  der parallelen Schnittstelle des Atari stehen  alle 
Impulse zur Verfgung,  um ber eine Schrittmotorkarte die beiden 
Schrittmotoren  des Plotter in Bewegung zu setzen und die  Stifte 
zu steuern.  Um Zeichnungen von einem CAD-Programm  auszuplotten, 
leitet man die Plotterausgabe in eine Datei um. Dies wird von den 
meisten  CAD-Programmen  untersttzt.  Diese Datei kann  nun  von 
GRAFIAS verarbeitet werden.  

GRAFIAS   ist   in   Turbo  C  geschrieben   und   wird   st„ndig 
weiterentwickelt.


1.2  Diese Version

in Stichworten...
Interpretiert   HPGL-Befehle  und  Dateien   *       Umfangreiche 
Konfigurierbarkeit     *     Mit   den   meisten    Plottern    / 
Schrittmotorkarten  kominierbar  *  Manueller  Stiftwechsel  oder 
Bedienung von 3 Stiftmagneten  *  Stiftsortierung abschaltbar  *
L„uft  als  Programm  und  Accessory   *   Bedienung  durch  GEM-
Dialogbox  *  šberwacht die Hardwaregrenzen  *  Rampensteuerung *   
Linientypen  * Proportionale oder unproportionale Textausgabe   *   
Koordinatenanzeige  in der Dialogbox  *  Manuelle   Stiftbewegung  
*    Direkte   Befehlseingabe   *    Vergr”žerung,   Offset   und 
Blattrichtung einstellbar

In  der Public-Domain-Version ist die Zeichnungsgr”že auf  2kByte 
begrenzt.  Der Befehlsumfang in dieser Version reicht aus, um die 
Zeicnungen der meisten CAD-Programmen zu plotten. 

Verfgbare Befehle:   
     
     PU   Stift heben
     PD   Stift senken
     IN   Initialisiern  (Anfangszustand)
     DF   Default  (Standardeinstellung) 
     LB   Label  (Textausgabe)
     LT   Linientyp
     SP   Select Pen
     DT   Define Terminator
     PF   Proportionalschrift ein (PF1;) / aus (PF0;)
           













1.3 Die Voll-Version

bietet noch mehr M”glichkeiten ...
keine  Beschr„nkung der Zeichnungsgr”že * weitere HPGL-Befehle  * 
relative  Vektoren * absolute und relative B”gen * Text in  Gr”že 
und Richtung einstellbar *

Wer   die   Voll-Version   einschliežlich   einer   umfangreichen 
Beschreibung (auf Diskette) haben m”chte,  kann diese fr 50.- DM 
(Verrechnungsscheck)   bei   mir   bestellen.          
  
Bestellung bei:       Roland Reižmller
                      Hauptstraže 79
                      D-7076 Waldstetten
                      Tel.: 07171/42220                                          



1.4  Diese Beschreibung

Diese  Beschreibung  ist auf 65 Zeichen / Zeile und 62  Zeilen  / 
Seite formatiert. 

Zur  Erkl„rung  wird ein stilisirter  Plotter  aus  ASCII-Zeichen 
dargestellt. Dabei bedeuten:

     XXX   Die x-Achse
     YYY   Die y-Achse
     0/0   Koordinatenangabe (hier der Ursprung)



1.5  Rechtliches

Diese Version ist Public-Domain, bleibt aber Eigentum des Autors. 
Die  Public-Domain-Version  darf kostenlos von  jedem  verwendet, 
kopiert  und weitergegeben werden,  allerdings nur in  Verbindung 
mit den anderen Dateien und nur im Ordner.  Das Programm und alle 
anderen Dateien drfen nicht ge„ndert werden.  

Jegliche  Haftung des Autors fr Sch„den in Zusammenhang mit  dem 
Programm sind ausgeschlossen. 



1.6 Inhalt der Diskette 

Folgende  Dateien bzw.  Ordner mssen auf der Diskette im  Ordner 
GRAFIAS enthalten sein:

     READ.ME        Diese Beschreibung
     GRAFIAS.PRG    Das Progamm
     GRAFIAS.RSC    Die Resource
     GRAFIAS.PAR    Die Konfigurationsdatei
     LITT.CHR       Der Zeichensatz
     BEISPIEL       Ordner mit Beispielen






2    I n s t a l a t i o n   d e r   S o f t w a r e
                                   
Das Programm l„uft auf einem Atari ST in der mittleren und  hohen 
Aufl”sung.   Mit  einem  TT  habe  ich  noch  keine   Erfahrungen 
gesammelt.  Eine Festplatte ist nicht notwendig.  500 kByte - RAM 
sollten ausreichen.  

Folgende Dateien sind fr den betrieb notwendig:
     
     GRAFIAS.PRG    Das Programm selbst
     GRAFIAS.RSC    Die Resource
     GRAFIAS.PAR    Die Konfigurationsdatei
     LITT.CHR       Der Zeichensatz

Alle  diese Dateien mssen im gleichen Verzeichnis  stehen.  Soll 
das  Programm  als Accessory verwendet werden,  ist  einfach  die 
Programmextension   von   .PRG   nach   .ACC   zu   „ndern.   Ein 
Druckerspooler darf nicht aktiv sein. Wenn - wie meistens - aužer 
dem  Plotter  auch  ein Drucker  verwendet  wird,  hat  sich  ein 
sogenanntes  DATA-SWITCH  bew„hrt.   Dadurch  bleibt  einem   das 
dauernde umst”pseln erspart.  Grafikkarten drften keine Probleme 
bereiten. 



3    A n p a s s u n g e n

3.1  Prinzipieller Plotteraufbau

Die Software ist geeignet fr alle Flachbett-   und Walzenplotter 
mit Schrittmotorkarte welche die Anforderungen  in  den  n„chsten 
beiden  Kapiteln erfllen.  Die Software ist  m”glichst  flexibel 
gehalten,  so daž ein Betrieb mit den meisten Plottern erm”glicht 
werden kann, entweder durch anpassen der Konfigurationsdatei oder 
durch   Anpassungen   am   Plotter   (Stichworte:    Endschalter, 
Schnittstelle,  Stiftwechselmechanismus).  An  die  Mechanik  ist 
zun„chst  mal  die Forderung gestellt,  daž  zwei  Schrittmotoren 
einen  Schlitten auf zwei senkrecht zueinander  stehenden  Achsen 
ber   das  Papier  bewegen  k”nnen.   Die   hardwarespezifischen 
Parameter wie Schrittweite, Hard-Clipping, Bewegungsrichtung usw. 
kann  ber die Konfigurationsdatei angepasst werden.  Einzig  die 
Lage der Endschalter ist wichtig.



3.2  Endschalter

Nach dem Programmaufruf muž die tats„chliche Plotterposition  mit 
den  Variablen im Programm synchronisiert  werden.  Dazu  bewegen 
sich  die Achsen in Richtung der Endschalter bis  diese  bet„tigt 
werden  und wieder zurck,  bis diese nicht mehr  bet„tigt  sind. 
Die Variablen werden jetzt initialisiert.

Ablauf des RESET:   
- Beide Achse gegen Endschalter bis einer von beiden bet„tigt ist
- Beide Achsen wieder zurck, bis kein Endschalter bet„tigt ist
- x-Achse gegen Endschalter
- x-Achse zurck bis Endschalter nicht mehr bet„tigt ist
- y-Achse gegen Endschalter
- y-Achse zurck bis Endschalter nicht mehr bet„tigt ist
                  

Die  Endschalter mssen bei den maximalen  positiven  Koordinaten 
des  Plottbereiches,  also rechts/oben montiert sein,  weil  nach 
einem  Reset  im  Programm  die  Stiftposition  und  die   oberen 
Rahmengrenzen  auf die maximale Rahmengr”že gesetzt  werden.  Die 
unteren Rahmengrenzen werden gleich null gesetzt. 



                                         Lage der
                                         Endschalter   
                                      Y                                    
                XXXXXXXXXXXXXXXXXXXXXX XX
                --------------------- Y  
                |                   | Y
                |   Plottbereich    | Y
                |                   | Y
                |                   | Y
                | 0/0               | Y
                --------------------- Y





Weil  nur  ein  Eingang,  das  Signal  Busy,  an  der  parallelen 
Schnittstelle zur Verfgung steht, mssen die Endschalter fr die 
x-  und  y-  Achse in Reihe geschaltet  und  gemeinsam  abgefragt 
werden.  Welcher Endschalter nun bet„tigt ist ergibt sich daraus, 
welche Achse in Bewegung ist. 

                                   +5V    
                                    |
                                    |    
                                   ---
                                   | |
                                   | |  R  z.B. 10 kOhm
                                   | |
                                   ---         
                                    |
     Rechner: BUSY-Eingang  --------+
                                    |
                                    +-- 
                                     / Endschalter 
                                    /  fr x-Achse
                                    |    
                                    |
                                    +--    
                                     / Endschalter 
                                    /  fr y-Achse
                                    |
                                    |
                                   -+-  Masse   

Das Bild zeigt also,  mit viel Phantasie,    eine Reihenschaltung 
aus:   5V-Spannung  ,   10kOhm-Widerstand  ,   BUSY-Anschluss   , 
Endschalter der x-Achse ,  Endschalter der y-Achse   und   Masse. 
Die beiden Schalter sind ™ffner, im Ruhezustand also durchg„ngig.





3.3  Plotter - Rechner - Kopplung

Die  Schrittmotorkarte wird ber die parallele Schnittstelle  mit 
dem Atari gekoppelt.  Die 8 Datenleitungen DATA0 ... DATA7 werden 
nur  als Ausg„nge genutzt,  das BUSY-Signal als Eingang  fr  die 
Endschalterabfrage.  Hier  muss ich darauf  hinweisen,  daž   die 
parallele  Schnittstelle  ungepuffert  ist,  wodurch  sie  leicht 
zerst”rt  werden  kann.  Die  elektrischen  Anschlužwerte  mssen 
unbedingt eingehalten werden. 

Anschlužkabel:
--------------
     Rechner        Plotter
     (parallele)

     DATA0          x-Clock (high aktiv)
      "  1          x-Richtung  0=links, 1=rechts
      "  2          y-Clock (high aktiv)
      "  3          y-Richtung  0=unten, 1=oben  
      "  4          0=Vollschritt, 1=Halbschritt (oder eigene Anwendung)
      "  5          Reset der Schrittmotorkarte (oder eigene Anwendung)
      "  6          0=Stift heben, 1=Stift senken
      "  7          0=Stift heben, 1=Stift senken (siehe Text)
     BUSY           1=Endschalter bet„tigt

Erl„uterungen:   DATA4  wird  entsprechend  der  Vorgabe  in  der 
Konfigurationsdatei  gesetzt,  ansonsten vom Programm aber  nicht 
beeinflužt.   Es  ist  vorgesehen,   DATA4  zum  Umschalten   der 
Schrittmotoren   von  Vollschritt-  auf  Halbschritt-Betrieb   zu 
verwenden.  Wenn eine solche Umschaltung fr die eigene Anwendung 
nicht  gewnscht  wird,  kann dieses Bit auch fr  andere  Zwecke 
eingesetzt werden. 

DATA5 wird vom Programm selbstst„ndig nicht ge„ndert,  kann  aber 
vom Anwender in der Dialogbox ge„ndert werden. 


Adapter:
--------
Wenn schon ein Anschlužkabel vorhanden ist und dessen Pinbelegung 
nicht  mit der obigen bereinstimmt,  kann aus  einem  25-poligen 
SubD-Stecker  und  entsprechender Buchse  ein  Adapter  gebastelt 
werden,  indem die Pins der Rechnerseite durch einzelne Kabel mit 
den  entsprechenden  der Schrittmotorkarte verbunden  werden.  Um 
Vertauschungen   auszuschliessen,   sollte  vorher   eine   Liste 
der eigenen, individuellen Pinbelegung angefertigt werden.  


Invertieren der Signale:
------------------------
Stimmt  die Pin-Belegung k”nnten die Signale nun noch  invertiert 
anliegen.  Normalerweise  mssten jetzt Invertierer in das  Kabel 
eingebaut werden. 

Im Programm k”nnen die einzelnen Bits mit der Variablen 'plotinv' 
in  der  Konfigurationsdatei invertiert werden.  Die 8  Bits  der 
Variablen  entsprechen  den Datenleitungen DATA0  ...  DATA7  der 
parallelen Schnittstelle. 

Ist ein Bit =0, erscheint dieses Signal so am Port, wie es in der 
Liste  oben  angegeben wurde.  Ist ein Bit  =1  erscheint  dieses 
Signal invertiert am Port. 

Das  setzen eines Bits hat also die Wirkung wie der Einbau  eines 
Invertierers  in die Datenleitung.  Die internen  Rechnungen  und 
Anzeigen in der Dialogbox bleiben davon unberhrt.  


3.4  Stiftwechselmechanismus

Zur   Zeit   werden  vom  Programm  zwei  Mechanismen   fr   den 
Stiftwechsel  bedient.  Mit  der Variablen  'swe'  kann  zwischen 
beiden Optionen gew„hlt werden.

     swe = 0 ---> Manueller Stiftwechsel  (Abschnitt 3.4.1)
     swe = 1 ---> 3 Stifte mit Stiftmagneten (Abschnitt 3.4.2)



3.4.1 Manueller Stiftwechsel

Dazu h„lt der Plotter bei jedem Stiftwechselbefehl an und fordert 
in einer Dialogbox auf, den Stift zu wechseln. Besonders hier ist 
es  sinnvoll,  die Stiftsortierung einzuschalten.  Die  Variablen 
penoffset in der Konfigurationsdatei werden nicht bercksichtigt. 


3.4.2 Drei Stiftmagnete

šber die Bits DATA6 und DATA7 der parallelen Schnittstelle k”nnen 
3  Stiftmagnete  angesprochen werden.  Die  Bits  haben  folgende 
Bedeutung:

     DATA7   DATA6   Wirkung

       0       0     alle Stifte oben
       0       1     Stift 1 abgesenkt
       1       0       "   2     "
       1       1       "   3     "
  
      
Dieser  Mechanismus  ist z.B.  in der  Bauanleitung  des  Plotter 
'Mondrian' der Zeitschrift Elektor vorgesehen. 

Die  3  Stifte sind hier am Schlitten montiert.  Der  Offset  der 
Stifte 2 und 3 vom Stift 1 kann durch die Variablen 'pen2of'  und 
'pen3of' in der Konfigurationsdatei egalisiert werden. 



4    B e d i e n u n g

Bedient  wird  das Programm ber eine,  nicht  ganz  GEM-konforme 
Dialogbox. Die Handhabung weicht in zwei Punkten vom GEM-Standard 
ab. 

- Wenn der Cursor in den Feldern xPOS, yPos oder Befehl steht und 
die RETURN-Taste bet„tigt wird, wird der Dialog verlassen und die 
in den Feldern get„tigte Eingabe ausgefhrt.

-  In den Feldern,  in denen Zahleneingaben erlaubt  sind  k”nnen 
auch Vorzeichen eingegeben werden.  In GEM ist eine  Beschr„nkung 
auf Ziffern und Vorzeichen nicht m”glich !


Plotten einer Datei:
--------------------
Mit klick auf eine Dateiextension,  in der Dialogbox rechts  fast 
ganz  oben,  erscheint die Dialogbox um den Zugriffspfad  der  zu 
plottenden Datei festzulegen.  Ist ein Pfad gew„hlt,  wird dieser 
im  Feld 'Pfad' angezeigt.  Klick auf 'Plotten' gibt diese  Datei 
aus. 

Bei  aktiver Stiftsortierung wird die Zeichnung fr  jeden  Stift 
einmal  ausgegeben.  Die Stiftsortierung ist nicht ganz  trivial. 
Die Befehle einfach nicht auszufhren,  welche mit einem  anderem 
als  dem eben aktiven Stift ausgefhrt werden,  bringt  Probleme, 
weil   fr   einen  Befehl  dessen   Vorgeschichte   nicht   ganz 
uninteressant ist.  Z.B.  soll eine Linientyp-Einstellung w„hrend 
aktivem Stift 1 auch noch nach einem Stiftwechsel wirksam sein. 

Die  BUTTON's 7...0,S,B zeigen die Bits des  Parallel-Ports.  Vom 
Anwender k”nnen nur die Bits 4...7 ge„ndert werden. 
 





5    D i e   G r a f i k s p r a c h e   H P G L
 
Das Programm interpretiert HPGL-Befehle (Hewlett Packard Graphics 
Language).   Diese  Sprache  stellt  Befehle  zum  zeichnen   zur 
Verfgung wie Linien, Kreise, ... oder Einstell-Befehle wie 
Linientyp,  Stiftwechsel, Skalierung, ...  .  Der Code ist ASCII, 
und kann desshalb mittels Texteditor angeschaut werden.  

Die  Befehle  k”nnten als komplette Zeichnung von  einem  anderen 
Programm  erzeugt  worden  sein (z.B.  CAD-Prg.)  und  als  Datei 
vorliegen, oder einzeln im Feld 'Befehl' der Dialogbox eingegeben 
werden.  In Basic z.B. werden durch  LPRINT " <Befehl> "  Befehle 
in  eine  Datei geschrieben.  In dieser Version darf  ein  Befehl 
nicht l„nger als 254 Zeichen sein.

Die  Syntax  von HPGL muž  eingehalten  werden:  Ein  HPGL-Befehl 
beginnt  mit  dem Befehlsnamen bestehend aus  2  Grož-Buchstaben. 
Darauf  folgen,  falls fr den Befehl notwendig,  die  Parameter, 
welche durch ein Trennzeichen voneinander getrennt sind. 

Gltige Trennzeichen:  ','  Komma
                       ' '  Leerzeichen
                       '+'  Vorzeichen
                       '-'  Vorzeichen

Der  Befehl  muž  mit  dem  Terminator  ';'  abgeschlossen  sein. 
Die Syntax lautet also:

     mn  Param1  Trennz  Param2  Trennz   ...   Terminator
     |
     Befehlsname






Zus„tzliche  Trennzeichen werden ignoriert.  Ein gltiger  Befehl 
k”nnte also sein:

     PA1000,1000;
     PA+1000 1000;
    ,PA,+1000 1000; 

Alle diese Befehle bewegen den Stift zu den absoluten Koordinaten 
1000/1000 .

Ausnahme bildet der LB-Befehl also die Textausgabe. Der Parameter 
ist  eine  Zeichenkette der ASCII-Codes von 32 ...  255  und  der 
Steuerzeichen LF = 0Ah und CR = 0Dh.  Die Textausgabe  terminiert 
beim Empfang des Textterminators,  der standardm„žig auf ETX (End 
Of  Text)  =  03h  gestellt  ist,   mit  dem  Befehl  DT  (Define 
Terminator) aber auf ein beliebiges ASCII-Zeichen ge„ndert werden 
kann. In dieser Version sollte auch LB mit ';' terminiert werden. 

Bei  der  direkten  Befehlseingabe in die  Dialogbox  k”nnen  die 
Steuerzeichen ber Control-Codes erreicht werden:

     LF  = Control J
     CR  = Control M
     ETX = Control C 


