e7_eagle.def 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490
  1. ; Device definitions for EAGLE version 7.3.0:
  2. ; Modified 2015/09/15 by KM for UUlm-LPT
  3. ;
  4. ; [NAME] device name (as in command line option "-d" or menu)
  5. ; @NAME inherits data from [NAME] (max. nesting level is 10!)
  6. ; Type basic device type (must immediately follow [NAME]):
  7. ;
  8. ; PenPlotter pen plotter
  9. ; PhotoPlotter photoplotter
  10. ; DrillStation drill station
  11. ; Generic generic device (used for e.g. PostScript)
  12. ; Calcomp Calcomp pen plotter
  13. ; CalcompE CalComp electrostatic plotter
  14. ;
  15. ; Common parameters for all types of devices:
  16. ;
  17. ; Long long name (description) of device
  18. ; Init string to initialize device before printing
  19. ; Reset string to reset device after printing
  20. ; ResX/Y resolution in X/Y direction (dots or steps per inch, default = 1000)
  21. ; CorrectX/Y used to correct hardware tolerances (default = 1.0)
  22. ; OffsetX/Y defines an offset from the machine's origin (default = 0.0)
  23. ; Width page width (inch) (default = 8.0)
  24. ; Height page height (inch) (default = 12.0)
  25. ; Output name of the output file or port
  26. ; Color.NN color number to use for layer NN, e.g.
  27. ; Color.120 = 3 ; will use color '3' for layer '120'
  28. ;
  29. ; Parameters for drawing devices (PenPlotter, PhotoPlotter):
  30. ;
  31. ; Draw draw a line to (x, y)
  32. ; Move move the pen to (x, y)
  33. ; PenDown lower the pen
  34. ; PenUp lift the pen
  35. ; AreaBegin begin of a polygon area definition (edges are drawn with Move/Draw
  36. ; and are considered to have zero width)
  37. ; AreaEnd end of polygon area definition
  38. ;
  39. ; Parameters for pen plotters (PenPlotter):
  40. ;
  41. ; PenArcCxCyAd draw an arc from CP with center (Cx, Cy) and angle Ad
  42. ; PenCircleCxCyRxCxCyRx draw a circle at (Cx, Cy) with radius Rx
  43. ; PenCircleCxCyRxRy draw a circle at (Cx, Cy) with radius Rx and Ry
  44. ; PenCircleRxCxCy draw a circle at (Cx, Cy) with radius Rx
  45. ; PenCircleRxn draw a circle at CP with radius Rx (negtive!)
  46. ; PenCircleRxRx draw a circle ar CP with radius Rx
  47. ; PenSelect select pen
  48. ; PenSpeed string to set pen speed
  49. ; PenDiameter pen diameter (mm)
  50. ; PenVelocity pen velocity (device dependent value)
  51. ;
  52. ; Parameters for drill stations (DrillStation):
  53. ;
  54. ; DrillSize string for drill size definition in output file
  55. ; AutoDrill string for automatic drill generation
  56. ; FirstDrill number of the first drill to use with AutoDrill
  57. ; BeginData string to mark the beginning of the actual drill data
  58. ; Select string to select a tool
  59. ; Divide divides coordinates (default = 1.0)
  60. ; Drill string to drill a hole at (x, y) [with tool]
  61. ; Info string that is copied into the drill info file
  62. ; Rack name of the drill rack file
  63. ;
  64. ; Parameters for photo plotters (PhotoPlotter):
  65. ;
  66. ; AutoAperture string for automatic aperture generation
  67. ; Aperture string to select an aperture
  68. ; Flash string to flash an aperture
  69. ; Info string that is copied into the photo plotter info file
  70. ; Wheel name of the aperture wheel file name
  71. ; FirstAperture number of the first aperture to use with AutoAperture
  72. ; ToleranceDrawM negative draw tolerance
  73. ; ToleranceDrawP positive draw tolerance
  74. ; ToleranceFlashM negative flash tolerance
  75. ; ToleranceFlashP positive flash tolerance
  76. ; EmulateApertures turns aperture emulation on (YES) or off (NO)
  77. ; Circle defines embedded circle aperture
  78. ; Rectangle defines embedded rectangle aperture
  79. ; Octagon defines embedded octagon aperture
  80. ; Oval defines embedded oval aperture
  81. ; MaxApertureSize maximum physical aperture size (inch)
  82. ;
  83. ; Parameters for DrillStation and PhotoPlotter;
  84. ;
  85. ; Units the units used in *.GPI and *.DRI files
  86. ; valid units are Inch, MM and Auto[default] (automatically
  87. ; chooses the unit with the least decimal digits)
  88. ; Decimals the number of decimals to use when Units is set to Inch
  89. ; or MM (default = 4). Values are rounded to this number of
  90. ; decimals.
  91. ;
  92. ; Parameters for generic devices:
  93. ;
  94. ; Header1 header string used for PostScript
  95. ; Header2 header string used for PostScript
  96. ; Header3 header string used for PostScript
  97. ; StartPage string that starts a new page
  98. ; EndPage string that ends a page
  99. ; ArcCxCyRWSaEaC string that draws an arc at (Cx, Cy) with Radius, Width, Start angle, End angle and line Cap
  100. ; Bar string that draws a bar
  101. ; Circle string that draws a circle
  102. ; Line string that draws a line
  103. ; Octagon string that draws an octagon
  104. ; Pie string that draws a pie
  105. ; Hole string that draws a hole
  106. ; HwArcX1Y1CxCyA string that draws an arc with hardware coordinates
  107. ; HwArc string that draws an arc with hardware coordinates
  108. ; HwCircle string that draws a circle with hardware coordinates
  109. ; HwColor string that sets the color
  110. ; HwLine string that draws a line with hardware coordinates
  111. ; HwPie string that draws a pie with hardware coordinates
  112. ; HwPoly1 string that start a polygon with hardware coordinates
  113. ; HwPoly2 string that draws a polygon edge with hardware coordinates
  114. ; HwPoly3 string that ends a polygon with hardware coordinates
  115. ; HwStartPage string that starts a page
  116. ; HwWidth string that sets line width with hardware units
  117. ; MaxHwWidth maximum hardware line width
  118. ;
  119. ; Strings have to be enclosed in double quotes ("...").
  120. ; If a double quote has to be part of the string, it must be escaped with
  121. ; a backslash, e.g. "abc\"def".
  122. ; If a backslash has to appear in the string, it has to be doubled,
  123. ; e.g. "abc\\def" would result in abc\def.
  124. ; Non-printable characters inside strings are written as "\xhh" with 2
  125. ; hex digits, e.g. "\x1B" would mean ESCape; the digits may be upper- or
  126. ; lowercase, but it has to be exactly two of them!
  127. ; The following characters have special meanings when escaped with
  128. ; a backslash:
  129. ;
  130. ; \0 NUL integer 0 \x00
  131. ; \a BEL alert \x07
  132. ; \b BS backspace \x08
  133. ; \f FF form feed \x0C
  134. ; \n NL (LF) newline \x0D\x0A
  135. ; \r CR carriage return \x0D
  136. ; \t HT horizontal tab \x09
  137. ; \v VT vertical tab \x0B
  138. ; \xhh hh hex number \xhh
  139. ;
  140. ; If a string parameter is too long to fit into one line it can be continued
  141. ; on the next line by escaping the end of line with a backslash, e.g.
  142. ; Parameter = "A very long string " \
  143. ; "which takes several " \ some comment
  144. ; "lines.\n"
  145. ; Note that the backslash terminates the line, so everything after the '\'
  146. ; character is discarded (this may be used for additional comments).
  147. [HPPJETXL300C]
  148. @HPGL2
  149. Long = "HP PaintJet XL300 (150 dpi, 16.8M colors)"
  150. ; The HP PaintJet XL300 can print up to 16.8M colors. However, these are
  151. ; always created by mixing the basic colors cyan, magenta, and yellow.
  152. ; Thus non-basic colors (especially light tones) will appear rastered when
  153. ; closely viewed.
  154. ;
  155. ; The default INIT string of the HPGL2 driver sets the printer up for
  156. ;
  157. ; 'NP14' 14 pens
  158. ; 'CR0,15,0,15,0,15' a color range from 0 to 15 for each bacic color,
  159. ; which results in a maximum of 4096 different colors
  160. ; 'MC1' transparent printing (overlapping colors mix!)
  161. ; 'PC 1,15, 0,15' pen 1: magenta
  162. ; 'PC 2, 0,15,15' pen 2: cyan
  163. ; 'PC 3, 0, 0,15' pen 3: blue
  164. ; 'PC 4,15,15, 0' pen 4: yellow
  165. ; 'PC 5,15, 0, 0' pen 5: red
  166. ; 'PC 6, 0,15, 0' pen 6: green
  167. ; 'PC 7, 0, 0, 0' pen 7: black
  168. ; 'PC 8,15,12,15' pen 8: light magenta
  169. ; 'PC 9,12,15,15' pen 9: light cyan
  170. ; 'PC10,12,12,15' pen 10: light blue
  171. ; 'PC11,15,15,12' pen 11: light yellow
  172. ; 'PC12,15,12, 0' pen 12: light red
  173. ; 'PC13,12,15, 0' pen 13: light green
  174. ; 'PC14,11,11,11' pen 14: grey
  175. ;
  176. ; You can modify the colors by changing the 'PCn,r,g,b' commands, where
  177. ;
  178. ; n = pen number
  179. ; r = red component
  180. ; g = green component
  181. ; b = blue component
  182. ;
  183. ; Note that although the printer has cyan, magenta and yellow as basic
  184. ; colors, the 'PC' commands use RGB (red-green-blue) values, according to
  185. ; the NTSC specification!
  186. [DESIGNJET220]
  187. @HPGL2
  188. Long = "HP DesignJet 220, HPGL2-Mode"
  189. Init = "\x1B%%1BIN;IP0,0,100,100SC0,100,0,100"\
  190. "WU1MC1NP14CR0,15,0,15,0,15"\
  191. "PC1,15,0,15PC2,0,15,15PC3,0,0,15PC4,15,15,0"\
  192. "PC5,15,0,0PC6,0,15,0PC7,0,0,0PC8,15,12,15"\
  193. "PC9,12,15,15PC10,12,12,15PC11,15,15,12PC12,15,12,0"\
  194. "PC13,12,15,0PC14,11,11,11"\
  195. "PA;\n"
  196. Reset = "PG;\x1B%%0A\f"
  197. HwColor = "SP%u" ; (Pen-Number) precede this line with ';' for b/w
  198. ;Use the following as first line of the Init string for A3 sized paper:
  199. ;Init = "\x1B&l27A\x1B%%-1BIN;IP0,0,100,100SC0,100,0,100"\
  200. [DESIGNJET650]
  201. Type = Generic
  202. Long = "HP DesigJet 650C, HPGL2"
  203. Init = "\x1B%%-12345X@@PJL ENTER LANGUAGE = HPGL2\n"\
  204. "\x1B%%-1BBIN;IP0,0,100,100SC0,100,0,100"\
  205. "WU1MC1NP14CR0,15,0,15,0,15"\
  206. "PC1,15,0,15PC2,0,15,15PC3,0,0,15PC4,15,15,0"\
  207. "PC5,15,0,0PC6,0,15,0PC7,0,0,0PC8,15,12,15"\
  208. "PC9,12,15,15PC10,12,12,15PC11,15,15,12PC12,15,12,0"\
  209. "PC13,12,15,0PC14,11,11,11"\
  210. "PA;\n"
  211. Reset = "PUSP0PG;"
  212. ResX = 1016
  213. ResY = 1016
  214. HwArcX1Y1CxCyA = "PU%d,%dPDAA%d,%d,%d\n" ; (x1, y1, xc, yc, ArcAngle)
  215. HwColor = "SP%u" ; (Pen-Number)
  216. HwLine = "PU%d,%dPD%d,%d\n"
  217. HwPoly1 = "PU%d,%dPM0PA%d,%d" ; first edge
  218. HwPoly2 = ",%d,%d" ; other points
  219. HwPoly3 = "PM2FP;\n" ; end of polygon
  220. HwWidth = "PW%u" ; (Pen-Width)
  221. MaxHwWidth = 5
  222. [HPGL]
  223. Type = PenPlotter
  224. Long = "HP-GL plotter"
  225. Init = "IN; IP 0,0,100,100; SC 0,100,0,100;\n"
  226. Reset = "PU; SP 0; PA 0,0;\n"
  227. Width = 16
  228. Height = 11
  229. ResX = 1016
  230. ResY = 1016
  231. PenSelect = "SP %u;\n" ;; Pens numbered 1..n
  232. PenSpeed = "VS %1.0f;\n"
  233. PenUp = "PU;\n"
  234. PenDown = "PD;\n"
  235. Move = "PA %d,%d;\n"
  236. Draw = "PA %d,%d;\n"
  237. PenCircleCxCyRxRy = "AA %d,%d,360;\n" ; (assumes CP is left?!)
  238. PenArcCxCyAd = "AA %d,%d,%1.2f;\n" ; (assumes CP is at start of arc)
  239. ; Cx/y Center X/Y (long)
  240. ; Rx/y Radius X/Y (long)
  241. ; Ad Angle in degrees (double)
  242. [HPGLX]
  243. @HPGL
  244. Long = "HP-GL plotter (serial, with Xon/Xoff handshake)"
  245. Init = "\x1B.I;;17:\x1B.N;19:"\
  246. "IN; IP 0,0,100,100; SC 0,100,0,100;\n"
  247. [SPL10]
  248. @HPGL
  249. Long = "Sekonic SPL 10 plotter"
  250. [CX6000]
  251. Type = PenPlotter
  252. Long = "C.Itoh CX6000 plotter"
  253. Init = ""
  254. Reset = "M0,0\n"
  255. Width = 16
  256. Height = 11
  257. ResX = 254
  258. ResY = 254
  259. PenSelect = "C%u\n" ;; Pens numbered 0..n-1
  260. Move = "M%d,%d\n"
  261. Draw = "D%d,%d\n"
  262. [DXY800]
  263. Type = PenPlotter
  264. Long = "Roland DXY-800 plotter"
  265. Init = ""
  266. Reset = "J0\nH\n"
  267. Width = 16
  268. Height = 11
  269. ResX = 254
  270. ResY = 254
  271. PenSelect = "J %u\n"
  272. Move = "M %d,%d\n"
  273. Draw = "D %d,%d\n"
  274. PenCircleRxRx = "E %d,180,360\nE %d,0,180\n"
  275. [DPX2200]
  276. @HPGL
  277. Long = "Roland DPX-2200 plotter"
  278. [ADCOMP]
  279. Type = PenPlotter
  280. Long = "ADCOMP X 100 plotter"
  281. Init = ""
  282. Reset = "M0,0\n"
  283. Width = 16
  284. Height = 11
  285. ResX = 254
  286. ResY = 254
  287. PenSelect = "C%u\n" ;; Pens numbered 1..n
  288. Move = "M%d,%d\n"
  289. Draw = "D%d,%d\n"
  290. PenCircleCxCyRxCxCyRx = "W%d,%d,%d,180,360,1\nW%d,%d,%d,0,180,1\n"
  291. [WX4671]
  292. Type = PenPlotter
  293. Long = "Watanabe WX4671 plotter"
  294. Init = ""
  295. Reset = "M0,0\n"
  296. Width = 16
  297. Height = 11
  298. ResX = 254
  299. ResY = 254
  300. Move = "M%d,%d\n"
  301. Draw = "D%d,%d\n"
  302. [HPX84]
  303. Type = PenPlotter
  304. Long = "HPX-84 plotter"
  305. Init = "SH\n"
  306. Reset = "SH\nAP 0 0\n"
  307. Width = 16
  308. Height = 11
  309. ResX = 254
  310. ResY = 254
  311. PenUp = "SH\n"
  312. PenDown = "SS\n"
  313. Move = "AP %d %d\n"
  314. Draw = "AP %d %d\n"
  315. PenCircleCxCyRxRy = "SH\nAK %d %d %d\n"
  316. [YEWPL]
  317. Type = PenPlotter
  318. Long = "Yokogawa PL 1000 plotter"
  319. Init = "IP 0;IW 0,0,380,250; IP 1;\n"
  320. Reset = "MA 0,0\n"
  321. Width = 16
  322. Height = 11
  323. ResX = 254
  324. ResY = 254
  325. PenSelect = "PS %u\n"
  326. PenSpeed = "PV %1.0f\n"
  327. Move = "MA %d,%d\n"
  328. Draw = "DA %d,%d\n"
  329. PenCircleRxCxCy = "AC %d,%d,%d,1800,5400\n"
  330. [ADCOMP300]
  331. Type = PenPlotter
  332. Long = "ADCOMP X 300 plotter"
  333. Init = "H\n"
  334. Reset = "J0\nH\n"
  335. Width = 16
  336. Height = 11
  337. ResX = 254
  338. ResY = 254
  339. PenSelect = "J%u\n"
  340. PenSpeed = "T%1.0f\n" ;;max(min(sround(PenVelocity / 2), 10), 1)
  341. Move = "M%d,%d\n"
  342. Draw = "D%d,%d\n"
  343. PenCircleCxCyRxRy = "W%d,%d,%d,%d,1800,5400\n"
  344. [MP1000]
  345. Type = PenPlotter
  346. Long = "Watanabe MP1000 plotter"
  347. Init = ""
  348. Reset = "J0\nH\n"
  349. Width = 16
  350. Height = 11
  351. ResX = 254
  352. ResY = 254
  353. PenSelect = "J%u\n"
  354. PenSpeed = "T%1.0f\n"
  355. Move = "M%d,%d\n"
  356. Draw = "D%d,%d\n"
  357. [EPSONHI80]
  358. @MP1000
  359. Long = "EPSON HI-80 plotter (Plot-Mode 1)"
  360. [SWEET]
  361. Type = PenPlotter
  362. Long = "SWEET-P 100 plotter"
  363. Init = "RE;\n"
  364. Reset = "HO;\n"
  365. Width = 16
  366. Height = 11
  367. ResX = 254
  368. ResY = 254
  369. PenSpeed = "VS %1.0f;\n" ;;max(15, sround((PenVelocity * 15) / 75))
  370. Move = "MA %d,%d;\n"
  371. Draw = "DA %d,%d;\n"
  372. [TEWIP281]
  373. Type = PenPlotter
  374. Long = "tewidata P 281 plotter"
  375. Init = "H\n"
  376. Reset = "HF0\n"
  377. Width = 16
  378. Height = 11
  379. ResX = 254
  380. ResY = 254
  381. PenSelect = "F%u\n"
  382. PenUp = "H"
  383. PenDown = "I"
  384. Move = "%d/%dK\n"
  385. Draw = "%d/%dK\n"
  386. PenCircleRxn = "O%d,180,540\n" ; Rxn = Radius X (long, negative)
  387. [SE281]
  388. @TEWIP281
  389. Long = "Goerz Servogor SE 281 plotter"
  390. [RY10MZ]
  391. Type = PenPlotter
  392. Long = "Rikadenki RY-10 MZ plotter"
  393. Init = ""
  394. Reset = "H\n"
  395. Width = 16
  396. Height = 11
  397. ResX = 254
  398. ResY = 254
  399. PenSelect = "K%u\n"
  400. PenSpeed = "T%1.0f\n"
  401. Move = "M%d,%d\n"
  402. Draw = "D%d,%d\n"
  403. PenCircleCxCyRxRy = "W%d,%d C%d,180,360\n"
  404. [HIDMP]
  405. Type = PenPlotter
  406. Long = "Houston Instrument DMP plotter"
  407. Init = ";:H A EC1 \n"
  408. Reset = "P0 @\n"
  409. Width = 16
  410. Height = 11
  411. ResX = 1000
  412. ResY = 1000
  413. PenSelect = "P%u\n"
  414. PenSpeed = "V%1.0f\n"
  415. Move = "U %d,%d\n"
  416. Draw = "D %d,%d\n"
  417. PenCircleCxCyRxRy = "CA %d,%d 360\n"
  418. [EPS]
  419. Type = Generic
  420. Long = "Encapsulated PostScript"
  421. ResX = 254000 ; this gives us editor coordinates!
  422. ResY = 254000
  423. Width = 100.00 ; virtually infinite
  424. Height = 100.00
  425. ArcCxCyRWSaEaC = "%d %d %d %d %1.2f %1.2f %d a\n" ; (CenterX, CenterY, Radius, Width, StartAngle, EndAngle, LineCap)
  426. Bar = "%d %d %d %d %.1f b\n" ; (x1, y1, x2, y2, Angle)
  427. Circle = "%d %d %d %d c\n" ; (x, y, Radius, Width)
  428. Line = "%d %d %d %d %d l\n" ; (x1, y1, x2, y2, Width)
  429. Octagon = "%d %d %d %d %.1f o\n" ; (x, y, dx, dy, Angle)
  430. Pie = "%d %d %d p\n" ; (x, y, d)
  431. Hole = "%d %d %d h\n" ; (x, y, d)
  432. Header1 = "%%!PS-Adobe-3.0 EPSF-3.0\n" \
  433. "%%%%Title: EAGLE Drawing %s\n" \
  434. "%%%%Creator: EAGLE\n" \
  435. "%%%%Pages: %d\n" \
  436. "%%%%BoundingBox: 0 0 %d %d\n" \
  437. "%%%%EndComments\n" \
  438. "\n"\
  439. "%% Coordinate transfer:\n"\
  440. "\n"\
  441. "/EU { 254 div 0.072 mul } def\n"\
  442. "/inch { 72 mul } def\n"\
  443. "\n"\
  444. "%% Linestyle:\n"\
  445. "\n"\
  446. "1 setlinecap\n"\
  447. "1 setlinejoin\n"\
  448. "\n"\
  449. "%% Drawing functions:\n"\
  450. "\n"\
  451. "/l { %% draw a line\n"\
  452. " /lw exch def\n"\
  453. " /y2 exch def\n"\
  454. " /x2 exch def\n"\
  455. " /y1 exch def\n"\
  456. " /x1 exch def\n"\
  457. " newpath\n"\
  458. " x1 EU y1 EU moveto\n"\
  459. " x2 EU y2 EU lineto\n"\
  460. " lw EU setlinewidth\n"\
  461. " stroke\n"\
  462. " } def\n"\
  463. "\n"\
  464. "/h { %% draw a hole\n"\
  465. " /d exch def\n"\
  466. " /y exch def\n"\
  467. " /x exch def\n"\
  468. " d 0 gt {\n"\
  469. " newpath\n"\
  470. " x EU y EU d 2 div EU 0 360 arc\n"\
  471. " currentgray dup\n"\
  472. " 1 exch sub setgray\n"\
  473. " fill\n"\
  474. " setgray\n"\
  475. " } if\n"\
  476. " } def\n"\
  477. "\n"\
  478. "/b { %% draw a bar\n"\
  479. " /an exch def\n"\
  480. " /y2 exch def\n"\
  481. " /x2 exch def\n"\
  482. " /y1 exch def\n"\
  483. " /x1 exch def\n"\
  484. " /w2 x2 x1 sub 2 div EU def\n"\
  485. " /h2 y2 y1 sub 2 div EU def\n"\
  486. " gsave\n"\
  487. " x1 x2 add 2 div EU y1 y2 add 2 div EU translate\n"\
  488. " an rotate\n"\
  489. " newpath\n"\
  490. " w2 h2 moveto\n"\
  491. " w2 neg h2 lineto\n"\
  492. " w2 neg h2 neg lineto\n"\
  493. " w2 h2 neg lineto\n"\
  494. " closepath\n"\
  495. " fill\n"\
  496. " grestore\n"\
  497. " } def\n"\
  498. "\n"\
  499. "/c { %% draw a circle\n"\
  500. " /lw exch def\n"\
  501. " /rd exch def\n"\
  502. " /y exch def\n"\
  503. " /x exch def\n"\
  504. " newpath\n"\
  505. " lw EU setlinewidth\n"\
  506. " x EU y EU rd EU 0 360 arc\n"\
  507. " stroke\n"\
  508. " } def\n"\
  509. "\n"\
  510. "/a { %% draw an arc\n"\
  511. " /lc exch def\n"\
  512. " /ae exch def\n"\
  513. " /as exch def\n"\
  514. " /lw exch def\n"\
  515. " /rd exch def\n"\
  516. " /y exch def\n"\
  517. " /x exch def\n"\
  518. " lw rd 2 mul gt {\n"\
  519. " /rd rd lw 2 div add 2 div def\n"\
  520. " /lw rd 2 mul def\n"\
  521. " } if\n"\
  522. " currentlinecap currentlinejoin\n"\
  523. " lc setlinecap 0 setlinejoin\n"\
  524. " newpath\n"\
  525. " lw EU setlinewidth\n"\
  526. " x EU y EU rd EU as ae arc\n"\
  527. " stroke\n"\
  528. " setlinejoin setlinecap\n"\
  529. " } def\n"\
  530. "\n"\
  531. "/p { %% draw a pie\n"\
  532. " /d exch def\n"\
  533. " /y exch def\n"\
  534. " /x exch def\n"\
  535. " newpath\n"\
  536. " x EU y EU d 2 div EU 0 360 arc\n"\
  537. " fill\n"\
  538. " } def\n"\
  539. "\n"\
  540. "/edge { 0.20710678119 mul } def\n"\
  541. "\n"\
  542. "/o { %% draw an octagon\n"\
  543. " /an exch def\n"\
  544. " /dy exch def\n"\
  545. " /dx exch def\n"\
  546. " /y exch def\n"\
  547. " /x exch def\n"\
  548. " gsave\n"\
  549. " x EU y EU translate\n"\
  550. " an dx dy lt { 90 add /dx dy /dy dx def def } if rotate\n"\
  551. " newpath\n"\
  552. " 0 dx 2 div sub EU 0 dy edge add EU moveto\n"\
  553. " 0 dx dy sub 2 div sub dy edge sub EU 0 dy 2 div add EU lineto\n"\
  554. " 0 dx dy sub 2 div add dy edge add EU 0 dy 2 div add EU lineto\n"\
  555. " 0 dx 2 div add EU 0 dy edge add EU lineto\n"\
  556. " 0 dx 2 div add EU 0 dy edge sub EU lineto\n"\
  557. " 0 dx dy sub 2 div add dy edge add EU 0 dy 2 div sub EU lineto\n"\
  558. " 0 dx dy sub 2 div sub dy edge sub EU 0 dy 2 div sub EU lineto\n"\
  559. " 0 dx 2 div sub EU 0 dy edge sub EU lineto\n"\
  560. " closepath\n"\
  561. " fill\n"\
  562. " grestore\n"\
  563. " } def\n"\
  564. "\n"
  565. ;(Name, NrPages, (x2 - x1) * 0.072 * ScaleFactor, (y2 - y1) * 0.072 * ScaleFactor)
  566. [PS]
  567. @EPS
  568. Long = "PostScript (printable)"
  569. Width = 7.75
  570. Height = 11.00
  571. Header2 = "%% the real drawing size:\n"\
  572. "\n"\
  573. "/MinDrawX %6d EU def\n"\
  574. "/MinDrawY %6d EU def\n"\
  575. "/MaxDrawX %6d EU def\n"\
  576. "/MaxDrawY %6d EU def\n"\
  577. "\n"\
  578. "%% the usable page size:\n"\
  579. "\n"\
  580. "/LeftMargin 0.25 inch def %% change these if drawing gets clipped!\n"\
  581. "/BotMargin 0.25 inch def\n"\
  582. "/PageWidth %7.4f inch def\n"\
  583. "/PageHeight %7.4f inch def\n"\
  584. "\n"\
  585. "%% are we going to rotate?:\n"\
  586. "\n"\
  587. "/RotateDrawing %d 0 ne def\n"\
  588. "\n"
  589. ;(x1, y1, x2, y2, Width, Height, DoRotate)
  590. Header3 = "%% Media size functions:\n"\
  591. "\n"\
  592. "/AbortMessage { %% Show a message in a box and stop printing\n"\
  593. " /h 100 def\n"\
  594. " /Courier findfont 12 scalefont setfont\n"\
  595. " mediawidth pagemargin sub h 1 setpage\n"\
  596. " newpath\n"\
  597. " 0 0 moveto\n"\
  598. " 0 h rlineto\n"\
  599. " mediawidth pagemargin sub 0 rlineto\n"\
  600. " 0 h neg rlineto\n"\
  601. " closepath\n"\
  602. " 5 setlinewidth\n"\
  603. " stroke\n"\
  604. " newpath 50 60 moveto (ERROR: Jobsize exceeds physical printing area!) show\n"\
  605. " newpath 50 40 moveto ( Job has been aborted!) show\n"\
  606. " showpage\n"\
  607. " stop\n"\
  608. " } def\n"\
  609. "\n"\
  610. "/SelectPage { %% Select the page identified by Row and Column\n"\
  611. " /Column exch def\n"\
  612. " /Row exch def\n"\
  613. "\n"\
  614. " %% the actually exposed area (if the machine knows these parameters!):\n"\
  615. "\n"\
  616. " /DrawX MaxDrawX MinDrawX sub def\n"\
  617. " /DrawY MaxDrawY MinDrawY sub def\n"\
  618. " statusdict /setpage known\n"\
  619. " statusdict /mediawidth known and\n"\
  620. " statusdict /medialength known and\n"\
  621. " statusdict /pagemargin known and {\n"\
  622. " %% this is for machines that can tell the media size:\n"\
  623. " statusdict begin\n"\
  624. " /MediaW mediawidth pagemargin sub def\n"\
  625. " DrawX DrawY ge {\n"\
  626. " DrawX MediaW le DrawY medialength le and {\n"\
  627. " MediaW DrawY 1 setpage\n"\
  628. " MediaW DrawX sub 2 div 0 translate\n"\
  629. " }{\n"\
  630. " DrawY MediaW le DrawX medialength le and {\n"\
  631. " MediaW DrawX 0 setpage\n"\
  632. " 0 MediaW DrawY sub 2 div translate\n"\
  633. " }{\n"\
  634. " AbortMessage\n"\
  635. " } ifelse\n"\
  636. " } ifelse\n"\
  637. " }{\n"\
  638. " DrawY MediaW le DrawX medialength le and {\n"\
  639. " MediaW DrawX 0 setpage\n"\
  640. " 0 MediaW DrawY sub 2 div translate\n"\
  641. " }{\n"\
  642. " DrawX MediaW le DrawY medialength le and {\n"\
  643. " MediaW DrawY 1 setpage\n"\
  644. " MediaW DrawX sub 2 div 0 translate\n"\
  645. " }{\n"\
  646. " AbortMessage\n"\
  647. " } ifelse\n"\
  648. " } ifelse\n"\
  649. " } ifelse\n"\
  650. " end\n"\
  651. " }{\n"\
  652. " %% this is for machines that can NOT tell the media size:\n"\
  653. " %% (Ghostscript doesn't like this!)\n"\
  654. " /Product product length string def\n"\
  655. " /i 0 def\n"\
  656. " product { dup 97 lt { 32 add } if Product exch i exch put /i i 1 add def } forall \n"\
  657. " Product (ghostscript) search dup /IsGhostscript exch def\n"\
  658. " { pop pop } if\n"\
  659. " pop\n"\
  660. " IsGhostscript not {\n"\
  661. " statusdict /setpage known {\n"\
  662. " statusdict begin\n"\
  663. " RotateDrawing {\n"\
  664. " LeftMargin PageHeight add BotMargin DrawY add\n"\
  665. " }{\n"\
  666. " BotMargin DrawY add LeftMargin DrawX add \n"\
  667. " } ifelse\n"\
  668. " 0 setpage\n"\
  669. " end\n"\
  670. " } if\n"\
  671. " } if\n"\
  672. " %% set clipping boundary:\n"\
  673. " newpath\n"\
  674. " LeftMargin BotMargin moveto\n"\
  675. " 0 PageHeight rlineto\n"\
  676. " PageWidth 0 rlineto\n"\
  677. " 0 PageHeight neg rlineto\n"\
  678. " closepath\n"\
  679. " clip\n"\
  680. " %% set the origin:\n"\
  681. " LeftMargin BotMargin translate\n"\
  682. " RotateDrawing {\n"\
  683. " 0 PageHeight translate\n"\
  684. " -90 rotate\n"\
  685. " PageHeight Column mul neg PageWidth Row mul neg translate\n"\
  686. " }{\n"\
  687. " PageWidth Column mul neg PageHeight Row mul neg translate\n"\
  688. " } ifelse\n"\
  689. " } ifelse\n"\
  690. " %% move the lower left corner of the drawing to the origin:\n"\
  691. " MinDrawX neg MinDrawY neg translate\n"\
  692. " \n"\
  693. " %% Linestyle:\n"\
  694. " \n"\
  695. " 1 setlinecap\n"\
  696. " 1 setlinejoin\n"\
  697. " \n"\
  698. " } def\n"\
  699. "\n"\
  700. "%% TheDrawing\n"
  701. StartPage= "\ngsave %d %d SelectPage\n" ;(Row, Column)
  702. EndPage = "showpage grestore\n"
  703. [PS_INVERTED]
  704. @PS
  705. Long = "PostScript (printable, inverted)"
  706. Header3 = "%% Media size functions:\n"\
  707. "\n"\
  708. "/AbortMessage { %% Show a message in a box and stop printing\n"\
  709. " /h 100 def\n"\
  710. " /Courier findfont 12 scalefont setfont\n"\
  711. " mediawidth pagemargin sub h 1 setpage\n"\
  712. " newpath\n"\
  713. " 0 0 moveto\n"\
  714. " 0 h rlineto\n"\
  715. " mediawidth pagemargin sub 0 rlineto\n"\
  716. " 0 h neg rlineto\n"\
  717. " closepath\n"\
  718. " 5 setlinewidth\n"\
  719. " stroke\n"\
  720. " newpath 50 60 moveto (ERROR: Jobsize exceeds physical printing area!) show\n"\
  721. " newpath 50 40 moveto ( Job has been aborted!) show\n"\
  722. " showpage\n"\
  723. " stop\n"\
  724. " } def\n"\
  725. "\n"\
  726. "/SelectPage { %% Select the page identified by Row and Column\n"\
  727. " /Column exch def\n"\
  728. " /Row exch def\n"\
  729. "\n"\
  730. " %% the actually exposed area (if the machine knows these parameters!):\n"\
  731. "\n"\
  732. " /DrawX MaxDrawX MinDrawX sub def\n"\
  733. " /DrawY MaxDrawY MinDrawY sub def\n"\
  734. " statusdict /setpage known\n"\
  735. " statusdict /mediawidth known and\n"\
  736. " statusdict /medialength known and\n"\
  737. " statusdict /pagemargin known and {\n"\
  738. " %% this is for machines that can tell the media size:\n"\
  739. " statusdict begin\n"\
  740. " /MediaW mediawidth pagemargin sub def\n"\
  741. " DrawX DrawY ge {\n"\
  742. " DrawX MediaW le DrawY medialength le and {\n"\
  743. " MediaW DrawY 1 setpage\n"\
  744. " MediaW DrawX sub 2 div 0 translate\n"\
  745. " }{\n"\
  746. " DrawY MediaW le DrawX medialength le and {\n"\
  747. " MediaW DrawX 0 setpage\n"\
  748. " 0 MediaW DrawY sub 2 div translate\n"\
  749. " }{\n"\
  750. " AbortMessage\n"\
  751. " } ifelse\n"\
  752. " } ifelse\n"\
  753. " }{\n"\
  754. " DrawY MediaW le DrawX medialength le and {\n"\
  755. " MediaW DrawX 0 setpage\n"\
  756. " 0 MediaW DrawY sub 2 div translate\n"\
  757. " }{\n"\
  758. " DrawX MediaW le DrawY medialength le and {\n"\
  759. " MediaW DrawY 1 setpage\n"\
  760. " MediaW DrawX sub 2 div 0 translate\n"\
  761. " }{\n"\
  762. " AbortMessage\n"\
  763. " } ifelse\n"\
  764. " } ifelse\n"\
  765. " } ifelse\n"\
  766. " end\n"\
  767. " }{\n"\
  768. " %% this is for machines that can NOT tell the media size:\n"\
  769. " %% (Ghostscript doesn't like this!)\n"\
  770. " /Product product length string def\n"\
  771. " /i 0 def\n"\
  772. " product { dup 97 lt { 32 add } if Product exch i exch put /i i 1 add def } forall \n"\
  773. " Product (ghostscript) search dup /IsGhostscript exch def\n"\
  774. " { pop pop } if\n"\
  775. " pop\n"\
  776. " IsGhostscript not {\n"\
  777. " statusdict /setpage known {\n"\
  778. " statusdict begin\n"\
  779. " RotateDrawing {\n"\
  780. " LeftMargin PageHeight add BotMargin DrawY add\n"\
  781. " }{\n"\
  782. " BotMargin DrawY add LeftMargin DrawX add \n"\
  783. " } ifelse\n"\
  784. " 0 setpage\n"\
  785. " end\n"\
  786. " } if\n"\
  787. " } if\n"\
  788. " %% set clipping boundary:\n"\
  789. " newpath\n"\
  790. " LeftMargin BotMargin moveto\n"\
  791. " 0 PageHeight rlineto\n"\
  792. " PageWidth 0 rlineto\n"\
  793. " 0 PageHeight neg rlineto\n"\
  794. " closepath\n"\
  795. " clip\n"\
  796. " %% set the origin:\n"\
  797. " LeftMargin BotMargin translate\n"\
  798. " RotateDrawing {\n"\
  799. " 0 PageHeight translate\n"\
  800. " -90 rotate\n"\
  801. " PageHeight Column mul neg PageWidth Row mul neg translate\n"\
  802. " }{\n"\
  803. " PageWidth Column mul neg PageHeight Row mul neg translate\n"\
  804. " } ifelse\n"\
  805. " } ifelse\n"\
  806. " %% move the lower left corner of the drawing to the origin:\n"\
  807. " MinDrawX neg MinDrawY neg translate\n"\
  808. " \n"\
  809. " %% Linestyle:\n"\
  810. " \n"\
  811. " 1 setlinecap\n"\
  812. " 1 setlinejoin\n"\
  813. " \n"\
  814. " %% invert drawing:\n"\
  815. " newpath\n"\
  816. " MinDrawX MinDrawY moveto\n"\
  817. " MaxDrawX MinDrawY lineto\n"\
  818. " MaxDrawX MaxDrawY lineto\n"\
  819. " MinDrawX MaxDrawY lineto\n"\
  820. " 0 setgray\n"\
  821. " closepath fill\n"\
  822. " 1 setgray\n"\
  823. " \n"\
  824. " } def\n"\
  825. "\n"\
  826. "%% TheDrawing\n"
  827. [PS_DINA3]
  828. @PS
  829. Long = "Postscript (printable) DIN A3"
  830. Width = 11.36
  831. Height = 16.00
  832. [HPGL2]
  833. Type = Generic
  834. Long = "HP-GL/2 printer"
  835. Init = "\x1B%%1BIN;IP0,0,100,100SC0,100,0,100"\
  836. "WU1MC1NP14CR0,15,0,15,0,15"\
  837. "PC1,15,0,15PC2,0,15,15PC3,0,0,15PC4,15,15,0"\
  838. "PC5,15,0,0PC6,0,15,0PC7,0,0,0PC8,15,12,15"\
  839. "PC9,12,15,15PC10,12,12,15PC11,15,15,12PC12,15,12,0"\
  840. "PC13,12,15,0PC14,11,11,11"\
  841. "PA;\n"
  842. ;Use the following as first line of the Init string for A3 sized paper:
  843. ;Init = "\x1B&l27A\x1B%%-1BIN;IP0,0,100,100SC0,100,0,100"\
  844. Reset = "\x1B%%0A\f"
  845. ResX = 1016
  846. ResY = 1016
  847. HwArcX1Y1CxCyA = "PU%d,%dPDAA%d,%d,%d\n" ; (x1, y1, xc, yc, ArcAngle)
  848. HwColor = "SP%u" ; (Pen-Number)
  849. HwLine = "PU%d,%dPD%d,%d\n"
  850. HwPoly1 = "PU%d,%dPM0PA%d,%d" ; first edge
  851. HwPoly2 = ",%d,%d" ; other points
  852. HwPoly3 = "PM2FP;\n" ; end of polygon
  853. HwWidth = "PW%u" ; (Pen-Width)
  854. MaxHwWidth = 5
  855. [GERBER]
  856. Type = PhotoPlotter
  857. Long = "Gerber photoplotter"
  858. Init = "G01*\nX000000Y000000D02*\n"
  859. Reset = "X000000Y000000D02*\nM02*\n"
  860. ResX = 10000
  861. ResY = 10000
  862. ;Wheel = ""
  863. Move = "X%0.6dY%0.6dD02*\n" ; (x, y)
  864. Draw = "X%0.6dY%0.6dD01*\n" ; (x, y)
  865. Flash = "X%0.6dY%0.6dD03*\n" ; (x, y)
  866. Aperture = "%s*\n" ; (Aperture code)
  867. Units = Inch
  868. Info = "Plotfile Info:\n"\
  869. "\n"\
  870. " Coordinate Format : 2.4\n"\
  871. " Coordinate Units : Inch\n"\
  872. " Data Mode : Absolute\n"\
  873. " Zero Suppression : None\n"\
  874. " End Of Block : *\n"\
  875. "\n"
  876. [GERBERAUTO]
  877. @GERBER
  878. Long = "Gerber photoplotter with automatic aperture wheel generation"
  879. Wheel = "" ; avoids message!
  880. AutoAperture = "D%d" ; (Aperture number)
  881. FirstAperture = 10
  882. Units = Inch
  883. ;MaxApertureSize = 0.2 ; Inch
  884. [GERBER_RS274X_24]
  885. @GERBERAUTO
  886. Long = "Gerber RS-274-X photoplotter, coordinate format 2.4 inch"
  887. Units = Inch
  888. Init = "G75*\n" \ allow positive and negative coordinates
  889. "%%MOIN*%%\n" \ MOde of units is INch (MM for mm)
  890. "%%OFA0B0*%%\n" \ horizonal and vertical OFfset is 0
  891. "%%FSLAX24Y24*%%\n"\ Format Statement is Absolute (I for incremental) 2.4
  892. "%%IPPOS*%%\n" \ Image Polarity is POSitive (NEG for negative)
  893. "%%LPD*%%\n" \ Layer Polarity Dark (C for clear on negative planes)
  894. "%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
  895. "%%\n" ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
  896. Reset = "M02*\n"
  897. Circle = "%%AD%sC,%6.4f*%%\n" ; (code, diameter)
  898. Rectangle = "%%AD%sR,%6.4fX%6.4f*%%\n" ; (code, dx, dy)
  899. Oval = "%%AD%sO,%6.4fX%6.4f*%%\n" ; (code, dx, dy)
  900. ; According to the RS-274-X specs there is an aperture macro
  901. ; primitive that allows us to specify an octagon (i.e. a polygon with
  902. ; 8 vertices). As some Gerber viewers seem to have problems with that,
  903. ; we would have to use a round shape for that.
  904. ; If your Gerber processor cannot handle the polygon primitive you may
  905. ; uncomment the following line and comment out the line after it:
  906. ;Octagon = "%%AD%sC,%6.4f*%%\n" ; (code, diameter) (looks like there is no octagon, so we take a circle)
  907. Octagon = "%%AD%sOC8,%6.4f*%%\n" ; (code, diameter)
  908. AreaBegin = "G36*\n"
  909. AreaEnd = "G37*\n"
  910. [GERBER_RS274X_25]
  911. @GERBERAUTO
  912. Long = "Gerber RS-274-X photoplotter, coordinate format 2.5 inch"
  913. Units = Inch
  914. Info = "Plotfile Info:\n"\
  915. "\n"\
  916. " Coordinate Format : 2.5\n"\
  917. " Coordinate Units : Inch\n"\
  918. " Data Mode : Absolute\n"\
  919. " Zero Suppression : None\n"\
  920. " End Of Block : *\n"\
  921. "\n"
  922. Init = "G75*\n" \ allow positive and negative coordinates
  923. "%%MOIN*%%\n" \ MOde of units is INch (MM for mm)
  924. "%%OFA0B0*%%\n" \ horizonal and vertical OFfset is 0
  925. "%%FSLAX25Y25*%%\n"\ Format Statement is Absolute (I for incremental) 2.5
  926. "%%IPPOS*%%\n" \ Image Polarity is POSitive (NEG for negative)
  927. "%%LPD*%%\n" \ Layer Polarity Dark (C for clear on negative planes)
  928. "%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
  929. "%%\n" ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
  930. Reset = "M02*\n"
  931. ResX = 100000
  932. ResY = 100000
  933. Move = "X%0.7dY%0.7dD02*\n" ; (x, y)
  934. Draw = "X%0.7dY%0.7dD01*\n" ; (x, y)
  935. Flash = "X%0.7dY%0.7dD03*\n" ; (x, y)
  936. Circle = "%%AD%sC,%7.5f*%%\n" ; (code, diameter)
  937. Rectangle = "%%AD%sR,%7.5fX%7.5f*%%\n" ; (code, dx, dy)
  938. Oval = "%%AD%sO,%7.5fX%7.5f*%%\n" ; (code, dx, dy)
  939. ; According to the RS-274-X specs there is an aperture macro
  940. ; primitive that allows us to specify an octagon (i.e. a polygon with
  941. ; 8 vertices). As some Gerber viewers seem to have problems with that,
  942. ; we would have to use a round shape for that.
  943. ; If your Gerber processor cannot handle the polygon primitive you may
  944. ; uncomment the following line and comment out the line after it:
  945. ;Octagon = "%%AD%sC,%7.5f*%%\n" ; (code, diameter) (looks like there is no octagon, so we take a circle)
  946. Octagon = "%%AD%sOC8,%7.5f*%%\n" ; (code, diameter)
  947. AreaBegin = "G36*\n"
  948. AreaEnd = "G37*\n"
  949. [GERBER_RS274X_26]
  950. @GERBERAUTO
  951. Long = "Gerber RS-274-X photoplotter, coordinate format 2.6 inch"
  952. Units = Inch
  953. Info = "Plotfile Info:\n"\
  954. "\n"\
  955. " Coordinate Format : 2.6\n"\
  956. " Coordinate Units : Inch\n"\
  957. " Data Mode : Absolute\n"\
  958. " Zero Suppression : None\n"\
  959. " End Of Block : *\n"\
  960. "\n"
  961. Init = "G75*\n" \ allow positive and negative coordinates
  962. "%%MOIN*%%\n" \ MOde of units is INch (MM for mm)
  963. "%%OFA0B0*%%\n" \ horizonal and vertical OFfset is 0
  964. "%%FSLAX26Y26*%%\n"\ Format Statement is Absolute (I for incremental) 2.6
  965. "%%IPPOS*%%\n" \ Image Polarity is POSitive (NEG for negative)
  966. "%%LPD*%%\n" \ Layer Polarity Dark (C for clear on negative planes)
  967. "%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
  968. "%%\n" ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
  969. Reset = "M02*\n"
  970. ResX = 1000000
  971. ResY = 1000000
  972. Move = "X%0.8dY%0.8dD02*\n" ; (x, y)
  973. Draw = "X%0.8dY%0.8dD01*\n" ; (x, y)
  974. Flash = "X%0.8dY%0.8dD03*\n" ; (x, y)
  975. Circle = "%%AD%sC,%8.6f*%%\n" ; (code, diameter)
  976. Rectangle = "%%AD%sR,%8.6fX%8.6f*%%\n" ; (code, dx, dy)
  977. Oval = "%%AD%sO,%8.6fX%8.6f*%%\n" ; (code, dx, dy)
  978. ; According to the RS-274-X specs there is an aperture macro
  979. ; primitive that allows us to specify an octagon (i.e. a polygon with
  980. ; 8 vertices). As some Gerber viewers seem to have problems with that,
  981. ; we would have to use a round shape for that.
  982. ; If your Gerber processor cannot handle the polygon primitive you may
  983. ; uncomment the following line and comment out the line after it:
  984. ;Octagon = "%%AD%sC,%8.6f*%%\n" ; (code, diameter) (looks like there is no octagon, so we take a circle)
  985. Octagon = "%%AD%sOC8,%8.6f*%%\n" ; (code, diameter)
  986. AreaBegin = "G36*\n"
  987. AreaEnd = "G37*\n"
  988. [GERBER_RS274X_33MM]
  989. @GERBERAUTO
  990. Long = "Gerber RS-274-X photoplotter, coordinate format 3.3 mm"
  991. Units = MM
  992. Init = "G75*\n" \ allow positive and negative coordinates
  993. "%%MOMM*%%\n" \ MOde of units is MM
  994. "%%OFA0B0*%%\n" \ horizonal and vertical OFfset is 0
  995. "%%FSLAX24Y24*%%\n"\ Format Statement is Absolute (I for incremental) 2.4
  996. "%%IPPOS*%%\n" \ Image Polarity is POSitive (NEG for negative)
  997. "%%LPD*%%\n" \ Layer Polarity Dark (C for clear on negative planes)
  998. "%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
  999. "%%\n" ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
  1000. Reset = "M02*\n"
  1001. Circle = "%%AD%sC,%5.3f*%%\n" ; (code, diameter)
  1002. Rectangle = "%%AD%sR,%5.3fX%5.3f*%%\n" ; (code, dx, dy)
  1003. Oval = "%%AD%sO,%5.3fX%5.3f*%%\n" ; (code, dx, dy)
  1004. ; According to the RS-274-X specs there is an aperture macro
  1005. ; primitive that allows us to specify an octagon (i.e. a polygon with
  1006. ; 8 vertices). As some Gerber viewers seem to have problems with that,
  1007. ; we would have to use a round shape for that.
  1008. ; If your Gerber processor cannot handle the polygon primitive you may
  1009. ; uncomment the following line and comment out the line after it:
  1010. ;Octagon = "%%AD%sC,%5.3f*%%\n" ; (code, diameter) (looks like there is no octagon, so we take a circle)
  1011. Octagon = "%%AD%sOC8,%5.3f*%%\n" ; (code, diameter)
  1012. AreaBegin = "G36*\n"
  1013. AreaEnd = "G37*\n"
  1014. [GERBER_23]
  1015. Type = PhotoPlotter
  1016. Long = "Gerber photoplotter, coordinate format 2.3 inch"
  1017. Init = "G01*\nX00000Y00000D02*\n"
  1018. Reset = "X00000Y00000D02*\nM02*\n"
  1019. ResX = 1000
  1020. ResY = 1000
  1021. ;Wheel = ""
  1022. Move = "X%0.5dY%0.5dD02*\n" ; (x, y)
  1023. Draw = "X%0.5dY%0.5dD01*\n" ; (x, y)
  1024. Flash = "X%0.5dY%0.5dD03*\n" ; (x, y)
  1025. Aperture = "%s*\n" ; (Aperture code)
  1026. Units = Inch
  1027. Info = "Plotfile Info:\n"\
  1028. "\n"\
  1029. " Coordinate Format : 2.3\n"\
  1030. " Coordinate Units : Inch\n"\
  1031. " Data Mode : Absolute\n"\
  1032. " Zero Suppression : None\n"\
  1033. " End Of Block : *\n"\
  1034. "\n"
  1035. [GERBERAUTO_23]
  1036. @GERBER_23
  1037. Long = "Gerber photoplotter with automatic aperture wheel generation"
  1038. Wheel = "" ; avoids message!
  1039. AutoAperture = "D%d" ; (Aperture number)
  1040. FirstAperture = 10
  1041. Units = Inch
  1042. [EMMA]
  1043. Type = PhotoPlotter
  1044. Long = "EMMA 30/80 photoplotter"
  1045. Init = "%%\nS7X000000Y000000\n"
  1046. Reset = "S7X000000Y000000\n$\n"
  1047. ResX = 20000
  1048. ResY = 20000
  1049. ;Wheel = ""
  1050. Move = "S7X%0.6dY%0.6d\n" ; (x, y)
  1051. Draw = "S2X%0.6dY%0.6d\n" ; (x, y)
  1052. Flash = "S1X%0.6dY%0.6d\n" ; (x, y)
  1053. Aperture = "%s\n" ; (Aperture code)
  1054. Info = "Plotfile Info:\n"\
  1055. "\n"\
  1056. " Coordinate Format : 6\n"\
  1057. " Coordinate Units : 1/800 mm\n"\
  1058. " Data Mode : Absolute\n"\
  1059. " Zero Suppression : None\n"\
  1060. "\n"
  1061. [GLASER]
  1062. Type = PhotoPlotter
  1063. Long = "GLASER DP-1504 photoplotter"
  1064. Init = "IN;FC0.0254;CS1,1,0;SI1,1;\n"
  1065. Reset = "PU;PA0,0;\n"
  1066. ResX = 1000
  1067. ResY = 1000
  1068. Wheel = "glaser.whl"
  1069. Move = "PA%d,%d;\n" ; (x, y)
  1070. Draw = "PA%d,%d;\n" ; (x, y)
  1071. PenDown = "PD;\n"
  1072. PenUp = "PU;\n"
  1073. Flash = "PA%d,%d;%s\n" ; (x, y, Aperture code)
  1074. Aperture = "%s\n" ; (Aperture code)
  1075. Info = "Plotfile Info:\n"\
  1076. "\n"\
  1077. " Coordinate Units : 1/1000 Inch\n"\
  1078. " Data Mode : Absolute\n"\
  1079. "\n"
  1080. [EXCELLON_24]
  1081. Type = DrillStation
  1082. Long = "Excellon drill station, coordinate format 2.4 inch"
  1083. Init = "%%\nM48\nM72\n"
  1084. Reset = "M30\n"
  1085. ResX = 10000
  1086. ResY = 10000
  1087. ;Rack = ""
  1088. DrillSize = "%sC%0.4f\n" ; (Tool code, tool size)
  1089. AutoDrill = "T%02d" ; (Tool number)
  1090. FirstDrill = 1
  1091. BeginData = "%%\n"
  1092. Units = Inch
  1093. Select = "%s\n" ; (Drill code)
  1094. Drill = "X%1.0fY%1.0f\n" ; (x, y)
  1095. Info = "Drill File Info:\n"\
  1096. "\n"\
  1097. " Data Mode : Absolute\n"\
  1098. " Units : 1/10000 Inch\n"\
  1099. "\n"
  1100. [EXCELLON_25]
  1101. Type = DrillStation
  1102. Long = "Excellon drill station, coordinate format 2.5 inch"
  1103. Init = "%%\nM48\nM72\n"
  1104. Reset = "M30\n"
  1105. ResX = 100000
  1106. ResY = 100000
  1107. ;Rack = ""
  1108. DrillSize = "%sC%0.5f\n" ; (Tool code, tool size)
  1109. AutoDrill = "T%02d" ; (Tool number)
  1110. FirstDrill = 1
  1111. BeginData = "%%\n"
  1112. Units = Inch
  1113. Select = "%s\n" ; (Drill code)
  1114. Drill = "X%1.0fY%1.0f\n" ; (x, y)
  1115. Info = "Drill File Info:\n"\
  1116. "\n"\
  1117. " Data Mode : Absolute\n"\
  1118. " Units : 1/100000 Inch\n"\
  1119. "\n"
  1120. [EXCELLON_26]
  1121. Type = DrillStation
  1122. Long = "Excellon drill station, coordinate format 2.6 inch"
  1123. Init = "%%\nM48\nM72\n"
  1124. Reset = "M30\n"
  1125. ResX = 1000000
  1126. ResY = 1000000
  1127. ;Rack = ""
  1128. DrillSize = "%sC%0.6f\n" ; (Tool code, tool size)
  1129. AutoDrill = "T%02d" ; (Tool number)
  1130. FirstDrill = 1
  1131. BeginData = "%%\n"
  1132. Units = Inch
  1133. Select = "%s\n" ; (Drill code)
  1134. Drill = "X%1.0fY%1.0f\n" ; (x, y)
  1135. Info = "Drill File Info:\n"\
  1136. "\n"\
  1137. " Data Mode : Absolute\n"\
  1138. " Units : 1/1000000 Inch\n"\
  1139. "\n"
  1140. [EXCELLON_33MM]
  1141. Type = DrillStation
  1142. Long = "Excellon drill station, coordinate format 3.3 mm"
  1143. Init = "%%\nM48\nM72\n"
  1144. Reset = "M30\n"
  1145. ResX = 1000
  1146. ResY = 1000
  1147. ;Rack = ""
  1148. DrillSize = "%sC%0.3f\n" ; (Tool code, tool size)
  1149. AutoDrill = "T%02d" ; (Tool number)
  1150. FirstDrill = 1
  1151. BeginData = "%%\n"
  1152. Units = MM
  1153. Select = "%s\n" ; (Drill code)
  1154. Drill = "X%1.0fY%1.0f\n" ; (x, y)
  1155. Info = "Drill File Info:\n"\
  1156. "\n"\
  1157. " Data Mode : Absolute\n"\
  1158. " Units : 1/1000 MM\n"\
  1159. "\n"
  1160. [EXCELLON_RACK]
  1161. Type = DrillStation
  1162. Long = "Excellon drill station with user supplied rack file"
  1163. Init = "%%\n"
  1164. Reset = "M30\n"
  1165. ResX = 10000
  1166. ResY = 10000
  1167. ;Rack = ""
  1168. Select = "%s\n" ; (Drill code)
  1169. Drill = "X%1.0fY%1.0f\n" ; (x, y)
  1170. Info = "Drill File Info:\n"\
  1171. "\n"\
  1172. " Data Mode : Absolute\n"\
  1173. " Units : 1/10000 Inch\n"\
  1174. "\n"
  1175. [SM1000]
  1176. Type = DrillStation
  1177. Long = "Sieb & Meyer 1000 drill station"
  1178. Init = "%%%%1000\n"
  1179. Reset = "M30\n"
  1180. ResX = 2540
  1181. ResY = 2540
  1182. ;Rack = ""
  1183. Drill = "X%1.0fY%1.0f%s\n" ; (x, y, drill code)
  1184. Info = "Drill File Info:\n"\
  1185. "\n"\
  1186. " Data Mode : Absolute\n"\
  1187. " Units : 1/100 mm\n"\
  1188. "\n"
  1189. [SM3000]
  1190. Type = DrillStation
  1191. Long = "Sieb & Meyer 3000 drill station"
  1192. Init = "%%%%3000\n"
  1193. Reset = "M30\n"
  1194. ResX = 25400
  1195. ResY = 25400
  1196. Divide = 1000 ; makes coordinates MM
  1197. ;Rack = ""
  1198. Drill = "X%1.3fY%1.3f%s\n" ; (x, y, drill code)
  1199. Info = "Drill File Info:\n"\
  1200. "\n"\
  1201. " Data Mode : Absolute\n"\
  1202. " Units : mm\n"\
  1203. "\n"
  1204. [SMS68]
  1205. Type = DrillStation
  1206. Long = "SMS68 drill station"
  1207. Init = ";\n"
  1208. Reset = "TO0;PA0,0;\n"
  1209. ResX = 25400
  1210. ResY = 25400
  1211. ;Rack = ""
  1212. Select = "%s;\n" ; (Drill code)
  1213. Drill = "PA%1.0f,%1.0f;PD;PU;\n" ; (x, y)
  1214. Info = "Drill File Info:\n"\
  1215. "\n"\
  1216. " Data Mode : Absolute\n"\
  1217. " Units : 1/1000 mm\n"\
  1218. "\n"
  1219. [GBRDRL]
  1220. Type = DrillStation
  1221. Long = "Gerber Drill Code"
  1222. Init = "G01*\nX00000Y00000D02*\n"
  1223. Reset = "X00000Y00000D02*\nM02*\n"
  1224. ResX = 1000
  1225. ResY = 1000
  1226. ;Rack = ""
  1227. Select = "%s*\n" ; (Drill code)
  1228. Drill = "X%05.0fY%05.0fD03*\n" ; (x, y)
  1229. Info = "Drill File Info:\n"\
  1230. "\n"\
  1231. " Coordinate Format : 2.3\n"\
  1232. " Coordinate Units : Inch\n"\
  1233. " Data Mode : Absolute\n"\
  1234. " Zero Suppression : None\n"\
  1235. " End Of Block : *\n"\
  1236. "\n"
  1237. [CALCOMP]
  1238. Type = Calcomp
  1239. Long = "CalComp PCI pen plotter"
  1240. Init = "\x08\x0B" \ Init
  1241. "\x09\x01" ; Scaling 1
  1242. Reset = ""
  1243. ResX = 2032
  1244. ResY = 2032
  1245. PenSelect = "\x04%c" ; Pens numbered 1..n
  1246. Sync = "\x02"
  1247. Bias = 0x20
  1248. Radix = 0x40
  1249. Buffer = 256
  1250. Checksum = YES
  1251. [CALCOMPE]
  1252. Type = CalcompE
  1253. Long = "CalComp PCI electrostatic plotter"
  1254. Init = "\x08\x0B" \ Init
  1255. "\x09\x01" ; Scaling 1
  1256. Reset = ""
  1257. ResX = 2032
  1258. ResY = 2032
  1259. Sync = "\x02"
  1260. Bias = 0x20
  1261. Radix = 0x40
  1262. Buffer = 256
  1263. Checksum = YES
  1264. [CALCOMP_M84]
  1265. Type = PenPlotter
  1266. Long = "Calcomp M84 Plotter"
  1267. Init = ""
  1268. Reset = "F\nH\nR0\n"
  1269. Width = 16
  1270. Height = 11
  1271. ResX = 254
  1272. ResY = 254
  1273. PenSelect = "F%u\n"
  1274. Move = "C %d,%d HK\n"
  1275. Draw = "C %d,%d IK\n"
  1276. PenCircleCxCyRxCxCyRx = "C %d,%d HK \n O0 %d,0,360\n"
  1277. PenVelocity = "F10,%d\n"
  1278. ; Device definitions for EAGLE version 7.xx:
  1279. ; Devices for LPT Uni Ulm
  1280. ; Insert Devices in Your EAGLE.DEF File
  1281. ;
  1282. [7_LPTGBRi2.3]
  1283. Type = PhotoPlotter
  1284. Long = "LPT-Photplotter MIVA 1mil EAGLE 7.xx"
  1285. Init = "M00*\nX00000Y00000D02*\n"
  1286. Reset = "X00000Y00000D02*\nM02*\n"
  1287. ResX = 1000
  1288. ResY = 1000
  1289. CorrectX = 1.000
  1290. CorrectY = 1.000
  1291. OffsetX = 0.0000
  1292. OffsetY = 0.0000
  1293. Wheel = "7_lptpho.whl"
  1294. Move = "X%0.5dY%0.5dD02*\n" ; (x, y)
  1295. Draw = "X%0.5dY%0.5dD01*\n" ; (x, y)
  1296. Flash = "X%0.5dY%0.5dD03*\n" ; (x, y)
  1297. Aperture = "%s*\n" ; (Aperture code)
  1298. Units = Inch
  1299. decimals = 3
  1300. Info = "LPT-Gerber LOW-Res IN2.3 Plotfile Info:\n"\
  1301. "\n"\
  1302. " Device : 7_LPTGBRi2.3\n"\
  1303. " Coordinate Format : 2.3\n"\
  1304. " Coordinate Units : Inch\n"\
  1305. " Data Mode : Absolute\n"\
  1306. " Zero Suppression : None\n"\
  1307. " End Of Block : *\n"\
  1308. "\n"
  1309. [7_LPTGBRi2.4]
  1310. Type = PhotoPlotter
  1311. Long = "LPT-Photplotter MIVA 0.1mil EAGLE 7.xx"
  1312. Init = "M00*\nX000000Y000000D02*\n"
  1313. Reset = "X000000Y000000D02*\nM02*\n"
  1314. ResX = 10000
  1315. ResY = 10000
  1316. CorrectX = 1.0000
  1317. CorrectY = 1.0000
  1318. OffsetX = 0.0000
  1319. OffsetY = 0.0000
  1320. Wheel = "7_lptphoH.whl"
  1321. Move = "X%06dY%06dD02*\n" ; (x, y)
  1322. Draw = "X%06dY%06dD01*\n" ; (x, y)
  1323. Flash = "X%06dY%06dD03*\n" ; (x, y)
  1324. Aperture = "%s*\n" ; (Aperture code)
  1325. Units = inch
  1326. decimals = 4
  1327. Info = "LPT-Gerber HIGH-Res IN2.4 Plotfile Info:\n"\
  1328. "\n"\
  1329. " Device : 7_LPTGBRi2.4\n"\
  1330. " Coordinate Format : 2.4\n"\
  1331. " Coordinate Units : Inch\n"\
  1332. " Data Mode : Absolute\n"\
  1333. " Zero Suppression : None\n"\
  1334. " End Of Block : *\n"\
  1335. "\n"
  1336. [7_LPTEXCm3.2]
  1337. Type = DrillStation
  1338. Long = "LPT-Excellon Bohrautomat EAGLE 7.xx"
  1339. Init = "(7_LPT-EAGLE-DrillFile MM3.2 linear Toolmumbers)\nM48\nMETRIC,TZ,000.00\n%%\n"
  1340. Reset = "M27\nM30\n"
  1341. ResX = 2540
  1342. ResY = 2540
  1343. CorrectX = 1.000
  1344. CorrectY = 1.000
  1345. Units = mm
  1346. decimals = 2
  1347. ;Rack = "7_lptdrl.drl"
  1348. Select = "%s\n" ; (Drill code)
  1349. Drill = "X%1.0fY%1.0f\n" ; (x, y)
  1350. Info = "LPT-EXCELLON Drill File MM3.2 linear Toolmumbers Info:\n"\
  1351. "\n"\
  1352. " Device : 7_LPTEXCm3.2\n"\
  1353. " Data Mode : Absolute\n"\
  1354. " Units : 1/100 mm\n"\
  1355. " End Of Block : CR/LF\n"\
  1356. "\n"
  1357. [7_LPTEXCm3.3]
  1358. Type = DrillStation
  1359. Long = "LPT-Excellon Bohrautomat EAGLE 7.xx"
  1360. Init = "(7_LPT-EAGLE-DrillFile MM3.3 linear Toolmumbers)\nM48\nMETRIC,TZ,000.000\n%%\n"
  1361. Reset = "M27\nM30\n"
  1362. ResX = 25400
  1363. ResY = 25400
  1364. CorrectX = 1.000
  1365. CorrectY = 1.000
  1366. Units = mm
  1367. decimals = 3
  1368. ;Rack = "7_lptdrl.drl"
  1369. Select = "%s\n" ; (Drill code)
  1370. Drill = "X%1.0fY%1.0f\n" ; (x, y)
  1371. Info = "LPT-EXCELLON Drill File MM3.3 linear Toolmumbers Info:\n"\
  1372. "\n"\
  1373. " Device : 7_LPTEXCm3.3\n"\
  1374. " Data Mode : Absolute\n"\
  1375. " Units : 1/1000 mm\n"\
  1376. " End Of Block : CR/LF\n"\
  1377. "\n"