You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1263 lines
43 KiB
Modula-2
1263 lines
43 KiB
Modula-2
; Device definitions for EAGLE version 5.7.0:
|
|
;
|
|
; [NAME] device name (as in command line option "-d" or menu)
|
|
; @NAME inherits data from [NAME] (max. nesting level is 10!)
|
|
; Type basic device type (must immediately follow [NAME]):
|
|
;
|
|
; PenPlotter pen plotter
|
|
; PhotoPlotter photoplotter
|
|
; DrillStation drill station
|
|
; Generic generic device (used for e.g. PostScript)
|
|
; Calcomp Calcomp pen plotter
|
|
; CalcompE CalComp electrostatic plotter
|
|
;
|
|
; Common parameters for all types of devices:
|
|
;
|
|
; Long long name (description) of device
|
|
; Init string to initialize device before printing
|
|
; Reset string to reset device after printing
|
|
; ResX/Y resolution in X/Y direction (dots or steps per inch, default = 1000)
|
|
; CorrectX/Y used to correct hardware tolerances (default = 1.0)
|
|
; OffsetX/Y defines an offset from the machine's origin (default = 0.0)
|
|
; Width page width (inch) (default = 8.0)
|
|
; Height page height (inch) (default = 12.0)
|
|
; Output name of the output file or port
|
|
; Color.NN color number to use for layer NN, e.g.
|
|
; Color.120 = 3 ; will use color '3' for layer '120'
|
|
;
|
|
; Parameters for drawing devices (PenPlotter, PhotoPlotter):
|
|
;
|
|
; Draw draw a line to (x, y)
|
|
; Move move the pen to (x, y)
|
|
; PenDown lower the pen
|
|
; PenUp lift the pen
|
|
; AreaBegin begin of a polygon area definition (edges are drawn with Move/Draw
|
|
; and are considered to have zero width)
|
|
; AreaEnd end of polygon area definition
|
|
;
|
|
; Parameters for pen plotters (PenPlotter):
|
|
;
|
|
; PenArcCxCyAd draw an arc from CP with center (Cx, Cy) and angle Ad
|
|
; PenCircleCxCyRxCxCyRx draw a circle at (Cx, Cy) with radius Rx
|
|
; PenCircleCxCyRxRy draw a circle at (Cx, Cy) with radius Rx and Ry
|
|
; PenCircleRxCxCy draw a circle at (Cx, Cy) with radius Rx
|
|
; PenCircleRxn draw a circle at CP with radius Rx (negtive!)
|
|
; PenCircleRxRx draw a circle ar CP with radius Rx
|
|
; PenSelect select pen
|
|
; PenSpeed string to set pen speed
|
|
; PenDiameter pen diameter (mm)
|
|
; PenVelocity pen velocity (device dependent value)
|
|
;
|
|
; Parameters for drill stations (DrillStation):
|
|
;
|
|
; DrillSize string for drill size definition in output file
|
|
; AutoDrill string for automatic drill generation
|
|
; FirstDrill number of the first drill to use with AutoDrill
|
|
; BeginData string to mark the beginning of the actual drill data
|
|
; Select string to select a tool
|
|
; Divide divides coordinates (default = 1.0)
|
|
; Drill string to drill a hole at (x, y) [with tool]
|
|
; Info string that is copied into the drill info file
|
|
; Rack name of the drill rack file
|
|
;
|
|
; Parameters for photo plotters (PhotoPlotter):
|
|
;
|
|
; AutoAperture string for automatic aperture generation
|
|
; Aperture string to select an aperture
|
|
; Flash string to flash an aperture
|
|
; Info string that is copied into the photo plotter info file
|
|
; Wheel name of the aperture wheel file name
|
|
; FirstAperture number of the first aperture to use with AutoAperture
|
|
; ToleranceDrawM negative draw tolerance
|
|
; ToleranceDrawP positive draw tolerance
|
|
; ToleranceFlashM negative flash tolerance
|
|
; ToleranceFlashP positive flash tolerance
|
|
; EmulateApertures turns aperture emulation on (YES) or off (NO)
|
|
; EmulateAnnulus turns annulus emulation on (YES) or off (NO)
|
|
; EmulateThermal turns thermal emulation on (YES) or off (NO)
|
|
; Circle defines embedded circle aperture
|
|
; Rectangle defines embedded rectangle aperture
|
|
; Octagon defines embedded octagon aperture
|
|
; Oval defines embedded oval aperture
|
|
; Annulus defines embedded annulus aperture
|
|
; Thermal defines embedded thermal aperture
|
|
; MaxApertureSize maximum physical aperture size (inch)
|
|
;
|
|
; Parameters for DrillStation and PhotoPlotter;
|
|
;
|
|
; Units the units used in *.GPI and *.DRI files
|
|
; valid units are Inch, MM and Auto[default] (automatically
|
|
; chooses the unit with the least decimal digits)
|
|
; Decimals the number of decimals to use when Units is set to Inch
|
|
; or MM (default = 4). Values are rounded to this number of
|
|
; decimals.
|
|
;
|
|
; Parameters for generic devices:
|
|
;
|
|
; Header1 header string used for PostScript
|
|
; Header2 header string used for PostScript
|
|
; Header3 header string used for PostScript
|
|
; StartPage string that starts a new page
|
|
; EndPage string that ends a page
|
|
; ArcCxCyRWSaEaC string that draws an arc at (Cx, Cy) with Radius, Width, Start angle, End angle and line Cap
|
|
; Bar string that draws a bar
|
|
; Circle string that draws a circle
|
|
; Line string that draws a line
|
|
; Octagon string that draws an octagon
|
|
; Pie string that draws a pie
|
|
; Hole string that draws a hole
|
|
; HwArcX1Y1CxCyA string that draws an arc with hardware coordinates
|
|
; HwArc string that draws an arc with hardware coordinates
|
|
; HwCircle string that draws a circle with hardware coordinates
|
|
; HwColor string that sets the color
|
|
; HwLine string that draws a line with hardware coordinates
|
|
; HwPie string that draws a pie with hardware coordinates
|
|
; HwPoly1 string that start a polygon with hardware coordinates
|
|
; HwPoly2 string that draws a polygon edge with hardware coordinates
|
|
; HwPoly3 string that ends a polygon with hardware coordinates
|
|
; HwStartPage string that starts a page
|
|
; HwWidth string that sets line width with hardware units
|
|
; MaxHwWidth maximum hardware line width
|
|
;
|
|
; Strings have to be enclosed in double quotes ("...").
|
|
; If a double quote has to be part of the string, it must be escaped with
|
|
; a backslash, e.g. "abc\"def".
|
|
; If a backslash has to appear in the string, it has to be doubled,
|
|
; e.g. "abc\\def" would result in abc\def.
|
|
; Non-printable characters inside strings are written as "\xhh" with 2
|
|
; hex digits, e.g. "\x1B" would mean ESCape; the digits may be upper- or
|
|
; lowercase, but it has to be exactly two of them!
|
|
; The following characters have special meanings when escaped with
|
|
; a backslash:
|
|
;
|
|
; \0 NUL integer 0 \x00
|
|
; \a BEL alert \x07
|
|
; \b BS backspace \x08
|
|
; \f FF form feed \x0C
|
|
; \n NL (LF) newline \x0D\x0A
|
|
; \r CR carriage return \x0D
|
|
; \t HT horizontal tab \x09
|
|
; \v VT vertical tab \x0B
|
|
; \xhh hh hex number \xhh
|
|
;
|
|
; If a string parameter is too long to fit into one line it can be continued
|
|
; on the next line by escaping the end of line with a backslash, e.g.
|
|
; Parameter = "A very long string " \
|
|
; "which takes several " \ some comment
|
|
; "lines.\n"
|
|
; Note that the backslash terminates the line, so everything after the '\'
|
|
; character is discarded (this may be used for additional comments).
|
|
|
|
[HPPJETXL300C]
|
|
|
|
@HPGL2
|
|
Long = "HP PaintJet XL300 (150 dpi, 16.8M colors)"
|
|
; The HP PaintJet XL300 can print up to 16.8M colors. However, these are
|
|
; always created by mixing the basic colors cyan, magenta, and yellow.
|
|
; Thus non-basic colors (especially light tones) will appear rastered when
|
|
; closely viewed.
|
|
;
|
|
; The default INIT string of the HPGL2 driver sets the printer up for
|
|
;
|
|
; 'NP14' 14 pens
|
|
; 'CR0,15,0,15,0,15' a color range from 0 to 15 for each bacic color,
|
|
; which results in a maximum of 4096 different colors
|
|
; 'MC1' transparent printing (overlapping colors mix!)
|
|
; 'PC 1,15, 0,15' pen 1: magenta
|
|
; 'PC 2, 0,15,15' pen 2: cyan
|
|
; 'PC 3, 0, 0,15' pen 3: blue
|
|
; 'PC 4,15,15, 0' pen 4: yellow
|
|
; 'PC 5,15, 0, 0' pen 5: red
|
|
; 'PC 6, 0,15, 0' pen 6: green
|
|
; 'PC 7, 0, 0, 0' pen 7: black
|
|
; 'PC 8,15,12,15' pen 8: light magenta
|
|
; 'PC 9,12,15,15' pen 9: light cyan
|
|
; 'PC10,12,12,15' pen 10: light blue
|
|
; 'PC11,15,15,12' pen 11: light yellow
|
|
; 'PC12,15,12, 0' pen 12: light red
|
|
; 'PC13,12,15, 0' pen 13: light green
|
|
; 'PC14,11,11,11' pen 14: grey
|
|
;
|
|
; You can modify the colors by changing the 'PCn,r,g,b' commands, where
|
|
;
|
|
; n = pen number
|
|
; r = red component
|
|
; g = green component
|
|
; b = blue component
|
|
;
|
|
; Note that although the printer has cyan, magenta and yellow as basic
|
|
; colors, the 'PC' commands use RGB (red-green-blue) values, according to
|
|
; the NTSC specification!
|
|
|
|
[DESIGNJET220]
|
|
|
|
@HPGL2
|
|
Long = "HP DesignJet 220, HPGL2-Mode"
|
|
Init = "\x1B%%1BIN;IP0,0,100,100SC0,100,0,100"\
|
|
"WU1MC1NP14CR0,15,0,15,0,15"\
|
|
"PC1,15,0,15PC2,0,15,15PC3,0,0,15PC4,15,15,0"\
|
|
"PC5,15,0,0PC6,0,15,0PC7,0,0,0PC8,15,12,15"\
|
|
"PC9,12,15,15PC10,12,12,15PC11,15,15,12PC12,15,12,0"\
|
|
"PC13,12,15,0PC14,11,11,11"\
|
|
"PA;\n"
|
|
Reset = "PG;\x1B%%0A\f"
|
|
HwColor = "SP%u" ; (Pen-Number) precede this line with ';' for b/w
|
|
|
|
;Use the following as first line of the Init string for A3 sized paper:
|
|
;Init = "\x1B&l27A\x1B%%-1BIN;IP0,0,100,100SC0,100,0,100"\
|
|
|
|
[DESIGNJET650]
|
|
Type = Generic
|
|
Long = "HP DesigJet 650C, HPGL2"
|
|
Init = "\x1B%%-12345X@@PJL ENTER LANGUAGE = HPGL2\n"\
|
|
"\x1B%%-1BBIN;IP0,0,100,100SC0,100,0,100"\
|
|
"WU1MC1NP14CR0,15,0,15,0,15"\
|
|
"PC1,15,0,15PC2,0,15,15PC3,0,0,15PC4,15,15,0"\
|
|
"PC5,15,0,0PC6,0,15,0PC7,0,0,0PC8,15,12,15"\
|
|
"PC9,12,15,15PC10,12,12,15PC11,15,15,12PC12,15,12,0"\
|
|
"PC13,12,15,0PC14,11,11,11"\
|
|
"PA;\n"
|
|
Reset = "PUSP0PG;"
|
|
ResX = 1016
|
|
ResY = 1016
|
|
HwArcX1Y1CxCyA = "PU%d,%dPDAA%d,%d,%d\n" ; (x1, y1, xc, yc, ArcAngle)
|
|
HwColor = "SP%u" ; (Pen-Number)
|
|
HwLine = "PU%d,%dPD%d,%d\n"
|
|
HwPoly1 = "PU%d,%dPM0PA%d,%d" ; first edge
|
|
HwPoly2 = ",%d,%d" ; other points
|
|
HwPoly3 = "PM2FP;\n" ; end of polygon
|
|
HwWidth = "PW%u" ; (Pen-Width)
|
|
MaxHwWidth = 5
|
|
|
|
[HPGL]
|
|
|
|
Type = PenPlotter
|
|
Long = "HP-GL plotter"
|
|
Init = "IN; IP 0,0,100,100; SC 0,100,0,100;\n"
|
|
Reset = "PU; SP 0; PA 0,0;\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 1016
|
|
ResY = 1016
|
|
PenSelect = "SP %u;\n" ;; Pens numbered 1..n
|
|
PenSpeed = "VS %1.0f;\n"
|
|
PenUp = "PU;\n"
|
|
PenDown = "PD;\n"
|
|
Move = "PA %d,%d;\n"
|
|
Draw = "PA %d,%d;\n"
|
|
PenCircleCxCyRxRy = "AA %d,%d,360;\n" ; (assumes CP is left?!)
|
|
PenArcCxCyAd = "AA %d,%d,%1.2f;\n" ; (assumes CP is at start of arc)
|
|
; Cx/y Center X/Y (long)
|
|
; Rx/y Radius X/Y (long)
|
|
; Ad Angle in degrees (double)
|
|
|
|
[HPGLX]
|
|
|
|
@HPGL
|
|
Long = "HP-GL plotter (serial, with Xon/Xoff handshake)"
|
|
Init = "\x1B.I;;17:\x1B.N;19:"\
|
|
"IN; IP 0,0,100,100; SC 0,100,0,100;\n"
|
|
|
|
[SPL10]
|
|
|
|
@HPGL
|
|
Long = "Sekonic SPL 10 plotter"
|
|
|
|
[CX6000]
|
|
|
|
Type = PenPlotter
|
|
Long = "C.Itoh CX6000 plotter"
|
|
Init = ""
|
|
Reset = "M0,0\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "C%u\n" ;; Pens numbered 0..n-1
|
|
Move = "M%d,%d\n"
|
|
Draw = "D%d,%d\n"
|
|
|
|
[DXY800]
|
|
|
|
Type = PenPlotter
|
|
Long = "Roland DXY-800 plotter"
|
|
Init = ""
|
|
Reset = "J0\nH\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "J %u\n"
|
|
Move = "M %d,%d\n"
|
|
Draw = "D %d,%d\n"
|
|
PenCircleRxRx = "E %d,180,360\nE %d,0,180\n"
|
|
|
|
[DPX2200]
|
|
|
|
@HPGL
|
|
Long = "Roland DPX-2200 plotter"
|
|
|
|
[ADCOMP]
|
|
|
|
Type = PenPlotter
|
|
Long = "ADCOMP X 100 plotter"
|
|
Init = ""
|
|
Reset = "M0,0\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "C%u\n" ;; Pens numbered 1..n
|
|
Move = "M%d,%d\n"
|
|
Draw = "D%d,%d\n"
|
|
PenCircleCxCyRxCxCyRx = "W%d,%d,%d,180,360,1\nW%d,%d,%d,0,180,1\n"
|
|
|
|
[WX4671]
|
|
|
|
Type = PenPlotter
|
|
Long = "Watanabe WX4671 plotter"
|
|
Init = ""
|
|
Reset = "M0,0\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
Move = "M%d,%d\n"
|
|
Draw = "D%d,%d\n"
|
|
|
|
[HPX84]
|
|
|
|
Type = PenPlotter
|
|
Long = "HPX-84 plotter"
|
|
Init = "SH\n"
|
|
Reset = "SH\nAP 0 0\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenUp = "SH\n"
|
|
PenDown = "SS\n"
|
|
Move = "AP %d %d\n"
|
|
Draw = "AP %d %d\n"
|
|
PenCircleCxCyRxRy = "SH\nAK %d %d %d\n"
|
|
|
|
[YEWPL]
|
|
|
|
Type = PenPlotter
|
|
Long = "Yokogawa PL 1000 plotter"
|
|
Init = "IP 0;IW 0,0,380,250; IP 1;\n"
|
|
Reset = "MA 0,0\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "PS %u\n"
|
|
PenSpeed = "PV %1.0f\n"
|
|
Move = "MA %d,%d\n"
|
|
Draw = "DA %d,%d\n"
|
|
PenCircleRxCxCy = "AC %d,%d,%d,1800,5400\n"
|
|
|
|
[ADCOMP300]
|
|
|
|
Type = PenPlotter
|
|
Long = "ADCOMP X 300 plotter"
|
|
Init = "H\n"
|
|
Reset = "J0\nH\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "J%u\n"
|
|
PenSpeed = "T%1.0f\n" ;;max(min(sround(PenVelocity / 2), 10), 1)
|
|
Move = "M%d,%d\n"
|
|
Draw = "D%d,%d\n"
|
|
PenCircleCxCyRxRy = "W%d,%d,%d,%d,1800,5400\n"
|
|
|
|
[MP1000]
|
|
|
|
Type = PenPlotter
|
|
Long = "Watanabe MP1000 plotter"
|
|
Init = ""
|
|
Reset = "J0\nH\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "J%u\n"
|
|
PenSpeed = "T%1.0f\n"
|
|
Move = "M%d,%d\n"
|
|
Draw = "D%d,%d\n"
|
|
|
|
[EPSONHI80]
|
|
|
|
@MP1000
|
|
Long = "EPSON HI-80 plotter (Plot-Mode 1)"
|
|
|
|
[SWEET]
|
|
|
|
Type = PenPlotter
|
|
Long = "SWEET-P 100 plotter"
|
|
Init = "RE;\n"
|
|
Reset = "HO;\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSpeed = "VS %1.0f;\n" ;;max(15, sround((PenVelocity * 15) / 75))
|
|
Move = "MA %d,%d;\n"
|
|
Draw = "DA %d,%d;\n"
|
|
|
|
[TEWIP281]
|
|
|
|
Type = PenPlotter
|
|
Long = "tewidata P 281 plotter"
|
|
Init = "H\n"
|
|
Reset = "HF0\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "F%u\n"
|
|
PenUp = "H"
|
|
PenDown = "I"
|
|
Move = "%d/%dK\n"
|
|
Draw = "%d/%dK\n"
|
|
PenCircleRxn = "O%d,180,540\n" ; Rxn = Radius X (long, negative)
|
|
|
|
[SE281]
|
|
|
|
@TEWIP281
|
|
Long = "Goerz Servogor SE 281 plotter"
|
|
|
|
[RY10MZ]
|
|
|
|
Type = PenPlotter
|
|
Long = "Rikadenki RY-10 MZ plotter"
|
|
Init = ""
|
|
Reset = "H\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "K%u\n"
|
|
PenSpeed = "T%1.0f\n"
|
|
Move = "M%d,%d\n"
|
|
Draw = "D%d,%d\n"
|
|
PenCircleCxCyRxRy = "W%d,%d C%d,180,360\n"
|
|
|
|
[HIDMP]
|
|
|
|
Type = PenPlotter
|
|
Long = "Houston Instrument DMP plotter"
|
|
Init = ";:H A EC1 \n"
|
|
Reset = "P0 @\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 1000
|
|
ResY = 1000
|
|
PenSelect = "P%u\n"
|
|
PenSpeed = "V%1.0f\n"
|
|
Move = "U %d,%d\n"
|
|
Draw = "D %d,%d\n"
|
|
PenCircleCxCyRxRy = "CA %d,%d 360\n"
|
|
|
|
[EPS]
|
|
|
|
Type = Generic
|
|
Long = "Encapsulated PostScript"
|
|
ResX = 254000 ; this gives us editor coordinates!
|
|
ResY = 254000
|
|
Width = 100.00 ; virtually infinite
|
|
Height = 100.00
|
|
ArcCxCyRWSaEaC = "%d %d %d %d %1.2f %1.2f %d a\n" ; (CenterX, CenterY, Radius, Width, StartAngle, EndAngle, LineCap)
|
|
Bar = "%d %d %d %d %.1f b\n" ; (x1, y1, x2, y2, Angle)
|
|
Circle = "%d %d %d %d c\n" ; (x, y, Radius, Width)
|
|
Line = "%d %d %d %d %d l\n" ; (x1, y1, x2, y2, Width)
|
|
Octagon = "%d %d %d %d %.1f o\n" ; (x, y, dx, dy, Angle)
|
|
Pie = "%d %d %d p\n" ; (x, y, d)
|
|
Hole = "%d %d %d h\n" ; (x, y, d)
|
|
|
|
Header1 = "%%!PS-Adobe-3.0 EPSF-3.0\n" \
|
|
"%%%%Title: EAGLE Drawing %s\n" \
|
|
"%%%%Creator: EAGLE\n" \
|
|
"%%%%Pages: %d\n" \
|
|
"%%%%BoundingBox: 0 0 %d %d\n" \
|
|
"%%%%EndComments\n" \
|
|
"\n"\
|
|
"%% Coordinate transfer:\n"\
|
|
"\n"\
|
|
"/EU { 254 div 0.072 mul } def\n"\
|
|
"/inch { 72 mul } def\n"\
|
|
"\n"\
|
|
"%% Linestyle:\n"\
|
|
"\n"\
|
|
"1 setlinecap\n"\
|
|
"1 setlinejoin\n"\
|
|
"\n"\
|
|
"%% Drawing functions:\n"\
|
|
"\n"\
|
|
"/l { %% draw a line\n"\
|
|
" /lw exch def\n"\
|
|
" /y2 exch def\n"\
|
|
" /x2 exch def\n"\
|
|
" /y1 exch def\n"\
|
|
" /x1 exch def\n"\
|
|
" newpath\n"\
|
|
" x1 EU y1 EU moveto\n"\
|
|
" x2 EU y2 EU lineto\n"\
|
|
" lw EU setlinewidth\n"\
|
|
" stroke\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/h { %% draw a hole\n"\
|
|
" /d exch def\n"\
|
|
" /y exch def\n"\
|
|
" /x exch def\n"\
|
|
" d 0 gt {\n"\
|
|
" newpath\n"\
|
|
" x EU y EU d 2 div EU 0 360 arc\n"\
|
|
" currentgray dup\n"\
|
|
" 1 exch sub setgray\n"\
|
|
" fill\n"\
|
|
" setgray\n"\
|
|
" } if\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/b { %% draw a bar\n"\
|
|
" /an exch def\n"\
|
|
" /y2 exch def\n"\
|
|
" /x2 exch def\n"\
|
|
" /y1 exch def\n"\
|
|
" /x1 exch def\n"\
|
|
" /w2 x2 x1 sub 2 div EU def\n"\
|
|
" /h2 y2 y1 sub 2 div EU def\n"\
|
|
" gsave\n"\
|
|
" x1 x2 add 2 div EU y1 y2 add 2 div EU translate\n"\
|
|
" an rotate\n"\
|
|
" newpath\n"\
|
|
" w2 h2 moveto\n"\
|
|
" w2 neg h2 lineto\n"\
|
|
" w2 neg h2 neg lineto\n"\
|
|
" w2 h2 neg lineto\n"\
|
|
" closepath\n"\
|
|
" fill\n"\
|
|
" grestore\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/c { %% draw a circle\n"\
|
|
" /lw exch def\n"\
|
|
" /rd exch def\n"\
|
|
" /y exch def\n"\
|
|
" /x exch def\n"\
|
|
" newpath\n"\
|
|
" lw EU setlinewidth\n"\
|
|
" x EU y EU rd EU 0 360 arc\n"\
|
|
" stroke\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/a { %% draw an arc\n"\
|
|
" /lc exch def\n"\
|
|
" /ae exch def\n"\
|
|
" /as exch def\n"\
|
|
" /lw exch def\n"\
|
|
" /rd exch def\n"\
|
|
" /y exch def\n"\
|
|
" /x exch def\n"\
|
|
" lw rd 2 mul gt {\n"\
|
|
" /rd rd lw 2 div add 2 div def\n"\
|
|
" /lw rd 2 mul def\n"\
|
|
" } if\n"\
|
|
" currentlinecap currentlinejoin\n"\
|
|
" lc setlinecap 0 setlinejoin\n"\
|
|
" newpath\n"\
|
|
" lw EU setlinewidth\n"\
|
|
" x EU y EU rd EU as ae arc\n"\
|
|
" stroke\n"\
|
|
" setlinejoin setlinecap\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/p { %% draw a pie\n"\
|
|
" /d exch def\n"\
|
|
" /y exch def\n"\
|
|
" /x exch def\n"\
|
|
" newpath\n"\
|
|
" x EU y EU d 2 div EU 0 360 arc\n"\
|
|
" fill\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/edge { 0.20710678119 mul } def\n"\
|
|
"\n"\
|
|
"/o { %% draw an octagon\n"\
|
|
" /an exch def\n"\
|
|
" /dy exch def\n"\
|
|
" /dx exch def\n"\
|
|
" /y exch def\n"\
|
|
" /x exch def\n"\
|
|
" gsave\n"\
|
|
" x EU y EU translate\n"\
|
|
" an dx dy lt { 90 add /dx dy /dy dx def def } if rotate\n"\
|
|
" newpath\n"\
|
|
" 0 dx 2 div sub EU 0 dy edge add EU moveto\n"\
|
|
" 0 dx dy sub 2 div sub dy edge sub EU 0 dy 2 div add EU lineto\n"\
|
|
" 0 dx dy sub 2 div add dy edge add EU 0 dy 2 div add EU lineto\n"\
|
|
" 0 dx 2 div add EU 0 dy edge add EU lineto\n"\
|
|
" 0 dx 2 div add EU 0 dy edge sub EU lineto\n"\
|
|
" 0 dx dy sub 2 div add dy edge add EU 0 dy 2 div sub EU lineto\n"\
|
|
" 0 dx dy sub 2 div sub dy edge sub EU 0 dy 2 div sub EU lineto\n"\
|
|
" 0 dx 2 div sub EU 0 dy edge sub EU lineto\n"\
|
|
" closepath\n"\
|
|
" fill\n"\
|
|
" grestore\n"\
|
|
" } def\n"\
|
|
"\n"
|
|
;(Name, NrPages, (x2 - x1) * 0.072 * ScaleFactor, (y2 - y1) * 0.072 * ScaleFactor)
|
|
|
|
[PS]
|
|
|
|
@EPS
|
|
Long = "PostScript (printable)"
|
|
Width = 7.75
|
|
Height = 11.00
|
|
|
|
Header2 = "%% the real drawing size:\n"\
|
|
"\n"\
|
|
"/MinDrawX %6d EU def\n"\
|
|
"/MinDrawY %6d EU def\n"\
|
|
"/MaxDrawX %6d EU def\n"\
|
|
"/MaxDrawY %6d EU def\n"\
|
|
"\n"\
|
|
"%% the usable page size:\n"\
|
|
"\n"\
|
|
"/LeftMargin 0.25 inch def %% change these if drawing gets clipped!\n"\
|
|
"/BotMargin 0.25 inch def\n"\
|
|
"/PageWidth %7.4f inch def\n"\
|
|
"/PageHeight %7.4f inch def\n"\
|
|
"\n"\
|
|
"%% are we going to rotate?:\n"\
|
|
"\n"\
|
|
"/RotateDrawing %d 0 ne def\n"\
|
|
"\n"
|
|
;(x1, y1, x2, y2, Width, Height, DoRotate)
|
|
|
|
Header3 = "%% Media size functions:\n"\
|
|
"\n"\
|
|
"/AbortMessage { %% Show a message in a box and stop printing\n"\
|
|
" /h 100 def\n"\
|
|
" /Courier findfont 12 scalefont setfont\n"\
|
|
" mediawidth pagemargin sub h 1 setpage\n"\
|
|
" newpath\n"\
|
|
" 0 0 moveto\n"\
|
|
" 0 h rlineto\n"\
|
|
" mediawidth pagemargin sub 0 rlineto\n"\
|
|
" 0 h neg rlineto\n"\
|
|
" closepath\n"\
|
|
" 5 setlinewidth\n"\
|
|
" stroke\n"\
|
|
" newpath 50 60 moveto (ERROR: Jobsize exceeds physical printing area!) show\n"\
|
|
" newpath 50 40 moveto ( Job has been aborted!) show\n"\
|
|
" showpage\n"\
|
|
" stop\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/SelectPage { %% Select the page identified by Row and Column\n"\
|
|
" /Column exch def\n"\
|
|
" /Row exch def\n"\
|
|
"\n"\
|
|
" %% the actually exposed area (if the machine knows these parameters!):\n"\
|
|
"\n"\
|
|
" /DrawX MaxDrawX MinDrawX sub def\n"\
|
|
" /DrawY MaxDrawY MinDrawY sub def\n"\
|
|
" statusdict /setpage known\n"\
|
|
" statusdict /mediawidth known and\n"\
|
|
" statusdict /medialength known and\n"\
|
|
" statusdict /pagemargin known and {\n"\
|
|
" %% this is for machines that can tell the media size:\n"\
|
|
" statusdict begin\n"\
|
|
" /MediaW mediawidth pagemargin sub def\n"\
|
|
" DrawX DrawY ge {\n"\
|
|
" DrawX MediaW le DrawY medialength le and {\n"\
|
|
" MediaW DrawY 1 setpage\n"\
|
|
" MediaW DrawX sub 2 div 0 translate\n"\
|
|
" }{\n"\
|
|
" DrawY MediaW le DrawX medialength le and {\n"\
|
|
" MediaW DrawX 0 setpage\n"\
|
|
" 0 MediaW DrawY sub 2 div translate\n"\
|
|
" }{\n"\
|
|
" AbortMessage\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" }{\n"\
|
|
" DrawY MediaW le DrawX medialength le and {\n"\
|
|
" MediaW DrawX 0 setpage\n"\
|
|
" 0 MediaW DrawY sub 2 div translate\n"\
|
|
" }{\n"\
|
|
" DrawX MediaW le DrawY medialength le and {\n"\
|
|
" MediaW DrawY 1 setpage\n"\
|
|
" MediaW DrawX sub 2 div 0 translate\n"\
|
|
" }{\n"\
|
|
" AbortMessage\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" end\n"\
|
|
" }{\n"\
|
|
" %% this is for machines that can NOT tell the media size:\n"\
|
|
" %% (Ghostscript doesn't like this!)\n"\
|
|
" /Product product length string def\n"\
|
|
" /i 0 def\n"\
|
|
" product { dup 97 lt { 32 add } if Product exch i exch put /i i 1 add def } forall \n"\
|
|
" Product (ghostscript) search dup /IsGhostscript exch def\n"\
|
|
" { pop pop } if\n"\
|
|
" pop\n"\
|
|
" IsGhostscript not {\n"\
|
|
" statusdict /setpage known {\n"\
|
|
" statusdict begin\n"\
|
|
" RotateDrawing {\n"\
|
|
" LeftMargin PageHeight add BotMargin DrawY add\n"\
|
|
" }{\n"\
|
|
" BotMargin DrawY add LeftMargin DrawX add \n"\
|
|
" } ifelse\n"\
|
|
" 0 setpage\n"\
|
|
" end\n"\
|
|
" } if\n"\
|
|
" } if\n"\
|
|
" %% set clipping boundary:\n"\
|
|
" newpath\n"\
|
|
" LeftMargin BotMargin moveto\n"\
|
|
" 0 PageHeight rlineto\n"\
|
|
" PageWidth 0 rlineto\n"\
|
|
" 0 PageHeight neg rlineto\n"\
|
|
" closepath\n"\
|
|
" clip\n"\
|
|
" %% set the origin:\n"\
|
|
" LeftMargin BotMargin translate\n"\
|
|
" RotateDrawing {\n"\
|
|
" 0 PageHeight translate\n"\
|
|
" -90 rotate\n"\
|
|
" PageHeight Column mul neg PageWidth Row mul neg translate\n"\
|
|
" }{\n"\
|
|
" PageWidth Column mul neg PageHeight Row mul neg translate\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" %% move the lower left corner of the drawing to the origin:\n"\
|
|
" MinDrawX neg MinDrawY neg translate\n"\
|
|
" \n"\
|
|
" %% Linestyle:\n"\
|
|
" \n"\
|
|
" 1 setlinecap\n"\
|
|
" 1 setlinejoin\n"\
|
|
" \n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"%% TheDrawing\n"
|
|
|
|
StartPage= "\ngsave %d %d SelectPage\n" ;(Row, Column)
|
|
EndPage = "showpage grestore\n"
|
|
|
|
[PS_INVERTED]
|
|
|
|
@PS
|
|
Long = "PostScript (printable, inverted)"
|
|
|
|
Header3 = "%% Media size functions:\n"\
|
|
"\n"\
|
|
"/AbortMessage { %% Show a message in a box and stop printing\n"\
|
|
" /h 100 def\n"\
|
|
" /Courier findfont 12 scalefont setfont\n"\
|
|
" mediawidth pagemargin sub h 1 setpage\n"\
|
|
" newpath\n"\
|
|
" 0 0 moveto\n"\
|
|
" 0 h rlineto\n"\
|
|
" mediawidth pagemargin sub 0 rlineto\n"\
|
|
" 0 h neg rlineto\n"\
|
|
" closepath\n"\
|
|
" 5 setlinewidth\n"\
|
|
" stroke\n"\
|
|
" newpath 50 60 moveto (ERROR: Jobsize exceeds physical printing area!) show\n"\
|
|
" newpath 50 40 moveto ( Job has been aborted!) show\n"\
|
|
" showpage\n"\
|
|
" stop\n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"/SelectPage { %% Select the page identified by Row and Column\n"\
|
|
" /Column exch def\n"\
|
|
" /Row exch def\n"\
|
|
"\n"\
|
|
" %% the actually exposed area (if the machine knows these parameters!):\n"\
|
|
"\n"\
|
|
" /DrawX MaxDrawX MinDrawX sub def\n"\
|
|
" /DrawY MaxDrawY MinDrawY sub def\n"\
|
|
" statusdict /setpage known\n"\
|
|
" statusdict /mediawidth known and\n"\
|
|
" statusdict /medialength known and\n"\
|
|
" statusdict /pagemargin known and {\n"\
|
|
" %% this is for machines that can tell the media size:\n"\
|
|
" statusdict begin\n"\
|
|
" /MediaW mediawidth pagemargin sub def\n"\
|
|
" DrawX DrawY ge {\n"\
|
|
" DrawX MediaW le DrawY medialength le and {\n"\
|
|
" MediaW DrawY 1 setpage\n"\
|
|
" MediaW DrawX sub 2 div 0 translate\n"\
|
|
" }{\n"\
|
|
" DrawY MediaW le DrawX medialength le and {\n"\
|
|
" MediaW DrawX 0 setpage\n"\
|
|
" 0 MediaW DrawY sub 2 div translate\n"\
|
|
" }{\n"\
|
|
" AbortMessage\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" }{\n"\
|
|
" DrawY MediaW le DrawX medialength le and {\n"\
|
|
" MediaW DrawX 0 setpage\n"\
|
|
" 0 MediaW DrawY sub 2 div translate\n"\
|
|
" }{\n"\
|
|
" DrawX MediaW le DrawY medialength le and {\n"\
|
|
" MediaW DrawY 1 setpage\n"\
|
|
" MediaW DrawX sub 2 div 0 translate\n"\
|
|
" }{\n"\
|
|
" AbortMessage\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" end\n"\
|
|
" }{\n"\
|
|
" %% this is for machines that can NOT tell the media size:\n"\
|
|
" %% (Ghostscript doesn't like this!)\n"\
|
|
" /Product product length string def\n"\
|
|
" /i 0 def\n"\
|
|
" product { dup 97 lt { 32 add } if Product exch i exch put /i i 1 add def } forall \n"\
|
|
" Product (ghostscript) search dup /IsGhostscript exch def\n"\
|
|
" { pop pop } if\n"\
|
|
" pop\n"\
|
|
" IsGhostscript not {\n"\
|
|
" statusdict /setpage known {\n"\
|
|
" statusdict begin\n"\
|
|
" RotateDrawing {\n"\
|
|
" LeftMargin PageHeight add BotMargin DrawY add\n"\
|
|
" }{\n"\
|
|
" BotMargin DrawY add LeftMargin DrawX add \n"\
|
|
" } ifelse\n"\
|
|
" 0 setpage\n"\
|
|
" end\n"\
|
|
" } if\n"\
|
|
" } if\n"\
|
|
" %% set clipping boundary:\n"\
|
|
" newpath\n"\
|
|
" LeftMargin BotMargin moveto\n"\
|
|
" 0 PageHeight rlineto\n"\
|
|
" PageWidth 0 rlineto\n"\
|
|
" 0 PageHeight neg rlineto\n"\
|
|
" closepath\n"\
|
|
" clip\n"\
|
|
" %% set the origin:\n"\
|
|
" LeftMargin BotMargin translate\n"\
|
|
" RotateDrawing {\n"\
|
|
" 0 PageHeight translate\n"\
|
|
" -90 rotate\n"\
|
|
" PageHeight Column mul neg PageWidth Row mul neg translate\n"\
|
|
" }{\n"\
|
|
" PageWidth Column mul neg PageHeight Row mul neg translate\n"\
|
|
" } ifelse\n"\
|
|
" } ifelse\n"\
|
|
" %% move the lower left corner of the drawing to the origin:\n"\
|
|
" MinDrawX neg MinDrawY neg translate\n"\
|
|
" \n"\
|
|
" %% Linestyle:\n"\
|
|
" \n"\
|
|
" 1 setlinecap\n"\
|
|
" 1 setlinejoin\n"\
|
|
" \n"\
|
|
" %% invert drawing:\n"\
|
|
" newpath\n"\
|
|
" MinDrawX MinDrawY moveto\n"\
|
|
" MaxDrawX MinDrawY lineto\n"\
|
|
" MaxDrawX MaxDrawY lineto\n"\
|
|
" MinDrawX MaxDrawY lineto\n"\
|
|
" 0 setgray\n"\
|
|
" closepath fill\n"\
|
|
" 1 setgray\n"\
|
|
" \n"\
|
|
" } def\n"\
|
|
"\n"\
|
|
"%% TheDrawing\n"
|
|
|
|
[PS_DINA3]
|
|
|
|
@PS
|
|
Long = "Postscript (printable) DIN A3"
|
|
Width = 11.36
|
|
Height = 16.00
|
|
|
|
[HPGL2]
|
|
|
|
Type = Generic
|
|
Long = "HP-GL/2 printer"
|
|
Init = "\x1B%%1BIN;IP0,0,100,100SC0,100,0,100"\
|
|
"WU1MC1NP14CR0,15,0,15,0,15"\
|
|
"PC1,15,0,15PC2,0,15,15PC3,0,0,15PC4,15,15,0"\
|
|
"PC5,15,0,0PC6,0,15,0PC7,0,0,0PC8,15,12,15"\
|
|
"PC9,12,15,15PC10,12,12,15PC11,15,15,12PC12,15,12,0"\
|
|
"PC13,12,15,0PC14,11,11,11"\
|
|
"PA;\n"
|
|
|
|
;Use the following as first line of the Init string for A3 sized paper:
|
|
;Init = "\x1B&l27A\x1B%%-1BIN;IP0,0,100,100SC0,100,0,100"\
|
|
|
|
Reset = "\x1B%%0A\f"
|
|
ResX = 1016
|
|
ResY = 1016
|
|
HwArcX1Y1CxCyA = "PU%d,%dPDAA%d,%d,%d\n" ; (x1, y1, xc, yc, ArcAngle)
|
|
HwColor = "SP%u" ; (Pen-Number)
|
|
HwLine = "PU%d,%dPD%d,%d\n"
|
|
HwPoly1 = "PU%d,%dPM0PA%d,%d" ; first edge
|
|
HwPoly2 = ",%d,%d" ; other points
|
|
HwPoly3 = "PM2FP;\n" ; end of polygon
|
|
HwWidth = "PW%u" ; (Pen-Width)
|
|
MaxHwWidth = 5
|
|
|
|
[GERBER]
|
|
|
|
Type = PhotoPlotter
|
|
Long = "Gerber photoplotter"
|
|
Init = "G01*\nX000000Y000000D02*\n"
|
|
Reset = "X000000Y000000D02*\nM02*\n"
|
|
ResX = 10000
|
|
ResY = 10000
|
|
;Wheel = ""
|
|
Move = "X%0.6dY%0.6dD02*\n" ; (x, y)
|
|
Draw = "X%0.6dY%0.6dD01*\n" ; (x, y)
|
|
Flash = "X%0.6dY%0.6dD03*\n" ; (x, y)
|
|
Aperture = "%s*\n" ; (Aperture code)
|
|
Units = Inch
|
|
Info = "Plotfile Info:\n"\
|
|
"\n"\
|
|
" Coordinate Format : 2.4\n"\
|
|
" Coordinate Units : Inch\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Zero Suppression : None\n"\
|
|
" End Of Block : *\n"\
|
|
"\n"
|
|
|
|
[GERBERAUTO]
|
|
|
|
@GERBER
|
|
Long = "Gerber photoplotter with automatic aperture wheel generation"
|
|
Wheel = "" ; avoids message!
|
|
AutoAperture = "D%d" ; (Aperture number)
|
|
FirstAperture = 10
|
|
Units = Inch
|
|
;MaxApertureSize = 0.2 ; Inch
|
|
|
|
[GERBER_RS274X]
|
|
|
|
@GERBERAUTO
|
|
Long = "Gerber RS-274-X photoplotter, coordinate format 2.4 inch"
|
|
Units = Inch
|
|
Init = "G75*\n" \ allow positive and negative coordinates
|
|
"G70*\n" \ units are Inch (G71 for metric)
|
|
"%%OFA0B0*%%\n" \ horizonal and vertical OFfset is 0
|
|
"%%FSLAX24Y24*%%\n"\ Format Statement is Absolute (I for incremental) 2.4
|
|
"%%IPPOS*%%\n" \ Image Polarity is POSitive (NEG for negative)
|
|
"%%LPD*%%\n" \ Layer Polarity Dark (C for clear on negative planes)
|
|
"%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
|
|
"%%\n" ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
|
|
Reset = "M02*\n"
|
|
Circle = "%%AD%sC,%6.4f*%%\n" ; (code, diameter)
|
|
Rectangle = "%%AD%sR,%6.4fX%6.4f*%%\n" ; (code, dx, dy)
|
|
Oval = "%%AD%sO,%6.4fX%6.4f*%%\n" ; (code, dx, dy)
|
|
; According to the RS-274-X specs there is an aperture macro
|
|
; primitive that allows us to specify an octagon (i.e. a polygon with
|
|
; 8 vertices). As some Gerber viewers seem to have problems with that,
|
|
; we would have to use a round shape for that.
|
|
; If your Gerber processor cannot handle the polygon primitive you may
|
|
; uncomment the following line and comment out the line after it:
|
|
;Octagon = "%%AD%sC,%6.4f*%%\n" ; (code, diameter) (looks like there is no octagon, so we take a circle)
|
|
Octagon = "%%AD%sOC8,%6.4f*%%\n" ; (code, diameter)
|
|
Annulus = "%%AMAN%s*\n1,1,%6.4f,0,0*\n1,0,%6.4f,0,0*\n"\
|
|
"%%\n"\
|
|
"%%AD%sAN%s*%%\n" ; (code, diameter, inner diameter, code, code)
|
|
Thermal = "%%AMTH%sX*\n1,1,%6.4f,0,0*\n1,0,%6.4f,0,0*\n"\
|
|
"21,0,%6.4f,%6.4f,0,0,45*\n21,0,%6.4f,%6.4f,0,0,135*\n"\
|
|
"%%\n"\
|
|
"%%AD%sTH%sX*%%\n"; (code, diameter, inner diameter, diameter + 2mil, gap, diameter + 2mil, gap, code, code)
|
|
AreaBegin = "G36*\n"
|
|
AreaEnd = "G37*\n"
|
|
|
|
[GERBER_RS274X_25]
|
|
|
|
@GERBERAUTO
|
|
Long = "Gerber RS-274-X photoplotter, coordinate format 2.5 inch"
|
|
Units = Inch
|
|
Info = "Plotfile Info:\n"\
|
|
"\n"\
|
|
" Coordinate Format : 2.5\n"\
|
|
" Coordinate Units : Inch\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Zero Suppression : None\n"\
|
|
" End Of Block : *\n"\
|
|
"\n"
|
|
Init = "G75*\n" \ allow positive and negative coordinates
|
|
"G70*\n" \ units are Inch (G71 for metric)
|
|
"%%OFA0B0*%%\n" \ horizonal and vertical OFfset is 0
|
|
"%%FSLAX25Y25*%%\n"\ Format Statement is Absolute (I for incremental) 2.5
|
|
"%%IPPOS*%%\n" \ Image Polarity is POSitive (NEG for negative)
|
|
"%%LPD*%%\n" \ Layer Polarity Dark (C for clear on negative planes)
|
|
"%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
|
|
"%%\n" ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
|
|
Reset = "M02*\n"
|
|
ResX = 100000
|
|
ResY = 100000
|
|
Move = "X%0.7dY%0.7dD02*\n" ; (x, y)
|
|
Draw = "X%0.7dY%0.7dD01*\n" ; (x, y)
|
|
Flash = "X%0.7dY%0.7dD03*\n" ; (x, y)
|
|
Circle = "%%AD%sC,%7.5f*%%\n" ; (code, diameter)
|
|
Rectangle = "%%AD%sR,%7.5fX%7.5f*%%\n" ; (code, dx, dy)
|
|
Oval = "%%AD%sO,%7.5fX%7.5f*%%\n" ; (code, dx, dy)
|
|
; According to the RS-274-X specs there is an aperture macro
|
|
; primitive that allows us to specify an octagon (i.e. a polygon with
|
|
; 8 vertices). As some Gerber viewers seem to have problems with that,
|
|
; we would have to use a round shape for that.
|
|
; If your Gerber processor cannot handle the polygon primitive you may
|
|
; uncomment the following line and comment out the line after it:
|
|
;Octagon = "%%AD%sC,%7.5f*%%\n" ; (code, diameter) (looks like there is no octagon, so we take a circle)
|
|
Octagon = "%%AD%sOC8,%7.5f*%%\n" ; (code, diameter)
|
|
Annulus = "%%AMAN%s*\n1,1,%7.5f,0,0*\n1,0,%7.5f,0,0*\n"\
|
|
"%%\n"\
|
|
"%%AD%sAN%s*%%\n" ; (code, diameter, inner diameter, code, code)
|
|
Thermal = "%%AMTH%sX*\n1,1,%7.5f,0,0*\n1,0,%7.5f,0,0*\n"\
|
|
"21,0,%7.5f,%7.5f,0,0,45*\n21,0,%7.5f,%7.5f,0,0,135*\n"\
|
|
"%%\n"\
|
|
"%%AD%sTH%sX*%%\n"; (code, diameter, inner diameter, diameter + 2mil, gap, diameter + 2mil, gap, code, code)
|
|
AreaBegin = "G36*\n"
|
|
AreaEnd = "G37*\n"
|
|
|
|
[GERBER_23]
|
|
|
|
Type = PhotoPlotter
|
|
Long = "Gerber photoplotter, coordinate format 2.3 inch"
|
|
Init = "G01*\nX00000Y00000D02*\n"
|
|
Reset = "X00000Y00000D02*\nM02*\n"
|
|
ResX = 1000
|
|
ResY = 1000
|
|
;Wheel = ""
|
|
Move = "X%0.5dY%0.5dD02*\n" ; (x, y)
|
|
Draw = "X%0.5dY%0.5dD01*\n" ; (x, y)
|
|
Flash = "X%0.5dY%0.5dD03*\n" ; (x, y)
|
|
Aperture = "%s*\n" ; (Aperture code)
|
|
Units = Inch
|
|
Info = "Plotfile Info:\n"\
|
|
"\n"\
|
|
" Coordinate Format : 2.3\n"\
|
|
" Coordinate Units : Inch\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Zero Suppression : None\n"\
|
|
" End Of Block : *\n"\
|
|
"\n"
|
|
|
|
[GERBERAUTO_23]
|
|
|
|
@GERBER_23
|
|
Long = "Gerber photoplotter with automatic aperture wheel generation"
|
|
Wheel = "" ; avoids message!
|
|
AutoAperture = "D%d" ; (Aperture number)
|
|
FirstAperture = 10
|
|
Units = Inch
|
|
|
|
[EMMA]
|
|
|
|
Type = PhotoPlotter
|
|
Long = "EMMA 30/80 photoplotter"
|
|
Init = "%%\nS7X000000Y000000\n"
|
|
Reset = "S7X000000Y000000\n$\n"
|
|
ResX = 20000
|
|
ResY = 20000
|
|
;Wheel = ""
|
|
Move = "S7X%0.6dY%0.6d\n" ; (x, y)
|
|
Draw = "S2X%0.6dY%0.6d\n" ; (x, y)
|
|
Flash = "S1X%0.6dY%0.6d\n" ; (x, y)
|
|
Aperture = "%s\n" ; (Aperture code)
|
|
Info = "Plotfile Info:\n"\
|
|
"\n"\
|
|
" Coordinate Format : 6\n"\
|
|
" Coordinate Units : 1/800 mm\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Zero Suppression : None\n"\
|
|
"\n"
|
|
|
|
[GLASER]
|
|
|
|
Type = PhotoPlotter
|
|
Long = "GLASER DP-1504 photoplotter"
|
|
Init = "IN;FC0.0254;CS1,1,0;SI1,1;\n"
|
|
Reset = "PU;PA0,0;\n"
|
|
ResX = 1000
|
|
ResY = 1000
|
|
Wheel = "glaser.whl"
|
|
Move = "PA%d,%d;\n" ; (x, y)
|
|
Draw = "PA%d,%d;\n" ; (x, y)
|
|
PenDown = "PD;\n"
|
|
PenUp = "PU;\n"
|
|
Flash = "PA%d,%d;%s\n" ; (x, y, Aperture code)
|
|
Aperture = "%s\n" ; (Aperture code)
|
|
Info = "Plotfile Info:\n"\
|
|
"\n"\
|
|
" Coordinate Units : 1/1000 Inch\n"\
|
|
" Data Mode : Absolute\n"\
|
|
"\n"
|
|
|
|
[EXCELLON]
|
|
|
|
Type = DrillStation
|
|
Long = "Excellon drill station"
|
|
Init = "%%\nM48\nM72\n"
|
|
Reset = "M30\n"
|
|
ResX = 10000
|
|
ResY = 10000
|
|
;Rack = ""
|
|
DrillSize = "%sC%0.4f\n" ; (Tool code, tool size)
|
|
AutoDrill = "T%02d" ; (Tool number)
|
|
FirstDrill = 1
|
|
BeginData = "%%\n"
|
|
Units = Inch
|
|
Select = "%s\n" ; (Drill code)
|
|
Drill = "X%1.0fY%1.0f\n" ; (x, y)
|
|
Info = "Drill File Info:\n"\
|
|
"\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Units : 1/10000 Inch\n"\
|
|
"\n"
|
|
|
|
[EXCELLON_RACK]
|
|
|
|
Type = DrillStation
|
|
Long = "Excellon drill station with user supplied rack file"
|
|
Init = "%%\n"
|
|
Reset = "M30\n"
|
|
ResX = 10000
|
|
ResY = 10000
|
|
;Rack = ""
|
|
Select = "%s\n" ; (Drill code)
|
|
Drill = "X%1.0fY%1.0f\n" ; (x, y)
|
|
Info = "Drill File Info:\n"\
|
|
"\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Units : 1/10000 Inch\n"\
|
|
"\n"
|
|
|
|
[SM1000]
|
|
|
|
Type = DrillStation
|
|
Long = "Sieb & Meyer 1000 drill station"
|
|
Init = "%%%%1000\n"
|
|
Reset = "M30\n"
|
|
ResX = 2540
|
|
ResY = 2540
|
|
;Rack = ""
|
|
Drill = "X%1.0fY%1.0f%s\n" ; (x, y, drill code)
|
|
Info = "Drill File Info:\n"\
|
|
"\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Units : 1/100 mm\n"\
|
|
"\n"
|
|
|
|
[SM3000]
|
|
|
|
Type = DrillStation
|
|
Long = "Sieb & Meyer 3000 drill station"
|
|
Init = "%%%%3000\n"
|
|
Reset = "M30\n"
|
|
ResX = 25400
|
|
ResY = 25400
|
|
Divide = 1000 ; makes coordinates MM
|
|
;Rack = ""
|
|
Drill = "X%1.3fY%1.3f%s\n" ; (x, y, drill code)
|
|
Info = "Drill File Info:\n"\
|
|
"\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Units : mm\n"\
|
|
"\n"
|
|
|
|
[SMS68]
|
|
|
|
Type = DrillStation
|
|
Long = "SMS68 drill station"
|
|
Init = ";\n"
|
|
Reset = "TO0;PA0,0;\n"
|
|
ResX = 25400
|
|
ResY = 25400
|
|
;Rack = ""
|
|
Select = "%s;\n" ; (Drill code)
|
|
Drill = "PA%1.0f,%1.0f;PD;PU;\n" ; (x, y)
|
|
Info = "Drill File Info:\n"\
|
|
"\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Units : 1/1000 mm\n"\
|
|
"\n"
|
|
|
|
[GBRDRL]
|
|
|
|
Type = DrillStation
|
|
Long = "Gerber Drill Code"
|
|
Init = "G01*\nX00000Y00000D02*\n"
|
|
Reset = "X00000Y00000D02*\nM02*\n"
|
|
ResX = 1000
|
|
ResY = 1000
|
|
;Rack = ""
|
|
Select = "%s*\n" ; (Drill code)
|
|
Drill = "X%05.0fY%05.0fD03*\n" ; (x, y)
|
|
Info = "Drill File Info:\n"\
|
|
"\n"\
|
|
" Coordinate Format : 2.3\n"\
|
|
" Coordinate Units : Inch\n"\
|
|
" Data Mode : Absolute\n"\
|
|
" Zero Suppression : None\n"\
|
|
" End Of Block : *\n"\
|
|
"\n"
|
|
|
|
[CALCOMP]
|
|
|
|
Type = Calcomp
|
|
Long = "CalComp PCI pen plotter"
|
|
Init = "\x08\x0B" \ Init
|
|
"\x09\x01" ; Scaling 1
|
|
Reset = ""
|
|
ResX = 2032
|
|
ResY = 2032
|
|
PenSelect = "\x04%c" ; Pens numbered 1..n
|
|
Sync = "\x02"
|
|
Bias = 0x20
|
|
Radix = 0x40
|
|
Buffer = 256
|
|
Checksum = YES
|
|
|
|
[CALCOMPE]
|
|
|
|
Type = CalcompE
|
|
Long = "CalComp PCI electrostatic plotter"
|
|
Init = "\x08\x0B" \ Init
|
|
"\x09\x01" ; Scaling 1
|
|
Reset = ""
|
|
ResX = 2032
|
|
ResY = 2032
|
|
Sync = "\x02"
|
|
Bias = 0x20
|
|
Radix = 0x40
|
|
Buffer = 256
|
|
Checksum = YES
|
|
|
|
[CALCOMP_M84]
|
|
|
|
Type = PenPlotter
|
|
Long = "Calcomp M84 Plotter"
|
|
Init = ""
|
|
Reset = "F\nH\nR0\n"
|
|
Width = 16
|
|
Height = 11
|
|
ResX = 254
|
|
ResY = 254
|
|
PenSelect = "F%u\n"
|
|
Move = "C %d,%d HK\n"
|
|
Draw = "C %d,%d IK\n"
|
|
PenCircleCxCyRxCxCyRx = "C %d,%d HK \n O0 %d,0,360\n"
|
|
PenVelocity = "F10,%d\n"
|