Commit 9da39717 authored by jean-pierre charras's avatar jean-pierre charras

Add a python script example in demo folder to create various plot files from a...

Add a python script example in demo folder to create various plot files from a board. Fix also some issues in plot controller helper class.
Important note: from a python script one cannot plot the palge layout, because the page layout template file is not stored in the board file, but it is part of the project.
Because when using a python script, the project is not loaded, the page layout template is not known.
Trying to plot it crashes the script.
parent 665f346a
install( DIRECTORY complex_hierarchy
ecc83 electric flat_hierarchy
kit-dev-coldfire-xilinx_5213 interf_u microwave
pic_programmer pspice "sonde xilinx" test_xil_95108 video
install( DIRECTORY
complex_hierarchy
ecc83 electric
flat_hierarchy
interf_u
kit-dev-coldfire-xilinx_5213
microwave
pic_programmer pspice
python_scripts_examples
"sonde xilinx"
test_pads_inside_pads
test_xil_95108 video
DESTINATION ${KICAD_DEMOS}
COMPONENT resources
)
'''
A python script example to create various plot files from a board:
Fab files
Doc files
Gerber files
Important note:
this python script does not plot frame references.
the reason is it is not yet possible from a python script because plotting
plot frame references needs loading the corresponding page layout file
(.wks file) or the default template.
This info (the page layout template) is not stored in the board, and therefore
not available.
Do not try to change SetPlotFrameRef(False) to SetPlotFrameRef(true)
the result is the pcbnew lib will crash if you try to plot
the unknown frame references template.
'''
import sys
from pcbnew import *
filename=sys.argv[1]
board = LoadBoard(filename)
pctl = PLOT_CONTROLLER(board)
popt = pctl.GetPlotOptions()
popt.SetOutputDirectory("plot/")
# Set some important plot options:
popt.SetPlotFrameRef(False)
popt.SetLineWidth(FromMM(0.35))
popt.SetAutoScale(False)
popt.SetScale(1)
popt.SetMirror(False)
popt.SetUseGerberAttributes(True)
popt.SetExcludeEdgeLayer(False);
popt.SetScale(1)
popt.SetUseAuxOrigin(True)
# This by gerbers only (also the name is truly horrid!)
popt.SetSubtractMaskFromSilk(False)
pctl.SetLayer(F_SilkS)
pctl.OpenPlotfile("Silk", PLOT_FORMAT_PDF, "Assembly guide")
pctl.PlotLayer()
# Once the defaults are set it become pretty easy...
# I have a Turing-complete programming language here: I'll use it...
# param 0 is a string added to the file base name to identify the drawing
# param 1 is the layer ID
plot_plan = [
( "CuTop", F_Cu, "Top layer" ),
( "CuBottom", B_Cu, "Bottom layer" ),
( "PasteBottom", B_Paste, "Paste Bottom" ),
( "PasteTop", F_Paste, "Paste top" ),
( "SilkTop", F_SilkS, "Silk top" ),
( "SilkBottom", B_SilkS, "Silk top" ),
( "MaskBottom", B_Mask, "Mask bottom" ),
( "MaskTop", F_Mask, "Mask top" ),
( "EdgeCuts", Edge_Cuts, "Edges" ),
]
for layer_info in plot_plan:
pctl.SetLayer(layer_info[1])
pctl.OpenPlotfile(layer_info[0], PLOT_FORMAT_GERBER, layer_info[2])
pctl.PlotLayer()
# Our fabricators want two additional gerbers:
# An assembly with no silk trim and all and only the references
# (you'll see that even holes have designators, obviously)
popt.SetSubtractMaskFromSilk(False)
popt.SetPlotReference(True)
popt.SetPlotValue(False)
popt.SetPlotInvisibleText(True)
pctl.SetLayer(F_SilkS)
pctl.OpenPlotfile("AssyTop", PLOT_FORMAT_PDF, "Assembly top")
pctl.PlotLayer()
# And a gerber with only the component outlines (really!)
popt.SetPlotReference(False)
popt.SetPlotInvisibleText(False)
pctl.SetLayer(F_SilkS)
pctl.OpenPlotfile("AssyOutlinesTop", PLOT_FORMAT_PDF, "Assembly outline top")
pctl.PlotLayer()
# The same could be done for the bottom side, if there were components
popt.SetUseAuxOrigin(False)
## For documentation we also want a general layout PDF
## I usually use a shell script to merge the ps files and then distill the result
## Now I can do it with a control file. As a bonus I can have references in a
## different colour, too.
popt.SetPlotReference(True)
popt.SetPlotValue(True)
popt.SetPlotInvisibleText(False)
# Remember that the frame is always in color 0 (BLACK) and should be requested
# before opening the plot
popt.SetPlotFrameRef(False)
pctl.SetLayer(Dwgs_User)
pctl.OpenPlotfile("Layout", PLOT_FORMAT_PDF, "General layout")
pctl.PlotLayer()
# Do the PCB edges in yellow
popt.SetColor(YELLOW)
pctl.SetLayer(Edge_Cuts)
pctl.PlotLayer()
## Comments in, uhmm... green
popt.SetColor(GREEN)
pctl.SetLayer(Cmts_User)
pctl.PlotLayer()
# Bottom mask as lines only, in red
#popt.SetMode(LINE)
popt.SetColor(RED)
pctl.SetLayer(B_Mask)
pctl.PlotLayer()
# Top mask as lines only, in blue
popt.SetColor(BLUE)
pctl.SetLayer(F_Mask)
pctl.PlotLayer()
# Top paste in light blue, filled
popt.SetColor(BLUE)
#popt.SetMode(FILLED)
pctl.SetLayer(F_Paste)
pctl.PlotLayer()
# Top Silk in cyan, filled, references in dark cyan
popt.SetReferenceColor(DARKCYAN)
popt.SetColor(CYAN)
pctl.SetLayer(F_SilkS)
pctl.PlotLayer()
popt.SetTextMode(PLOTTEXTMODE_STROKE)
pctl.SetLayer(F_Mask)
pctl.OpenPlotfile("Assembly", PLOT_FORMAT_SVG, "Master Assembly")
pctl.SetColorMode(True)
# We want *everything*
popt.SetPlotReference(True)
popt.SetPlotValue(True)
popt.SetPlotInvisibleText(True)
# Remember than the DXF driver assigns colours to layers. This means that
# we will be able to turn references on and off simply using their layers
# Also most of the layer are now plotted in 'line' mode, because DXF handles
# fill mode almost like sketch mode (this is to keep compatibility with
# most CAD programs; most of the advanced primitive attributes required are
# handled only by recent autocads...); also the entry level cads (qcad
# and derivatives) simply don't handle polyline widths...
# Here I'm using numbers for colors and layers, I'm too lazy too look them up:P
popt.SetReferenceColor(19)
popt.SetValueColor(21)
popt.SetColor(0)
#popt.SetMode(LINE)
pctl.SetLayer(B_SilkS)
pctl.PlotLayer()
popt.SetColor(14)
pctl.SetLayer(F_SilkS)
pctl.PlotLayer()
popt.SetColor(2)
pctl.SetLayer(B_Mask)
pctl.PlotLayer()
popt.SetColor(4)
pctl.SetLayer(F_Mask)
pctl.PlotLayer()
popt.SetColor(1)
pctl.SetLayer(B_Paste)
pctl.PlotLayer()
popt.SetColor(9)
pctl.SetLayer(F_Paste)
pctl.PlotLayer()
popt.SetColor(3)
pctl.SetLayer(Edge_Cuts)
pctl.PlotLayer()
# Export the copper layers too... exporting one of them in filled mode with
# drill marks will put the marks in the WHITE later (since it tries to blank
# the pads...); these will be obviously great reference points for snap
# and stuff in the cad. A pctl function to only plot them would be
# better anyway...
popt.SetColor(17)
#popt.SetMode(FILLED)
popt.SetDrillMarksType(PCB_PLOT_PARAMS.FULL_DRILL_SHAPE)
pctl.SetLayer(B_Cu)
pctl.PlotLayer()
popt.SetColor(20)
popt.SetDrillMarksType(PCB_PLOT_PARAMS.NO_DRILL_SHAPE)
pctl.SetLayer(F_Cu)
pctl.PlotLayer()
# At the end you have to close the last plot, otherwise you don't know when
# the object will be recycled!
pctl.ClosePlot()
# We have just generated 21 plotfiles with a single script
(kicad_pcb (version 3) (host pcbnew "(2013-01-12 BZR 3902)-testing")
(kicad_pcb (version 4) (host pcbnew "(2015-04-25 BZR 5623)-product")
(general
(links 12)
(no_connects 0)
(area 74.91259 30.97059 111.463666 65.151)
(area 79.121 35.179 111.052429 65.3542)
(thickness 1.6002)
(drawings 0)
(tracks 4)
......@@ -14,21 +14,21 @@
(page A4)
(layers
(15 Dessus signal)
(0 Dessous signal)
(16 B.Adhes user)
(17 F.Adhes user)
(18 B.Paste user)
(19 F.Paste user)
(20 B.SilkS user)
(21 F.SilkS user)
(22 B.Mask user)
(23 F.Mask user)
(24 Dwgs.User user)
(25 Cmts.User user)
(26 Eco1.User user)
(27 Eco2.User user)
(28 Edge.Cuts user)
(0 Dessus signal)
(31 Dessous signal)
(32 B.Adhes user)
(33 F.Adhes user)
(34 B.Paste user)
(35 F.Paste user)
(36 B.SilkS user)
(37 F.SilkS user)
(38 B.Mask user)
(39 F.Mask user)
(40 Dwgs.User user)
(41 Cmts.User user)
(42 Eco1.User user)
(43 Eco2.User user)
(44 Edge.Cuts user)
)
(setup
......@@ -57,12 +57,12 @@
(pad_drill 0.8128)
(pad_to_mask_clearance 0.254)
(aux_axis_origin 0 0)
(visible_elements FFFFFFBF)
(visible_elements 7FFFFFFF)
(pcbplotparams
(layerselection 3178497)
(layerselection 0x00030_80000001)
(usegerberextensions true)
(excludeedgelayer true)
(linewidth 60)
(linewidth 0.150000)
(plotframeref false)
(viasonmask false)
(mode 1)
......@@ -75,7 +75,6 @@
(psa4output false)
(plotreference true)
(plotvalue true)
(plotothertext true)
(plotinvisibletext false)
(padsonsilk false)
(subtractmaskfromsilk false)
......@@ -97,67 +96,47 @@
(via_drill 0.635)
(uvia_dia 0.508)
(uvia_drill 0.127)
(add_net "")
(add_net /NET1)
(add_net /NET2)
)
(module 1pin (layer Dessus) (tedit 4EE506A9) (tstamp 4EE505BA)
(module 1pin (layer Dessus) (tedit 553E7303) (tstamp 4EE505BA)
(at 89.535 45.593)
(descr "module 1 pin (ou trou mecanique de percage)")
(tags DEV)
(path /4EDF7CC5)
(fp_text reference P1 (at 0 -3.048) (layer F.SilkS)
(fp_text reference P1 (at 0 -12) (layer F.SilkS)
(effects (font (size 1.016 1.016) (thickness 0.254)))
)
(fp_text value CONN_1 (at 0 2.794) (layer F.SilkS) hide
(fp_text value CONN_1 (at 0 12) (layer F.SilkS) hide
(effects (font (size 1.016 1.016) (thickness 0.254)))
)
(fp_circle (center 0 0) (end 0 -2.286) (layer F.SilkS) (width 0.381))
(pad 1 smd rect (at 0 0) (size 20.32 20.32)
(layers Dessus F.Paste F.Mask)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at -8.255 -7.62) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at -3.81 -7.62) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at 0 -7.62) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at 3.81 -7.62) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at 8.255 -7.62) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at 8.255 -4.445) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at 3.81 -4.445) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at 0 -4.445) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at -3.81 -4.445) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at -8.255 -4.445) (size 1.524 1.524) (drill 0.762)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(fp_line (start -11 -11) (end 11 -11) (layer F.SilkS) (width 0.15))
(fp_line (start 11 -11) (end 11 11) (layer F.SilkS) (width 0.15))
(fp_line (start 11 11) (end -11 11) (layer F.SilkS) (width 0.15))
(fp_line (start -11 11) (end -11 -11) (layer F.SilkS) (width 0.15))
(pad 1 smd rect (at 0 0) (size 20.32 20.32) (layers Dessus F.Paste F.Mask)
(net 2 /NET2))
(pad 1 thru_hole circle (at -8.255 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at -3.81 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at 0 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at 3.81 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at 8.255 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at 8.255 -4.445) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at 3.81 -4.445) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at 0 -4.445) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at -3.81 -4.445) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
(pad 1 thru_hole circle (at -8.255 -4.445) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
)
(module 1pin (layer Dessus) (tedit 200000) (tstamp 4EE505BC)
......@@ -172,10 +151,8 @@
(effects (font (size 1.016 1.016) (thickness 0.254)))
)
(fp_circle (center 0 0) (end 0 -2.286) (layer F.SilkS) (width 0.381))
(pad 1 thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048)
(layers *.Cu *.Mask F.SilkS)
(net 2 /NET2)
)
(pad 1 thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048) (layers *.Cu *.Mask F.SilkS)
(net 2 /NET2))
)
(module 1pin (layer Dessus) (tedit 200000) (tstamp 4EE505BE)
......@@ -190,10 +167,8 @@
(effects (font (size 1.016 1.016) (thickness 0.254)))
)
(fp_circle (center 0 0) (end 0 -2.286) (layer F.SilkS) (width 0.381))
(pad 1 thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048)
(layers *.Cu *.Mask F.SilkS)
(net 1 /NET1)
)
(pad 1 thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048) (layers *.Cu *.Mask F.SilkS)
(net 1 /NET1))
)
(module 1pin (layer Dessus) (tedit 4EE8A1D1) (tstamp 4EE505C0)
......@@ -208,16 +183,13 @@
(effects (font (size 1.016 1.016) (thickness 0.254)))
)
(fp_circle (center 0 0) (end 0 -2.286) (layer F.SilkS) (width 0.381))
(pad 1 thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048)
(layers *.Cu *.Mask F.SilkS)
(net 1 /NET1)
(die_length 7.62)
)
(pad 1 thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048) (layers *.Cu *.Mask F.SilkS)
(net 1 /NET1) (die_length 7.62))
)
(segment (start 107.061 61.468) (end 87.122 61.468) (width 0.2032) (layer Dessous) (net 1))
(segment (start 97.79 41.148) (end 103.759 41.148) (width 0.2032) (layer Dessous) (net 2))
(segment (start 107.696 45.085) (end 107.696 45.593) (width 0.2032) (layer Dessous) (net 2))
(segment (start 103.759 41.148) (end 107.696 45.085) (width 0.2032) (layer Dessous) (net 2))
(segment (start 107.696 45.085) (end 107.696 45.593) (width 0.2032) (layer Dessous) (net 2))
(segment (start 97.79 41.148) (end 103.759 41.148) (width 0.2032) (layer Dessous) (net 2))
)
PCBNEW-BOARD Version 1 date Птн 29 Янв 2010 18:29:57
# Created by Pcbnew(20091221 SVN-R2173)
$GENERAL
LayerCount 2
Ly 1FFF8001
EnabledLayers 1FFF8001
VisibleLayers 1FFF8001
VisibleElements 00000FFF
Links 0
NoConn 0
Di 0 0 117000 82670
Ndraw 89
Ntrack 0
Nzone 0
LayerThickness 630
Nmodule 0
Nnets 1
$EndGENERAL
$SHEETDESCR
Sheet A4 11700 8267
Title ""
Date "29 jan 2010"
Rev ""
Comp ""
Comment1 ""
Comment2 ""
Comment3 ""
Comment4 ""
$EndSHEETDESCR
$SETUP
InternalUnit 0.000100 INCH
ZoneGridSize 250
Layers 2
Layer[0] Задний signal
Layer[15] Передний signal
TrackWidth 80
TrackClearence 100
ZoneClearence 200
TrackMinWidth 80
DrawSegmWidth 150
EdgeSegmWidth 150
ViaSize 350
ViaDrill 250
ViaMinSize 350
ViaMinDrill 200
MicroViaSize 200
MicroViaDrill 50
MicroViasAllowed 0
MicroViaMinSize 200
MicroViaMinDrill 50
TextPcbWidth 120
TextPcbSize 600 800
EdgeModWidth 150
TextModSize 600 600
TextModWidth 120
PadSize 600 600
PadDrill 320
Pad2MaskClearance 100
AuxiliaryAxisOrg 0 0
$EndSETUP
$EQUIPOT
Na 0 ""
St ~
$EndEQUIPOT
$NCLASS
Name "Default"
Desc "Класс цепей по умолчанию."
Clearance 100
TrackWidth 80
ViaDia 350
ViaDrill 250
uViaDia 200
uViaDrill 50
AddNet ""
$EndNCLASS
$TEXTPCB
Te "ᶠᶡᶢᶣᶤᶥᶦᶧᶨᶩᶪᶫᶬᶭᶮᶯᶰᶱᶲᶳᶴᶵᶶᶷᶸᶹᶺᶻᶼᶽᶾᶿ"
Po 39370 22047 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚᶛᶜᶝᶞᶟ"
Po 39370 20472 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵸᵹᵺᵻᵼᵽᵾᵿ"
Po 39370 18898 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ᵀᵁᵂᵃᵄᵅᵆᵇᵈᵉᵊᵋᵌᵍᵎᵏᵐᵑᵒᵓᵔᵕᵖᵗᵘᵙᵚᵛᵜᵝᵞᵟ"
Po 39370 17323 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᴬᴭᴮᴯᴰᴱᴲᴳᴴᴵᴶᴷᴸᴹᴺᴻᴼᴽᴾᴿ"
Po 39370 15748 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟ"
Po 39370 14173 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣ"
Po 15748 62992 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ῠῡῢΰῤῥῦῧῨῩῪΎῬ῭΅`ῲῳῴῶῷῸΌῺΏῼ´῾"
Po 39370 48819 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "῀῁ῂῃῄῆῇῈΈῊΉῌ῍῎῏ῐῑῒΐῖῗῘῙῚΊ῝῞῟"
Po 39370 47244 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭᾮᾯᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆᾼ᾽ι᾿"
Po 39370 45669 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ᾀᾁᾂᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌᾍᾎᾏᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾞᾟ"
Po 39370 44094 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ὠὡὢὣὤὥὦὧὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώ"
Po 39370 42520 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟ"
Po 39370 40945 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿ"
Po 39370 39370 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛἜἝ"
Po 39370 37795 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹỺỻỼỽỾỿ"
Po 39370 36220 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞở"
Po 39370 34646 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾế"
Po 39370 33071 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẜẝẞẟ"
Po 39370 31496 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿ"
Po 39370 29921 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ṀṁṂṃṄṅṆṇṈṉṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟ"
Po 39370 28346 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿ"
Po 39370 26772 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ḀḁḂḃḄḅḆḇḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟ"
Po 39370 25197 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ"
Po 15748 37796 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟ"
Po 15748 36221 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ"
Po 15748 34646 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟ"
Po 15748 33072 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ"
Po 15748 31497 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ"
Po 15748 29922 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ"
Po 15748 28347 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ"
Po 15748 26772 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ"
Po 15748 25198 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟ"
Po 15748 23623 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "◠◡◢◣◤◥◦◧◨◩◪◫◬◭◮◯◰◱◲◳◴◵◶◷◸◹◺◻◼◽◾◿"
Po 62992 51968 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "◀◁◂◃◄◅◆◇◈◉◊○◌◍◎●◐◑◒◓◔◕◖◗◘◙◚◛◜◝◞◟"
Po 62992 50393 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯▰▱▲△▴▵▶▷▸▹►▻▼▽▾▿"
Po 62992 48819 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "∛~27~=3"
Po 40551 74803 1575 2067 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⏠⏡⏢⏣⏤⏥⏦⏧"
Po 62992 47244 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⏀⏁⏂⏃⏄⏅⏆⏇⏈⏉⏊⏋⏌⏍⏎⏏⏐⏑⏒⏓⏔⏕⏖⏗⏘⏙⏚⏛⏜⏝⏞⏟"
Po 62992 45669 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⎠⎡⎢⎣⎤⎥⎦⎧⎨⎩⎪⎫⎬⎭⎮⎯⎰⎱⎲⎳⎴⎵⎶⎷⎸⎹⎺⎻⎼⎽⎾⎿"
Po 62992 44094 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⎀⎁⎂⎃⎄⎅⎆⎇⎈⎉⎊⎋⎌⎍⎎⎏⎐⎑⎒⎓⎔⎕⎖⎗⎘⎙⎚⎛⎜⎝⎞⎟"
Po 62992 42519 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⍠⍡⍢⍣⍤⍥⍦⍧⍨⍩⍪⍫⍬⍭⍮⍯⍰⍱⍲⍳⍴⍵⍶⍷⍸⍹⍺⍻⍼⍽⍾⍿"
Po 62992 40945 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⍀⍁⍂⍃⍄⍅⍆⍇⍈⍉⍊⍋⍌⍍⍎⍏⍐⍑⍒⍓⍔⍕⍖⍗⍘⍙⍚⍛⍜⍝⍞⍟"
Po 62992 39370 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⌠⌡⌢⌣⌤⌥⌦⌧⌨〈〉⌫⌬⌭⌮⌯⌰⌱⌲⌳⌴⌵⌶⌷⌸⌹⌺⌻⌼⌽⌾⌿"
Po 62992 37795 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⌀⌁⌂⌃⌄⌅⌆⌇⌈⌉⌊⌋⌌⌍⌎⌏⌐⌑⌒⌓⌔⌕⌖⌗⌘⌙⌚⌛⌜⌝⌞⌟"
Po 62992 36220 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿"
Po 62992 34645 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟"
Po 62992 33071 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⊠⊡⊢⊣⊤⊥⊦⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰⊱⊲⊳⊴⊵⊶⊷⊸⊹⊺⊻⊼⊽⊾⊿"
Po 62992 31496 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋⊌⊍⊎⊏⊐⊑⊒⊓⊔⊕⊖⊗⊘⊙⊚⊛⊜⊝⊞⊟"
Po 62992 29921 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿"
Po 62992 28346 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟"
Po 62992 26771 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿"
Po 62992 25197 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟"
Po 62992 23622 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⇠⇡⇢⇣⇤⇥⇦⇧⇨⇩⇪⇫⇬⇭⇮⇯⇰⇱⇲⇳⇴⇵⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿"
Po 62992 22047 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟"
Po 62992 20472 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "↠↡↢↣↤↥↦↧↨↩↪↫↬↭↮↯↰↱↲↳↴↵↶↷↸↹↺↻↼↽↾↿"
Po 62992 18897 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "←↑→↓↔↕↖↗↘↙↚↛↜↝↞↟"
Po 62992 17323 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲₳₴₵"
Po 62992 14173 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₔ"
Po 62992 12598 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "‰‱′″‴‵‶‷‸‹›※‼‽‾‿⁀⁁⁂⁃⁄⁅⁆⁇⁈⁉⁊⁋⁌⁍⁎⁏⁐⁑⁒⁓⁔⁕⁖⁗⁘⁙⁚⁛⁜⁝⁞"
Po 62992 11023 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "‐‑‒–—―‖‗‘’‚‛“”„‟†‡•‣․‥…‧"
Po 62992 9449 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ"
Po 15748 61418 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟ"
Po 15748 59843 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ"
Po 15748 58268 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "Ҁҁ҂҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟ"
Po 15748 56694 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ"
Po 15748 55119 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "абвгдежзийклмнопрстуфхцчшщъыьэюя"
Po 15748 53544 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
Po 15748 51969 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏѐёђѓєѕіїјљњћќѝўџ"
Po 15748 50394 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ"
Po 15748 48820 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟ"
Po 15748 47245 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏ"
Po 15748 45669 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήί"
Po 15748 44095 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ͰͱͲͳʹ͵Ͷͷͺͻͼͽ;΄΅Ά·ΈΉΊΌΎΏ"
Po 15748 42520 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "Сколько 2+2"
Po 18898 72835 600 800 120 0
De 0 0 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ"
Po 15748 22048 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞş"
Po 15748 20473 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿ"
Po 15748 18898 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğ"
Po 15748 17323 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
Po 16142 15748 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß"
Po 15748 14174 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿"
Po 15748 12599 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "`abcdefghijklmnopqrstuvwxyz{|}"
Po 15748 11025 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_"
Po 15748 9450 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te " !@#$%'()*+,-./0123456789:;<=>?"
Po 15748 7875 600 800 120 0
De 21 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "LPC2144"
nl "2+2=x"
Po 28346 72441 600 800 120 0
De 15 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "R18"
Po 24016 74803 600 800 120 0
De 15 1 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "R18"
Po 24016 73228 600 800 120 0
De 0 0 0 Normal
$EndTEXTPCB
$TEXTPCB
Te "TEXT EXAMPLE"
nl "Qu? 2+2=4"
nl "àáâãäåæ"
Po 10630 72835 787 591 79 0
De 21 1 0 Normal
$EndTEXTPCB
$TRACK
$EndTRACK
$ZONE
$EndZONE
$EndBOARD
(kicad_pcb (version 4) (host pcbnew "(2015-04-03 BZR 5570)-product")
(general
(links 0)
(no_connects 0)
(area 9.113522 18.1229 196.183794 193.827146)
(thickness 1.6)
(drawings 89)
(tracks 0)
(zones 0)
(modules 0)
(nets 1)
)
(page A4)
(title_block
(date "29 jan 2010")
)
(layers
(0 F.Cu signal)
(31 B.Cu signal)
(32 B.Adhes user)
(33 F.Adhes user)
(34 B.Paste user)
(35 F.Paste user)
(36 B.SilkS user)
(37 F.SilkS user)
(38 B.Mask user)
(39 F.Mask user)
(40 Dwgs.User user)
(41 Cmts.User user)
(42 Eco1.User user)
(43 Eco2.User user)
(44 Edge.Cuts user)
(45 Margin user)
(46 B.CrtYd user)
(47 F.CrtYd user)
(48 B.Fab user)
(49 F.Fab user)
)
(setup
(last_trace_width 0.2032)
(trace_clearance 0.254)
(zone_clearance 0.508)
(zone_45_only no)
(trace_min 0.2032)
(segment_width 0.381)
(edge_width 0.381)
(via_size 0.889)
(via_drill 0.635)
(via_min_size 0.889)
(via_min_drill 0.508)
(uvia_size 0.508)
(uvia_drill 0.127)
(uvias_allowed no)
(uvia_min_size 0.508)
(uvia_min_drill 0.127)
(pcb_text_width 0.3048)
(pcb_text_size 1.524 2.032)
(mod_edge_width 0.381)
(mod_text_size 1.524 1.524)
(mod_text_width 0.3048)
(pad_size 1.524 1.524)
(pad_drill 0.8128)
(pad_to_mask_clearance 0.254)
(aux_axis_origin 0 0)
(visible_elements FFFFFF7F)
(pcbplotparams
(layerselection 0x00030_80000001)
(usegerberextensions false)
(excludeedgelayer true)
(linewidth 0.100000)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15)
(hpglpenoverlay 2)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(padsonsilk false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory ""))
)
(net 0 "")
(net_class Default "Класс цепей по умолчанию."
(clearance 0.254)
(trace_width 0.2032)
(via_dia 0.889)
(via_drill 0.635)
(uvia_dia 0.508)
(uvia_drill 0.127)
)
(gr_text ᶠᶡᶢᶣᶤᶥᶦᶧᶨᶩᶪᶫᶬᶭᶮᶯᶰᶱᶲᶳᶴᶵᶶᶷᶸᶹᶺᶻᶼᶽᶾᶿ (at 99.9998 55.99938) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚᶛᶜᶝᶞᶟ (at 99.9998 51.99888) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵸᵹᵺᵻᵼᵽᵾᵿ (at 99.9998 48.00092) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ᵀᵁᵂᵃᵄᵅᵆᵇᵈᵉᵊᵋᵌᵍᵎᵏᵐᵑᵒᵓᵔᵕᵖᵗᵘᵙᵚᵛᵜᵝᵞᵟ (at 99.9998 44.00042) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᴬᴭᴮᴯᴰᴱᴲᴳᴴᴵᴶᴷᴸᴹᴺᴻᴼᴽᴾᴿ (at 99.9998 39.99992) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟ (at 99.9998 35.99942) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣ (at 39.99992 159.99968) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ῠῡῢΰῤῥῦῧῨῩῪΎῬ῭΅`ῲῳῴῶῷῸΌῺΏῼ´῾ (at 99.9998 124.00026) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ῀῁ῂῃῄῆῇῈΈῊΉῌ῍῎῏ῐῑῒΐῖῗῘῙῚΊ῝῞῟ (at 99.9998 119.99976) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭᾮᾯᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆᾼ᾽ι᾿ (at 99.9998 115.99926) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ᾀᾁᾂᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌᾍᾎᾏᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾞᾟ (at 99.9998 111.99876) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ὠὡὢὣὤὥὦὧὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώ (at 99.9998 108.0008) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟ (at 99.9998 104.0003) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿ (at 99.9998 99.9998) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛἜἝ (at 99.9998 95.9993) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹỺỻỼỽỾỿ (at 99.9998 91.9988) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞở (at 99.9998 88.00084) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾế (at 99.9998 84.00034) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẜẝẞẟ (at 99.9998 79.99984) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿ (at 99.9998 75.99934) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ṀṁṂṃṄṅṆṇṈṉṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟ (at 99.9998 71.99884) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿ (at 99.9998 68.00088) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ḀḁḂḃḄḅḆḇḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟ (at 99.9998 64.00038) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ (at 39.99992 96.00184) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟ (at 39.99992 92.00134) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ (at 39.99992 88.00084) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟ (at 39.99992 84.00288) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ (at 39.99992 80.00238) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ (at 39.99992 76.00188) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ (at 39.99992 72.00138) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ (at 39.99992 68.00088) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ (at 39.99992 64.00292) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟ (at 39.99992 60.00242) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ◠◡◢◣◤◥◦◧◨◩◪◫◬◭◮◯◰◱◲◳◴◵◶◷◸◹◺◻◼◽◾◿ (at 159.99968 131.99872) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ◀◁◂◃◄◅◆◇◈◉◊○◌◍◎●◐◑◒◓◔◕◖◗◘◙◚◛◜◝◞◟ (at 159.99968 127.99822) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯▰▱▲△▴▵▶▷▸▹►▻▼▽▾▿ (at 159.99968 124.00026) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ∛~27~=3 (at 102.99954 189.99962) (layer F.SilkS)
(effects (font (size 5.25018 4.0005) (thickness 0.3048)))
)
(gr_text ⏠⏡⏢⏣⏤⏥⏦⏧ (at 159.99968 119.99976) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⏀⏁⏂⏃⏄⏅⏆⏇⏈⏉⏊⏋⏌⏍⏎⏏⏐⏑⏒⏓⏔⏕⏖⏗⏘⏙⏚⏛⏜⏝⏞⏟ (at 159.99968 115.99926) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⎠⎡⎢⎣⎤⎥⎦⎧⎨⎩⎪⎫⎬⎭⎮⎯⎰⎱⎲⎳⎴⎵⎶⎷⎸⎹⎺⎻⎼⎽⎾⎿ (at 159.99968 111.99876) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⎀⎁⎂⎃⎄⎅⎆⎇⎈⎉⎊⎋⎌⎍⎎⎏⎐⎑⎒⎓⎔⎕⎖⎗⎘⎙⎚⎛⎜⎝⎞⎟ (at 159.99968 107.99826) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⍠⍡⍢⍣⍤⍥⍦⍧⍨⍩⍪⍫⍬⍭⍮⍯⍰⍱⍲⍳⍴⍵⍶⍷⍸⍹⍺⍻⍼⍽⍾⍿ (at 159.99968 104.0003) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⍀⍁⍂⍃⍄⍅⍆⍇⍈⍉⍊⍋⍌⍍⍎⍏⍐⍑⍒⍓⍔⍕⍖⍗⍘⍙⍚⍛⍜⍝⍞⍟ (at 159.99968 99.9998) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⌠⌡⌢⌣⌤⌥⌦⌧⌨〈〉⌫⌬⌭⌮⌯⌰⌱⌲⌳⌴⌵⌶⌷⌸⌹⌺⌻⌼⌽⌾⌿ (at 159.99968 95.9993) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⌀⌁⌂⌃⌄⌅⌆⌇⌈⌉⌊⌋⌌⌍⌎⌏⌐⌑⌒⌓⌔⌕⌖⌗⌘⌙⌚⌛⌜⌝⌞⌟ (at 159.99968 91.9988) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿ (at 159.99968 87.9983) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟ (at 159.99968 84.00034) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⊠⊡⊢⊣⊤⊥⊦⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰⊱⊲⊳⊴⊵⊶⊷⊸⊹⊺⊻⊼⊽⊾⊿ (at 159.99968 79.99984) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋⊌⊍⊎⊏⊐⊑⊒⊓⊔⊕⊖⊗⊘⊙⊚⊛⊜⊝⊞⊟ (at 159.99968 75.99934) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿ (at 159.99968 71.99884) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟ (at 159.99968 67.99834) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿ (at 159.99968 64.00038) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟ (at 159.99968 59.99988) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⇠⇡⇢⇣⇤⇥⇦⇧⇨⇩⇪⇫⇬⇭⇮⇯⇰⇱⇲⇳⇴⇵⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿ (at 159.99968 55.99938) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟ (at 159.99968 51.99888) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ↠↡↢↣↤↥↦↧↨↩↪↫↬↭↮↯↰↱↲↳↴↵↶↷↸↹↺↻↼↽↾↿ (at 159.99968 47.99838) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ←↑→↓↔↕↖↗↘↙↚↛↜↝↞↟ (at 159.99968 44.00042) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲₳₴₵ (at 159.99968 35.99942) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₔ (at 159.99968 31.99892) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ‰‱′″‴‵‶‷‸‹›※‼‽‾‿⁀⁁⁂⁃⁄⁅⁆⁇⁈⁉⁊⁋⁌⁍⁎⁏⁐⁑⁒⁓⁔⁕⁖⁗⁘⁙⁚⁛⁜⁝⁞ (at 159.99968 27.99842) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ‐‑‒–—―‖‗‘’‚‛“”„‟†‡•‣․‥…‧ (at 159.99968 24.00046) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ (at 39.99992 156.00172) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟ (at 39.99992 152.00122) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ (at 39.99992 148.00072) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text Ҁҁ҂҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟ (at 39.99992 144.00276) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ (at 39.99992 140.00226) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text абвгдежзийклмнопрстуфхцчшщъыьэюя (at 39.99992 136.00176) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ (at 39.99992 132.00126) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏѐёђѓєѕіїјљњћќѝўџ (at 39.99992 128.00076) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ (at 39.99992 124.0028) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟ (at 39.99992 120.0023) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏ (at 39.99992 115.99926) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήί (at 39.99992 112.0013) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ͰͱͲͳʹ͵Ͷͷͺͻͼͽ;΄΅Ά·ΈΉΊΌΎΏ (at 39.99992 108.0008) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text "Сколько 2+2" (at 48.00092 185.0009) (layer B.Cu)
(effects (font (size 2.032 1.524) (thickness 0.3048)) (justify mirror))
)
(gr_text ŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ (at 39.99992 56.00192) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞş (at 39.99992 52.00142) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿ (at 39.99992 48.00092) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğ (at 39.99992 44.00042) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ (at 41.00068 39.99992) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß (at 39.99992 36.00196) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text  ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ (at 39.99992 32.00146) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text `abcdefghijklmnopqrstuvwxyz{|} (at 39.99992 28.0035) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ (at 39.99992 24.003) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text " !@#$%'()*+,-./0123456789:;<=>?" (at 39.99992 20.0025) (layer F.SilkS)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text "LPC2144\n2+2=x" (at 71.99884 184.00014) (layer F.Cu)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text R18 (at 61.00064 189.99962) (layer F.Cu)
(effects (font (size 2.032 1.524) (thickness 0.3048)))
)
(gr_text R18 (at 61.00064 185.99912) (layer B.Cu)
(effects (font (size 2.032 1.524) (thickness 0.3048)) (justify mirror))
)
(gr_text "TEXT EXAMPLE\nQu? 2+2=4\nàáâãäåæ" (at 27.0002 185.0009) (layer F.SilkS)
(effects (font (size 1.50114 1.99898) (thickness 0.20066)))
)
)
......@@ -314,8 +314,10 @@ void BuildPlotFileName( wxFileName* aFilename,
PLOT_CONTROLLER::PLOT_CONTROLLER( BOARD *aBoard )
: m_plotter( NULL ), m_board( aBoard )
{
m_plotter = NULL;
m_board = aBoard;
m_plotLayer = UNDEFINED_LAYER;
}
......@@ -351,14 +353,14 @@ bool PLOT_CONTROLLER::OpenPlotfile( const wxString &aSuffix,
/* Save the current format: sadly some plot routines depends on this
but the main reason is that the StartPlot method uses it to
dispatch the plotter creation */
m_plotOpts.SetFormat( aFormat );
GetPlotOptions().SetFormat( aFormat );
// Ensure that the previous plot is closed
ClosePlot();
// Now compute the full filename for the output and start the plot
// (after ensuring the output directory is OK)
wxString outputDirName = m_plotOpts.GetOutputDirectory() ;
wxString outputDirName = GetPlotOptions().GetOutputDirectory() ;
wxFileName outputDir = wxFileName::DirName( outputDirName );
wxString boardFilename = m_board->GetFileName();
......@@ -367,14 +369,14 @@ bool PLOT_CONTROLLER::OpenPlotfile( const wxString &aSuffix,
wxFileName fn( boardFilename );
BuildPlotFileName( &fn, outputDirName, aSuffix, GetDefaultPlotExtension( aFormat ) );
m_plotter = StartPlotBoard( m_board, &m_plotOpts, UNDEFINED_LAYER, fn.GetFullPath(), aSheetDesc );
m_plotter = StartPlotBoard( m_board, &GetPlotOptions(), ToLAYER_ID( GetLayer() ), fn.GetFullPath(), aSheetDesc );
}
return( m_plotter != NULL );
}
bool PLOT_CONTROLLER::PlotLayer( LAYER_NUM aLayer )
bool PLOT_CONTROLLER::PlotLayer()
{
LOCALE_IO toggle;
......@@ -383,7 +385,7 @@ bool PLOT_CONTROLLER::PlotLayer( LAYER_NUM aLayer )
return false;
// Fully delegated to the parent
PlotOneBoardLayer( m_board, m_plotter, ToLAYER_ID( aLayer ), m_plotOpts );
PlotOneBoardLayer( m_board, m_plotter, ToLAYER_ID( GetLayer() ), GetPlotOptions() );
return true;
}
......
......@@ -34,7 +34,6 @@
class PLOTTER;
class BOARD;
class REPORTER;
/**
......@@ -47,29 +46,51 @@ public:
/** Batch plotter constructor, nothing interesting here */
PLOT_CONTROLLER( BOARD *aBoard );
/** Batch plotter destructor, ensures that the last plot is closed */
/** Batch plotter destructor, ensures that the last plot is closed
*/
~PLOT_CONTROLLER();
PCB_PLOT_PARAMS *AccessPlotOpts() { return &m_plotOpts; }
/**
* Accessor to the plot parameters and options
*/
PCB_PLOT_PARAMS& GetPlotOptions() { return m_plotOptions; }
void SetLayer( LAYER_NUM aLayer ) { m_plotLayer = aLayer; }
LAYER_NUM GetLayer() { return m_plotLayer; }
/**
* @return true if a plotter is initialized and can be used
*/
bool IsPlotOpen() const { return m_plotter != NULL; }
/** Close the current plot, nothing happens if it isn't open */
/** Close the current plot, nothing happens if it isn't open
*/
void ClosePlot();
/** Open a new plotfile; works as a factory for plotter objects
* @param aSuffix is a string added to the base filename (derived from
* the board filename) to identify the plot file
* @param aFormat is the plot file format identifier
* @param aSheetDesc
*/
bool OpenPlotfile( const wxString &aSuffix, PlotFormat aFormat,
const wxString &aSheetDesc );
/** Plot a single layer on the current plotfile */
bool PlotLayer( LAYER_NUM layer );
/** Plot a single layer on the current plotfile
* m_plotLayer is the layer to plot
*/
bool PlotLayer();
void SetColorMode( bool aColorMode );
bool GetColorMode();
private:
/// the layer to plot
LAYER_NUM m_plotLayer;
/// Option bank
PCB_PLOT_PARAMS m_plotOpts;
PCB_PLOT_PARAMS m_plotOptions;
/// This is the plotter object; it starts NULL and become instantiated
/// when a plotfile is requested
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment