From 6e47cf7513cc041e2378477cb72f8c76b673d63a Mon Sep 17 00:00:00 2001 From: Jingyan Ling <jingyanling2018@u.northwestern.edu> Date: Wed, 24 Jul 2019 11:19:25 -0700 Subject: [PATCH] update(redun file included) --- README.md | 55 +- __init___lib_sklib.py | 50 + __pycache__/kicad_panelize.cpython-36.pyc | Bin 0 -> 82731 bytes __pycache__/kicad_python.cpython-36.pyc | Bin 0 -> 1805 bytes __pycache__/pcb_dxf_importer.cpython-36.pyc | Bin 0 -> 1750 bytes __pycache__/pcbnew_temp.cpython-36.pyc | Bin 0 -> 742417 bytes fp-info-cache | 428 + journal_media/autorouter_ignore_cu_layer.png | Bin 0 -> 9697 bytes journal_media/cutoncopper_layer.png | Bin 0 -> 8701 bytes journal_media/dxf_importer_code.png | Bin 0 -> 87346 bytes journal_media/import_script.png | Bin 0 -> 7655 bytes journal_media/manual_dsn.png | Bin 0 -> 12546 bytes kicad_board-front_copper.dxf | 49330 +++++++++++++++++ kicad_board.dsn | 1208 + kicad_board.kicad_pcb | 767 + kicad_board.kicad_pcb-bak | 684 + kicad_board.pro | 33 + kicad_board.rules | 76 + kicad_board.ses | 46 + kicad_python.net | 26 +- kicad_python.py | 90 +- kicad_python_lib_sklib.py | 6 +- layoutload | 13 + pcb_design_test.py | 69 + pcb_dxf_importer.py | 64 + pcbnew_temp.py | 14917 +++++ pcbnew_temp.pyc | Bin 0 -> 775252 bytes project.kicad_pcb | 695 + project.pro | 33 + 29 files changed, 68564 insertions(+), 26 deletions(-) create mode 100644 __init___lib_sklib.py create mode 100644 __pycache__/kicad_panelize.cpython-36.pyc create mode 100644 __pycache__/kicad_python.cpython-36.pyc create mode 100644 __pycache__/pcb_dxf_importer.cpython-36.pyc create mode 100644 __pycache__/pcbnew_temp.cpython-36.pyc create mode 100644 fp-info-cache create mode 100644 journal_media/autorouter_ignore_cu_layer.png create mode 100644 journal_media/cutoncopper_layer.png create mode 100644 journal_media/dxf_importer_code.png create mode 100644 journal_media/import_script.png create mode 100644 journal_media/manual_dsn.png create mode 100644 kicad_board-front_copper.dxf create mode 100644 kicad_board.dsn create mode 100644 kicad_board.kicad_pcb create mode 100644 kicad_board.kicad_pcb-bak create mode 100644 kicad_board.pro create mode 100644 kicad_board.rules create mode 100644 kicad_board.ses create mode 100644 layoutload create mode 100644 pcb_design_test.py create mode 100644 pcb_dxf_importer.py create mode 100644 pcbnew_temp.py create mode 100644 pcbnew_temp.pyc create mode 100644 project.kicad_pcb create mode 100644 project.pro diff --git a/README.md b/README.md index 16aa08f..ec13a1f 100644 --- a/README.md +++ b/README.md @@ -346,4 +346,57 @@ - Use attribute `footprint` to add footprint for such symbol - footprint syntax: 'footprint= libname.pretty: foot_print_name - footprint directory should be under the same directory where `.lib` file is. - - \ No newline at end of file + +### 07/17/2019 + +- Notice that even the drawings cannot be imported onto 'wiring' layer, but can be changed manually to 'wiring' layer after importing onto 'edge.cut' layer + - `Freerouting` does not recognize wires that does not connect to any pins as obstacles. + -  + -  + +- Work on script doing board design + - Create New Board + - Import DXF + - Load Netlist `.net` file + - Place modules + - Export to `.dsn` file + +### 07/18/2019 + +- Research on pcbnew API + - Using package [pykicad](https://github.com/dvc94ch/pykicad) + - Record of Tips: + - Do not add segments, which will route connections + - Different reference name need to be set for `dsn` export + + - Able to add footprint and net list into pcbnew. + - TODO: + - Import dxf as outlines from script + - Export board as `dsn` + +### 07/22/2019 + +- Research on multiple KiCAD Python packages +- [package 3rd party list](https://github.com/xesscorp/kicad-3rd-party-tools/blob/master/README.md#footprint-library-tools) +- None can import `dxf` into `pcbnew` +- To import `dxf` into `pcbnew` automatically: + - Create a python API by myself based on the `c++` code + - Draw lines directly in `pcbnew` by using line information in `dxf` + +- Create a python script serving as Python API by drawing everything on `pcbnew` +- Successfully import `dxf` as outlines from script +-  + +### 07/23/2019 + +- Solving issue: export `.kicad_brd` file to `dsn` file for auto-router +- No known Python API so far. +- [schematic-file-converter](https://github.com/ljmljz/schematic-file-converter) + - Take `.sch` file from `KiCAD` instead of `.kicad_brd` file + +- Official bug report has been requested. Not targeted in current `KiCAD` scripting version + - [bug report](https://bugs.launchpad.net/kicad/+bug/1824668) + +- Potential Solutions: + - 1. Explore existing supported export API, and see if modification can be made based on existing API structure + - 2. Learn `dsn` file specification and python library to generate `dsn` file based on design information \ No newline at end of file diff --git a/__init___lib_sklib.py b/__init___lib_sklib.py new file mode 100644 index 0000000..6a7bf02 --- /dev/null +++ b/__init___lib_sklib.py @@ -0,0 +1,50 @@ +from skidl import Pin, Part, SchLib, SKIDL, TEMPLATE + +SKIDL_lib_version = '0.0.1' + +__init___lib = SchLib(tool=SKIDL).add_parts(*[ + Part(name='NodeMCU_1.0_',dest=TEMPLATE,tool=SKIDL,ref_prefix='U',num_units=1,do_erc=True,footprint='ESP8266:ESP12F-Devkit-V3',pins=[ + Pin(num='1',name='A0(ADC0)',do_erc=True), + Pin(num='10',name='GND',do_erc=True), + Pin(num='11',name='3.3V',func=Pin.PWROUT,do_erc=True), + Pin(num='12',name='EN',do_erc=True), + Pin(num='13',name='RST',do_erc=True), + Pin(num='14',name='GND',func=Pin.PWRIN,do_erc=True), + Pin(num='15',name='VIN',func=Pin.PWRIN,do_erc=True), + Pin(num='16',name='3.3V',func=Pin.PWROUT,do_erc=True), + Pin(num='17',name='GND',func=Pin.PWRIN,do_erc=True), + Pin(num='18',name='TX(GPIO1)',func=Pin.BIDIR,do_erc=True), + Pin(num='19',name='RX(DPIO3)',func=Pin.BIDIR,do_erc=True), + Pin(num='2',name='RSV',do_erc=True), + Pin(num='20',name='D8(GPIO15)',func=Pin.BIDIR,do_erc=True), + Pin(num='21',name='D7(GPIO13)',func=Pin.BIDIR,do_erc=True), + Pin(num='22',name='D6(GPIO12)',func=Pin.BIDIR,do_erc=True), + Pin(num='23',name='D5(GPIO14)',func=Pin.BIDIR,do_erc=True), + Pin(num='24',name='GND',func=Pin.PWRIN,do_erc=True), + Pin(num='25',name='3.3V',func=Pin.PWROUT,do_erc=True), + Pin(num='26',name='D4(GPIO2)',func=Pin.BIDIR,do_erc=True), + Pin(num='27',name='D3(GPIO0)',func=Pin.BIDIR,do_erc=True), + Pin(num='28',name='D2(GPIO4)',func=Pin.BIDIR,do_erc=True), + Pin(num='29',name='D1(GPIO5)',func=Pin.BIDIR,do_erc=True), + Pin(num='3',name='RSV',do_erc=True), + Pin(num='30',name='D0(GPIO16)',func=Pin.BIDIR,do_erc=True), + Pin(num='4',name='SD3(GPIO10)',func=Pin.BIDIR,do_erc=True), + Pin(num='5',name='SD2(GPIO9)',func=Pin.BIDIR,do_erc=True), + Pin(num='6',name='SD1(MOSI)',func=Pin.BIDIR,do_erc=True), + Pin(num='7',name='CMD(CS)',func=Pin.BIDIR,do_erc=True), + Pin(num='8',name='SDO(MISO)',func=Pin.BIDIR,do_erc=True), + Pin(num='9',name='CLK(SCLK)',func=Pin.BIDIR,do_erc=True)]), + Part(name='MPU-9250',dest=TEMPLATE,tool=SKIDL,keywords='connector',ref_prefix='J',num_units=1,fplist=['Connector*:*_1x??_*'],do_erc=True,footprint='ESP8266:mpu-9250',pins=[ + Pin(num='1',name='VCC',func=Pin.PWRIN,do_erc=True), + Pin(num='10',name='FSYNC',func=Pin.PASSIVE,do_erc=True), + Pin(num='2',name='GND',func=Pin.PASSIVE,do_erc=True), + Pin(num='3',name='SCL',func=Pin.PASSIVE,do_erc=True), + Pin(num='4',name='SDA',func=Pin.PASSIVE,do_erc=True), + Pin(num='5',name='EDA',func=Pin.PASSIVE,do_erc=True), + Pin(num='6',name='ECL',func=Pin.PASSIVE,do_erc=True), + Pin(num='7',name='ADO',func=Pin.PASSIVE,do_erc=True), + Pin(num='8',name='INT',func=Pin.PASSIVE,do_erc=True), + Pin(num='9',name='NCS',func=Pin.PASSIVE,do_erc=True)]), + Part(name='1000',dest=TEMPLATE,tool=SKIDL,description='Resistor',keywords='R res resistor',ref_prefix='R',num_units=1,fplist=['R_*'],do_erc=True,footprint='Resistor_SMD:R_0402_1005Metric',pins=[ + Pin(num='1',name='~',func=Pin.PASSIVE,do_erc=True), + Pin(num='2',name='~',func=Pin.PASSIVE,do_erc=True)])]) \ No newline at end of file diff --git a/__pycache__/kicad_panelize.cpython-36.pyc b/__pycache__/kicad_panelize.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bef780cca3e81c3475a1addd79900ff33fc55373 GIT binary patch literal 82731 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≤ik)_M0N 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 literal 0 HcmV?d00001 diff --git a/__pycache__/kicad_python.cpython-36.pyc b/__pycache__/kicad_python.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..064990815d1e5c827abd0cf62fa5ab5edc06bc26 GIT binary patch literal 1805 zcmZ`(OK;mo5Z(t#QL?1EM&d_Nv_*j&bg-Va;}$`YR7!&)wQAT%4hs|un!C1XQ>3z_ zRG4s1$~8YEf2T)Yd-Ao%qKD2dY1wX55<5FHJ3Eh^Z+FmW)PDca`Snj5p+C@_j{^S` zMluE>5JLhB5@LqUOc*gUW%LCSR9Nqjuoi?_AlbqJ$pOh073N4wIt$Dy(q16u3UY*6 zZq}?#FVnL)`fAYLZSU2tAqE=zn%;Z_n5Qt3&w)q;aZwTT9b&YI$Sh%lHz%(q{+XP3 zY2f>MoBs4%fiZ-Uq(D-14ykXUb8>|j7;Bjdq8$nQJ-tHQDm9L%lp4F#xS}d*Vnx*7 z+hFJ1(>6+N<qDm<3uOFO^(+vi)*LhYBJe%ID$kD&_WHZKS$!M}xj%fxd+jdIzAV-4 zsgh}W`5lP8{*T)uIll<f?bm}A&Z{SJoK95`rJ1{b@M`<p{!TaB_}9M4bY>Qq)$4Y< zjPzb+j}B!LBx$Vp(f;Vh{~_;w)9rIG+S!+>3VcQmdo7yVb1$4prJJ5pB~L)zZ`E=; zxd=qaR>R<!C(={?8J~LTS&}>6bSfjktOHM_c||7EJ*Y0PKpr~3ysFCJy<4`Q*Znw( zq@VI>5G8E&R7O&HspOGNLrAqnax0PHN$%=+I?xBCK7o|}df7RPC$e)MM5mWt)EUM8 zY$BsH=_IqsL@Ex4BUQvhIhm=Biv5_&5aK|6Uf3}W;04~=)63lDU>~HM*EKepKoDLf zYj_Q><8|VaY;6gr_Km5JwHbUC47e%<uKorF&;Ynv;J4Ut1UO<i3LN0-oCwQCTj&Zu zMif0kpaIO?(-6>Ef^4D3=q;erNVbvimG)o>YNUd9%wFxcqP3+@OSq+;-qYKn`cZpZ z)c(hw8a-Wlw#ACkl=(w#&Jy4CF{6X|fYH}K0rz4&y4L5ES%daq&d6xzT3<t8b{Rby zJp(fQ8El8cRz*3mlG8DOum+r3(ZtoH3WU+;hr^bo8it<_28_&i7(I=I!9zh-wYBcy z28`qjAc)j3{JNK<iS@sUHwg^r?Hb9}Z~J-|h~t*6F%fwa$$4Jmd=iUUsQEhQZ)RRt ztf)^RfQfe}2aQf;6490FA`*=d7rQG;Yd-#@J%E+}K56h?SUH{g$4jv3!_;2PBla0E z8dwW}5Z90)03`F2nWu(~vxf!Jk7G}Xc8Plb7@RubG?KqD`-fki9gdi7ESPoV&1DOl zL%vgzsYch@hGD8fxMpQ_@UgrOW9ZF8SXS$r=<_d5#~jBkF|IaYbsI*aD{-;Xa<&0C zTzM*xNpU^5%lE8R%`2RX*yr3Jgi$}4t1Z}Kj?-*b`pU8fJQ}=wL1M)kklw9$r<`Sn ba`#Em*zfiIO>}M+fkt7MG{0`vESUcRIJb<g literal 0 HcmV?d00001 diff --git a/__pycache__/pcb_dxf_importer.cpython-36.pyc b/__pycache__/pcb_dxf_importer.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2634d9f2281ccfb60d256d8ede7f58d2a840909e GIT binary patch literal 1750 zcmZvcOK%)S5P<tJuN|)qSwc_(hlmq{kQXJwAcT+w0Sn36SmIzYB5KCd?e$LP<(^r2 z*P1=8x$-~qm-@;ne}NNKJ@I-IWmZ*P+pntry1Jh3?uM@p4_^G`67nzE`Z(B!Ak7m{ zlEg$($#NP~XnD>G9&_6FIk9_0q$AxMBHcBMJ;{D2k$1fp*30&yDjz@HKiK~+d=2}M zNkk2=)3X%++<qHZ2hgJkxF9i;L&+q+p)v2bjveVq|Axe_4CDY>Plj>_T3=Fdw`+n~ zQCGTEdXmCf?1wD_`5C176;w+y+R-)bh+rMbSjN``Y^Q^N!tFR{uX7}M$@NdIp9R^V zbL{L8X78*CoS1+!I*EqHRo8NH9tT<_@_d#n2=r<iheah--qcB|3@@76xOuWv+PGIU z*<NUj#_*H$%nZ(TRR~;Y+_Ngt(gac`R|4Qfu5lWb!`|S)PSGB$(>|&Y)GMNQq51Fm z_@XM*IGdHzWm1lxRq4D?W!sFKc~K}WW+mV#MXrju9_uQtgvwRg>RFoPV{jyJ|66SP z_0j|a*34QVhOm9J2a2#E9a4{aJfM5@`rc;t?aY+oEcmcRv9Rxh0muj<gO+ZiV<yaJ zr4nhLG>r-CDqr??L^b-gXX_P4V0e<}pMcRgpa=`-^>7mf3~d5HJjlrg@DCVMvZ5di zgf9*;oD8yeO`nk$U$2~wW~_5Ep22-f_BVS-))azeZ+hMB-pfa)Wbu9LwLWH#-QmlX z+hTsu&V2~0tR`8XC(g?2IPBx$j+cL)l8!^x@JZ|(|2FyMH6}qc)R>*dy__q(G+t8I zs+5pJi*w^PZK7Mlp~JX3DW{N1xhnhQ@s9K{(7Vfs$hXwufnAl)nl|=fr8Nc?G@6Dg zLuZEO@6gpBLKL5ZG<ao%I{0HF`hY$H{Tbb3*B@<Y-(A}VIs(UoSm-erx6l`#zXg1> z;ubi^Cugxd0Hj}Zco~mZPU~cD=fDaN#9#B3YcImJGoJuJEGcXfhsUQU&yW8=j8R|- zYK&Wd3@Q$%sugtwS>N=m21oh?vTItETe!R)S5UW&u#kcp5)dto9AX~_8U@7acUj$o z@d%_rXg#YD9kGy(-sW_d(i=|rGB}9k^c5IL$H8(0WoS*lg*qkB#y%)Rne(QP-xeI# zzI-SraQThBH4~s8I9#J`VDEiBdIx-c1Jb`9dVl*3Zwd~ZOrii^f0-0Y2onkcb!?ua zJrv?{p5*<A{s6YpBUH%1I<_vhP+@7(_;NKK82vX`v;rFL1WvFQ3~hhp8(#=nr9x<Y r*v7AyFQG8W{_5OvUO+)&Wo>7_Z+jE`&<FV=CSVhQa-cd4X~6ymIjDzm literal 0 HcmV?d00001 diff --git a/__pycache__/pcbnew_temp.cpython-36.pyc b/__pycache__/pcbnew_temp.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..27cc065c01f051dd5ef58ccfc564984b1cca11d8 GIT binary patch literal 742417 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�$0gy`OP6cs8}xWtb=XPK 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 literal 0 HcmV?d00001 diff --git a/fp-info-cache b/fp-info-cache new file mode 100644 index 0000000..28e77b5 --- /dev/null +++ b/fp-info-cache @@ -0,0 +1,428 @@ +94916401199544 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360271_1x01_Horizontal_ScrewM3.0_Boxed +single screw terminal block Metz Connect 360271, block size 9x7.3mm^2, drill diamater 1.5mm, 1 pads, pad diameter 3mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 134, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360271 size 9x7.3mm^2 drill 1.5mm pad 3mm +0 +1 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360272_1x01_Horizontal_ScrewM2.6 +single screw terminal block Metz Connect 360272, block size 4x4mm^2, drill diamater 1.5mm, 2 pads, pad diameter 3mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 131, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360272 size 4x4mm^2 drill 1.5mm pad 3mm +0 +2 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360273_1x01_Horizontal_ScrewM2.6_WireProtection +single screw terminal block Metz Connect 360273, block size 5x4mm^2, drill diamater 1.5mm, 2 pads, pad diameter 3mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 131, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360273 size 5x4mm^2 drill 1.5mm pad 3mm +0 +2 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360291_1x01_Horizontal_ScrewM3.0_Boxed +single screw terminal block Metz Connect 360291, block size 9x7.3mm^2, drill diamater 1.5mm, 2 pads, pad diameter 3mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 133, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360291 size 9x7.3mm^2 drill 1.5mm pad 3mm +0 +2 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360322_1x01_Horizontal_ScrewM3.0_WireProtection +single screw terminal block Metz Connect 360322, block size 6x4mm^2, drill diamater 1.5mm, 2 pads, pad diameter 3mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 133, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360322 size 6x4mm^2 drill 1.5mm pad 3mm +0 +2 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360381_1x01_Horizontal_ScrewM3.0 +single screw terminal block Metz Connect 360381, block size 5x5mm^2, drill diamater 1.5mm, 2 pads, pad diameter 3mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 133, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360381 size 5x5mm^2 drill 1.5mm pad 3mm +0 +2 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360410_1x01_Horizontal_ScrewM3.0 +single screw terminal block Metz Connect 360410, block size 5x5mm^2, drill diamater 1.5mm, 2 pads, pad diameter 3mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 132, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360410 size 5x5mm^2 drill 1.5mm pad 3mm +0 +2 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_360425_1x01_Horizontal_ScrewM4.0_Boxed +single screw terminal block Metz Connect 360425, block size 9x9mm^2, drill diamater 1.6mm, 4 pads, pad diameter 3.2mm, see http://www.metz-connect.com/de/system/files/METZ_CONNECT_U_Contact_Katalog_Anschlusssysteme_fuer_Leiterplatten_DE_31_07_2017_OFF_024803.pdf?language=en page 134, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT single screw terminal block Metz Connect 360425 size 9x9mm^2 drill 1.6mm pad 3.2mm +0 +4 +1 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type011_RT05502HBWC_1x02_P5.00mm_Horizontal +terminal block Metz Connect Type011_RT05502HBWC, 2 pins, pitch 5mm, size 10x10.5mm^2, drill diamater 1.4mm, pad diameter 2.8mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310111_RT055xxHBLC_OFF-022717S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type011_RT05502HBWC pitch 5mm size 10x10.5mm^2 drill 1.4mm pad 2.8mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type011_RT05503HBWC_1x03_P5.00mm_Horizontal +terminal block Metz Connect Type011_RT05503HBWC, 3 pins, pitch 5mm, size 15x10.5mm^2, drill diamater 1.4mm, pad diameter 2.8mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310111_RT055xxHBLC_OFF-022717S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type011_RT05503HBWC pitch 5mm size 15x10.5mm^2 drill 1.4mm pad 2.8mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type011_RT05504HBWC_1x04_P5.00mm_Horizontal +terminal block Metz Connect Type011_RT05504HBWC, 4 pins, pitch 5mm, size 20x10.5mm^2, drill diamater 1.4mm, pad diameter 2.8mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310111_RT055xxHBLC_OFF-022717S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type011_RT05504HBWC pitch 5mm size 20x10.5mm^2 drill 1.4mm pad 2.8mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type011_RT05505HBWC_1x05_P5.00mm_Horizontal +terminal block Metz Connect Type011_RT05505HBWC, 5 pins, pitch 5mm, size 25x10.5mm^2, drill diamater 1.4mm, pad diameter 2.8mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310111_RT055xxHBLC_OFF-022717S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type011_RT05505HBWC pitch 5mm size 25x10.5mm^2 drill 1.4mm pad 2.8mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type011_RT05506HBWC_1x06_P5.00mm_Horizontal +terminal block Metz Connect Type011_RT05506HBWC, 6 pins, pitch 5mm, size 30x10.5mm^2, drill diamater 1.4mm, pad diameter 2.8mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310111_RT055xxHBLC_OFF-022717S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type011_RT05506HBWC pitch 5mm size 30x10.5mm^2 drill 1.4mm pad 2.8mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_Horizontal +terminal block Metz Connect Type055_RT01502HDWU, 2 pins, pitch 5mm, size 10x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310551_RT015xxHDWU_OFF-022723S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type055_RT01502HDWU pitch 5mm size 10x8mm^2 drill 1.3mm pad 2.5mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type055_RT01503HDWU_1x03_P5.00mm_Horizontal +terminal block Metz Connect Type055_RT01503HDWU, 3 pins, pitch 5mm, size 15x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310551_RT015xxHDWU_OFF-022723S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type055_RT01503HDWU pitch 5mm size 15x8mm^2 drill 1.3mm pad 2.5mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type055_RT01504HDWU_1x04_P5.00mm_Horizontal +terminal block Metz Connect Type055_RT01504HDWU, 4 pins, pitch 5mm, size 20x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310551_RT015xxHDWU_OFF-022723S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type055_RT01504HDWU pitch 5mm size 20x8mm^2 drill 1.3mm pad 2.5mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type059_RT06302HBWC_1x02_P3.50mm_Horizontal +terminal block Metz Connect Type059_RT06302HBWC, 2 pins, pitch 3.5mm, size 7x6.5mm^2, drill diamater 1.2mm, pad diameter 2.3mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310591_RT063xxHBWC_OFF-022684T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type059_RT06302HBWC pitch 3.5mm size 7x6.5mm^2 drill 1.2mm pad 2.3mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type059_RT06303HBWC_1x03_P3.50mm_Horizontal +terminal block Metz Connect Type059_RT06303HBWC, 3 pins, pitch 3.5mm, size 10.5x6.5mm^2, drill diamater 1.2mm, pad diameter 2.3mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310591_RT063xxHBWC_OFF-022684T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type059_RT06303HBWC pitch 3.5mm size 10.5x6.5mm^2 drill 1.2mm pad 2.3mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type059_RT06304HBWC_1x04_P3.50mm_Horizontal +terminal block Metz Connect Type059_RT06304HBWC, 4 pins, pitch 3.5mm, size 14x6.5mm^2, drill diamater 1.2mm, pad diameter 2.3mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310591_RT063xxHBWC_OFF-022684T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type059_RT06304HBWC pitch 3.5mm size 14x6.5mm^2 drill 1.2mm pad 2.3mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type059_RT06305HBWC_1x05_P3.50mm_Horizontal +terminal block Metz Connect Type059_RT06305HBWC, 5 pins, pitch 3.5mm, size 17.5x6.5mm^2, drill diamater 1.2mm, pad diameter 2.3mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310591_RT063xxHBWC_OFF-022684T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type059_RT06305HBWC pitch 3.5mm size 17.5x6.5mm^2 drill 1.2mm pad 2.3mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type059_RT06306HBWC_1x06_P3.50mm_Horizontal +terminal block Metz Connect Type059_RT06306HBWC, 6 pins, pitch 3.5mm, size 21x6.5mm^2, drill diamater 1.2mm, pad diameter 2.3mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310591_RT063xxHBWC_OFF-022684T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type059_RT06306HBWC pitch 3.5mm size 21x6.5mm^2 drill 1.2mm pad 2.3mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type067_RT01902HDWC_1x02_P10.00mm_Horizontal +terminal block Metz Connect Type067_RT01902HDWC, 2 pins, pitch 10mm, size 15.8x8.2mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310671_RT019xxHDWC_OFF-023605N.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type067_RT01902HDWC pitch 10mm size 15.8x8.2mm^2 drill 1.3mm pad 2.6mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type067_RT01903HDWC_1x03_P10.00mm_Horizontal +terminal block Metz Connect Type067_RT01903HDWC, 3 pins, pitch 10mm, size 25.8x8.2mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310671_RT019xxHDWC_OFF-023605N.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type067_RT01903HDWC pitch 10mm size 25.8x8.2mm^2 drill 1.3mm pad 2.6mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type067_RT01904HDWC_1x04_P10.00mm_Horizontal +terminal block Metz Connect Type067_RT01904HDWC, 4 pins, pitch 10mm, size 35.8x8.2mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310671_RT019xxHDWC_OFF-023605N.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type067_RT01904HDWC pitch 10mm size 35.8x8.2mm^2 drill 1.3mm pad 2.6mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type067_RT01905HDWC_1x05_P10.00mm_Horizontal +terminal block Metz Connect Type067_RT01905HDWC, 5 pins, pitch 10mm, size 45.8x8.2mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310671_RT019xxHDWC_OFF-023605N.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type067_RT01905HDWC pitch 10mm size 45.8x8.2mm^2 drill 1.3mm pad 2.6mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type073_RT02602HBLU_1x02_P5.08mm_Horizontal +terminal block Metz Connect Type073_RT02602HBLU, 2 pins, pitch 5.08mm, size 10.2x11mm^2, drill diamater 1.4mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310731_RT026xxHBLU_OFF-022792U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type073_RT02602HBLU pitch 5.08mm size 10.2x11mm^2 drill 1.4mm pad 2.6mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type073_RT02603HBLU_1x03_P5.08mm_Horizontal +terminal block Metz Connect Type073_RT02603HBLU, 3 pins, pitch 5.08mm, size 15.2x11mm^2, drill diamater 1.4mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310731_RT026xxHBLU_OFF-022792U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type073_RT02603HBLU pitch 5.08mm size 15.2x11mm^2 drill 1.4mm pad 2.6mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type086_RT03402HBLC_1x02_P3.81mm_Horizontal +terminal block Metz Connect Type086_RT03402HBLC, 2 pins, pitch 3.81mm, size 7.51x7.3mm^2, drill diamater 0.7mm, pad diameter 1.4mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310861_RT034xxHBLC_OFF-026114K.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type086_RT03402HBLC pitch 3.81mm size 7.51x7.3mm^2 drill 0.7mm pad 1.4mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type086_RT03403HBLC_1x03_P3.81mm_Horizontal +terminal block Metz Connect Type086_RT03403HBLC, 3 pins, pitch 3.81mm, size 11.3x7.3mm^2, drill diamater 0.7mm, pad diameter 1.4mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310861_RT034xxHBLC_OFF-026114K.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type086_RT03403HBLC pitch 3.81mm size 11.3x7.3mm^2 drill 0.7mm pad 1.4mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type086_RT03404HBLC_1x04_P3.81mm_Horizontal +terminal block Metz Connect Type086_RT03404HBLC, 4 pins, pitch 3.81mm, size 15.1x7.3mm^2, drill diamater 0.7mm, pad diameter 1.4mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310861_RT034xxHBLC_OFF-026114K.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type086_RT03404HBLC pitch 3.81mm size 15.1x7.3mm^2 drill 0.7mm pad 1.4mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type086_RT03405HBLC_1x05_P3.81mm_Horizontal +terminal block Metz Connect Type086_RT03405HBLC, 5 pins, pitch 3.81mm, size 18.9x7.3mm^2, drill diamater 0.7mm, pad diameter 1.4mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310861_RT034xxHBLC_OFF-026114K.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type086_RT03405HBLC pitch 3.81mm size 18.9x7.3mm^2 drill 0.7mm pad 1.4mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type086_RT03406HBLC_1x06_P3.81mm_Horizontal +terminal block Metz Connect Type086_RT03406HBLC, 6 pins, pitch 3.81mm, size 22.8x7.3mm^2, drill diamater 0.7mm, pad diameter 1.4mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_310861_RT034xxHBLC_OFF-026114K.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type086_RT03406HBLC pitch 3.81mm size 22.8x7.3mm^2 drill 0.7mm pad 1.4mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type094_RT03502HBLU_1x02_P5.00mm_Horizontal +terminal block Metz Connect Type094_RT03502HBLU, 2 pins, pitch 5mm, size 10x8.3mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/ru/system/files/productfiles/Data_sheet_310941_RT035xxHBLU_OFF-022742T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type094_RT03502HBLU pitch 5mm size 10x8.3mm^2 drill 1.3mm pad 2.6mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type094_RT03503HBLU_1x03_P5.00mm_Horizontal +terminal block Metz Connect Type094_RT03503HBLU, 3 pins, pitch 5mm, size 15x8.3mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/ru/system/files/productfiles/Data_sheet_310941_RT035xxHBLU_OFF-022742T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type094_RT03503HBLU pitch 5mm size 15x8.3mm^2 drill 1.3mm pad 2.6mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type094_RT03504HBLU_1x04_P5.00mm_Horizontal +terminal block Metz Connect Type094_RT03504HBLU, 4 pins, pitch 5mm, size 20x8.3mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/ru/system/files/productfiles/Data_sheet_310941_RT035xxHBLU_OFF-022742T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type094_RT03504HBLU pitch 5mm size 20x8.3mm^2 drill 1.3mm pad 2.6mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type094_RT03505HBLU_1x05_P5.00mm_Horizontal +terminal block Metz Connect Type094_RT03505HBLU, 5 pins, pitch 5mm, size 25x8.3mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/ru/system/files/productfiles/Data_sheet_310941_RT035xxHBLU_OFF-022742T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type094_RT03505HBLU pitch 5mm size 25x8.3mm^2 drill 1.3mm pad 2.6mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type094_RT03506HBLU_1x06_P5.00mm_Horizontal +terminal block Metz Connect Type094_RT03506HBLU, 6 pins, pitch 5mm, size 30x8.3mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/ru/system/files/productfiles/Data_sheet_310941_RT035xxHBLU_OFF-022742T.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type094_RT03506HBLU pitch 5mm size 30x8.3mm^2 drill 1.3mm pad 2.6mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type101_RT01602HBWC_1x02_P5.08mm_Horizontal +terminal block Metz Connect Type101_RT01602HBWC, 2 pins, pitch 5.08mm, size 10.2x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311011_RT016xxHBWC_OFF-022771S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type101_RT01602HBWC pitch 5.08mm size 10.2x8mm^2 drill 1.3mm pad 2.5mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type101_RT01603HBWC_1x03_P5.08mm_Horizontal +terminal block Metz Connect Type101_RT01603HBWC, 3 pins, pitch 5.08mm, size 15.2x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311011_RT016xxHBWC_OFF-022771S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type101_RT01603HBWC pitch 5.08mm size 15.2x8mm^2 drill 1.3mm pad 2.5mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal +terminal block Metz Connect Type101_RT01604HBWC, 4 pins, pitch 5.08mm, size 20.3x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311011_RT016xxHBWC_OFF-022771S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type101_RT01604HBWC pitch 5.08mm size 20.3x8mm^2 drill 1.3mm pad 2.5mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type101_RT01605HBWC_1x05_P5.08mm_Horizontal +terminal block Metz Connect Type101_RT01605HBWC, 5 pins, pitch 5.08mm, size 25.4x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311011_RT016xxHBWC_OFF-022771S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type101_RT01605HBWC pitch 5.08mm size 25.4x8mm^2 drill 1.3mm pad 2.5mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type101_RT01606HBWC_1x06_P5.08mm_Horizontal +terminal block Metz Connect Type101_RT01606HBWC, 6 pins, pitch 5.08mm, size 30.5x8mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311011_RT016xxHBWC_OFF-022771S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type101_RT01606HBWC pitch 5.08mm size 30.5x8mm^2 drill 1.3mm pad 2.5mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type171_RT13702HBWC_1x02_P7.50mm_Horizontal +terminal block Metz Connect Type171_RT13702HBWC, 2 pins, pitch 7.5mm, size 15x9mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311711_RT137xxHBWC_OFF-022811Q.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type171_RT13702HBWC pitch 7.5mm size 15x9mm^2 drill 1.3mm pad 2.5mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type171_RT13703HBWC_1x03_P7.50mm_Horizontal +terminal block Metz Connect Type171_RT13703HBWC, 3 pins, pitch 7.5mm, size 22.5x9mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311711_RT137xxHBWC_OFF-022811Q.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type171_RT13703HBWC pitch 7.5mm size 22.5x9mm^2 drill 1.3mm pad 2.5mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type171_RT13704HBWC_1x04_P7.50mm_Horizontal +terminal block Metz Connect Type171_RT13704HBWC, 4 pins, pitch 7.5mm, size 30x9mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311711_RT137xxHBWC_OFF-022811Q.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type171_RT13704HBWC pitch 7.5mm size 30x9mm^2 drill 1.3mm pad 2.5mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type171_RT13705HBWC_1x05_P7.50mm_Horizontal +terminal block Metz Connect Type171_RT13705HBWC, 5 pins, pitch 7.5mm, size 37.5x9mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311711_RT137xxHBWC_OFF-022811Q.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type171_RT13705HBWC pitch 7.5mm size 37.5x9mm^2 drill 1.3mm pad 2.5mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type171_RT13706HBWC_1x06_P7.50mm_Horizontal +terminal block Metz Connect Type171_RT13706HBWC, 6 pins, pitch 7.5mm, size 45x9mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311711_RT137xxHBWC_OFF-022811Q.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type171_RT13706HBWC pitch 7.5mm size 45x9mm^2 drill 1.3mm pad 2.5mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type175_RT02702HBLC_1x02_P7.50mm_Horizontal +terminal block Metz Connect Type175_RT02702HBLC, 2 pins, pitch 7.5mm, size 15x11mm^2, drill diamater 1.4mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311751_RT027xxHBLC_OFF-022814U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type175_RT02702HBLC pitch 7.5mm size 15x11mm^2 drill 1.4mm pad 2.6mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type175_RT02703HBLC_1x03_P7.50mm_Horizontal +terminal block Metz Connect Type175_RT02703HBLC, 3 pins, pitch 7.5mm, size 22.5x11mm^2, drill diamater 1.4mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311751_RT027xxHBLC_OFF-022814U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type175_RT02703HBLC pitch 7.5mm size 22.5x11mm^2 drill 1.4mm pad 2.6mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type175_RT02704HBLC_1x04_P7.50mm_Horizontal +terminal block Metz Connect Type175_RT02704HBLC, 4 pins, pitch 7.5mm, size 30x11mm^2, drill diamater 1.4mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311751_RT027xxHBLC_OFF-022814U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type175_RT02704HBLC pitch 7.5mm size 30x11mm^2 drill 1.4mm pad 2.6mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type175_RT02705HBLC_1x05_P7.50mm_Horizontal +terminal block Metz Connect Type175_RT02705HBLC, 5 pins, pitch 7.5mm, size 37.5x11mm^2, drill diamater 1.4mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311751_RT027xxHBLC_OFF-022814U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type175_RT02705HBLC pitch 7.5mm size 37.5x11mm^2 drill 1.4mm pad 2.6mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type175_RT02706HBLC_1x06_P7.50mm_Horizontal +terminal block Metz Connect Type175_RT02706HBLC, 6 pins, pitch 7.5mm, size 45x11mm^2, drill diamater 1.4mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_311751_RT027xxHBLC_OFF-022814U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type175_RT02706HBLC pitch 7.5mm size 45x11mm^2 drill 1.4mm pad 2.6mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type205_RT04502UBLC_1x02_P5.00mm_45Degree +terminal block Metz Connect Type205_RT04502UBLC, 45Degree (cable under 45degree), 2 pins, pitch 5mm, size 10x12.5mm^2, drill diamater 1.4mm, pad diameter 2.7mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_312051_RT045xxUBLC_OFF-022759T.pdf, script-generated with , script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type205_RT04502UBLC 45Degree pitch 5mm size 10x12.5mm^2 drill 1.4mm pad 2.7mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type205_RT04503UBLC_1x03_P5.00mm_45Degree +terminal block Metz Connect Type205_RT04503UBLC, 45Degree (cable under 45degree), 3 pins, pitch 5mm, size 15x12.5mm^2, drill diamater 1.4mm, pad diameter 2.7mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_312051_RT045xxUBLC_OFF-022759T.pdf, script-generated with , script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type205_RT04503UBLC 45Degree pitch 5mm size 15x12.5mm^2 drill 1.4mm pad 2.7mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type205_RT04504UBLC_1x04_P5.00mm_45Degree +terminal block Metz Connect Type205_RT04504UBLC, 45Degree (cable under 45degree), 4 pins, pitch 5mm, size 20x12.5mm^2, drill diamater 1.4mm, pad diameter 2.7mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_312051_RT045xxUBLC_OFF-022759T.pdf, script-generated with , script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type205_RT04504UBLC 45Degree pitch 5mm size 20x12.5mm^2 drill 1.4mm pad 2.7mm +0 +4 +4 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type205_RT04505UBLC_1x05_P5.00mm_45Degree +terminal block Metz Connect Type205_RT04505UBLC, 45Degree (cable under 45degree), 5 pins, pitch 5mm, size 25x12.5mm^2, drill diamater 1.4mm, pad diameter 2.7mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_312051_RT045xxUBLC_OFF-022759T.pdf, script-generated with , script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type205_RT04505UBLC 45Degree pitch 5mm size 25x12.5mm^2 drill 1.4mm pad 2.7mm +0 +5 +5 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type205_RT04506UBLC_1x06_P5.00mm_45Degree +terminal block Metz Connect Type205_RT04506UBLC, 45Degree (cable under 45degree), 6 pins, pitch 5mm, size 30x12.5mm^2, drill diamater 1.4mm, pad diameter 2.7mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_312051_RT045xxUBLC_OFF-022759T.pdf, script-generated with , script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type205_RT04506UBLC 45Degree pitch 5mm size 30x12.5mm^2 drill 1.4mm pad 2.7mm +0 +6 +6 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type701_RT11L02HGLU_1x02_P6.35mm_Horizontal +terminal block Metz Connect Type701_RT11L02HGLU, 2 pins, pitch 6.35mm, size 12.7x12.5mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_317011_RT11LxxHGLU_OFF-022798U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type701_RT11L02HGLU pitch 6.35mm size 12.7x12.5mm^2 drill 1.3mm pad 2.5mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type701_RT11L03HGLU_1x03_P6.35mm_Horizontal +terminal block Metz Connect Type701_RT11L03HGLU, 3 pins, pitch 6.35mm, size 19x12.5mm^2, drill diamater 1.3mm, pad diameter 2.5mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_317011_RT11LxxHGLU_OFF-022798U.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type701_RT11L03HGLU pitch 6.35mm size 19x12.5mm^2 drill 1.3mm pad 2.5mm +0 +3 +3 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type703_RT10N02HGLU_1x02_P9.52mm_Horizontal +terminal block Metz Connect Type703_RT10N02HGLU, 2 pins, pitch 9.52mm, size 19x12.5mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_317031_RT10NxxHGLU_OFF-022897S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type703_RT10N02HGLU pitch 9.52mm size 19x12.5mm^2 drill 1.3mm pad 2.6mm +0 +2 +2 +TerminalBlock_MetzConnect +TerminalBlock_MetzConnect_Type703_RT10N03HGLU_1x03_P9.52mm_Horizontal +terminal block Metz Connect Type703_RT10N03HGLU, 3 pins, pitch 9.52mm, size 28.6x12.5mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.metz-connect.com/de/system/files/productfiles/Datenblatt_317031_RT10NxxHGLU_OFF-022897S.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_MetzConnect +THT terminal block Metz Connect Type703_RT10N03HGLU pitch 9.52mm size 28.6x12.5mm^2 drill 1.3mm pad 2.6mm +0 +3 +3 diff --git a/journal_media/autorouter_ignore_cu_layer.png b/journal_media/autorouter_ignore_cu_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..8f809d1c456b208dc94ac795377174de939095ff GIT binary patch literal 9697 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 Uyb%0L3j_kcWOuR3-22Y|0Y5I0g8%>k literal 0 HcmV?d00001 diff --git a/journal_media/cutoncopper_layer.png b/journal_media/cutoncopper_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bcb835b5b896c3a951791d7443af7f2e34fc9f GIT binary patch literal 8701 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 literal 0 HcmV?d00001 diff --git a/journal_media/dxf_importer_code.png b/journal_media/dxf_importer_code.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a31a0f8a74847da5fba44a454ce0c6f4fa30a8 GIT binary patch literal 87346 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%0D8KlEw=Q@)(N3 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 literal 0 HcmV?d00001 diff --git a/journal_media/import_script.png b/journal_media/import_script.png new file mode 100644 index 0000000000000000000000000000000000000000..b82dab25207a79c216774bb3c1aaeeb306ba8666 GIT binary patch literal 7655 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 literal 0 HcmV?d00001 diff --git a/journal_media/manual_dsn.png b/journal_media/manual_dsn.png new file mode 100644 index 0000000000000000000000000000000000000000..b81f19b872ddbd74157cd6a4efa9931c356b18f6 GIT binary patch literal 12546 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 literal 0 HcmV?d00001 diff --git a/kicad_board-front_copper.dxf b/kicad_board-front_copper.dxf new file mode 100644 index 0000000..8e078c2 --- /dev/null +++ b/kicad_board-front_copper.dxf @@ -0,0 +1,49330 @@ + 0 +SECTION + 2 +HEADER + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 +1 + 9 +$MEASUREMENT + 70 +0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +LTYPE + 70 +4 + 0 +LTYPE + 5 +40F + 2 +CONTINUOUS + 70 +0 + 3 +Solid line + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +410 + 2 +DASHDOT + 70 +0 + 3 +Dash Dot ____ _ ____ _ + 72 +65 + 73 +4 + 40 +2.0 + 49 +1.25 + 49 +-0.25 + 49 +0.25 + 49 +-0.25 + 0 +LTYPE + 5 +411 + 2 +DASHED + 70 +0 + 3 +Dashed __ __ __ __ __ + 72 +65 + 73 +2 + 40 +0.75 + 49 +0.5 + 49 +-0.25 + 0 +LTYPE + 5 +43B + 2 +DOTTED + 70 +0 + 3 +Dotted . . . . + 72 +65 + 73 +2 + 40 +0.2 + 49 +0.0 + 49 +-0.2 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 70 +4 + 0 +STYLE + 2 +KICAD + 70 +0 + 40 +0 + 41 +1 + 42 +1 + 50 +0 + 71 +0 + 3 +isocp.shx + 0 +STYLE + 2 +KICADB + 70 +0 + 40 +0 + 41 +1 + 42 +1 + 50 +0 + 71 +0 + 3 +isocp.shx + 0 +STYLE + 2 +KICADI + 70 +0 + 40 +0 + 41 +1 + 42 +1 + 50 +15 + 71 +0 + 3 +isocp.shx + 0 +STYLE + 2 +KICADBI + 70 +0 + 40 +0 + 41 +1 + 42 +1 + 50 +15 + 71 +0 + 3 +isocp.shx + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 70 +1 + 0 +LAYER + 2 +BLACK + 70 +0 + 62 +7 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52493 +20 +-1.25255 +11 +6.52502 +21 +-1.25254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52502 +20 +-1.25254 +11 +6.52512 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52512 +20 +-1.25255 +11 +6.52541 +21 +-1.25258 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52541 +20 +-1.25258 +11 +6.52578 +21 +-1.25269 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52578 +20 +-1.25269 +11 +6.52612 +21 +-1.25287 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52612 +20 +-1.25287 +11 +6.52642 +21 +-1.25312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52642 +20 +-1.25312 +11 +6.52667 +21 +-1.25342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52667 +20 +-1.25342 +11 +6.52685 +21 +-1.25376 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52685 +20 +-1.25376 +11 +6.52696 +21 +-1.25413 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52696 +20 +-1.25413 +11 +6.527 +21 +-1.25452 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.527 +20 +-1.25452 +11 +6.52699 +21 +-1.25461 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52699 +20 +-1.25461 +11 +6.52699 +21 +-4.46192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52699 +20 +-4.46192 +11 +6.527 +21 +-4.46202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.527 +20 +-4.46202 +11 +6.52696 +21 +-4.4624 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52696 +20 +-4.4624 +11 +6.52685 +21 +-4.46277 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52685 +20 +-4.46277 +11 +6.52667 +21 +-4.46312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52667 +20 +-4.46312 +11 +6.52642 +21 +-4.46342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52642 +20 +-4.46342 +11 +6.52612 +21 +-4.46366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52612 +20 +-4.46366 +11 +6.52578 +21 +-4.46384 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52578 +20 +-4.46384 +11 +6.52541 +21 +-4.46396 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52541 +20 +-4.46396 +11 +6.52512 +21 +-4.46399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52512 +20 +-4.46399 +11 +6.52502 +21 +-4.464 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52502 +20 +-4.464 +11 +6.52493 +21 +-4.46399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52493 +20 +-4.46399 +11 +5.42462 +21 +-4.46399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42462 +20 +-4.46399 +11 +5.42462 +21 +-4.48088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42462 +20 +-4.48088 +11 +6.32807 +21 +-4.48088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32807 +20 +-4.48088 +11 +6.32817 +21 +-4.48087 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32817 +20 +-4.48087 +11 +6.32826 +21 +-4.48088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32826 +20 +-4.48088 +11 +6.32855 +21 +-4.48091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32855 +20 +-4.48091 +11 +6.32892 +21 +-4.48102 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32892 +20 +-4.48102 +11 +6.32926 +21 +-4.48121 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32926 +20 +-4.48121 +11 +6.32956 +21 +-4.48145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32956 +20 +-4.48145 +11 +6.32981 +21 +-4.48175 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32981 +20 +-4.48175 +11 +6.32999 +21 +-4.48209 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32999 +20 +-4.48209 +11 +6.33011 +21 +-4.48246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33011 +20 +-4.48246 +11 +6.33014 +21 +-4.48285 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33014 +20 +-4.48285 +11 +6.33013 +21 +-4.48295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33013 +20 +-4.48295 +11 +6.33013 +21 +-5.95799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33013 +20 +-5.95799 +11 +6.33014 +21 +-5.95809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33014 +20 +-5.95809 +11 +6.33011 +21 +-5.95848 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33011 +20 +-5.95848 +11 +6.32999 +21 +-5.95885 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32999 +20 +-5.95885 +11 +6.32981 +21 +-5.95919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32981 +20 +-5.95919 +11 +6.32956 +21 +-5.95949 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32956 +20 +-5.95949 +11 +6.32926 +21 +-5.95974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32926 +20 +-5.95974 +11 +6.32892 +21 +-5.95992 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32892 +20 +-5.95992 +11 +6.32855 +21 +-5.96003 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32855 +20 +-5.96003 +11 +6.32826 +21 +-5.96006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32826 +20 +-5.96006 +11 +6.32817 +21 +-5.96007 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32817 +20 +-5.96007 +11 +6.32807 +21 +-5.96006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32807 +20 +-5.96006 +11 +5.93644 +21 +-5.96006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93644 +20 +-5.96006 +11 +5.93644 +21 +-5.97696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93644 +20 +-5.97696 +11 +6.32807 +21 +-5.97696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32807 +20 +-5.97696 +11 +6.32817 +21 +-5.97695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32817 +20 +-5.97695 +11 +6.32826 +21 +-5.97696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32826 +20 +-5.97696 +11 +6.32855 +21 +-5.97698 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32855 +20 +-5.97698 +11 +6.32892 +21 +-5.9771 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32892 +20 +-5.9771 +11 +6.32926 +21 +-5.97728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32926 +20 +-5.97728 +11 +6.32956 +21 +-5.97753 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32956 +20 +-5.97753 +11 +6.32981 +21 +-5.97783 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32981 +20 +-5.97783 +11 +6.32999 +21 +-5.97817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32999 +20 +-5.97817 +11 +6.33011 +21 +-5.97854 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33011 +20 +-5.97854 +11 +6.33014 +21 +-5.97892 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33014 +20 +-5.97892 +11 +6.33013 +21 +-5.97902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33013 +20 +-5.97902 +11 +6.33013 +21 +-8.3202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33013 +20 +-8.3202 +11 +6.33014 +21 +-8.32029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33014 +20 +-8.32029 +11 +6.33011 +21 +-8.32068 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.33011 +20 +-8.32068 +11 +6.32999 +21 +-8.32105 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32999 +20 +-8.32105 +11 +6.32981 +21 +-8.32139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32981 +20 +-8.32139 +11 +6.32956 +21 +-8.32169 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32956 +20 +-8.32169 +11 +6.32926 +21 +-8.32194 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32926 +20 +-8.32194 +11 +6.32892 +21 +-8.32212 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32892 +20 +-8.32212 +11 +6.32855 +21 +-8.32223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32855 +20 +-8.32223 +11 +6.32826 +21 +-8.32226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32826 +20 +-8.32226 +11 +6.32817 +21 +-8.32227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32817 +20 +-8.32227 +11 +6.32807 +21 +-8.32226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.32807 +20 +-8.32226 +11 +5.93644 +21 +-8.32226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93644 +20 +-8.32226 +11 +5.93644 +21 +-8.33916 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93644 +20 +-8.33916 +11 +6.6824 +21 +-8.33916 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.6824 +20 +-8.33916 +11 +6.6825 +21 +-8.33915 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.6825 +20 +-8.33915 +11 +6.68259 +21 +-8.33916 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68259 +20 +-8.33916 +11 +6.68288 +21 +-8.33919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68288 +20 +-8.33919 +11 +6.68325 +21 +-8.3393 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68325 +20 +-8.3393 +11 +6.68359 +21 +-8.33948 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68359 +20 +-8.33948 +11 +6.68389 +21 +-8.33973 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68389 +20 +-8.33973 +11 +6.68414 +21 +-8.34003 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68414 +20 +-8.34003 +11 +6.68432 +21 +-8.34037 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68432 +20 +-8.34037 +11 +6.68444 +21 +-8.34074 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68444 +20 +-8.34074 +11 +6.68447 +21 +-8.34113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68447 +20 +-8.34113 +11 +6.68446 +21 +-8.34122 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68446 +20 +-8.34122 +11 +6.68446 +21 +-9.81625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68446 +20 +-9.81625 +11 +6.68447 +21 +-9.81635 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68447 +20 +-9.81635 +11 +6.68444 +21 +-9.81673 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68444 +20 +-9.81673 +11 +6.68432 +21 +-9.8171 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68432 +20 +-9.8171 +11 +6.68414 +21 +-9.81745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68414 +20 +-9.81745 +11 +6.68389 +21 +-9.81775 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68389 +20 +-9.81775 +11 +6.68359 +21 +-9.81799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68359 +20 +-9.81799 +11 +6.68325 +21 +-9.81817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68325 +20 +-9.81817 +11 +6.68288 +21 +-9.81829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68288 +20 +-9.81829 +11 +6.68259 +21 +-9.81832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68259 +20 +-9.81832 +11 +6.6825 +21 +-9.81832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.6825 +20 +-9.81832 +11 +6.6824 +21 +-9.81832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.6824 +20 +-9.81832 +11 +3.79003 +21 +-9.81832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.79003 +20 +-9.81832 +11 +3.78994 +21 +-9.81832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78994 +20 +-9.81832 +11 +3.78984 +21 +-9.81832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78984 +20 +-9.81832 +11 +3.78955 +21 +-9.81829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78955 +20 +-9.81829 +11 +3.78918 +21 +-9.81817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78918 +20 +-9.81817 +11 +3.78884 +21 +-9.81799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78884 +20 +-9.81799 +11 +3.78854 +21 +-9.81775 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78854 +20 +-9.81775 +11 +3.78829 +21 +-9.81745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78829 +20 +-9.81745 +11 +3.78811 +21 +-9.8171 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78811 +20 +-9.8171 +11 +3.788 +21 +-9.81673 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.788 +20 +-9.81673 +11 +3.78796 +21 +-9.81635 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78796 +20 +-9.81635 +11 +3.78797 +21 +-9.81625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78797 +20 +-9.81625 +11 +3.78797 +21 +-8.34122 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78797 +20 +-8.34122 +11 +3.78796 +21 +-8.34113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78796 +20 +-8.34113 +11 +3.788 +21 +-8.34074 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.788 +20 +-8.34074 +11 +3.78811 +21 +-8.34037 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78811 +20 +-8.34037 +11 +3.78829 +21 +-8.34003 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78829 +20 +-8.34003 +11 +3.78854 +21 +-8.33973 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78854 +20 +-8.33973 +11 +3.78884 +21 +-8.33948 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78884 +20 +-8.33948 +11 +3.78918 +21 +-8.3393 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78918 +20 +-8.3393 +11 +3.78955 +21 +-8.33919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78955 +20 +-8.33919 +11 +3.78984 +21 +-8.33916 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78984 +20 +-8.33916 +11 +3.78994 +21 +-8.33915 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.78994 +20 +-8.33915 +11 +3.79003 +21 +-8.33916 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.79003 +20 +-8.33916 +11 +5.44151 +21 +-8.33916 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44151 +20 +-8.33916 +11 +5.44151 +21 +-8.32226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44151 +20 +-8.32226 +11 +1.4672 +21 +-8.32226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.4672 +20 +-8.32226 +11 +1.4671 +21 +-8.32227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.4671 +20 +-8.32227 +11 +1.46701 +21 +-8.32226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46701 +20 +-8.32226 +11 +1.46672 +21 +-8.32223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46672 +20 +-8.32223 +11 +1.46635 +21 +-8.32212 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46635 +20 +-8.32212 +11 +1.466 +21 +-8.32194 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.466 +20 +-8.32194 +11 +1.4657 +21 +-8.32169 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.4657 +20 +-8.32169 +11 +1.46546 +21 +-8.32139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46546 +20 +-8.32139 +11 +1.46527 +21 +-8.32105 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46527 +20 +-8.32105 +11 +1.46516 +21 +-8.32068 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46516 +20 +-8.32068 +11 +1.46512 +21 +-8.32029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46512 +20 +-8.32029 +11 +1.46513 +21 +-8.3202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46513 +20 +-8.3202 +11 +1.46513 +21 +-5.97902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46513 +20 +-5.97902 +11 +1.46512 +21 +-5.97892 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46512 +20 +-5.97892 +11 +1.46516 +21 +-5.97854 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46516 +20 +-5.97854 +11 +1.46527 +21 +-5.97817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46527 +20 +-5.97817 +11 +1.46546 +21 +-5.97783 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46546 +20 +-5.97783 +11 +1.4657 +21 +-5.97753 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.4657 +20 +-5.97753 +11 +1.466 +21 +-5.97728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.466 +20 +-5.97728 +11 +1.46635 +21 +-5.9771 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46635 +20 +-5.9771 +11 +1.46672 +21 +-5.97698 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46672 +20 +-5.97698 +11 +1.46701 +21 +-5.97696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46701 +20 +-5.97696 +11 +1.4671 +21 +-5.97695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.4671 +20 +-5.97695 +11 +1.4672 +21 +-5.97696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.4672 +20 +-5.97696 +11 +5.44151 +21 +-5.97696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44151 +20 +-5.97696 +11 +5.44151 +21 +-5.96006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44151 +20 +-5.96006 +11 +3.4357 +21 +-5.96006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.4357 +20 +-5.96006 +11 +3.43561 +21 +-5.96007 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43561 +20 +-5.96007 +11 +3.43551 +21 +-5.96006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43551 +20 +-5.96006 +11 +3.43522 +21 +-5.96003 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43522 +20 +-5.96003 +11 +3.43485 +21 +-5.95992 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43485 +20 +-5.95992 +11 +3.43451 +21 +-5.95974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43451 +20 +-5.95974 +11 +3.43421 +21 +-5.95949 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43421 +20 +-5.95949 +11 +3.43396 +21 +-5.95919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43396 +20 +-5.95919 +11 +3.43378 +21 +-5.95885 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43378 +20 +-5.95885 +11 +3.43367 +21 +-5.95848 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43367 +20 +-5.95848 +11 +3.43363 +21 +-5.95809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43363 +20 +-5.95809 +11 +3.43364 +21 +-5.95799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43364 +20 +-5.95799 +11 +3.43364 +21 +-4.48295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43364 +20 +-4.48295 +11 +3.43363 +21 +-4.48285 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43363 +20 +-4.48285 +11 +3.43367 +21 +-4.48246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43367 +20 +-4.48246 +11 +3.43378 +21 +-4.48209 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43378 +20 +-4.48209 +11 +3.43396 +21 +-4.48175 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43396 +20 +-4.48175 +11 +3.43421 +21 +-4.48145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43421 +20 +-4.48145 +11 +3.43451 +21 +-4.48121 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43451 +20 +-4.48121 +11 +3.43485 +21 +-4.48102 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43485 +20 +-4.48102 +11 +3.43522 +21 +-4.48091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43522 +20 +-4.48091 +11 +3.43551 +21 +-4.48088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43551 +20 +-4.48088 +11 +3.43561 +21 +-4.48087 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43561 +20 +-4.48087 +11 +3.4357 +21 +-4.48088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.4357 +20 +-4.48088 +11 +4.69349 +21 +-4.48088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69349 +20 +-4.48088 +11 +4.69349 +21 +-4.46399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69349 +20 +-4.46399 +11 +0.010513 +21 +-4.46399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.010513 +20 +-4.46399 +11 +0.0104167 +21 +-4.464 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0104167 +20 +-4.464 +11 +0.0103203 +21 +-4.46399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0103203 +20 +-4.46399 +11 +0.0100307 +21 +-4.46396 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0100307 +20 +-4.46396 +11 +0.00965972 +21 +-4.46384 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00965972 +20 +-4.46384 +11 +0.00931776 +21 +-4.46366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00931776 +20 +-4.46366 +11 +0.00901799 +21 +-4.46342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00901799 +20 +-4.46342 +11 +0.00877201 +21 +-4.46312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00877201 +20 +-4.46312 +11 +0.00858921 +21 +-4.46277 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00858921 +20 +-4.46277 +11 +0.00847665 +21 +-4.4624 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00847665 +20 +-4.4624 +11 +0.00843866 +21 +-4.46202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00843866 +20 +-4.46202 +11 +0.00844819 +21 +-4.46192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00844819 +20 +-4.46192 +11 +0.00844815 +21 +-1.25461 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00844815 +20 +-1.25461 +11 +0.00843866 +21 +-1.25452 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00843866 +20 +-1.25452 +11 +0.00847665 +21 +-1.25413 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00847665 +20 +-1.25413 +11 +0.00858921 +21 +-1.25376 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00858921 +20 +-1.25376 +11 +0.00877201 +21 +-1.25342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00877201 +20 +-1.25342 +11 +0.00901799 +21 +-1.25312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00901799 +20 +-1.25312 +11 +0.00931776 +21 +-1.25287 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00931776 +20 +-1.25287 +11 +0.00965972 +21 +-1.25269 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.00965972 +20 +-1.25269 +11 +0.0100307 +21 +-1.25258 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0100307 +20 +-1.25258 +11 +0.0103203 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0103203 +20 +-1.25255 +11 +0.0104167 +21 +-1.25254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0104167 +20 +-1.25254 +11 +0.010513 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.010513 +20 +-1.25255 +11 +3.07931 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07931 +20 +-1.25255 +11 +3.07931 +21 +-1.24401 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07931 +20 +-1.24401 +11 +3.07931 +21 +-1.24401 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07931 +20 +-1.24401 +11 +3.07931 +21 +-1.24006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07931 +20 +-1.24006 +11 +3.07931 +21 +-1.24006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07931 +20 +-1.24006 +11 +3.07931 +21 +-0.010515 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07931 +20 +-0.010515 +11 +3.0793 +21 +-0.0104186 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0793 +20 +-0.0104186 +11 +3.07934 +21 +-0.0100327 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07934 +20 +-0.0100327 +11 +3.07945 +21 +-0.00966165 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07945 +20 +-0.00966165 +11 +3.07963 +21 +-0.00931969 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07963 +20 +-0.00931969 +11 +3.07988 +21 +-0.00901992 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.07988 +20 +-0.00901992 +11 +3.08018 +21 +-0.00877394 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08018 +20 +-0.00877394 +11 +3.08052 +21 +-0.00859114 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08052 +20 +-0.00859114 +11 +3.08089 +21 +-0.00847858 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08089 +20 +-0.00847858 +11 +3.08118 +21 +-0.00845008 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08118 +20 +-0.00845008 +11 +3.08128 +21 +-0.00844059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08128 +20 +-0.00844059 +11 +3.08137 +21 +-0.00845008 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08137 +20 +-0.00845008 +11 +5.42255 +21 +-0.00845008 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42255 +20 +-0.00845008 +11 +5.42265 +21 +-0.00844059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42265 +20 +-0.00844059 +11 +5.42274 +21 +-0.00845008 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42274 +20 +-0.00845008 +11 +5.42303 +21 +-0.00847858 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42303 +20 +-0.00847858 +11 +5.42341 +21 +-0.00859114 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42341 +20 +-0.00859114 +11 +5.42375 +21 +-0.00877394 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42375 +20 +-0.00877394 +11 +5.42405 +21 +-0.00901992 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42405 +20 +-0.00901992 +11 +5.42429 +21 +-0.00931969 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42429 +20 +-0.00931969 +11 +5.42448 +21 +-0.00966165 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42448 +20 +-0.00966165 +11 +5.42459 +21 +-0.0100327 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42459 +20 +-0.0100327 +11 +5.42463 +21 +-0.0104186 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42463 +20 +-0.0104186 +11 +5.42462 +21 +-0.010515 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42462 +20 +-0.010515 +11 +5.42462 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42462 +20 +-1.25255 +11 +6.52493 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08325 +20 +-1.25442 +11 +3.08326 +21 +-1.25452 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08326 +20 +-1.25452 +11 +3.08325 +21 +-1.25461 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08325 +20 +-1.25461 +11 +3.08325 +21 +-1.25461 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08325 +20 +-1.25461 +11 +3.08322 +21 +-1.2549 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08322 +20 +-1.2549 +11 +3.08311 +21 +-1.25528 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08311 +20 +-1.25528 +11 +3.08292 +21 +-1.25562 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08292 +20 +-1.25562 +11 +3.08268 +21 +-1.25592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08268 +20 +-1.25592 +11 +3.08238 +21 +-1.25616 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08238 +20 +-1.25616 +11 +3.08204 +21 +-1.25635 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08204 +20 +-1.25635 +11 +3.08166 +21 +-1.25646 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08166 +20 +-1.25646 +11 +3.08128 +21 +-1.2565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08128 +20 +-1.2565 +11 +3.08118 +21 +-1.25649 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08118 +20 +-1.25649 +11 +0.0123852 +21 +-1.25649 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0123852 +20 +-1.25649 +11 +0.0123852 +21 +-4.46005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.0123852 +20 +-4.46005 +11 +4.69536 +21 +-4.46005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69536 +20 +-4.46005 +11 +4.69545 +21 +-4.46004 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69545 +20 +-4.46004 +11 +4.69555 +21 +-4.46005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69555 +20 +-4.46005 +11 +4.69584 +21 +-4.46008 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69584 +20 +-4.46008 +11 +4.69621 +21 +-4.46019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69621 +20 +-4.46019 +11 +4.69655 +21 +-4.46037 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69655 +20 +-4.46037 +11 +4.69685 +21 +-4.46062 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69685 +20 +-4.46062 +11 +4.6971 +21 +-4.46092 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.6971 +20 +-4.46092 +11 +4.69728 +21 +-4.46126 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69728 +20 +-4.46126 +11 +4.69739 +21 +-4.46163 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69739 +20 +-4.46163 +11 +4.69743 +21 +-4.46202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69743 +20 +-4.46202 +11 +4.69742 +21 +-4.46211 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69742 +20 +-4.46211 +11 +4.69742 +21 +-4.48275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69742 +20 +-4.48275 +11 +4.69743 +21 +-4.48285 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69743 +20 +-4.48285 +11 +4.69742 +21 +-4.48295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69742 +20 +-4.48295 +11 +4.69742 +21 +-4.48295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69742 +20 +-4.48295 +11 +4.69739 +21 +-4.48324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69739 +20 +-4.48324 +11 +4.69728 +21 +-4.48361 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69728 +20 +-4.48361 +11 +4.6971 +21 +-4.48395 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.6971 +20 +-4.48395 +11 +4.69685 +21 +-4.48425 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69685 +20 +-4.48425 +11 +4.69655 +21 +-4.4845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69655 +20 +-4.4845 +11 +4.69621 +21 +-4.48468 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69621 +20 +-4.48468 +11 +4.69584 +21 +-4.48479 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69584 +20 +-4.48479 +11 +4.69545 +21 +-4.48483 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69545 +20 +-4.48483 +11 +4.69536 +21 +-4.48482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.69536 +20 +-4.48482 +11 +3.43758 +21 +-4.48482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43758 +20 +-4.48482 +11 +3.43758 +21 +-5.95612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.43758 +20 +-5.95612 +11 +5.44339 +21 +-5.95612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44339 +20 +-5.95612 +11 +5.44348 +21 +-5.95611 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44348 +20 +-5.95611 +11 +5.44358 +21 +-5.95612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44358 +20 +-5.95612 +11 +5.44387 +21 +-5.95615 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44387 +20 +-5.95615 +11 +5.44424 +21 +-5.95626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44424 +20 +-5.95626 +11 +5.44458 +21 +-5.95645 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44458 +20 +-5.95645 +11 +5.44488 +21 +-5.95669 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44488 +20 +-5.95669 +11 +5.44513 +21 +-5.95699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44513 +20 +-5.95699 +11 +5.44531 +21 +-5.95733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44531 +20 +-5.95733 +11 +5.44542 +21 +-5.9577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44542 +20 +-5.9577 +11 +5.44546 +21 +-5.95809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44546 +20 +-5.95809 +11 +5.44545 +21 +-5.95819 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-5.95819 +11 +5.44545 +21 +-5.97883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-5.97883 +11 +5.44546 +21 +-5.97892 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44546 +20 +-5.97892 +11 +5.44545 +21 +-5.97902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-5.97902 +11 +5.44545 +21 +-5.97902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-5.97902 +11 +5.44542 +21 +-5.97931 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44542 +20 +-5.97931 +11 +5.44531 +21 +-5.97968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44531 +20 +-5.97968 +11 +5.44513 +21 +-5.98002 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44513 +20 +-5.98002 +11 +5.44488 +21 +-5.98032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44488 +20 +-5.98032 +11 +5.44458 +21 +-5.98057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44458 +20 +-5.98057 +11 +5.44424 +21 +-5.98075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44424 +20 +-5.98075 +11 +5.44387 +21 +-5.98086 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44387 +20 +-5.98086 +11 +5.44348 +21 +-5.9809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44348 +20 +-5.9809 +11 +5.44339 +21 +-5.98089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44339 +20 +-5.98089 +11 +1.46907 +21 +-5.98089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46907 +20 +-5.98089 +11 +1.46907 +21 +-8.31833 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.46907 +20 +-8.31833 +11 +5.44339 +21 +-8.31833 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44339 +20 +-8.31833 +11 +5.44348 +21 +-8.31832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44348 +20 +-8.31832 +11 +5.44358 +21 +-8.31833 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44358 +20 +-8.31833 +11 +5.44387 +21 +-8.31835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44387 +20 +-8.31835 +11 +5.44424 +21 +-8.31847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44424 +20 +-8.31847 +11 +5.44458 +21 +-8.31865 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44458 +20 +-8.31865 +11 +5.44488 +21 +-8.3189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44488 +20 +-8.3189 +11 +5.44513 +21 +-8.31919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44513 +20 +-8.31919 +11 +5.44531 +21 +-8.31954 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44531 +20 +-8.31954 +11 +5.44542 +21 +-8.31991 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44542 +20 +-8.31991 +11 +5.44546 +21 +-8.32029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44546 +20 +-8.32029 +11 +5.44545 +21 +-8.32039 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-8.32039 +11 +5.44545 +21 +-8.34103 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-8.34103 +11 +5.44546 +21 +-8.34113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44546 +20 +-8.34113 +11 +5.44545 +21 +-8.34122 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-8.34122 +11 +5.44545 +21 +-8.34122 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44545 +20 +-8.34122 +11 +5.44542 +21 +-8.34151 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44542 +20 +-8.34151 +11 +5.44531 +21 +-8.34188 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44531 +20 +-8.34188 +11 +5.44513 +21 +-8.34223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44513 +20 +-8.34223 +11 +5.44488 +21 +-8.34253 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44488 +20 +-8.34253 +11 +5.44458 +21 +-8.34277 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44458 +20 +-8.34277 +11 +5.44424 +21 +-8.34295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44424 +20 +-8.34295 +11 +5.44387 +21 +-8.34307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44387 +20 +-8.34307 +11 +5.44348 +21 +-8.34311 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44348 +20 +-8.34311 +11 +5.44339 +21 +-8.3431 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.44339 +20 +-8.3431 +11 +3.79191 +21 +-8.3431 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.79191 +20 +-8.3431 +11 +3.79191 +21 +-9.81438 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.79191 +20 +-9.81438 +11 +6.68053 +21 +-9.81438 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68053 +20 +-9.81438 +11 +6.68053 +21 +-8.3431 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.68053 +20 +-8.3431 +11 +5.93456 +21 +-8.3431 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93456 +20 +-8.3431 +11 +5.93447 +21 +-8.34311 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93447 +20 +-8.34311 +11 +5.93408 +21 +-8.34307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93408 +20 +-8.34307 +11 +5.93371 +21 +-8.34295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93371 +20 +-8.34295 +11 +5.93337 +21 +-8.34277 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93337 +20 +-8.34277 +11 +5.93307 +21 +-8.34253 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93307 +20 +-8.34253 +11 +5.93282 +21 +-8.34223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93282 +20 +-8.34223 +11 +5.93264 +21 +-8.34188 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93264 +20 +-8.34188 +11 +5.93253 +21 +-8.34151 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93253 +20 +-8.34151 +11 +5.93249 +21 +-8.34113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93249 +20 +-8.34113 +11 +5.9325 +21 +-8.34103 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9325 +20 +-8.34103 +11 +5.9325 +21 +-8.32039 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9325 +20 +-8.32039 +11 +5.93249 +21 +-8.32029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93249 +20 +-8.32029 +11 +5.93253 +21 +-8.31991 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93253 +20 +-8.31991 +11 +5.93264 +21 +-8.31954 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93264 +20 +-8.31954 +11 +5.93282 +21 +-8.31919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93282 +20 +-8.31919 +11 +5.93307 +21 +-8.3189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93307 +20 +-8.3189 +11 +5.93337 +21 +-8.31865 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93337 +20 +-8.31865 +11 +5.93371 +21 +-8.31847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93371 +20 +-8.31847 +11 +5.93408 +21 +-8.31835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93408 +20 +-8.31835 +11 +5.93437 +21 +-8.31833 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93437 +20 +-8.31833 +11 +5.93447 +21 +-8.31832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93447 +20 +-8.31832 +11 +5.93456 +21 +-8.31833 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93456 +20 +-8.31833 +11 +6.3262 +21 +-8.31833 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.3262 +20 +-8.31833 +11 +6.3262 +21 +-5.98089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.3262 +20 +-5.98089 +11 +5.93456 +21 +-5.98089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93456 +20 +-5.98089 +11 +5.93447 +21 +-5.9809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93447 +20 +-5.9809 +11 +5.93408 +21 +-5.98086 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93408 +20 +-5.98086 +11 +5.93371 +21 +-5.98075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93371 +20 +-5.98075 +11 +5.93337 +21 +-5.98057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93337 +20 +-5.98057 +11 +5.93307 +21 +-5.98032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93307 +20 +-5.98032 +11 +5.93282 +21 +-5.98002 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93282 +20 +-5.98002 +11 +5.93264 +21 +-5.97968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93264 +20 +-5.97968 +11 +5.93253 +21 +-5.97931 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93253 +20 +-5.97931 +11 +5.93249 +21 +-5.97892 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93249 +20 +-5.97892 +11 +5.9325 +21 +-5.97883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9325 +20 +-5.97883 +11 +5.9325 +21 +-5.95819 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9325 +20 +-5.95819 +11 +5.93249 +21 +-5.95809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93249 +20 +-5.95809 +11 +5.93253 +21 +-5.9577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93253 +20 +-5.9577 +11 +5.93264 +21 +-5.95733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93264 +20 +-5.95733 +11 +5.93282 +21 +-5.95699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93282 +20 +-5.95699 +11 +5.93307 +21 +-5.95669 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93307 +20 +-5.95669 +11 +5.93337 +21 +-5.95645 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93337 +20 +-5.95645 +11 +5.93371 +21 +-5.95626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93371 +20 +-5.95626 +11 +5.93408 +21 +-5.95615 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93408 +20 +-5.95615 +11 +5.93437 +21 +-5.95612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93437 +20 +-5.95612 +11 +5.93447 +21 +-5.95611 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93447 +20 +-5.95611 +11 +5.93456 +21 +-5.95612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.93456 +20 +-5.95612 +11 +6.3262 +21 +-5.95612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.3262 +20 +-5.95612 +11 +6.3262 +21 +-4.48482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.3262 +20 +-4.48482 +11 +5.42274 +21 +-4.48482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42274 +20 +-4.48482 +11 +5.42265 +21 +-4.48483 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42265 +20 +-4.48483 +11 +5.42226 +21 +-4.48479 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42226 +20 +-4.48479 +11 +5.42189 +21 +-4.48468 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42189 +20 +-4.48468 +11 +5.42155 +21 +-4.4845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42155 +20 +-4.4845 +11 +5.42125 +21 +-4.48425 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42125 +20 +-4.48425 +11 +5.421 +21 +-4.48395 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.421 +20 +-4.48395 +11 +5.42082 +21 +-4.48361 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42082 +20 +-4.48361 +11 +5.42071 +21 +-4.48324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42071 +20 +-4.48324 +11 +5.42067 +21 +-4.48285 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42067 +20 +-4.48285 +11 +5.42068 +21 +-4.48275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-4.48275 +11 +5.42068 +21 +-4.46211 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-4.46211 +11 +5.42067 +21 +-4.46202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42067 +20 +-4.46202 +11 +5.42071 +21 +-4.46163 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42071 +20 +-4.46163 +11 +5.42082 +21 +-4.46126 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42082 +20 +-4.46126 +11 +5.421 +21 +-4.46092 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.421 +20 +-4.46092 +11 +5.42125 +21 +-4.46062 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42125 +20 +-4.46062 +11 +5.42155 +21 +-4.46037 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42155 +20 +-4.46037 +11 +5.42189 +21 +-4.46019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42189 +20 +-4.46019 +11 +5.42226 +21 +-4.46008 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42226 +20 +-4.46008 +11 +5.42255 +21 +-4.46005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42255 +20 +-4.46005 +11 +5.42265 +21 +-4.46004 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42265 +20 +-4.46004 +11 +5.42274 +21 +-4.46005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42274 +20 +-4.46005 +11 +6.52306 +21 +-4.46005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52306 +20 +-4.46005 +11 +6.52306 +21 +-1.25649 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.52306 +20 +-1.25649 +11 +5.42274 +21 +-1.25649 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42274 +20 +-1.25649 +11 +5.42265 +21 +-1.2565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42265 +20 +-1.2565 +11 +5.42226 +21 +-1.25646 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42226 +20 +-1.25646 +11 +5.42189 +21 +-1.25635 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42189 +20 +-1.25635 +11 +5.42155 +21 +-1.25616 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42155 +20 +-1.25616 +11 +5.42125 +21 +-1.25592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42125 +20 +-1.25592 +11 +5.421 +21 +-1.25562 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.421 +20 +-1.25562 +11 +5.42082 +21 +-1.25528 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42082 +20 +-1.25528 +11 +5.42071 +21 +-1.2549 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42071 +20 +-1.2549 +11 +5.42067 +21 +-1.25452 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42067 +20 +-1.25452 +11 +5.42068 +21 +-1.25442 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.25442 +11 +5.42068 +21 +-1.2442 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.2442 +11 +5.42068 +21 +-1.2442 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.2442 +11 +5.42068 +21 +-1.24025 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.24025 +11 +5.42068 +21 +-1.24025 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.24025 +11 +5.42068 +21 +-1.23378 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.23378 +11 +5.42068 +21 +-1.23378 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.23378 +11 +5.42068 +21 +-1.22984 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.22984 +11 +5.42068 +21 +-1.22983 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-1.22983 +11 +5.42068 +21 +-0.0123871 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.42068 +20 +-0.0123871 +11 +3.08325 +21 +-0.0123871 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.08325 +20 +-0.0123871 +11 +3.08325 +21 +-1.25442 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91642 +20 +-8.73286 +11 +5.91671 +21 +-8.73288 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91671 +20 +-8.73288 +11 +5.91708 +21 +-8.733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91708 +20 +-8.733 +11 +5.91742 +21 +-8.73318 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91742 +20 +-8.73318 +11 +5.91772 +21 +-8.73343 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91772 +20 +-8.73343 +11 +5.91797 +21 +-8.73373 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91797 +20 +-8.73373 +11 +5.91815 +21 +-8.73407 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91815 +20 +-8.73407 +11 +5.91826 +21 +-8.73444 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91826 +20 +-8.73444 +11 +5.9183 +21 +-8.73482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9183 +20 +-8.73482 +11 +5.91829 +21 +-8.73492 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91829 +20 +-8.73492 +11 +5.91829 +21 +-9.61941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91829 +20 +-9.61941 +11 +5.9183 +21 +-9.61951 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9183 +20 +-9.61951 +11 +5.91826 +21 +-9.61989 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91826 +20 +-9.61989 +11 +5.91815 +21 +-9.62027 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91815 +20 +-9.62027 +11 +5.91797 +21 +-9.62061 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91797 +20 +-9.62061 +11 +5.91772 +21 +-9.62091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91772 +20 +-9.62091 +11 +5.91742 +21 +-9.62115 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91742 +20 +-9.62115 +11 +5.91708 +21 +-9.62134 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91708 +20 +-9.62134 +11 +5.91671 +21 +-9.62145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91671 +20 +-9.62145 +11 +5.91642 +21 +-9.62148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91642 +20 +-9.62148 +11 +5.91632 +21 +-9.62149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91632 +20 +-9.62149 +11 +5.91622 +21 +-9.62148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91622 +20 +-9.62148 +11 +5.46173 +21 +-9.62148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46173 +20 +-9.62148 +11 +5.46163 +21 +-9.62149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46163 +20 +-9.62149 +11 +5.46153 +21 +-9.62148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46153 +20 +-9.62148 +11 +5.46124 +21 +-9.62145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46124 +20 +-9.62145 +11 +5.46087 +21 +-9.62134 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46087 +20 +-9.62134 +11 +5.46053 +21 +-9.62115 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46053 +20 +-9.62115 +11 +5.46023 +21 +-9.62091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46023 +20 +-9.62091 +11 +5.45998 +21 +-9.62061 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45998 +20 +-9.62061 +11 +5.4598 +21 +-9.62027 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4598 +20 +-9.62027 +11 +5.45969 +21 +-9.61989 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45969 +20 +-9.61989 +11 +5.45965 +21 +-9.61951 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45965 +20 +-9.61951 +11 +5.45966 +21 +-9.61941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45966 +20 +-9.61941 +11 +5.45966 +21 +-8.73492 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45966 +20 +-8.73492 +11 +5.45965 +21 +-8.73482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45965 +20 +-8.73482 +11 +5.45969 +21 +-8.73444 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45969 +20 +-8.73444 +11 +5.4598 +21 +-8.73407 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4598 +20 +-8.73407 +11 +5.45998 +21 +-8.73373 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45998 +20 +-8.73373 +11 +5.46023 +21 +-8.73343 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46023 +20 +-8.73343 +11 +5.46053 +21 +-8.73318 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46053 +20 +-8.73318 +11 +5.46087 +21 +-8.733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46087 +20 +-8.733 +11 +5.46124 +21 +-8.73288 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46124 +20 +-8.73288 +11 +5.46153 +21 +-8.73286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46153 +20 +-8.73286 +11 +5.46163 +21 +-8.73285 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46163 +20 +-8.73285 +11 +5.46173 +21 +-8.73286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46173 +20 +-8.73286 +11 +5.91622 +21 +-8.73286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91622 +20 +-8.73286 +11 +5.91632 +21 +-8.73285 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91632 +20 +-8.73285 +11 +5.91642 +21 +-8.73286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4636 +20 +-8.73679 +11 +5.4636 +21 +-9.61754 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4636 +20 +-9.61754 +11 +5.91435 +21 +-9.61754 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91435 +20 +-9.61754 +11 +5.91435 +21 +-8.73679 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91435 +20 +-8.73679 +11 +5.4636 +21 +-8.73679 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86678 +20 +-9.55192 +11 +3.86643 +21 +-9.55174 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86643 +20 +-9.55174 +11 +3.86613 +21 +-9.55149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86613 +20 +-9.55149 +11 +3.86597 +21 +-9.55128 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86597 +20 +-9.55128 +11 +3.86589 +21 +-9.55119 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86589 +20 +-9.55119 +11 +3.86571 +21 +-9.55085 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86571 +20 +-9.55085 +11 +3.86571 +21 +-9.55085 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86571 +20 +-9.55085 +11 +3.86559 +21 +-9.55048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86559 +20 +-9.55048 +11 +3.86556 +21 +-9.55019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.55019 +11 +3.86556 +21 +-9.55019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.55019 +11 +3.86556 +21 +-9.55009 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.55009 +11 +3.86556 +21 +-9.54999 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.54999 +11 +3.86556 +21 +-9.32818 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.32818 +11 +3.86556 +21 +-9.32818 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.32818 +11 +3.86556 +21 +-9.31777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.31777 +11 +3.86556 +21 +-9.31767 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-9.31767 +11 +3.86559 +21 +-9.31728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86559 +20 +-9.31728 +11 +3.86571 +21 +-9.31691 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86571 +20 +-9.31691 +11 +3.86589 +21 +-9.31657 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86589 +20 +-9.31657 +11 +3.86613 +21 +-9.31627 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86613 +20 +-9.31627 +11 +3.86643 +21 +-9.31602 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86643 +20 +-9.31602 +11 +3.86678 +21 +-9.31584 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86678 +20 +-9.31584 +11 +3.86715 +21 +-9.31573 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86715 +20 +-9.31573 +11 +3.86744 +21 +-9.3157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86744 +20 +-9.3157 +11 +3.86753 +21 +-9.31569 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86753 +20 +-9.31569 +11 +3.86763 +21 +-9.3157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86763 +20 +-9.3157 +11 +3.88827 +21 +-9.3157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88827 +20 +-9.3157 +11 +3.88837 +21 +-9.31569 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88837 +20 +-9.31569 +11 +3.88846 +21 +-9.3157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88846 +20 +-9.3157 +11 +3.88875 +21 +-9.31573 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88875 +20 +-9.31573 +11 +3.88912 +21 +-9.31584 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88912 +20 +-9.31584 +11 +3.88947 +21 +-9.31602 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88947 +20 +-9.31602 +11 +3.88977 +21 +-9.31627 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88977 +20 +-9.31627 +11 +3.89001 +21 +-9.31657 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89001 +20 +-9.31657 +11 +3.89019 +21 +-9.31691 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89019 +20 +-9.31691 +11 +3.89031 +21 +-9.31728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89031 +20 +-9.31728 +11 +3.89034 +21 +-9.31767 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-9.31767 +11 +3.89034 +21 +-9.31777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-9.31777 +11 +3.89034 +21 +-9.49503 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-9.49503 +11 +4.06242 +21 +-9.32296 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06242 +20 +-9.32296 +11 +4.06242 +21 +-8.83452 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06242 +20 +-8.83452 +11 +3.89034 +21 +-8.66245 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-8.66245 +11 +3.89034 +21 +-8.83971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-8.83971 +11 +3.89034 +21 +-8.8398 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-8.8398 +11 +3.89034 +21 +-8.8399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-8.8399 +11 +3.89034 +21 +-8.8399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89034 +20 +-8.8399 +11 +3.89031 +21 +-8.84019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89031 +20 +-8.84019 +11 +3.89019 +21 +-8.84056 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89019 +20 +-8.84056 +11 +3.89001 +21 +-8.8409 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.89001 +20 +-8.8409 +11 +3.88977 +21 +-8.8412 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88977 +20 +-8.8412 +11 +3.88947 +21 +-8.84145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88947 +20 +-8.84145 +11 +3.88912 +21 +-8.84163 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88912 +20 +-8.84163 +11 +3.88875 +21 +-8.84174 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88875 +20 +-8.84174 +11 +3.88837 +21 +-8.84178 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88837 +20 +-8.84178 +11 +3.88827 +21 +-8.84177 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88827 +20 +-8.84177 +11 +3.86763 +21 +-8.84177 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86763 +20 +-8.84177 +11 +3.86753 +21 +-8.84178 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86753 +20 +-8.84178 +11 +3.86715 +21 +-8.84174 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86715 +20 +-8.84174 +11 +3.86678 +21 +-8.84163 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86678 +20 +-8.84163 +11 +3.86643 +21 +-8.84145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86643 +20 +-8.84145 +11 +3.86613 +21 +-8.8412 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86613 +20 +-8.8412 +11 +3.86589 +21 +-8.8409 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86589 +20 +-8.8409 +11 +3.86571 +21 +-8.84056 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86571 +20 +-8.84056 +11 +3.86559 +21 +-8.84019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86559 +20 +-8.84019 +11 +3.86556 +21 +-8.8398 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-8.8398 +11 +3.86556 +21 +-8.83971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-8.83971 +11 +3.86556 +21 +-8.82948 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-8.82948 +11 +3.86556 +21 +-8.82948 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-8.82948 +11 +3.86556 +21 +-8.6075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-8.6075 +11 +3.86556 +21 +-8.6074 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86556 +20 +-8.6074 +11 +3.86559 +21 +-8.60702 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86559 +20 +-8.60702 +11 +3.86559 +21 +-8.60702 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86559 +20 +-8.60702 +11 +3.86571 +21 +-8.60665 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86571 +20 +-8.60665 +11 +3.86572 +21 +-8.60662 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86572 +20 +-8.60662 +11 +3.86589 +21 +-8.6063 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86589 +20 +-8.6063 +11 +3.86613 +21 +-8.606 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86613 +20 +-8.606 +11 +3.86643 +21 +-8.60576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86643 +20 +-8.60576 +11 +3.86678 +21 +-8.60558 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86678 +20 +-8.60558 +11 +3.86678 +21 +-8.60558 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86678 +20 +-8.60558 +11 +3.86678 +21 +-8.60558 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86678 +20 +-8.60558 +11 +3.86715 +21 +-8.60546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86715 +20 +-8.60546 +11 +3.86749 +21 +-8.60543 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86749 +20 +-8.60543 +11 +3.86753 +21 +-8.60543 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86753 +20 +-8.60543 +11 +3.86753 +21 +-8.60543 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86753 +20 +-8.60543 +11 +3.86792 +21 +-8.60546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86792 +20 +-8.60546 +11 +3.86829 +21 +-8.60558 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86829 +20 +-8.60558 +11 +3.86863 +21 +-8.60576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86863 +20 +-8.60576 +11 +3.86893 +21 +-8.606 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86893 +20 +-8.606 +11 +3.86899 +21 +-8.60608 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86899 +20 +-8.60608 +11 +4.07994 +21 +-8.817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07994 +20 +-8.817 +11 +4.08513 +21 +-8.817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08513 +20 +-8.817 +11 +4.08523 +21 +-8.81699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08523 +20 +-8.81699 +11 +4.08532 +21 +-8.817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08532 +20 +-8.817 +11 +4.08561 +21 +-8.81703 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08561 +20 +-8.81703 +11 +4.08598 +21 +-8.81714 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08598 +20 +-8.81714 +11 +4.08632 +21 +-8.81733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08632 +20 +-8.81733 +11 +4.08662 +21 +-8.81757 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08662 +20 +-8.81757 +11 +4.08687 +21 +-8.81787 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08687 +20 +-8.81787 +11 +4.08705 +21 +-8.81821 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08705 +20 +-8.81821 +11 +4.08717 +21 +-8.81859 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08717 +20 +-8.81859 +11 +4.0872 +21 +-8.81897 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0872 +20 +-8.81897 +11 +4.08719 +21 +-8.81907 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08719 +20 +-8.81907 +11 +4.08719 +21 +-8.82426 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08719 +20 +-8.82426 +11 +4.09086 +21 +-8.82793 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09086 +20 +-8.82793 +11 +4.09094 +21 +-8.82799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09094 +20 +-8.82799 +11 +4.091 +21 +-8.82806 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-8.82806 +11 +4.091 +21 +-8.82806 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-8.82806 +11 +4.09118 +21 +-8.82829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09118 +20 +-8.82829 +11 +4.09137 +21 +-8.82863 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09137 +20 +-8.82863 +11 +4.09144 +21 +-8.82888 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09144 +20 +-8.82888 +11 +4.09148 +21 +-8.829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09148 +20 +-8.829 +11 +4.09152 +21 +-8.82939 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09152 +20 +-8.82939 +11 +4.09148 +21 +-8.82977 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09148 +20 +-8.82977 +11 +4.09137 +21 +-8.83014 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09137 +20 +-8.83014 +11 +4.09118 +21 +-8.83049 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09118 +20 +-8.83049 +11 +4.091 +21 +-8.83071 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-8.83071 +11 +4.091 +21 +-8.83071 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-8.83071 +11 +4.09094 +21 +-8.83079 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09094 +20 +-8.83079 +11 +4.09086 +21 +-8.83085 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09086 +20 +-8.83085 +11 +4.08719 +21 +-8.83452 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08719 +20 +-8.83452 +11 +4.08719 +21 +-9.32296 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08719 +20 +-9.32296 +11 +4.09086 +21 +-9.32663 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09086 +20 +-9.32663 +11 +4.09094 +21 +-9.32669 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09094 +20 +-9.32669 +11 +4.091 +21 +-9.32676 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-9.32676 +11 +4.091 +21 +-9.32676 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-9.32676 +11 +4.09118 +21 +-9.32699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09118 +20 +-9.32699 +11 +4.09137 +21 +-9.32733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09137 +20 +-9.32733 +11 +4.09139 +21 +-9.32742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09139 +20 +-9.32742 +11 +4.09148 +21 +-9.3277 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09148 +20 +-9.3277 +11 +4.09152 +21 +-9.32809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09152 +20 +-9.32809 +11 +4.09148 +21 +-9.32847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09148 +20 +-9.32847 +11 +4.09137 +21 +-9.32884 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09137 +20 +-9.32884 +11 +4.09118 +21 +-9.32918 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09118 +20 +-9.32918 +11 +4.091 +21 +-9.32941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-9.32941 +11 +4.091 +21 +-9.32941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.091 +20 +-9.32941 +11 +4.09094 +21 +-9.32948 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09094 +20 +-9.32948 +11 +4.09086 +21 +-9.32955 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.09086 +20 +-9.32955 +11 +4.08719 +21 +-9.33321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08719 +20 +-9.33321 +11 +4.08719 +21 +-9.33841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08719 +20 +-9.33841 +11 +4.0872 +21 +-9.3385 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0872 +20 +-9.3385 +11 +4.08719 +21 +-9.3386 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08719 +20 +-9.3386 +11 +4.08717 +21 +-9.33889 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08717 +20 +-9.33889 +11 +4.08705 +21 +-9.33926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08705 +20 +-9.33926 +11 +4.08687 +21 +-9.3396 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08687 +20 +-9.3396 +11 +4.08662 +21 +-9.3399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08662 +20 +-9.3399 +11 +4.08632 +21 +-9.34015 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08632 +20 +-9.34015 +11 +4.08598 +21 +-9.34033 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08598 +20 +-9.34033 +11 +4.08561 +21 +-9.34044 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08561 +20 +-9.34044 +11 +4.08523 +21 +-9.34048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08523 +20 +-9.34048 +11 +4.08513 +21 +-9.34047 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08513 +20 +-9.34047 +11 +4.07994 +21 +-9.34047 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07994 +20 +-9.34047 +11 +3.86899 +21 +-9.55141 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86899 +20 +-9.55141 +11 +3.86893 +21 +-9.55149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86893 +20 +-9.55149 +11 +3.86877 +21 +-9.55163 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86877 +20 +-9.55163 +11 +3.86863 +21 +-9.55174 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86863 +20 +-9.55174 +11 +3.86845 +21 +-9.55183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86845 +20 +-9.55183 +11 +3.86829 +21 +-9.55192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86829 +20 +-9.55192 +11 +3.86792 +21 +-9.55203 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86792 +20 +-9.55203 +11 +3.86753 +21 +-9.55207 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86753 +20 +-9.55207 +11 +3.86715 +21 +-9.55203 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.86715 +20 +-9.55203 +11 +3.86678 +21 +-9.55192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-8.83784 +11 +3.8864 +21 +-8.82929 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-8.82929 +11 +3.8864 +21 +-8.82929 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-8.82929 +11 +3.8864 +21 +-8.65779 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-8.65779 +11 +3.88639 +21 +-8.6577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88639 +20 +-8.6577 +11 +3.88643 +21 +-8.65731 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88643 +20 +-8.65731 +11 +3.88643 +21 +-8.65731 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88643 +20 +-8.65731 +11 +3.88654 +21 +-8.65694 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88654 +20 +-8.65694 +11 +3.88661 +21 +-8.65681 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88661 +20 +-8.65681 +11 +3.88672 +21 +-8.6566 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88672 +20 +-8.6566 +11 +3.88677 +21 +-8.65654 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88677 +20 +-8.65654 +11 +3.88697 +21 +-8.6563 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88697 +20 +-8.6563 +11 +3.88727 +21 +-8.65605 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88727 +20 +-8.65605 +11 +3.88761 +21 +-8.65587 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88761 +20 +-8.65587 +11 +3.88798 +21 +-8.65576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88798 +20 +-8.65576 +11 +3.88833 +21 +-8.65572 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88833 +20 +-8.65572 +11 +3.88837 +21 +-8.65572 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88837 +20 +-8.65572 +11 +3.88837 +21 +-8.65572 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88837 +20 +-8.65572 +11 +3.88875 +21 +-8.65576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88875 +20 +-8.65576 +11 +3.88912 +21 +-8.65587 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88912 +20 +-8.65587 +11 +3.88925 +21 +-8.65594 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88925 +20 +-8.65594 +11 +3.88947 +21 +-8.65605 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88947 +20 +-8.65605 +11 +3.88961 +21 +-8.65617 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88961 +20 +-8.65617 +11 +3.88977 +21 +-8.6563 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88977 +20 +-8.6563 +11 +3.88983 +21 +-8.65637 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88983 +20 +-8.65637 +11 +4.06572 +21 +-8.83224 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06572 +20 +-8.83224 +11 +4.06579 +21 +-8.8323 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06579 +20 +-8.8323 +11 +4.06604 +21 +-8.8326 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06604 +20 +-8.8326 +11 +4.06622 +21 +-8.83294 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06622 +20 +-8.83294 +11 +4.06633 +21 +-8.83332 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06633 +20 +-8.83332 +11 +4.06636 +21 +-8.8336 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06636 +20 +-8.8336 +11 +4.06637 +21 +-8.8337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06637 +20 +-8.8337 +11 +4.06636 +21 +-8.8338 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06636 +20 +-8.8338 +11 +4.06636 +21 +-9.32368 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06636 +20 +-9.32368 +11 +4.06637 +21 +-9.32377 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06637 +20 +-9.32377 +11 +4.06636 +21 +-9.32387 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06636 +20 +-9.32387 +11 +4.06636 +21 +-9.32387 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06636 +20 +-9.32387 +11 +4.06633 +21 +-9.32416 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06633 +20 +-9.32416 +11 +4.06622 +21 +-9.32453 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06622 +20 +-9.32453 +11 +4.06604 +21 +-9.32487 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06604 +20 +-9.32487 +11 +4.06579 +21 +-9.32517 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06579 +20 +-9.32517 +11 +4.06572 +21 +-9.32523 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.06572 +20 +-9.32523 +11 +3.88983 +21 +-9.5011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88983 +20 +-9.5011 +11 +3.88977 +21 +-9.50118 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88977 +20 +-9.50118 +11 +3.88947 +21 +-9.50142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88947 +20 +-9.50142 +11 +3.88947 +21 +-9.50142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88947 +20 +-9.50142 +11 +3.88947 +21 +-9.50142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88947 +20 +-9.50142 +11 +3.88937 +21 +-9.50147 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88937 +20 +-9.50147 +11 +3.88912 +21 +-9.50161 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88912 +20 +-9.50161 +11 +3.88875 +21 +-9.50172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88875 +20 +-9.50172 +11 +3.88837 +21 +-9.50176 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88837 +20 +-9.50176 +11 +3.88837 +21 +-9.50176 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88837 +20 +-9.50176 +11 +3.88833 +21 +-9.50175 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88833 +20 +-9.50175 +11 +3.88798 +21 +-9.50172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88798 +20 +-9.50172 +11 +3.88761 +21 +-9.50161 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88761 +20 +-9.50161 +11 +3.88727 +21 +-9.50142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88727 +20 +-9.50142 +11 +3.88727 +21 +-9.50142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88727 +20 +-9.50142 +11 +3.88727 +21 +-9.50142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88727 +20 +-9.50142 +11 +3.88719 +21 +-9.50136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88719 +20 +-9.50136 +11 +3.88697 +21 +-9.50118 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88697 +20 +-9.50118 +11 +3.88685 +21 +-9.50104 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88685 +20 +-9.50104 +11 +3.88672 +21 +-9.50088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88672 +20 +-9.50088 +11 +3.88654 +21 +-9.50053 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88654 +20 +-9.50053 +11 +3.88643 +21 +-9.50016 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88643 +20 +-9.50016 +11 +3.88639 +21 +-9.49978 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.88639 +20 +-9.49978 +11 +3.8864 +21 +-9.49968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-9.49968 +11 +3.8864 +21 +-9.32799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-9.32799 +11 +3.8864 +21 +-9.32799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-9.32799 +11 +3.8864 +21 +-9.31964 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8864 +20 +-9.31964 +11 +3.8695 +21 +-9.31964 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8695 +20 +-9.31964 +11 +3.8695 +21 +-9.54534 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8695 +20 +-9.54534 +11 +4.07766 +21 +-9.33718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07766 +20 +-9.33718 +11 +4.07772 +21 +-9.3371 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07772 +20 +-9.3371 +11 +4.0778 +21 +-9.33704 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0778 +20 +-9.33704 +11 +4.07802 +21 +-9.33686 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07802 +20 +-9.33686 +11 +4.07836 +21 +-9.33668 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07836 +20 +-9.33668 +11 +4.07836 +21 +-9.33668 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07836 +20 +-9.33668 +11 +4.07874 +21 +-9.33656 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07874 +20 +-9.33656 +11 +4.07903 +21 +-9.33653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07903 +20 +-9.33653 +11 +4.07903 +21 +-9.33653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07903 +20 +-9.33653 +11 +4.07912 +21 +-9.33652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07912 +20 +-9.33652 +11 +4.07922 +21 +-9.33653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07922 +20 +-9.33653 +11 +4.08326 +21 +-9.33653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-9.33653 +11 +4.08326 +21 +-9.3325 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-9.3325 +11 +4.08325 +21 +-9.3324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08325 +20 +-9.3324 +11 +4.08326 +21 +-9.3323 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-9.3323 +11 +4.08329 +21 +-9.33201 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08329 +20 +-9.33201 +11 +4.0834 +21 +-9.33164 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0834 +20 +-9.33164 +11 +4.08348 +21 +-9.33148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08348 +20 +-9.33148 +11 +4.08358 +21 +-9.3313 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08358 +20 +-9.3313 +11 +4.08369 +21 +-9.33117 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08369 +20 +-9.33117 +11 +4.08383 +21 +-9.331 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08383 +20 +-9.331 +11 +4.0839 +21 +-9.33094 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0839 +20 +-9.33094 +11 +4.08675 +21 +-9.32809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08675 +20 +-9.32809 +11 +4.0839 +21 +-9.32523 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0839 +20 +-9.32523 +11 +4.08383 +21 +-9.32517 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08383 +20 +-9.32517 +11 +4.08377 +21 +-9.3251 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08377 +20 +-9.3251 +11 +4.08358 +21 +-9.32487 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08358 +20 +-9.32487 +11 +4.0834 +21 +-9.32453 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0834 +20 +-9.32453 +11 +4.08329 +21 +-9.32416 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08329 +20 +-9.32416 +11 +4.08325 +21 +-9.32377 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08325 +20 +-9.32377 +11 +4.08326 +21 +-9.32368 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-9.32368 +11 +4.08326 +21 +-8.8338 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-8.8338 +11 +4.08325 +21 +-8.8337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08325 +20 +-8.8337 +11 +4.08326 +21 +-8.8336 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-8.8336 +11 +4.08329 +21 +-8.83332 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08329 +20 +-8.83332 +11 +4.0834 +21 +-8.83294 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0834 +20 +-8.83294 +11 +4.08348 +21 +-8.83278 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08348 +20 +-8.83278 +11 +4.08358 +21 +-8.8326 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08358 +20 +-8.8326 +11 +4.08369 +21 +-8.83247 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08369 +20 +-8.83247 +11 +4.08383 +21 +-8.8323 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08383 +20 +-8.8323 +11 +4.0839 +21 +-8.83224 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0839 +20 +-8.83224 +11 +4.08675 +21 +-8.82939 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08675 +20 +-8.82939 +11 +4.0839 +21 +-8.82653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0839 +20 +-8.82653 +11 +4.08383 +21 +-8.82647 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08383 +20 +-8.82647 +11 +4.08377 +21 +-8.8264 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08377 +20 +-8.8264 +11 +4.08358 +21 +-8.82617 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08358 +20 +-8.82617 +11 +4.0834 +21 +-8.82583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0834 +20 +-8.82583 +11 +4.08329 +21 +-8.82546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08329 +20 +-8.82546 +11 +4.08325 +21 +-8.82507 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08325 +20 +-8.82507 +11 +4.08326 +21 +-8.82498 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-8.82498 +11 +4.08326 +21 +-8.82094 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.08326 +20 +-8.82094 +11 +4.07922 +21 +-8.82094 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07922 +20 +-8.82094 +11 +4.07912 +21 +-8.82095 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07912 +20 +-8.82095 +11 +4.07903 +21 +-8.82094 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07903 +20 +-8.82094 +11 +4.07903 +21 +-8.82094 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07903 +20 +-8.82094 +11 +4.07874 +21 +-8.82091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07874 +20 +-8.82091 +11 +4.07836 +21 +-8.8208 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07836 +20 +-8.8208 +11 +4.07818 +21 +-8.8207 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07818 +20 +-8.8207 +11 +4.07802 +21 +-8.82062 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07802 +20 +-8.82062 +11 +4.07797 +21 +-8.82057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07797 +20 +-8.82057 +11 +4.07772 +21 +-8.82037 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07772 +20 +-8.82037 +11 +4.07766 +21 +-8.82029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.07766 +20 +-8.82029 +11 +3.8695 +21 +-8.61216 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8695 +20 +-8.61216 +11 +3.8695 +21 +-8.83784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.8695 +20 +-8.83784 +11 +3.8864 +21 +-8.83784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41987 +20 +-9.34835 +11 +6.41986 +21 +-9.34845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41986 +20 +-9.34845 +11 +6.41986 +21 +-9.34845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41986 +20 +-9.34845 +11 +6.41983 +21 +-9.34874 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41983 +20 +-9.34874 +11 +6.41971 +21 +-9.34911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41971 +20 +-9.34911 +11 +6.41953 +21 +-9.34945 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41953 +20 +-9.34945 +11 +6.41929 +21 +-9.34975 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41929 +20 +-9.34975 +11 +6.41899 +21 +-9.34999 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41899 +20 +-9.34999 +11 +6.41864 +21 +-9.35018 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41864 +20 +-9.35018 +11 +6.41827 +21 +-9.35029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41827 +20 +-9.35029 +11 +6.41789 +21 +-9.35033 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41789 +20 +-9.35033 +11 +6.41779 +21 +-9.35032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41779 +20 +-9.35032 +11 +6.37748 +21 +-9.35032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37748 +20 +-9.35032 +11 +6.37738 +21 +-9.35033 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37738 +20 +-9.35033 +11 +6.37699 +21 +-9.35029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37699 +20 +-9.35029 +11 +6.37662 +21 +-9.35018 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37662 +20 +-9.35018 +11 +6.37628 +21 +-9.34999 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37628 +20 +-9.34999 +11 +6.37598 +21 +-9.34975 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37598 +20 +-9.34975 +11 +6.37574 +21 +-9.34945 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37574 +20 +-9.34945 +11 +6.37555 +21 +-9.34911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37555 +20 +-9.34911 +11 +6.37544 +21 +-9.34874 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37544 +20 +-9.34874 +11 +6.3754 +21 +-9.34835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.3754 +20 +-9.34835 +11 +6.37541 +21 +-9.34825 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-9.34825 +11 +6.37541 +21 +-9.33803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-9.33803 +11 +6.37541 +21 +-9.33803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-9.33803 +11 +6.37541 +21 +-9.32761 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-9.32761 +11 +6.37541 +21 +-9.32761 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-9.32761 +11 +6.37541 +21 +-8.81966 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-8.81966 +11 +6.37541 +21 +-8.81966 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-8.81966 +11 +6.37541 +21 +-8.80924 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37541 +20 +-8.80924 +11 +6.3754 +21 +-8.80914 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.3754 +20 +-8.80914 +11 +6.37544 +21 +-8.80876 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37544 +20 +-8.80876 +11 +6.37555 +21 +-8.80839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37555 +20 +-8.80839 +11 +6.37574 +21 +-8.80805 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37574 +20 +-8.80805 +11 +6.37598 +21 +-8.80775 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37598 +20 +-8.80775 +11 +6.37628 +21 +-8.8075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37628 +20 +-8.8075 +11 +6.37662 +21 +-8.80732 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37662 +20 +-8.80732 +11 +6.37699 +21 +-8.8072 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37699 +20 +-8.8072 +11 +6.37728 +21 +-8.80718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37728 +20 +-8.80718 +11 +6.37738 +21 +-8.80717 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37738 +20 +-8.80717 +11 +6.37748 +21 +-8.80718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37748 +20 +-8.80718 +11 +6.41779 +21 +-8.80718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41779 +20 +-8.80718 +11 +6.41789 +21 +-8.80717 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41789 +20 +-8.80717 +11 +6.41798 +21 +-8.80718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41798 +20 +-8.80718 +11 +6.41827 +21 +-8.8072 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41827 +20 +-8.8072 +11 +6.41864 +21 +-8.80732 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41864 +20 +-8.80732 +11 +6.41899 +21 +-8.8075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41899 +20 +-8.8075 +11 +6.41929 +21 +-8.80775 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41929 +20 +-8.80775 +11 +6.41953 +21 +-8.80805 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41953 +20 +-8.80805 +11 +6.41971 +21 +-8.80839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41971 +20 +-8.80839 +11 +6.41983 +21 +-8.80876 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41983 +20 +-8.80876 +11 +6.41987 +21 +-8.80914 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41987 +20 +-8.80914 +11 +6.41986 +21 +-8.80924 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41986 +20 +-8.80924 +11 +6.41986 +21 +-9.34825 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41986 +20 +-9.34825 +11 +6.41987 +21 +-9.34835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41592 +20 +-9.34638 +11 +6.41592 +21 +-9.33784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41592 +20 +-9.33784 +11 +6.41592 +21 +-9.33784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41592 +20 +-9.33784 +11 +6.41592 +21 +-8.82988 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41592 +20 +-8.82988 +11 +6.41592 +21 +-8.82988 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41592 +20 +-8.82988 +11 +6.41592 +21 +-8.81111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.41592 +20 +-8.81111 +11 +6.37935 +21 +-8.81111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37935 +20 +-8.81111 +11 +6.37935 +21 +-9.34638 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.37935 +20 +-9.34638 +11 +6.41592 +21 +-9.34638 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39322 +20 +-7.16789 +11 +5.39351 +21 +-7.16792 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39351 +20 +-7.16792 +11 +5.39388 +21 +-7.16803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39388 +20 +-7.16803 +11 +5.39423 +21 +-7.16822 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39423 +20 +-7.16822 +11 +5.39453 +21 +-7.16846 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39453 +20 +-7.16846 +11 +5.39477 +21 +-7.16876 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39477 +20 +-7.16876 +11 +5.39495 +21 +-7.16911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39495 +20 +-7.16911 +11 +5.39507 +21 +-7.16948 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39507 +20 +-7.16948 +11 +5.39511 +21 +-7.16986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39511 +20 +-7.16986 +11 +5.3951 +21 +-7.16996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.3951 +20 +-7.16996 +11 +5.3951 +21 +-8.21192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.3951 +20 +-8.21192 +11 +5.39511 +21 +-8.21202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39511 +20 +-8.21202 +11 +5.39507 +21 +-8.2124 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39507 +20 +-8.2124 +11 +5.39495 +21 +-8.21277 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39495 +20 +-8.21277 +11 +5.39477 +21 +-8.21312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39477 +20 +-8.21312 +11 +5.39453 +21 +-8.21342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39453 +20 +-8.21342 +11 +5.39423 +21 +-8.21366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39423 +20 +-8.21366 +11 +5.39388 +21 +-8.21384 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39388 +20 +-8.21384 +11 +5.39351 +21 +-8.21396 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39351 +20 +-8.21396 +11 +5.39322 +21 +-8.21399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39322 +20 +-8.21399 +11 +5.39313 +21 +-8.214 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39313 +20 +-8.214 +11 +5.39303 +21 +-8.21399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39303 +20 +-8.21399 +11 +5.0991 +21 +-8.21399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0991 +20 +-8.21399 +11 +5.099 +21 +-8.214 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.099 +20 +-8.214 +11 +5.0989 +21 +-8.21399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0989 +20 +-8.21399 +11 +5.09861 +21 +-8.21396 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09861 +20 +-8.21396 +11 +5.09824 +21 +-8.21384 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09824 +20 +-8.21384 +11 +5.0979 +21 +-8.21366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0979 +20 +-8.21366 +11 +5.0976 +21 +-8.21342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0976 +20 +-8.21342 +11 +5.09735 +21 +-8.21312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09735 +20 +-8.21312 +11 +5.09717 +21 +-8.21277 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09717 +20 +-8.21277 +11 +5.09706 +21 +-8.2124 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09706 +20 +-8.2124 +11 +5.09702 +21 +-8.21202 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09702 +20 +-8.21202 +11 +5.09703 +21 +-8.21192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09703 +20 +-8.21192 +11 +5.09703 +21 +-7.16996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09703 +20 +-7.16996 +11 +5.09702 +21 +-7.16986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09702 +20 +-7.16986 +11 +5.09706 +21 +-7.16948 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09706 +20 +-7.16948 +11 +5.09717 +21 +-7.16911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09717 +20 +-7.16911 +11 +5.09735 +21 +-7.16876 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09735 +20 +-7.16876 +11 +5.0976 +21 +-7.16846 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0976 +20 +-7.16846 +11 +5.0979 +21 +-7.16822 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0979 +20 +-7.16822 +11 +5.09824 +21 +-7.16803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09824 +20 +-7.16803 +11 +5.09861 +21 +-7.16792 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.09861 +20 +-7.16792 +11 +5.0989 +21 +-7.16789 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0989 +20 +-7.16789 +11 +5.099 +21 +-7.16788 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.099 +20 +-7.16788 +11 +5.0991 +21 +-7.16789 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.0991 +20 +-7.16789 +11 +5.39303 +21 +-7.16789 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39303 +20 +-7.16789 +11 +5.39313 +21 +-7.16788 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39313 +20 +-7.16788 +11 +5.39322 +21 +-7.16789 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.10097 +20 +-7.17183 +11 +5.10097 +21 +-8.21005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.10097 +20 +-8.21005 +11 +5.39116 +21 +-8.21005 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39116 +20 +-8.21005 +11 +5.39116 +21 +-7.17183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.39116 +20 +-7.17183 +11 +5.10097 +21 +-7.17183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-6.76632 +11 +6.25254 +21 +-6.76641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-6.76641 +11 +6.25254 +21 +-6.76641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-6.76641 +11 +6.25251 +21 +-6.7667 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-6.7667 +11 +6.2524 +21 +-6.76708 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-6.76708 +11 +6.25221 +21 +-6.76742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-6.76742 +11 +6.25197 +21 +-6.76772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-6.76772 +11 +6.25167 +21 +-6.76796 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-6.76796 +11 +6.25133 +21 +-6.76815 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-6.76815 +11 +6.25096 +21 +-6.76826 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-6.76826 +11 +6.25057 +21 +-6.7683 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-6.7683 +11 +6.25047 +21 +-6.76829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25047 +20 +-6.76829 +11 +6.22983 +21 +-6.76829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-6.76829 +11 +6.22974 +21 +-6.7683 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-6.7683 +11 +6.22935 +21 +-6.76826 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-6.76826 +11 +6.22898 +21 +-6.76815 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-6.76815 +11 +6.22864 +21 +-6.76796 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-6.76796 +11 +6.22834 +21 +-6.76772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-6.76772 +11 +6.22809 +21 +-6.76742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-6.76742 +11 +6.22791 +21 +-6.76708 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-6.76708 +11 +6.2278 +21 +-6.7667 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-6.7667 +11 +6.22776 +21 +-6.76632 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-6.76632 +11 +6.22777 +21 +-6.76622 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-6.76622 +11 +6.22777 +21 +-6.756 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-6.756 +11 +6.22777 +21 +-6.756 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-6.756 +11 +6.22777 +21 +-6.58896 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-6.58896 +11 +6.0557 +21 +-6.76103 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0557 +20 +-6.76103 +11 +6.0557 +21 +-7.53817 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0557 +20 +-7.53817 +11 +6.22777 +21 +-7.71026 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-7.71026 +11 +6.22777 +21 +-7.54341 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-7.54341 +11 +6.22777 +21 +-7.54341 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-7.54341 +11 +6.22777 +21 +-7.533 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-7.533 +11 +6.22776 +21 +-7.5329 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-7.5329 +11 +6.2278 +21 +-7.53251 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-7.53251 +11 +6.22791 +21 +-7.53214 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-7.53214 +11 +6.22809 +21 +-7.5318 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-7.5318 +11 +6.22834 +21 +-7.5315 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-7.5315 +11 +6.22864 +21 +-7.53125 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-7.53125 +11 +6.22898 +21 +-7.53107 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-7.53107 +11 +6.22935 +21 +-7.53096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-7.53096 +11 +6.22964 +21 +-7.53093 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22964 +20 +-7.53093 +11 +6.22974 +21 +-7.53092 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-7.53092 +11 +6.22983 +21 +-7.53093 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-7.53093 +11 +6.25047 +21 +-7.53093 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25047 +20 +-7.53093 +11 +6.25057 +21 +-7.53092 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-7.53092 +11 +6.25067 +21 +-7.53093 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25067 +20 +-7.53093 +11 +6.25096 +21 +-7.53096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-7.53096 +11 +6.25133 +21 +-7.53107 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-7.53107 +11 +6.25167 +21 +-7.53125 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-7.53125 +11 +6.25197 +21 +-7.5315 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-7.5315 +11 +6.25221 +21 +-7.5318 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-7.5318 +11 +6.2524 +21 +-7.53214 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-7.53214 +11 +6.25251 +21 +-7.53251 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-7.53251 +11 +6.25255 +21 +-7.5329 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-7.5329 +11 +6.25254 +21 +-7.533 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-7.533 +11 +6.25254 +21 +-7.73503 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-7.73503 +11 +6.25621 +21 +-7.73869 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25621 +20 +-7.73869 +11 +6.25628 +21 +-7.73876 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25628 +20 +-7.73876 +11 +6.25634 +21 +-7.73883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-7.73883 +11 +6.25634 +21 +-7.73883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-7.73883 +11 +6.25653 +21 +-7.73906 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25653 +20 +-7.73906 +11 +6.25671 +21 +-7.7394 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-7.7394 +11 +6.25671 +21 +-7.7394 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-7.7394 +11 +6.25682 +21 +-7.73977 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25682 +20 +-7.73977 +11 +6.25686 +21 +-7.74015 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25686 +20 +-7.74015 +11 +6.25682 +21 +-7.74054 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25682 +20 +-7.74054 +11 +6.25671 +21 +-7.74091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-7.74091 +11 +6.25653 +21 +-7.74125 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25653 +20 +-7.74125 +11 +6.25634 +21 +-7.74148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-7.74148 +11 +6.25634 +21 +-7.74148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-7.74148 +11 +6.25628 +21 +-7.74155 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25628 +20 +-7.74155 +11 +6.25621 +21 +-7.74161 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25621 +20 +-7.74161 +11 +6.25254 +21 +-7.74528 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-7.74528 +11 +6.25254 +21 +-7.75047 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-7.75047 +11 +6.25255 +21 +-7.75057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-7.75057 +11 +6.25254 +21 +-7.75067 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-7.75067 +11 +6.25254 +21 +-7.75067 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-7.75067 +11 +6.25251 +21 +-7.75096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-7.75096 +11 +6.2524 +21 +-7.75133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-7.75133 +11 +6.25221 +21 +-7.75167 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-7.75167 +11 +6.25197 +21 +-7.75197 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-7.75197 +11 +6.25167 +21 +-7.75222 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-7.75222 +11 +6.25133 +21 +-7.7524 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-7.7524 +11 +6.25096 +21 +-7.75251 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-7.75251 +11 +6.25057 +21 +-7.75255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-7.75255 +11 +6.25047 +21 +-7.75254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25047 +20 +-7.75254 +11 +6.24528 +21 +-7.75254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24528 +20 +-7.75254 +11 +6.24161 +21 +-7.75621 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24161 +20 +-7.75621 +11 +6.24155 +21 +-7.75628 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24155 +20 +-7.75628 +11 +6.24148 +21 +-7.75634 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24148 +20 +-7.75634 +11 +6.24148 +21 +-7.75634 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24148 +20 +-7.75634 +11 +6.24125 +21 +-7.75653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24125 +20 +-7.75653 +11 +6.24103 +21 +-7.75665 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24103 +20 +-7.75665 +11 +6.24091 +21 +-7.75671 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24091 +20 +-7.75671 +11 +6.2408 +21 +-7.75675 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2408 +20 +-7.75675 +11 +6.24054 +21 +-7.75682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24054 +20 +-7.75682 +11 +6.24015 +21 +-7.75686 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24015 +20 +-7.75686 +11 +6.23977 +21 +-7.75682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23977 +20 +-7.75682 +11 +6.2394 +21 +-7.75671 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2394 +20 +-7.75671 +11 +6.23905 +21 +-7.75653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23905 +20 +-7.75653 +11 +6.23883 +21 +-7.75634 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23883 +20 +-7.75634 +11 +6.23883 +21 +-7.75634 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23883 +20 +-7.75634 +11 +6.23875 +21 +-7.75628 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23875 +20 +-7.75628 +11 +6.23869 +21 +-7.75621 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23869 +20 +-7.75621 +11 +6.23502 +21 +-7.75254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23502 +20 +-7.75254 +11 +6.22983 +21 +-7.75254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-7.75254 +11 +6.22974 +21 +-7.75255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-7.75255 +11 +6.22935 +21 +-7.75251 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-7.75251 +11 +6.22898 +21 +-7.7524 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-7.7524 +11 +6.22864 +21 +-7.75222 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-7.75222 +11 +6.22834 +21 +-7.75197 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-7.75197 +11 +6.22828 +21 +-7.7519 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22828 +20 +-7.7519 +11 +6.22809 +21 +-7.75167 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-7.75167 +11 +6.22791 +21 +-7.75133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-7.75133 +11 +6.2278 +21 +-7.75096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-7.75096 +11 +6.22776 +21 +-7.75057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-7.75057 +11 +6.22777 +21 +-7.75047 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-7.75047 +11 +6.22777 +21 +-7.74528 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-7.74528 +11 +6.03157 +21 +-7.54909 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03157 +20 +-7.54909 +11 +6.0315 +21 +-7.54903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0315 +20 +-7.54903 +11 +6.03136 +21 +-7.54886 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03136 +20 +-7.54886 +11 +6.03125 +21 +-7.54873 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03125 +20 +-7.54873 +11 +6.03107 +21 +-7.54839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03107 +20 +-7.54839 +11 +6.03107 +21 +-7.54839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03107 +20 +-7.54839 +11 +6.03096 +21 +-7.54802 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03096 +20 +-7.54802 +11 +6.03093 +21 +-7.54773 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-7.54773 +11 +6.03093 +21 +-7.54773 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-7.54773 +11 +6.03092 +21 +-7.54763 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03092 +20 +-7.54763 +11 +6.03093 +21 +-7.54753 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-7.54753 +11 +6.03093 +21 +-6.76103 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-6.76103 +11 +6.02726 +21 +-6.75736 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02726 +20 +-6.75736 +11 +6.02719 +21 +-6.7573 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02719 +20 +-6.7573 +11 +6.02694 +21 +-6.757 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02694 +20 +-6.757 +11 +6.02676 +21 +-6.75666 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02676 +20 +-6.75666 +11 +6.02664 +21 +-6.75629 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02664 +20 +-6.75629 +11 +6.02661 +21 +-6.7559 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02661 +20 +-6.7559 +11 +6.02664 +21 +-6.75552 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02664 +20 +-6.75552 +11 +6.02676 +21 +-6.75514 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02676 +20 +-6.75514 +11 +6.02693 +21 +-6.75483 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02693 +20 +-6.75483 +11 +6.02694 +21 +-6.7548 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02694 +20 +-6.7548 +11 +6.02719 +21 +-6.7545 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02719 +20 +-6.7545 +11 +6.02726 +21 +-6.75444 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02726 +20 +-6.75444 +11 +6.03093 +21 +-6.75077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-6.75077 +11 +6.03093 +21 +-6.74558 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-6.74558 +11 +6.03092 +21 +-6.74549 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03092 +20 +-6.74549 +11 +6.03096 +21 +-6.7451 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03096 +20 +-6.7451 +11 +6.03107 +21 +-6.74473 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03107 +20 +-6.74473 +11 +6.03125 +21 +-6.74439 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03125 +20 +-6.74439 +11 +6.0315 +21 +-6.74409 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0315 +20 +-6.74409 +11 +6.0318 +21 +-6.74384 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0318 +20 +-6.74384 +11 +6.03214 +21 +-6.74366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03214 +20 +-6.74366 +11 +6.03251 +21 +-6.74355 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03251 +20 +-6.74355 +11 +6.0328 +21 +-6.74352 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0328 +20 +-6.74352 +11 +6.0329 +21 +-6.74351 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0329 +20 +-6.74351 +11 +6.03299 +21 +-6.74352 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03299 +20 +-6.74352 +11 +6.03819 +21 +-6.74352 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03819 +20 +-6.74352 +11 +6.24911 +21 +-6.53259 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24911 +20 +-6.53259 +11 +6.24917 +21 +-6.53252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-6.53252 +11 +6.24947 +21 +-6.53227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24947 +20 +-6.53227 +11 +6.24981 +21 +-6.53209 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24981 +20 +-6.53209 +11 +6.25018 +21 +-6.53198 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25018 +20 +-6.53198 +11 +6.25057 +21 +-6.53194 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-6.53194 +11 +6.25096 +21 +-6.53198 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-6.53198 +11 +6.25133 +21 +-6.53209 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-6.53209 +11 +6.25133 +21 +-6.53209 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-6.53209 +11 +6.25167 +21 +-6.53227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-6.53227 +11 +6.25189 +21 +-6.53246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25189 +20 +-6.53246 +11 +6.25197 +21 +-6.53252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-6.53252 +11 +6.25221 +21 +-6.53282 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-6.53282 +11 +6.2524 +21 +-6.53316 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-6.53316 +11 +6.25251 +21 +-6.53353 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-6.53353 +11 +6.25254 +21 +-6.53382 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-6.53382 +11 +6.25255 +21 +-6.53392 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-6.53392 +11 +6.25254 +21 +-6.53401 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-6.53401 +11 +6.25254 +21 +-6.76622 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-6.76622 +11 +6.25255 +21 +-6.76632 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-7.71501 +11 +6.2317 +21 +-7.7151 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-7.7151 +11 +6.2317 +21 +-7.7151 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-7.7151 +11 +6.23168 +21 +-7.71539 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-7.71539 +11 +6.23156 +21 +-7.71577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-7.71577 +11 +6.23138 +21 +-7.71611 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-7.71611 +11 +6.23114 +21 +-7.71641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-7.71641 +11 +6.23084 +21 +-7.71665 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23084 +20 +-7.71665 +11 +6.23049 +21 +-7.71684 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23049 +20 +-7.71684 +11 +6.23012 +21 +-7.71695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23012 +20 +-7.71695 +11 +6.22974 +21 +-7.71699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-7.71699 +11 +6.22974 +21 +-7.71699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-7.71699 +11 +6.22966 +21 +-7.71698 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22966 +20 +-7.71698 +11 +6.22935 +21 +-7.71695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-7.71695 +11 +6.22898 +21 +-7.71684 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-7.71684 +11 +6.22864 +21 +-7.71665 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-7.71665 +11 +6.22864 +21 +-7.71665 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-7.71665 +11 +6.22864 +21 +-7.71665 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-7.71665 +11 +6.22841 +21 +-7.71647 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22841 +20 +-7.71647 +11 +6.22834 +21 +-7.71641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-7.71641 +11 +6.22828 +21 +-7.71633 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22828 +20 +-7.71633 +11 +6.05241 +21 +-7.54044 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05241 +20 +-7.54044 +11 +6.05233 +21 +-7.54038 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05233 +20 +-7.54038 +11 +6.05227 +21 +-7.54031 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05227 +20 +-7.54031 +11 +6.05227 +21 +-7.54031 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05227 +20 +-7.54031 +11 +6.05209 +21 +-7.54008 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05209 +20 +-7.54008 +11 +6.0519 +21 +-7.53974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0519 +20 +-7.53974 +11 +6.05179 +21 +-7.53937 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05179 +20 +-7.53937 +11 +6.05175 +21 +-7.53898 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05175 +20 +-7.53898 +11 +6.05176 +21 +-7.53889 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05176 +20 +-7.53889 +11 +6.05176 +21 +-6.76031 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05176 +20 +-6.76031 +11 +6.05175 +21 +-6.76021 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05175 +20 +-6.76021 +11 +6.05176 +21 +-6.76012 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05176 +20 +-6.76012 +11 +6.05179 +21 +-6.75983 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05179 +20 +-6.75983 +11 +6.0519 +21 +-6.75946 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0519 +20 +-6.75946 +11 +6.05199 +21 +-6.7593 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05199 +20 +-6.7593 +11 +6.05209 +21 +-6.75912 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05209 +20 +-6.75912 +11 +6.0522 +21 +-6.75898 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0522 +20 +-6.75898 +11 +6.05233 +21 +-6.75882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05233 +20 +-6.75882 +11 +6.05241 +21 +-6.75875 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05241 +20 +-6.75875 +11 +6.22828 +21 +-6.58289 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22828 +20 +-6.58289 +11 +6.22834 +21 +-6.58281 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-6.58281 +11 +6.22841 +21 +-6.58275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22841 +20 +-6.58275 +11 +6.22841 +21 +-6.58275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22841 +20 +-6.58275 +11 +6.22864 +21 +-6.58257 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-6.58257 +11 +6.22898 +21 +-6.58238 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-6.58238 +11 +6.22898 +21 +-6.58238 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-6.58238 +11 +6.22935 +21 +-6.58227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-6.58227 +11 +6.22969 +21 +-6.58224 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22969 +20 +-6.58224 +11 +6.22974 +21 +-6.58223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-6.58223 +11 +6.22974 +21 +-6.58223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-6.58223 +11 +6.23012 +21 +-6.58227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23012 +20 +-6.58227 +11 +6.23049 +21 +-6.58238 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23049 +20 +-6.58238 +11 +6.23084 +21 +-6.58257 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23084 +20 +-6.58257 +11 +6.23114 +21 +-6.58281 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-6.58281 +11 +6.23138 +21 +-6.58311 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-6.58311 +11 +6.23156 +21 +-6.58345 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-6.58345 +11 +6.23168 +21 +-6.58382 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-6.58382 +11 +6.2317 +21 +-6.58411 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-6.58411 +11 +6.23171 +21 +-6.58421 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-6.58421 +11 +6.2317 +21 +-6.58431 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-6.58431 +11 +6.2317 +21 +-6.76435 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-6.76435 +11 +6.2486 +21 +-6.76435 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-6.76435 +11 +6.2486 +21 +-6.75581 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-6.75581 +11 +6.2486 +21 +-6.7558 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-6.7558 +11 +6.2486 +21 +-6.53867 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-6.53867 +11 +6.04046 +21 +-6.74681 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.04046 +20 +-6.74681 +11 +6.0404 +21 +-6.74688 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0404 +20 +-6.74688 +11 +6.0401 +21 +-6.74713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0401 +20 +-6.74713 +11 +6.03976 +21 +-6.74731 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03976 +20 +-6.74731 +11 +6.03939 +21 +-6.74743 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03939 +20 +-6.74743 +11 +6.0391 +21 +-6.74745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0391 +20 +-6.74745 +11 +6.0391 +21 +-6.74745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0391 +20 +-6.74745 +11 +6.039 +21 +-6.74746 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.039 +20 +-6.74746 +11 +6.03891 +21 +-6.74745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03891 +20 +-6.74745 +11 +6.03487 +21 +-6.74745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-6.74745 +11 +6.03487 +21 +-6.75149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-6.75149 +11 +6.03488 +21 +-6.75159 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03488 +20 +-6.75159 +11 +6.03487 +21 +-6.75168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-6.75168 +11 +6.03487 +21 +-6.75168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-6.75168 +11 +6.03484 +21 +-6.75197 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03484 +20 +-6.75197 +11 +6.03473 +21 +-6.75235 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-6.75235 +11 +6.03473 +21 +-6.75235 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-6.75235 +11 +6.03454 +21 +-6.75269 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-6.75269 +11 +6.03436 +21 +-6.75291 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03436 +20 +-6.75291 +11 +6.0343 +21 +-6.75299 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0343 +20 +-6.75299 +11 +6.03422 +21 +-6.75305 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03422 +20 +-6.75305 +11 +6.03137 +21 +-6.7559 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03137 +20 +-6.7559 +11 +6.03422 +21 +-6.75875 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03422 +20 +-6.75875 +11 +6.0343 +21 +-6.75882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0343 +20 +-6.75882 +11 +6.03436 +21 +-6.75889 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03436 +20 +-6.75889 +11 +6.03454 +21 +-6.75912 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-6.75912 +11 +6.03454 +21 +-6.75912 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-6.75912 +11 +6.03473 +21 +-6.75946 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-6.75946 +11 +6.03484 +21 +-6.75983 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03484 +20 +-6.75983 +11 +6.03487 +21 +-6.76012 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-6.76012 +11 +6.03488 +21 +-6.76021 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03488 +20 +-6.76021 +11 +6.03487 +21 +-6.76031 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-6.76031 +11 +6.03487 +21 +-7.54681 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-7.54681 +11 +6.23106 +21 +-7.74301 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-7.74301 +11 +6.23114 +21 +-7.74307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-7.74307 +11 +6.2312 +21 +-7.74314 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-7.74314 +11 +6.23138 +21 +-7.74337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-7.74337 +11 +6.23138 +21 +-7.74337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-7.74337 +11 +6.23156 +21 +-7.74371 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-7.74371 +11 +6.23168 +21 +-7.74408 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-7.74408 +11 +6.2317 +21 +-7.74437 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-7.74437 +11 +6.23171 +21 +-7.74447 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-7.74447 +11 +6.2317 +21 +-7.74456 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-7.74456 +11 +6.2317 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-7.7486 +11 +6.23574 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23574 +20 +-7.7486 +11 +6.23584 +21 +-7.74859 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23584 +20 +-7.74859 +11 +6.23594 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-7.7486 +11 +6.23594 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-7.7486 +11 +6.23623 +21 +-7.74863 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23623 +20 +-7.74863 +11 +6.2366 +21 +-7.74874 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2366 +20 +-7.74874 +11 +6.23694 +21 +-7.74893 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23694 +20 +-7.74893 +11 +6.23724 +21 +-7.74917 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23724 +20 +-7.74917 +11 +6.2373 +21 +-7.74925 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2373 +20 +-7.74925 +11 +6.24015 +21 +-7.7521 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24015 +20 +-7.7521 +11 +6.24301 +21 +-7.74925 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24301 +20 +-7.74925 +11 +6.24307 +21 +-7.74917 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24307 +20 +-7.74917 +11 +6.24314 +21 +-7.74911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24314 +20 +-7.74911 +11 +6.24337 +21 +-7.74893 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24337 +20 +-7.74893 +11 +6.24371 +21 +-7.74874 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24371 +20 +-7.74874 +11 +6.24371 +21 +-7.74874 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24371 +20 +-7.74874 +11 +6.24408 +21 +-7.74863 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24408 +20 +-7.74863 +11 +6.24437 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24437 +20 +-7.7486 +11 +6.24437 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24437 +20 +-7.7486 +11 +6.24447 +21 +-7.74859 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24447 +20 +-7.74859 +11 +6.24456 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24456 +20 +-7.7486 +11 +6.2486 +21 +-7.7486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-7.7486 +11 +6.2486 +21 +-7.74456 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-7.74456 +11 +6.24859 +21 +-7.74447 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-7.74447 +11 +6.2486 +21 +-7.74437 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-7.74437 +11 +6.24863 +21 +-7.74408 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-7.74408 +11 +6.24874 +21 +-7.74371 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-7.74371 +11 +6.24883 +21 +-7.74355 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24883 +20 +-7.74355 +11 +6.24893 +21 +-7.74337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-7.74337 +11 +6.24903 +21 +-7.74324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24903 +20 +-7.74324 +11 +6.24917 +21 +-7.74307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-7.74307 +11 +6.24925 +21 +-7.74301 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-7.74301 +11 +6.2521 +21 +-7.74015 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2521 +20 +-7.74015 +11 +6.24925 +21 +-7.7373 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-7.7373 +11 +6.24917 +21 +-7.73724 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-7.73724 +11 +6.24893 +21 +-7.73694 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-7.73694 +11 +6.24874 +21 +-7.7366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-7.7366 +11 +6.24863 +21 +-7.73623 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-7.73623 +11 +6.24863 +21 +-7.73619 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-7.73619 +11 +6.24859 +21 +-7.73584 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-7.73584 +11 +6.2486 +21 +-7.73574 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-7.73574 +11 +6.2486 +21 +-7.54322 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-7.54322 +11 +6.2486 +21 +-7.54322 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-7.54322 +11 +6.2486 +21 +-7.53487 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-7.53487 +11 +6.2317 +21 +-7.53487 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-7.53487 +11 +6.2317 +21 +-7.71491 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-7.71491 +11 +6.23171 +21 +-7.71501 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77422 +20 +-7.56356 +11 +1.77421 +21 +-7.56366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77421 +20 +-7.56366 +11 +1.77421 +21 +-7.56366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77421 +20 +-7.56366 +11 +1.77418 +21 +-7.56395 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77418 +20 +-7.56395 +11 +1.77406 +21 +-7.56432 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77406 +20 +-7.56432 +11 +1.77388 +21 +-7.56466 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77388 +20 +-7.56466 +11 +1.77364 +21 +-7.56496 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77364 +20 +-7.56496 +11 +1.77334 +21 +-7.5652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77334 +20 +-7.5652 +11 +1.77299 +21 +-7.56539 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77299 +20 +-7.56539 +11 +1.77262 +21 +-7.5655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77262 +20 +-7.5655 +11 +1.77224 +21 +-7.56554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77224 +20 +-7.56554 +11 +1.77214 +21 +-7.56553 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77214 +20 +-7.56553 +11 +1.73181 +21 +-7.56553 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73181 +20 +-7.56553 +11 +1.73171 +21 +-7.56554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73171 +20 +-7.56554 +11 +1.73132 +21 +-7.5655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73132 +20 +-7.5655 +11 +1.73095 +21 +-7.56539 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73095 +20 +-7.56539 +11 +1.73061 +21 +-7.5652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73061 +20 +-7.5652 +11 +1.73031 +21 +-7.56496 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73031 +20 +-7.56496 +11 +1.73007 +21 +-7.56466 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73007 +20 +-7.56466 +11 +1.72988 +21 +-7.56432 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72988 +20 +-7.56432 +11 +1.72977 +21 +-7.56395 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72977 +20 +-7.56395 +11 +1.72973 +21 +-7.56356 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72973 +20 +-7.56356 +11 +1.72974 +21 +-7.56346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-7.56346 +11 +1.72974 +21 +-7.55324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-7.55324 +11 +1.72974 +21 +-7.55324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-7.55324 +11 +1.72974 +21 +-7.54282 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-7.54282 +11 +1.72974 +21 +-7.54282 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-7.54282 +11 +1.72974 +21 +-6.74615 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-6.74615 +11 +1.72974 +21 +-6.74615 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-6.74615 +11 +1.72974 +21 +-6.73573 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72974 +20 +-6.73573 +11 +1.72973 +21 +-6.73564 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72973 +20 +-6.73564 +11 +1.72977 +21 +-6.73525 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72977 +20 +-6.73525 +11 +1.72988 +21 +-6.73488 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.72988 +20 +-6.73488 +11 +1.73007 +21 +-6.73454 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73007 +20 +-6.73454 +11 +1.73031 +21 +-6.73424 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73031 +20 +-6.73424 +11 +1.73061 +21 +-6.73399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73061 +20 +-6.73399 +11 +1.73095 +21 +-6.73381 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73095 +20 +-6.73381 +11 +1.73132 +21 +-6.7337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73132 +20 +-6.7337 +11 +1.73161 +21 +-6.73367 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73161 +20 +-6.73367 +11 +1.73171 +21 +-6.73366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73171 +20 +-6.73366 +11 +1.73181 +21 +-6.73367 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73181 +20 +-6.73367 +11 +1.77214 +21 +-6.73367 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77214 +20 +-6.73367 +11 +1.77224 +21 +-6.73366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77224 +20 +-6.73366 +11 +1.77233 +21 +-6.73367 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77233 +20 +-6.73367 +11 +1.77262 +21 +-6.7337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77262 +20 +-6.7337 +11 +1.77299 +21 +-6.73381 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77299 +20 +-6.73381 +11 +1.77334 +21 +-6.73399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77334 +20 +-6.73399 +11 +1.77364 +21 +-6.73424 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77364 +20 +-6.73424 +11 +1.77388 +21 +-6.73454 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77388 +20 +-6.73454 +11 +1.77406 +21 +-6.73488 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77406 +20 +-6.73488 +11 +1.77418 +21 +-6.73525 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77418 +20 +-6.73525 +11 +1.77422 +21 +-6.73564 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77422 +20 +-6.73564 +11 +1.77421 +21 +-6.73573 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77421 +20 +-6.73573 +11 +1.77421 +21 +-7.56346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77421 +20 +-7.56346 +11 +1.77422 +21 +-7.56356 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77027 +20 +-7.56159 +11 +1.77027 +21 +-7.55305 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77027 +20 +-7.55305 +11 +1.77027 +21 +-7.55305 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77027 +20 +-7.55305 +11 +1.77027 +21 +-6.75637 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77027 +20 +-6.75637 +11 +1.77027 +21 +-6.75637 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77027 +20 +-6.75637 +11 +1.77027 +21 +-6.73761 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.77027 +20 +-6.73761 +11 +1.73368 +21 +-6.73761 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73368 +20 +-6.73761 +11 +1.73368 +21 +-7.56159 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.73368 +20 +-7.56159 +11 +1.77027 +21 +-7.56159 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-4.98155 +11 +6.25254 +21 +-4.98164 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-4.98164 +11 +6.25254 +21 +-4.98164 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-4.98164 +11 +6.25251 +21 +-4.98193 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-4.98193 +11 +6.2524 +21 +-4.98231 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-4.98231 +11 +6.25221 +21 +-4.98265 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-4.98265 +11 +6.25197 +21 +-4.98295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-4.98295 +11 +6.25167 +21 +-4.98319 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-4.98319 +11 +6.25133 +21 +-4.98338 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-4.98338 +11 +6.25096 +21 +-4.98349 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-4.98349 +11 +6.25057 +21 +-4.98353 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-4.98353 +11 +6.25047 +21 +-4.98352 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25047 +20 +-4.98352 +11 +6.22983 +21 +-4.98352 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-4.98352 +11 +6.22974 +21 +-4.98353 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-4.98353 +11 +6.22935 +21 +-4.98349 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-4.98349 +11 +6.22898 +21 +-4.98338 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-4.98338 +11 +6.22864 +21 +-4.98319 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-4.98319 +11 +6.22834 +21 +-4.98295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-4.98295 +11 +6.22809 +21 +-4.98265 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-4.98265 +11 +6.22791 +21 +-4.98231 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-4.98231 +11 +6.2278 +21 +-4.98193 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-4.98193 +11 +6.22776 +21 +-4.98155 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-4.98155 +11 +6.22777 +21 +-4.98145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-4.98145 +11 +6.22777 +21 +-4.97123 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-4.97123 +11 +6.22777 +21 +-4.97123 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-4.97123 +11 +6.22777 +21 +-4.80417 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-4.80417 +11 +6.0557 +21 +-4.97626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0557 +20 +-4.97626 +11 +6.0557 +21 +-5.46468 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0557 +20 +-5.46468 +11 +6.22777 +21 +-5.63677 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-5.63677 +11 +6.22777 +21 +-5.46991 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-5.46991 +11 +6.22777 +21 +-5.46991 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-5.46991 +11 +6.22777 +21 +-5.45949 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-5.45949 +11 +6.22776 +21 +-5.45939 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-5.45939 +11 +6.2278 +21 +-5.45901 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-5.45901 +11 +6.22791 +21 +-5.45864 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-5.45864 +11 +6.22809 +21 +-5.45829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-5.45829 +11 +6.22834 +21 +-5.45799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-5.45799 +11 +6.22864 +21 +-5.45775 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-5.45775 +11 +6.22898 +21 +-5.45757 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-5.45757 +11 +6.22935 +21 +-5.45745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-5.45745 +11 +6.22964 +21 +-5.45742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22964 +20 +-5.45742 +11 +6.22974 +21 +-5.45741 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-5.45741 +11 +6.22983 +21 +-5.45742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-5.45742 +11 +6.25047 +21 +-5.45742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25047 +20 +-5.45742 +11 +6.25057 +21 +-5.45741 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-5.45741 +11 +6.25067 +21 +-5.45742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25067 +20 +-5.45742 +11 +6.25096 +21 +-5.45745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-5.45745 +11 +6.25133 +21 +-5.45757 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-5.45757 +11 +6.25167 +21 +-5.45775 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-5.45775 +11 +6.25197 +21 +-5.45799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-5.45799 +11 +6.25221 +21 +-5.45829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-5.45829 +11 +6.2524 +21 +-5.45864 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-5.45864 +11 +6.25251 +21 +-5.45901 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-5.45901 +11 +6.25255 +21 +-5.45939 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-5.45939 +11 +6.25254 +21 +-5.45949 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-5.45949 +11 +6.25254 +21 +-5.66154 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-5.66154 +11 +6.25621 +21 +-5.66521 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25621 +20 +-5.66521 +11 +6.25628 +21 +-5.66527 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25628 +20 +-5.66527 +11 +6.25634 +21 +-5.66534 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-5.66534 +11 +6.25634 +21 +-5.66534 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-5.66534 +11 +6.25653 +21 +-5.66557 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25653 +20 +-5.66557 +11 +6.25671 +21 +-5.66591 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-5.66591 +11 +6.25671 +21 +-5.66591 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-5.66591 +11 +6.25682 +21 +-5.66628 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25682 +20 +-5.66628 +11 +6.25686 +21 +-5.66667 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25686 +20 +-5.66667 +11 +6.25682 +21 +-5.66705 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25682 +20 +-5.66705 +11 +6.25671 +21 +-5.66743 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-5.66743 +11 +6.25653 +21 +-5.66777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25653 +20 +-5.66777 +11 +6.25634 +21 +-5.66799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-5.66799 +11 +6.25634 +21 +-5.66799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-5.66799 +11 +6.25628 +21 +-5.66807 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25628 +20 +-5.66807 +11 +6.25621 +21 +-5.66813 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25621 +20 +-5.66813 +11 +6.25254 +21 +-5.6718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-5.6718 +11 +6.25254 +21 +-5.67699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-5.67699 +11 +6.25255 +21 +-5.67708 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-5.67708 +11 +6.25254 +21 +-5.67718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-5.67718 +11 +6.25254 +21 +-5.67718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-5.67718 +11 +6.25251 +21 +-5.67747 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-5.67747 +11 +6.2524 +21 +-5.67784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-5.67784 +11 +6.25221 +21 +-5.67818 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-5.67818 +11 +6.25197 +21 +-5.67848 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-5.67848 +11 +6.25167 +21 +-5.67873 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-5.67873 +11 +6.25133 +21 +-5.67891 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-5.67891 +11 +6.25096 +21 +-5.67902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-5.67902 +11 +6.25057 +21 +-5.67906 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-5.67906 +11 +6.25047 +21 +-5.67905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25047 +20 +-5.67905 +11 +6.24528 +21 +-5.67905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24528 +20 +-5.67905 +11 +6.24161 +21 +-5.68272 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24161 +20 +-5.68272 +11 +6.24155 +21 +-5.6828 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24155 +20 +-5.6828 +11 +6.24148 +21 +-5.68286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24148 +20 +-5.68286 +11 +6.24148 +21 +-5.68286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24148 +20 +-5.68286 +11 +6.24125 +21 +-5.68304 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24125 +20 +-5.68304 +11 +6.24103 +21 +-5.68316 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24103 +20 +-5.68316 +11 +6.24091 +21 +-5.68323 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24091 +20 +-5.68323 +11 +6.2408 +21 +-5.68326 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2408 +20 +-5.68326 +11 +6.24054 +21 +-5.68334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24054 +20 +-5.68334 +11 +6.24015 +21 +-5.68338 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24015 +20 +-5.68338 +11 +6.23977 +21 +-5.68334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23977 +20 +-5.68334 +11 +6.2394 +21 +-5.68323 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2394 +20 +-5.68323 +11 +6.23905 +21 +-5.68304 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23905 +20 +-5.68304 +11 +6.23883 +21 +-5.68286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23883 +20 +-5.68286 +11 +6.23883 +21 +-5.68286 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23883 +20 +-5.68286 +11 +6.23875 +21 +-5.6828 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23875 +20 +-5.6828 +11 +6.23869 +21 +-5.68272 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23869 +20 +-5.68272 +11 +6.23502 +21 +-5.67905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23502 +20 +-5.67905 +11 +6.22983 +21 +-5.67905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-5.67905 +11 +6.22974 +21 +-5.67906 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-5.67906 +11 +6.22935 +21 +-5.67902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-5.67902 +11 +6.22898 +21 +-5.67891 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-5.67891 +11 +6.22864 +21 +-5.67873 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-5.67873 +11 +6.22834 +21 +-5.67848 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-5.67848 +11 +6.22828 +21 +-5.67841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22828 +20 +-5.67841 +11 +6.22809 +21 +-5.67818 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-5.67818 +11 +6.22791 +21 +-5.67784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-5.67784 +11 +6.2278 +21 +-5.67747 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-5.67747 +11 +6.22776 +21 +-5.67708 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-5.67708 +11 +6.22777 +21 +-5.67699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-5.67699 +11 +6.22777 +21 +-5.6718 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-5.6718 +11 +6.03819 +21 +-5.48219 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03819 +20 +-5.48219 +11 +6.03299 +21 +-5.48219 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03299 +20 +-5.48219 +11 +6.0329 +21 +-5.4822 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0329 +20 +-5.4822 +11 +6.03251 +21 +-5.48217 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03251 +20 +-5.48217 +11 +6.03214 +21 +-5.48205 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03214 +20 +-5.48205 +11 +6.0318 +21 +-5.48187 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0318 +20 +-5.48187 +11 +6.0315 +21 +-5.48162 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0315 +20 +-5.48162 +11 +6.03138 +21 +-5.48148 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03138 +20 +-5.48148 +11 +6.03125 +21 +-5.48133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03125 +20 +-5.48133 +11 +6.03107 +21 +-5.48098 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03107 +20 +-5.48098 +11 +6.03096 +21 +-5.48061 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03096 +20 +-5.48061 +11 +6.03092 +21 +-5.48023 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03092 +20 +-5.48023 +11 +6.03093 +21 +-5.48013 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-5.48013 +11 +6.03093 +21 +-5.47494 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-5.47494 +11 +6.02726 +21 +-5.47127 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02726 +20 +-5.47127 +11 +6.02719 +21 +-5.47121 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02719 +20 +-5.47121 +11 +6.02712 +21 +-5.47113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02712 +20 +-5.47113 +11 +6.02712 +21 +-5.47113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02712 +20 +-5.47113 +11 +6.02694 +21 +-5.47091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02694 +20 +-5.47091 +11 +6.02676 +21 +-5.47057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02676 +20 +-5.47057 +11 +6.02664 +21 +-5.4702 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02664 +20 +-5.4702 +11 +6.02661 +21 +-5.46981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02661 +20 +-5.46981 +11 +6.02664 +21 +-5.46942 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02664 +20 +-5.46942 +11 +6.02676 +21 +-5.46905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02676 +20 +-5.46905 +11 +6.02694 +21 +-5.46871 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02694 +20 +-5.46871 +11 +6.02712 +21 +-5.46849 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02712 +20 +-5.46849 +11 +6.02712 +21 +-5.46849 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02712 +20 +-5.46849 +11 +6.02719 +21 +-5.46841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02719 +20 +-5.46841 +11 +6.02726 +21 +-5.46835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02726 +20 +-5.46835 +11 +6.03093 +21 +-5.46468 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-5.46468 +11 +6.03093 +21 +-4.97626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-4.97626 +11 +6.02726 +21 +-4.97259 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02726 +20 +-4.97259 +11 +6.02719 +21 +-4.97253 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02719 +20 +-4.97253 +11 +6.02694 +21 +-4.97223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02694 +20 +-4.97223 +11 +6.02676 +21 +-4.97189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02676 +20 +-4.97189 +11 +6.02664 +21 +-4.97152 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02664 +20 +-4.97152 +11 +6.02661 +21 +-4.97113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02661 +20 +-4.97113 +11 +6.02664 +21 +-4.97075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02664 +20 +-4.97075 +11 +6.02669 +21 +-4.9706 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02669 +20 +-4.9706 +11 +6.02676 +21 +-4.97037 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02676 +20 +-4.97037 +11 +6.02694 +21 +-4.97003 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02694 +20 +-4.97003 +11 +6.02719 +21 +-4.96973 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02719 +20 +-4.96973 +11 +6.02726 +21 +-4.96967 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.02726 +20 +-4.96967 +11 +6.03093 +21 +-4.966 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-4.966 +11 +6.03093 +21 +-4.96081 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03093 +20 +-4.96081 +11 +6.03092 +21 +-4.96072 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03092 +20 +-4.96072 +11 +6.03096 +21 +-4.96033 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03096 +20 +-4.96033 +11 +6.03107 +21 +-4.95996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03107 +20 +-4.95996 +11 +6.03125 +21 +-4.95962 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03125 +20 +-4.95962 +11 +6.0315 +21 +-4.95932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0315 +20 +-4.95932 +11 +6.0318 +21 +-4.95907 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0318 +20 +-4.95907 +11 +6.03214 +21 +-4.95889 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03214 +20 +-4.95889 +11 +6.03251 +21 +-4.95878 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03251 +20 +-4.95878 +11 +6.0328 +21 +-4.95875 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0328 +20 +-4.95875 +11 +6.0329 +21 +-4.95874 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0329 +20 +-4.95874 +11 +6.03299 +21 +-4.95875 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03299 +20 +-4.95875 +11 +6.03819 +21 +-4.95875 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03819 +20 +-4.95875 +11 +6.22777 +21 +-4.76914 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-4.76914 +11 +6.22777 +21 +-4.76395 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-4.76395 +11 +6.22776 +21 +-4.76386 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-4.76386 +11 +6.2278 +21 +-4.76347 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-4.76347 +11 +6.22791 +21 +-4.7631 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-4.7631 +11 +6.22809 +21 +-4.76276 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-4.76276 +11 +6.22834 +21 +-4.76246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-4.76246 +11 +6.22864 +21 +-4.76221 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-4.76221 +11 +6.22898 +21 +-4.76203 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-4.76203 +11 +6.22935 +21 +-4.76192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-4.76192 +11 +6.22964 +21 +-4.76189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22964 +20 +-4.76189 +11 +6.22974 +21 +-4.76188 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-4.76188 +11 +6.22983 +21 +-4.76189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-4.76189 +11 +6.23502 +21 +-4.76189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23502 +20 +-4.76189 +11 +6.23869 +21 +-4.75822 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23869 +20 +-4.75822 +11 +6.23875 +21 +-4.75814 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23875 +20 +-4.75814 +11 +6.23883 +21 +-4.75808 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23883 +20 +-4.75808 +11 +6.23883 +21 +-4.75808 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23883 +20 +-4.75808 +11 +6.23905 +21 +-4.7579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23905 +20 +-4.7579 +11 +6.2394 +21 +-4.75772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2394 +20 +-4.75772 +11 +6.23977 +21 +-4.7576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23977 +20 +-4.7576 +11 +6.24015 +21 +-4.75757 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24015 +20 +-4.75757 +11 +6.24054 +21 +-4.7576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24054 +20 +-4.7576 +11 +6.24091 +21 +-4.75772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24091 +20 +-4.75772 +11 +6.24125 +21 +-4.7579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24125 +20 +-4.7579 +11 +6.24155 +21 +-4.75814 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24155 +20 +-4.75814 +11 +6.24161 +21 +-4.75822 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24161 +20 +-4.75822 +11 +6.24528 +21 +-4.76189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24528 +20 +-4.76189 +11 +6.25047 +21 +-4.76189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25047 +20 +-4.76189 +11 +6.25057 +21 +-4.76188 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25057 +20 +-4.76188 +11 +6.25067 +21 +-4.76189 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25067 +20 +-4.76189 +11 +6.25096 +21 +-4.76192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25096 +20 +-4.76192 +11 +6.25133 +21 +-4.76203 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25133 +20 +-4.76203 +11 +6.25167 +21 +-4.76221 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25167 +20 +-4.76221 +11 +6.25197 +21 +-4.76246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25197 +20 +-4.76246 +11 +6.25221 +21 +-4.76276 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25221 +20 +-4.76276 +11 +6.2524 +21 +-4.7631 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2524 +20 +-4.7631 +11 +6.25251 +21 +-4.76347 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25251 +20 +-4.76347 +11 +6.25255 +21 +-4.76386 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25255 +20 +-4.76386 +11 +6.25254 +21 +-4.76395 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-4.76395 +11 +6.25254 +21 +-4.76914 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-4.76914 +11 +6.25621 +21 +-4.77281 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25621 +20 +-4.77281 +11 +6.25628 +21 +-4.77287 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25628 +20 +-4.77287 +11 +6.25634 +21 +-4.77295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-4.77295 +11 +6.25634 +21 +-4.77295 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-4.77295 +11 +6.25653 +21 +-4.77317 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25653 +20 +-4.77317 +11 +6.25671 +21 +-4.77352 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-4.77352 +11 +6.25682 +21 +-4.77389 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25682 +20 +-4.77389 +11 +6.25686 +21 +-4.77427 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25686 +20 +-4.77427 +11 +6.25682 +21 +-4.77466 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25682 +20 +-4.77466 +11 +6.25671 +21 +-4.77503 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25671 +20 +-4.77503 +11 +6.25653 +21 +-4.77537 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25653 +20 +-4.77537 +11 +6.25634 +21 +-4.7756 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-4.7756 +11 +6.25634 +21 +-4.7756 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25634 +20 +-4.7756 +11 +6.25628 +21 +-4.77567 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25628 +20 +-4.77567 +11 +6.25621 +21 +-4.77573 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25621 +20 +-4.77573 +11 +6.25254 +21 +-4.7794 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-4.7794 +11 +6.25254 +21 +-4.98145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-4.98145 +11 +6.25255 +21 +-4.98155 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-5.67098 +11 +6.2317 +21 +-5.67108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-5.67108 +11 +6.2317 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-5.67512 +11 +6.23574 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23574 +20 +-5.67512 +11 +6.23584 +21 +-5.67511 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23584 +20 +-5.67511 +11 +6.23594 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-5.67512 +11 +6.23594 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-5.67512 +11 +6.23623 +21 +-5.67514 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23623 +20 +-5.67514 +11 +6.2366 +21 +-5.67526 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2366 +20 +-5.67526 +11 +6.23694 +21 +-5.67544 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23694 +20 +-5.67544 +11 +6.23724 +21 +-5.67569 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23724 +20 +-5.67569 +11 +6.2373 +21 +-5.67576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2373 +20 +-5.67576 +11 +6.24015 +21 +-5.67861 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24015 +20 +-5.67861 +11 +6.24301 +21 +-5.67576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24301 +20 +-5.67576 +11 +6.24307 +21 +-5.67569 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24307 +20 +-5.67569 +11 +6.24314 +21 +-5.67562 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24314 +20 +-5.67562 +11 +6.24337 +21 +-5.67544 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24337 +20 +-5.67544 +11 +6.24371 +21 +-5.67526 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24371 +20 +-5.67526 +11 +6.24371 +21 +-5.67526 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24371 +20 +-5.67526 +11 +6.24408 +21 +-5.67514 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24408 +20 +-5.67514 +11 +6.24437 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24437 +20 +-5.67512 +11 +6.24437 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24437 +20 +-5.67512 +11 +6.24447 +21 +-5.67511 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24447 +20 +-5.67511 +11 +6.24456 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24456 +20 +-5.67512 +11 +6.2486 +21 +-5.67512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-5.67512 +11 +6.2486 +21 +-5.67108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-5.67108 +11 +6.24859 +21 +-5.67098 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-5.67098 +11 +6.2486 +21 +-5.67089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-5.67089 +11 +6.24863 +21 +-5.6706 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-5.6706 +11 +6.24874 +21 +-5.67022 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-5.67022 +11 +6.24883 +21 +-5.67007 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24883 +20 +-5.67007 +11 +6.24893 +21 +-5.66988 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-5.66988 +11 +6.24911 +21 +-5.66966 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24911 +20 +-5.66966 +11 +6.24917 +21 +-5.66958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-5.66958 +11 +6.24925 +21 +-5.66952 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-5.66952 +11 +6.2521 +21 +-5.66667 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2521 +20 +-5.66667 +11 +6.24925 +21 +-5.66382 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-5.66382 +11 +6.24917 +21 +-5.66375 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-5.66375 +11 +6.24911 +21 +-5.66368 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24911 +20 +-5.66368 +11 +6.24893 +21 +-5.66345 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-5.66345 +11 +6.24874 +21 +-5.66311 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-5.66311 +11 +6.24863 +21 +-5.66274 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-5.66274 +11 +6.24859 +21 +-5.66236 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-5.66236 +11 +6.2486 +21 +-5.66226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-5.66226 +11 +6.2486 +21 +-5.46971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-5.46971 +11 +6.2486 +21 +-5.46971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-5.46971 +11 +6.2486 +21 +-5.46136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-5.46136 +11 +6.2317 +21 +-5.46136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-5.46136 +11 +6.2317 +21 +-5.64143 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-5.64143 +11 +6.23171 +21 +-5.64152 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-5.64152 +11 +6.2317 +21 +-5.64162 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-5.64162 +11 +6.2317 +21 +-5.64162 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-5.64162 +11 +6.23168 +21 +-5.64191 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-5.64191 +11 +6.23156 +21 +-5.64228 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-5.64228 +11 +6.23156 +21 +-5.64228 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-5.64228 +11 +6.23138 +21 +-5.64262 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-5.64262 +11 +6.23125 +21 +-5.64278 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23125 +20 +-5.64278 +11 +6.23114 +21 +-5.64292 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-5.64292 +11 +6.23106 +21 +-5.64298 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-5.64298 +11 +6.23084 +21 +-5.64317 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23084 +20 +-5.64317 +11 +6.23058 +21 +-5.6433 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23058 +20 +-5.6433 +11 +6.23049 +21 +-5.64335 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23049 +20 +-5.64335 +11 +6.23012 +21 +-5.64346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23012 +20 +-5.64346 +11 +6.22974 +21 +-5.6435 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-5.6435 +11 +6.22974 +21 +-5.6435 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-5.6435 +11 +6.22962 +21 +-5.64349 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22962 +20 +-5.64349 +11 +6.22935 +21 +-5.64346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-5.64346 +11 +6.22898 +21 +-5.64335 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-5.64335 +11 +6.22898 +21 +-5.64335 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-5.64335 +11 +6.22864 +21 +-5.64317 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-5.64317 +11 +6.22841 +21 +-5.64298 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22841 +20 +-5.64298 +11 +6.22834 +21 +-5.64292 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-5.64292 +11 +6.22828 +21 +-5.64285 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22828 +20 +-5.64285 +11 +6.05241 +21 +-5.46696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05241 +20 +-5.46696 +11 +6.05233 +21 +-5.4669 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05233 +20 +-5.4669 +11 +6.05227 +21 +-5.46682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05227 +20 +-5.46682 +11 +6.05227 +21 +-5.46682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05227 +20 +-5.46682 +11 +6.05209 +21 +-5.4666 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05209 +20 +-5.4666 +11 +6.0519 +21 +-5.46625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0519 +20 +-5.46625 +11 +6.05179 +21 +-5.46588 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05179 +20 +-5.46588 +11 +6.05175 +21 +-5.4655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05175 +20 +-5.4655 +11 +6.05176 +21 +-5.4654 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05176 +20 +-5.4654 +11 +6.05176 +21 +-4.97554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05176 +20 +-4.97554 +11 +6.05175 +21 +-4.97545 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05175 +20 +-4.97545 +11 +6.05179 +21 +-4.97506 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05179 +20 +-4.97506 +11 +6.05179 +21 +-4.97506 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05179 +20 +-4.97506 +11 +6.0519 +21 +-4.97469 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0519 +20 +-4.97469 +11 +6.05197 +21 +-4.97456 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05197 +20 +-4.97456 +11 +6.05209 +21 +-4.97435 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05209 +20 +-4.97435 +11 +6.05227 +21 +-4.97412 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05227 +20 +-4.97412 +11 +6.05233 +21 +-4.97405 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05233 +20 +-4.97405 +11 +6.05241 +21 +-4.97398 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05241 +20 +-4.97398 +11 +6.22828 +21 +-4.7981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22828 +20 +-4.7981 +11 +6.22834 +21 +-4.79802 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-4.79802 +11 +6.22841 +21 +-4.79796 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22841 +20 +-4.79796 +11 +6.22841 +21 +-4.79796 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22841 +20 +-4.79796 +11 +6.22864 +21 +-4.79778 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-4.79778 +11 +6.22898 +21 +-4.79759 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-4.79759 +11 +6.22898 +21 +-4.79759 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-4.79759 +11 +6.22898 +21 +-4.79759 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-4.79759 +11 +6.22935 +21 +-4.79748 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-4.79748 +11 +6.22966 +21 +-4.79745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22966 +20 +-4.79745 +11 +6.22974 +21 +-4.79744 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-4.79744 +11 +6.22974 +21 +-4.79744 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-4.79744 +11 +6.23012 +21 +-4.79748 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23012 +20 +-4.79748 +11 +6.23049 +21 +-4.79759 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23049 +20 +-4.79759 +11 +6.23084 +21 +-4.79778 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23084 +20 +-4.79778 +11 +6.23114 +21 +-4.79802 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-4.79802 +11 +6.23138 +21 +-4.79832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-4.79832 +11 +6.23156 +21 +-4.79866 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-4.79866 +11 +6.23168 +21 +-4.79903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-4.79903 +11 +6.2317 +21 +-4.79932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-4.79932 +11 +6.23171 +21 +-4.79942 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-4.79942 +11 +6.2317 +21 +-4.79952 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-4.79952 +11 +6.2317 +21 +-4.97958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-4.97958 +11 +6.2486 +21 +-4.97958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-4.97958 +11 +6.2486 +21 +-4.97104 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-4.97104 +11 +6.2486 +21 +-4.97104 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-4.97104 +11 +6.2486 +21 +-4.77868 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-4.77868 +11 +6.24859 +21 +-4.77859 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-4.77859 +11 +6.2486 +21 +-4.77849 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-4.77849 +11 +6.24863 +21 +-4.7782 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-4.7782 +11 +6.24874 +21 +-4.77783 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-4.77783 +11 +6.24883 +21 +-4.77767 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24883 +20 +-4.77767 +11 +6.24893 +21 +-4.77749 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-4.77749 +11 +6.24903 +21 +-4.77735 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24903 +20 +-4.77735 +11 +6.24917 +21 +-4.77719 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-4.77719 +11 +6.24925 +21 +-4.77713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-4.77713 +11 +6.2521 +21 +-4.77427 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2521 +20 +-4.77427 +11 +6.24925 +21 +-4.77142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-4.77142 +11 +6.24917 +21 +-4.77136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-4.77136 +11 +6.24893 +21 +-4.77106 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-4.77106 +11 +6.24874 +21 +-4.77072 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-4.77072 +11 +6.24863 +21 +-4.77035 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-4.77035 +11 +6.24863 +21 +-4.77031 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-4.77031 +11 +6.24859 +21 +-4.76996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-4.76996 +11 +6.2486 +21 +-4.76986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-4.76986 +11 +6.2486 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-4.76583 +11 +6.24456 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24456 +20 +-4.76583 +11 +6.24447 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24447 +20 +-4.76583 +11 +6.24437 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24437 +20 +-4.76583 +11 +6.24437 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24437 +20 +-4.76583 +11 +6.24408 +21 +-4.7658 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24408 +20 +-4.7658 +11 +6.24371 +21 +-4.76568 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24371 +20 +-4.76568 +11 +6.24337 +21 +-4.7655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24337 +20 +-4.7655 +11 +6.24337 +21 +-4.7655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24337 +20 +-4.7655 +11 +6.24314 +21 +-4.76532 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24314 +20 +-4.76532 +11 +6.24307 +21 +-4.76526 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24307 +20 +-4.76526 +11 +6.24301 +21 +-4.76518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24301 +20 +-4.76518 +11 +6.24015 +21 +-4.76233 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24015 +20 +-4.76233 +11 +6.2373 +21 +-4.76518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2373 +20 +-4.76518 +11 +6.23724 +21 +-4.76526 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23724 +20 +-4.76526 +11 +6.23694 +21 +-4.7655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23694 +20 +-4.7655 +11 +6.2366 +21 +-4.76568 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2366 +20 +-4.76568 +11 +6.23623 +21 +-4.7658 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23623 +20 +-4.7658 +11 +6.23594 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-4.76583 +11 +6.23594 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-4.76583 +11 +6.23584 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23584 +20 +-4.76583 +11 +6.23574 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23574 +20 +-4.76583 +11 +6.2317 +21 +-4.76583 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-4.76583 +11 +6.2317 +21 +-4.76986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-4.76986 +11 +6.23171 +21 +-4.76996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-4.76996 +11 +6.2317 +21 +-4.77006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-4.77006 +11 +6.2317 +21 +-4.77006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-4.77006 +11 +6.23168 +21 +-4.77035 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-4.77035 +11 +6.23156 +21 +-4.77072 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-4.77072 +11 +6.23138 +21 +-4.77106 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-4.77106 +11 +6.23114 +21 +-4.77136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-4.77136 +11 +6.23106 +21 +-4.77142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-4.77142 +11 +6.04046 +21 +-4.96204 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.04046 +20 +-4.96204 +11 +6.0404 +21 +-4.96211 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0404 +20 +-4.96211 +11 +6.0401 +21 +-4.96236 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0401 +20 +-4.96236 +11 +6.03976 +21 +-4.96254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03976 +20 +-4.96254 +11 +6.03939 +21 +-4.96266 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03939 +20 +-4.96266 +11 +6.0391 +21 +-4.96268 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0391 +20 +-4.96268 +11 +6.0391 +21 +-4.96268 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0391 +20 +-4.96268 +11 +6.039 +21 +-4.96269 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.039 +20 +-4.96269 +11 +6.03891 +21 +-4.96268 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03891 +20 +-4.96268 +11 +6.03487 +21 +-4.96268 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-4.96268 +11 +6.03487 +21 +-4.96672 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-4.96672 +11 +6.03488 +21 +-4.96682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03488 +20 +-4.96682 +11 +6.03487 +21 +-4.96692 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-4.96692 +11 +6.03487 +21 +-4.96692 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-4.96692 +11 +6.03484 +21 +-4.9672 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03484 +20 +-4.9672 +11 +6.03473 +21 +-4.96758 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-4.96758 +11 +6.03473 +21 +-4.96758 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-4.96758 +11 +6.03454 +21 +-4.96792 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-4.96792 +11 +6.03436 +21 +-4.96814 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03436 +20 +-4.96814 +11 +6.0343 +21 +-4.96822 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0343 +20 +-4.96822 +11 +6.03422 +21 +-4.96828 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03422 +20 +-4.96828 +11 +6.03137 +21 +-4.97113 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03137 +20 +-4.97113 +11 +6.03422 +21 +-4.97399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03422 +20 +-4.97399 +11 +6.0343 +21 +-4.97405 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0343 +20 +-4.97405 +11 +6.03436 +21 +-4.97412 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03436 +20 +-4.97412 +11 +6.03454 +21 +-4.97435 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-4.97435 +11 +6.03454 +21 +-4.97435 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-4.97435 +11 +6.03473 +21 +-4.97469 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-4.97469 +11 +6.03484 +21 +-4.97506 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03484 +20 +-4.97506 +11 +6.03487 +21 +-4.97535 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-4.97535 +11 +6.03488 +21 +-4.97545 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03488 +20 +-4.97545 +11 +6.03487 +21 +-4.97554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-4.97554 +11 +6.03487 +21 +-5.4654 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-5.4654 +11 +6.03488 +21 +-5.4655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03488 +20 +-5.4655 +11 +6.03487 +21 +-5.46559 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-5.46559 +11 +6.03487 +21 +-5.46559 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-5.46559 +11 +6.03484 +21 +-5.46588 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03484 +20 +-5.46588 +11 +6.03473 +21 +-5.46625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-5.46625 +11 +6.03473 +21 +-5.46625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-5.46625 +11 +6.03454 +21 +-5.4666 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-5.4666 +11 +6.03436 +21 +-5.46682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03436 +20 +-5.46682 +11 +6.0343 +21 +-5.4669 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0343 +20 +-5.4669 +11 +6.03422 +21 +-5.46696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03422 +20 +-5.46696 +11 +6.03137 +21 +-5.46981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03137 +20 +-5.46981 +11 +6.03422 +21 +-5.47266 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03422 +20 +-5.47266 +11 +6.0343 +21 +-5.47272 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0343 +20 +-5.47272 +11 +6.03436 +21 +-5.4728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03436 +20 +-5.4728 +11 +6.03454 +21 +-5.47302 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03454 +20 +-5.47302 +11 +6.03473 +21 +-5.47337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-5.47337 +11 +6.03473 +21 +-5.47337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03473 +20 +-5.47337 +11 +6.03484 +21 +-5.47374 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03484 +20 +-5.47374 +11 +6.03487 +21 +-5.47403 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-5.47403 +11 +6.03488 +21 +-5.47412 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03488 +20 +-5.47412 +11 +6.03487 +21 +-5.47422 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-5.47422 +11 +6.03487 +21 +-5.47826 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03487 +20 +-5.47826 +11 +6.03891 +21 +-5.47826 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03891 +20 +-5.47826 +11 +6.039 +21 +-5.47825 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.039 +20 +-5.47825 +11 +6.0391 +21 +-5.47826 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0391 +20 +-5.47826 +11 +6.0391 +21 +-5.47826 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0391 +20 +-5.47826 +11 +6.03939 +21 +-5.47829 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03939 +20 +-5.47829 +11 +6.03976 +21 +-5.4784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.03976 +20 +-5.4784 +11 +6.0401 +21 +-5.47858 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0401 +20 +-5.47858 +11 +6.0404 +21 +-5.47883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0404 +20 +-5.47883 +11 +6.04046 +21 +-5.4789 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.04046 +20 +-5.4789 +11 +6.23106 +21 +-5.66952 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-5.66952 +11 +6.23114 +21 +-5.66958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-5.66958 +11 +6.23138 +21 +-5.66988 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-5.66988 +11 +6.23156 +21 +-5.67022 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-5.67022 +11 +6.23168 +21 +-5.6706 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-5.6706 +11 +6.23168 +21 +-5.6706 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-5.6706 +11 +6.23171 +21 +-5.67098 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91642 +20 +-4.67774 +11 +5.91671 +21 +-4.67777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91671 +20 +-4.67777 +11 +5.91708 +21 +-4.67788 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91708 +20 +-4.67788 +11 +5.91742 +21 +-4.67806 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91742 +20 +-4.67806 +11 +5.91772 +21 +-4.67831 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91772 +20 +-4.67831 +11 +5.91797 +21 +-4.67861 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91797 +20 +-4.67861 +11 +5.91815 +21 +-4.67895 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91815 +20 +-4.67895 +11 +5.91826 +21 +-4.67932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91826 +20 +-4.67932 +11 +5.9183 +21 +-4.67971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9183 +20 +-4.67971 +11 +5.91829 +21 +-4.67981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91829 +20 +-4.67981 +11 +5.91829 +21 +-5.5643 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91829 +20 +-5.5643 +11 +5.9183 +21 +-5.56439 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9183 +20 +-5.56439 +11 +5.91826 +21 +-5.56478 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91826 +20 +-5.56478 +11 +5.91815 +21 +-5.56515 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91815 +20 +-5.56515 +11 +5.91797 +21 +-5.56549 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91797 +20 +-5.56549 +11 +5.91772 +21 +-5.56579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91772 +20 +-5.56579 +11 +5.91742 +21 +-5.56604 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91742 +20 +-5.56604 +11 +5.91708 +21 +-5.56622 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91708 +20 +-5.56622 +11 +5.91671 +21 +-5.56633 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91671 +20 +-5.56633 +11 +5.91642 +21 +-5.56636 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91642 +20 +-5.56636 +11 +5.91632 +21 +-5.56637 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91632 +20 +-5.56637 +11 +5.91622 +21 +-5.56636 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91622 +20 +-5.56636 +11 +5.46173 +21 +-5.56636 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46173 +20 +-5.56636 +11 +5.46163 +21 +-5.56637 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46163 +20 +-5.56637 +11 +5.46153 +21 +-5.56636 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46153 +20 +-5.56636 +11 +5.46124 +21 +-5.56633 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46124 +20 +-5.56633 +11 +5.46087 +21 +-5.56622 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46087 +20 +-5.56622 +11 +5.46053 +21 +-5.56604 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46053 +20 +-5.56604 +11 +5.46023 +21 +-5.56579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46023 +20 +-5.56579 +11 +5.45998 +21 +-5.56549 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45998 +20 +-5.56549 +11 +5.4598 +21 +-5.56515 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4598 +20 +-5.56515 +11 +5.45969 +21 +-5.56478 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45969 +20 +-5.56478 +11 +5.45965 +21 +-5.56439 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45965 +20 +-5.56439 +11 +5.45966 +21 +-5.5643 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45966 +20 +-5.5643 +11 +5.45966 +21 +-4.67981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45966 +20 +-4.67981 +11 +5.45965 +21 +-4.67971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45965 +20 +-4.67971 +11 +5.45969 +21 +-4.67932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45969 +20 +-4.67932 +11 +5.4598 +21 +-4.67895 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4598 +20 +-4.67895 +11 +5.45998 +21 +-4.67861 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45998 +20 +-4.67861 +11 +5.46023 +21 +-4.67831 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46023 +20 +-4.67831 +11 +5.46053 +21 +-4.67806 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46053 +20 +-4.67806 +11 +5.46087 +21 +-4.67788 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46087 +20 +-4.67788 +11 +5.46124 +21 +-4.67777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46124 +20 +-4.67777 +11 +5.46153 +21 +-4.67774 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46153 +20 +-4.67774 +11 +5.46163 +21 +-4.67773 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46163 +20 +-4.67773 +11 +5.46173 +21 +-4.67774 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46173 +20 +-4.67774 +11 +5.91622 +21 +-4.67774 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91622 +20 +-4.67774 +11 +5.91632 +21 +-4.67773 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91632 +20 +-4.67773 +11 +5.91642 +21 +-4.67774 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4636 +20 +-4.68168 +11 +5.4636 +21 +-5.56243 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4636 +20 +-5.56243 +11 +5.91435 +21 +-5.56243 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91435 +20 +-5.56243 +11 +5.91435 +21 +-4.68168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91435 +20 +-4.68168 +11 +5.4636 +21 +-4.68168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.7427 +20 +-5.49007 +11 +3.74269 +21 +-5.49017 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74269 +20 +-5.49017 +11 +3.74269 +21 +-5.49017 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74269 +20 +-5.49017 +11 +3.74266 +21 +-5.49046 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74266 +20 +-5.49046 +11 +3.74255 +21 +-5.49083 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74255 +20 +-5.49083 +11 +3.74237 +21 +-5.49117 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74237 +20 +-5.49117 +11 +3.74212 +21 +-5.49147 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74212 +20 +-5.49147 +11 +3.74182 +21 +-5.49172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74182 +20 +-5.49172 +11 +3.74148 +21 +-5.4919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74148 +20 +-5.4919 +11 +3.74111 +21 +-5.49201 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74111 +20 +-5.49201 +11 +3.74072 +21 +-5.49205 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74072 +20 +-5.49205 +11 +3.74063 +21 +-5.49204 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74063 +20 +-5.49204 +11 +3.70031 +21 +-5.49204 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.70031 +20 +-5.49204 +11 +3.70022 +21 +-5.49205 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.70022 +20 +-5.49205 +11 +3.69983 +21 +-5.49201 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69983 +20 +-5.49201 +11 +3.69946 +21 +-5.4919 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69946 +20 +-5.4919 +11 +3.69912 +21 +-5.49172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69912 +20 +-5.49172 +11 +3.69882 +21 +-5.49147 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69882 +20 +-5.49147 +11 +3.69857 +21 +-5.49117 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69857 +20 +-5.49117 +11 +3.69839 +21 +-5.49083 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69839 +20 +-5.49083 +11 +3.69828 +21 +-5.49046 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69828 +20 +-5.49046 +11 +3.69824 +21 +-5.49007 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69824 +20 +-5.49007 +11 +3.69825 +21 +-5.48998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-5.48998 +11 +3.69825 +21 +-5.47975 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-5.47975 +11 +3.69825 +21 +-5.47975 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-5.47975 +11 +3.69825 +21 +-5.46934 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-5.46934 +11 +3.69825 +21 +-5.46934 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-5.46934 +11 +3.69825 +21 +-4.96138 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-4.96138 +11 +3.69825 +21 +-4.96138 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-4.96138 +11 +3.69825 +21 +-4.95097 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69825 +20 +-4.95097 +11 +3.69824 +21 +-4.95087 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69824 +20 +-4.95087 +11 +3.69828 +21 +-4.95048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69828 +20 +-4.95048 +11 +3.69839 +21 +-4.95011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69839 +20 +-4.95011 +11 +3.69857 +21 +-4.94977 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69857 +20 +-4.94977 +11 +3.69882 +21 +-4.94947 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69882 +20 +-4.94947 +11 +3.69912 +21 +-4.94922 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69912 +20 +-4.94922 +11 +3.69946 +21 +-4.94904 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69946 +20 +-4.94904 +11 +3.69983 +21 +-4.94893 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.69983 +20 +-4.94893 +11 +3.70012 +21 +-4.9489 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.70012 +20 +-4.9489 +11 +3.70022 +21 +-4.94889 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.70022 +20 +-4.94889 +11 +3.70031 +21 +-4.9489 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.70031 +20 +-4.9489 +11 +3.74063 +21 +-4.9489 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74063 +20 +-4.9489 +11 +3.74072 +21 +-4.94889 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74072 +20 +-4.94889 +11 +3.74082 +21 +-4.9489 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74082 +20 +-4.9489 +11 +3.74111 +21 +-4.94893 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74111 +20 +-4.94893 +11 +3.74148 +21 +-4.94904 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74148 +20 +-4.94904 +11 +3.74182 +21 +-4.94922 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74182 +20 +-4.94922 +11 +3.74212 +21 +-4.94947 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74212 +20 +-4.94947 +11 +3.74237 +21 +-4.94977 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74237 +20 +-4.94977 +11 +3.74255 +21 +-4.95011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74255 +20 +-4.95011 +11 +3.74266 +21 +-4.95048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74266 +20 +-4.95048 +11 +3.7427 +21 +-4.95087 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.7427 +20 +-4.95087 +11 +3.74269 +21 +-4.95096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74269 +20 +-4.95096 +11 +3.74269 +21 +-5.48998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.74269 +20 +-5.48998 +11 +3.7427 +21 +-5.49007 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.70218 +20 +-5.4881 +11 +3.73875 +21 +-5.4881 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.73875 +20 +-5.4881 +11 +3.73875 +21 +-5.46914 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.73875 +20 +-5.46914 +11 +3.73875 +21 +-5.46914 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.73875 +20 +-5.46914 +11 +3.73875 +21 +-4.97161 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.73875 +20 +-4.97161 +11 +3.73875 +21 +-4.9716 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.73875 +20 +-4.9716 +11 +3.73875 +21 +-4.95284 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.73875 +20 +-4.95284 +11 +3.70218 +21 +-4.95284 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.70218 +20 +-4.95284 +11 +3.70218 +21 +-5.4881 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04239 +20 +-3.37853 +11 +3.04268 +21 +-3.37855 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04268 +20 +-3.37855 +11 +3.04305 +21 +-3.37867 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04305 +20 +-3.37867 +11 +3.0434 +21 +-3.37885 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0434 +20 +-3.37885 +11 +3.0437 +21 +-3.3791 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0437 +20 +-3.3791 +11 +3.04394 +21 +-3.3794 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04394 +20 +-3.3794 +11 +3.04412 +21 +-3.37974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04412 +20 +-3.37974 +11 +3.04424 +21 +-3.38011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04424 +20 +-3.38011 +11 +3.04428 +21 +-3.38049 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04428 +20 +-3.38049 +11 +3.04427 +21 +-3.38059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04427 +20 +-3.38059 +11 +3.04427 +21 +-4.26508 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04427 +20 +-4.26508 +11 +3.04428 +21 +-4.26518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04428 +20 +-4.26518 +11 +3.04424 +21 +-4.26556 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04424 +20 +-4.26556 +11 +3.04412 +21 +-4.26594 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04412 +20 +-4.26594 +11 +3.04394 +21 +-4.26628 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04394 +20 +-4.26628 +11 +3.0437 +21 +-4.26658 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0437 +20 +-4.26658 +11 +3.0434 +21 +-4.26682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0434 +20 +-4.26682 +11 +3.04305 +21 +-4.26701 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04305 +20 +-4.26701 +11 +3.04268 +21 +-4.26712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04268 +20 +-4.26712 +11 +3.04239 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04239 +20 +-4.26715 +11 +3.0423 +21 +-4.26716 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0423 +20 +-4.26716 +11 +3.0422 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0422 +20 +-4.26715 +11 +2.58772 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58772 +20 +-4.26715 +11 +2.58763 +21 +-4.26716 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58763 +20 +-4.26716 +11 +2.58753 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58753 +20 +-4.26715 +11 +2.58724 +21 +-4.26712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58724 +20 +-4.26712 +11 +2.58687 +21 +-4.26701 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58687 +20 +-4.26701 +11 +2.58653 +21 +-4.26682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58653 +20 +-4.26682 +11 +2.58623 +21 +-4.26658 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58623 +20 +-4.26658 +11 +2.58598 +21 +-4.26628 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58598 +20 +-4.26628 +11 +2.5858 +21 +-4.26594 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.5858 +20 +-4.26594 +11 +2.58569 +21 +-4.26556 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58569 +20 +-4.26556 +11 +2.58565 +21 +-4.26518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58565 +20 +-4.26518 +11 +2.58566 +21 +-4.26508 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58566 +20 +-4.26508 +11 +2.58566 +21 +-3.38059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58566 +20 +-3.38059 +11 +2.58565 +21 +-3.38049 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58565 +20 +-3.38049 +11 +2.58569 +21 +-3.38011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58569 +20 +-3.38011 +11 +2.5858 +21 +-3.37974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.5858 +20 +-3.37974 +11 +2.58598 +21 +-3.3794 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58598 +20 +-3.3794 +11 +2.58623 +21 +-3.3791 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58623 +20 +-3.3791 +11 +2.58653 +21 +-3.37885 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58653 +20 +-3.37885 +11 +2.58687 +21 +-3.37867 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58687 +20 +-3.37867 +11 +2.58724 +21 +-3.37855 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58724 +20 +-3.37855 +11 +2.58753 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58753 +20 +-3.37853 +11 +2.58763 +21 +-3.37852 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58763 +20 +-3.37852 +11 +2.58772 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58772 +20 +-3.37853 +11 +3.0422 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0422 +20 +-3.37853 +11 +3.0423 +21 +-3.37852 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.0423 +20 +-3.37852 +11 +3.04239 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58959 +20 +-3.38246 +11 +2.58959 +21 +-4.26321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +2.58959 +20 +-4.26321 +11 +3.04033 +21 +-4.26321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04033 +20 +-4.26321 +11 +3.04033 +21 +-3.38246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.04033 +20 +-3.38246 +11 +2.58959 +21 +-3.38246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91642 +20 +-3.37853 +11 +5.91671 +21 +-3.37855 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91671 +20 +-3.37855 +11 +5.91708 +21 +-3.37867 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91708 +20 +-3.37867 +11 +5.91742 +21 +-3.37885 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91742 +20 +-3.37885 +11 +5.91772 +21 +-3.3791 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91772 +20 +-3.3791 +11 +5.91797 +21 +-3.3794 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91797 +20 +-3.3794 +11 +5.91815 +21 +-3.37974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91815 +20 +-3.37974 +11 +5.91826 +21 +-3.38011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91826 +20 +-3.38011 +11 +5.9183 +21 +-3.38049 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9183 +20 +-3.38049 +11 +5.91829 +21 +-3.38059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91829 +20 +-3.38059 +11 +5.91829 +21 +-4.26508 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91829 +20 +-4.26508 +11 +5.9183 +21 +-4.26518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9183 +20 +-4.26518 +11 +5.91826 +21 +-4.26556 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91826 +20 +-4.26556 +11 +5.91815 +21 +-4.26594 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91815 +20 +-4.26594 +11 +5.91797 +21 +-4.26628 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91797 +20 +-4.26628 +11 +5.91772 +21 +-4.26658 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91772 +20 +-4.26658 +11 +5.91742 +21 +-4.26682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91742 +20 +-4.26682 +11 +5.91708 +21 +-4.26701 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91708 +20 +-4.26701 +11 +5.91671 +21 +-4.26712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91671 +20 +-4.26712 +11 +5.91642 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91642 +20 +-4.26715 +11 +5.91632 +21 +-4.26716 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91632 +20 +-4.26716 +11 +5.91622 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91622 +20 +-4.26715 +11 +5.46173 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46173 +20 +-4.26715 +11 +5.46163 +21 +-4.26716 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46163 +20 +-4.26716 +11 +5.46153 +21 +-4.26715 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46153 +20 +-4.26715 +11 +5.46124 +21 +-4.26712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46124 +20 +-4.26712 +11 +5.46087 +21 +-4.26701 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46087 +20 +-4.26701 +11 +5.46053 +21 +-4.26682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46053 +20 +-4.26682 +11 +5.46023 +21 +-4.26658 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46023 +20 +-4.26658 +11 +5.45998 +21 +-4.26628 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45998 +20 +-4.26628 +11 +5.4598 +21 +-4.26594 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4598 +20 +-4.26594 +11 +5.45969 +21 +-4.26556 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45969 +20 +-4.26556 +11 +5.45965 +21 +-4.26518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45965 +20 +-4.26518 +11 +5.45966 +21 +-4.26508 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45966 +20 +-4.26508 +11 +5.45966 +21 +-3.38059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45966 +20 +-3.38059 +11 +5.45965 +21 +-3.38049 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45965 +20 +-3.38049 +11 +5.45969 +21 +-3.38011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45969 +20 +-3.38011 +11 +5.4598 +21 +-3.37974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4598 +20 +-3.37974 +11 +5.45998 +21 +-3.3794 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.45998 +20 +-3.3794 +11 +5.46023 +21 +-3.3791 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46023 +20 +-3.3791 +11 +5.46053 +21 +-3.37885 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46053 +20 +-3.37885 +11 +5.46087 +21 +-3.37867 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46087 +20 +-3.37867 +11 +5.46124 +21 +-3.37855 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46124 +20 +-3.37855 +11 +5.46153 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46153 +20 +-3.37853 +11 +5.46163 +21 +-3.37852 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46163 +20 +-3.37852 +11 +5.46173 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.46173 +20 +-3.37853 +11 +5.91622 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91622 +20 +-3.37853 +11 +5.91632 +21 +-3.37852 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91632 +20 +-3.37852 +11 +5.91642 +21 +-3.37853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4636 +20 +-3.38246 +11 +5.4636 +21 +-4.26321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.4636 +20 +-4.26321 +11 +5.91435 +21 +-4.26321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91435 +20 +-4.26321 +11 +5.91435 +21 +-3.38246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91435 +20 +-3.38246 +11 +5.4636 +21 +-3.38246 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-3.30892 +11 +6.4494 +21 +-3.30902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-3.30902 +11 +6.4494 +21 +-3.30902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-3.30902 +11 +6.44937 +21 +-3.30931 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-3.30931 +11 +6.44926 +21 +-3.30968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-3.30968 +11 +6.44907 +21 +-3.31002 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-3.31002 +11 +6.44883 +21 +-3.31032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-3.31032 +11 +6.44853 +21 +-3.31057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-3.31057 +11 +6.44819 +21 +-3.31075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-3.31075 +11 +6.44781 +21 +-3.31086 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-3.31086 +11 +6.44743 +21 +-3.3109 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-3.3109 +11 +6.44733 +21 +-3.31089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-3.31089 +11 +6.42669 +21 +-3.31089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-3.31089 +11 +6.42659 +21 +-3.3109 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-3.3109 +11 +6.42621 +21 +-3.31086 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-3.31086 +11 +6.42584 +21 +-3.31075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-3.31075 +11 +6.4255 +21 +-3.31057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-3.31057 +11 +6.4252 +21 +-3.31032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-3.31032 +11 +6.42495 +21 +-3.31002 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-3.31002 +11 +6.42477 +21 +-3.30968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-3.30968 +11 +6.42465 +21 +-3.30931 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-3.30931 +11 +6.42462 +21 +-3.30892 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-3.30892 +11 +6.42463 +21 +-3.30882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.30882 +11 +6.42463 +21 +-3.2986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.2986 +11 +6.42463 +21 +-3.2986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.2986 +11 +6.42463 +21 +-3.13154 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.13154 +11 +6.25254 +21 +-3.30363 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-3.30363 +11 +6.25254 +21 +-3.88033 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-3.88033 +11 +6.42463 +21 +-4.05242 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-4.05242 +11 +6.42463 +21 +-3.88556 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.88556 +11 +6.42463 +21 +-3.88556 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.88556 +11 +6.42463 +21 +-3.87514 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.87514 +11 +6.42462 +21 +-3.87504 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-3.87504 +11 +6.42465 +21 +-3.87466 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-3.87466 +11 +6.42477 +21 +-3.87429 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-3.87429 +11 +6.42495 +21 +-3.87394 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-3.87394 +11 +6.4252 +21 +-3.87364 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-3.87364 +11 +6.4255 +21 +-3.8734 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-3.8734 +11 +6.42584 +21 +-3.87321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-3.87321 +11 +6.42621 +21 +-3.8731 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-3.8731 +11 +6.4265 +21 +-3.87307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4265 +20 +-3.87307 +11 +6.42659 +21 +-3.87306 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-3.87306 +11 +6.42669 +21 +-3.87307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-3.87307 +11 +6.44733 +21 +-3.87307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-3.87307 +11 +6.44743 +21 +-3.87306 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-3.87306 +11 +6.44752 +21 +-3.87307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44752 +20 +-3.87307 +11 +6.44781 +21 +-3.8731 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-3.8731 +11 +6.44819 +21 +-3.87321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-3.87321 +11 +6.44853 +21 +-3.8734 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-3.8734 +11 +6.44883 +21 +-3.87364 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-3.87364 +11 +6.44907 +21 +-3.87394 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-3.87394 +11 +6.44926 +21 +-3.87429 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-3.87429 +11 +6.44937 +21 +-3.87466 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-3.87466 +11 +6.44941 +21 +-3.87504 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-3.87504 +11 +6.4494 +21 +-3.87514 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-3.87514 +11 +6.4494 +21 +-4.07719 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-4.07719 +11 +6.45307 +21 +-4.08086 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-4.08086 +11 +6.45314 +21 +-4.08092 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-4.08092 +11 +6.4532 +21 +-4.08099 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-4.08099 +11 +6.4532 +21 +-4.08099 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-4.08099 +11 +6.45339 +21 +-4.08122 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-4.08122 +11 +6.45357 +21 +-4.08156 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-4.08156 +11 +6.45364 +21 +-4.08179 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45364 +20 +-4.08179 +11 +6.45368 +21 +-4.08193 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-4.08193 +11 +6.45372 +21 +-4.08232 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45372 +20 +-4.08232 +11 +6.45368 +21 +-4.0827 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-4.0827 +11 +6.45357 +21 +-4.08307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-4.08307 +11 +6.45339 +21 +-4.08342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-4.08342 +11 +6.4532 +21 +-4.08364 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-4.08364 +11 +6.4532 +21 +-4.08364 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-4.08364 +11 +6.45314 +21 +-4.08372 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-4.08372 +11 +6.45307 +21 +-4.08378 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-4.08378 +11 +6.4494 +21 +-4.08745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-4.08745 +11 +6.4494 +21 +-4.09264 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-4.09264 +11 +6.44941 +21 +-4.09273 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-4.09273 +11 +6.4494 +21 +-4.09283 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-4.09283 +11 +6.4494 +21 +-4.09283 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-4.09283 +11 +6.44937 +21 +-4.09312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-4.09312 +11 +6.44926 +21 +-4.09349 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-4.09349 +11 +6.44907 +21 +-4.09383 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-4.09383 +11 +6.44883 +21 +-4.09413 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-4.09413 +11 +6.44853 +21 +-4.09438 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-4.09438 +11 +6.44819 +21 +-4.09456 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-4.09456 +11 +6.44781 +21 +-4.09467 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-4.09467 +11 +6.44743 +21 +-4.09471 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-4.09471 +11 +6.44733 +21 +-4.0947 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-4.0947 +11 +6.44214 +21 +-4.0947 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44214 +20 +-4.0947 +11 +6.43847 +21 +-4.09837 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43847 +20 +-4.09837 +11 +6.43841 +21 +-4.09845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43841 +20 +-4.09845 +11 +6.43834 +21 +-4.09851 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43834 +20 +-4.09851 +11 +6.43834 +21 +-4.09851 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43834 +20 +-4.09851 +11 +6.43811 +21 +-4.09869 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43811 +20 +-4.09869 +11 +6.43777 +21 +-4.09887 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43777 +20 +-4.09887 +11 +6.4374 +21 +-4.09899 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4374 +20 +-4.09899 +11 +6.43701 +21 +-4.09903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-4.09903 +11 +6.43701 +21 +-4.09903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-4.09903 +11 +6.43694 +21 +-4.09902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43694 +20 +-4.09902 +11 +6.43663 +21 +-4.09899 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43663 +20 +-4.09899 +11 +6.43648 +21 +-4.09894 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43648 +20 +-4.09894 +11 +6.43625 +21 +-4.09887 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43625 +20 +-4.09887 +11 +6.43591 +21 +-4.09869 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43591 +20 +-4.09869 +11 +6.43569 +21 +-4.09851 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-4.09851 +11 +6.43569 +21 +-4.09851 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-4.09851 +11 +6.43561 +21 +-4.09845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43561 +20 +-4.09845 +11 +6.43555 +21 +-4.09837 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43555 +20 +-4.09837 +11 +6.43188 +21 +-4.0947 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43188 +20 +-4.0947 +11 +6.42669 +21 +-4.0947 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-4.0947 +11 +6.42659 +21 +-4.09471 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-4.09471 +11 +6.42621 +21 +-4.09467 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-4.09467 +11 +6.42584 +21 +-4.09456 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-4.09456 +11 +6.4255 +21 +-4.09438 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-4.09438 +11 +6.4252 +21 +-4.09413 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-4.09413 +11 +6.42513 +21 +-4.09406 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42513 +20 +-4.09406 +11 +6.42495 +21 +-4.09383 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-4.09383 +11 +6.42477 +21 +-4.09349 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-4.09349 +11 +6.42465 +21 +-4.09312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-4.09312 +11 +6.42462 +21 +-4.09273 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-4.09273 +11 +6.42463 +21 +-4.09264 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-4.09264 +11 +6.42463 +21 +-4.08745 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-4.08745 +11 +6.235 +21 +-3.89784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.235 +20 +-3.89784 +11 +6.22983 +21 +-3.89784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-3.89784 +11 +6.22974 +21 +-3.89785 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-3.89785 +11 +6.22935 +21 +-3.89782 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-3.89782 +11 +6.22898 +21 +-3.8977 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-3.8977 +11 +6.22864 +21 +-3.89752 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-3.89752 +11 +6.22834 +21 +-3.89727 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-3.89727 +11 +6.22809 +21 +-3.89697 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-3.89697 +11 +6.22809 +21 +-3.89697 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-3.89697 +11 +6.22791 +21 +-3.89663 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-3.89663 +11 +6.2278 +21 +-3.89626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-3.89626 +11 +6.22776 +21 +-3.89588 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-3.89588 +11 +6.22777 +21 +-3.89578 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-3.89578 +11 +6.22777 +21 +-3.89061 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-3.89061 +11 +6.2241 +21 +-3.88692 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-3.88692 +11 +6.22402 +21 +-3.88686 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22402 +20 +-3.88686 +11 +6.22396 +21 +-3.88678 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-3.88678 +11 +6.22396 +21 +-3.88678 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-3.88678 +11 +6.2239 +21 +-3.88671 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2239 +20 +-3.88671 +11 +6.22378 +21 +-3.88656 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.88656 +11 +6.22378 +21 +-3.88656 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.88656 +11 +6.22378 +21 +-3.88655 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.88655 +11 +6.22369 +21 +-3.88638 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22369 +20 +-3.88638 +11 +6.2236 +21 +-3.88622 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-3.88622 +11 +6.2236 +21 +-3.88621 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-3.88621 +11 +6.22359 +21 +-3.88621 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22359 +20 +-3.88621 +11 +6.22354 +21 +-3.88602 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22354 +20 +-3.88602 +11 +6.22348 +21 +-3.88584 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.88584 +11 +6.22348 +21 +-3.88584 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.88584 +11 +6.22348 +21 +-3.88584 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.88584 +11 +6.22346 +21 +-3.88565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22346 +20 +-3.88565 +11 +6.22345 +21 +-3.88546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-3.88546 +11 +6.22345 +21 +-3.88546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-3.88546 +11 +6.22345 +21 +-3.88545 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-3.88545 +11 +6.22346 +21 +-3.88526 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22346 +20 +-3.88526 +11 +6.22348 +21 +-3.88507 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.88507 +11 +6.22348 +21 +-3.88507 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.88507 +11 +6.22348 +21 +-3.88507 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.88507 +11 +6.22354 +21 +-3.88488 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22354 +20 +-3.88488 +11 +6.2236 +21 +-3.8847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-3.8847 +11 +6.2236 +21 +-3.8847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-3.8847 +11 +6.2236 +21 +-3.8847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-3.8847 +11 +6.22369 +21 +-3.88453 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22369 +20 +-3.88453 +11 +6.22378 +21 +-3.88436 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.88436 +11 +6.22378 +21 +-3.88436 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.88436 +11 +6.22378 +21 +-3.88436 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.88436 +11 +6.2239 +21 +-3.88421 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2239 +20 +-3.88421 +11 +6.22396 +21 +-3.88414 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-3.88414 +11 +6.22396 +21 +-3.88413 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-3.88413 +11 +6.22403 +21 +-3.88406 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22403 +20 +-3.88406 +11 +6.2241 +21 +-3.884 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-3.884 +11 +6.22777 +21 +-3.88033 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-3.88033 +11 +6.22777 +21 +-3.30363 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-3.30363 +11 +6.2241 +21 +-3.29996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-3.29996 +11 +6.22402 +21 +-3.2999 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22402 +20 +-3.2999 +11 +6.22396 +21 +-3.29983 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-3.29983 +11 +6.22378 +21 +-3.2996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.2996 +11 +6.2236 +21 +-3.29926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-3.29926 +11 +6.22348 +21 +-3.29889 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.29889 +11 +6.22345 +21 +-3.2985 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-3.2985 +11 +6.22348 +21 +-3.29812 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-3.29812 +11 +6.22353 +21 +-3.29798 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22353 +20 +-3.29798 +11 +6.2236 +21 +-3.29775 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-3.29775 +11 +6.22378 +21 +-3.29741 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-3.29741 +11 +6.22391 +21 +-3.29725 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22391 +20 +-3.29725 +11 +6.22402 +21 +-3.29711 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22402 +20 +-3.29711 +11 +6.2241 +21 +-3.29704 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-3.29704 +11 +6.22777 +21 +-3.29338 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-3.29338 +11 +6.22777 +21 +-3.28818 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-3.28818 +11 +6.22776 +21 +-3.28809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-3.28809 +11 +6.2278 +21 +-3.2877 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-3.2877 +11 +6.22791 +21 +-3.28733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-3.28733 +11 +6.22809 +21 +-3.28699 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-3.28699 +11 +6.22834 +21 +-3.28669 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-3.28669 +11 +6.22864 +21 +-3.28644 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-3.28644 +11 +6.22898 +21 +-3.28626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-3.28626 +11 +6.22935 +21 +-3.28615 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-3.28615 +11 +6.22964 +21 +-3.28612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22964 +20 +-3.28612 +11 +6.22974 +21 +-3.28611 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-3.28611 +11 +6.22983 +21 +-3.28612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-3.28612 +11 +6.23502 +21 +-3.28612 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23502 +20 +-3.28612 +11 +6.42463 +21 +-3.09652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.09652 +11 +6.42463 +21 +-3.09133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-3.09133 +11 +6.42462 +21 +-3.09123 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-3.09123 +11 +6.42465 +21 +-3.09084 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-3.09084 +11 +6.42477 +21 +-3.09047 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-3.09047 +11 +6.42495 +21 +-3.09013 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-3.09013 +11 +6.4252 +21 +-3.08983 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-3.08983 +11 +6.4255 +21 +-3.08958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-3.08958 +11 +6.42584 +21 +-3.0894 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-3.0894 +11 +6.42621 +21 +-3.08929 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-3.08929 +11 +6.4265 +21 +-3.08926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4265 +20 +-3.08926 +11 +6.42659 +21 +-3.08925 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-3.08925 +11 +6.42669 +21 +-3.08926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-3.08926 +11 +6.43188 +21 +-3.08926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43188 +20 +-3.08926 +11 +6.43555 +21 +-3.08559 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43555 +20 +-3.08559 +11 +6.43561 +21 +-3.08552 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43561 +20 +-3.08552 +11 +6.43569 +21 +-3.08546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-3.08546 +11 +6.43569 +21 +-3.08546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-3.08546 +11 +6.43591 +21 +-3.08527 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43591 +20 +-3.08527 +11 +6.43625 +21 +-3.08509 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43625 +20 +-3.08509 +11 +6.43663 +21 +-3.08498 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43663 +20 +-3.08498 +11 +6.43701 +21 +-3.08494 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-3.08494 +11 +6.43701 +21 +-3.08494 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-3.08494 +11 +6.4374 +21 +-3.08498 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4374 +20 +-3.08498 +11 +6.43777 +21 +-3.08509 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43777 +20 +-3.08509 +11 +6.43811 +21 +-3.08527 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43811 +20 +-3.08527 +11 +6.43824 +21 +-3.08538 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43824 +20 +-3.08538 +11 +6.43834 +21 +-3.08546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43834 +20 +-3.08546 +11 +6.43834 +21 +-3.08546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43834 +20 +-3.08546 +11 +6.43841 +21 +-3.08552 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43841 +20 +-3.08552 +11 +6.43847 +21 +-3.08559 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43847 +20 +-3.08559 +11 +6.44214 +21 +-3.08926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44214 +20 +-3.08926 +11 +6.44733 +21 +-3.08926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-3.08926 +11 +6.44743 +21 +-3.08925 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-3.08925 +11 +6.44752 +21 +-3.08926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44752 +20 +-3.08926 +11 +6.44781 +21 +-3.08929 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-3.08929 +11 +6.44819 +21 +-3.0894 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-3.0894 +11 +6.44853 +21 +-3.08958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-3.08958 +11 +6.44883 +21 +-3.08983 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-3.08983 +11 +6.44907 +21 +-3.09013 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-3.09013 +11 +6.44926 +21 +-3.09047 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-3.09047 +11 +6.44937 +21 +-3.09084 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-3.09084 +11 +6.44941 +21 +-3.09123 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-3.09123 +11 +6.4494 +21 +-3.09133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-3.09133 +11 +6.4494 +21 +-3.09652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-3.09652 +11 +6.45307 +21 +-3.10019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-3.10019 +11 +6.45314 +21 +-3.10025 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-3.10025 +11 +6.4532 +21 +-3.10032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-3.10032 +11 +6.4532 +21 +-3.10032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-3.10032 +11 +6.45339 +21 +-3.10055 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-3.10055 +11 +6.45357 +21 +-3.10089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-3.10089 +11 +6.45367 +21 +-3.10123 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45367 +20 +-3.10123 +11 +6.45368 +21 +-3.10126 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-3.10126 +11 +6.45371 +21 +-3.10151 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45371 +20 +-3.10151 +11 +6.45372 +21 +-3.10165 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45372 +20 +-3.10165 +11 +6.45368 +21 +-3.10203 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-3.10203 +11 +6.45368 +21 +-3.10203 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-3.10203 +11 +6.45357 +21 +-3.1024 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-3.1024 +11 +6.45339 +21 +-3.10274 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-3.10274 +11 +6.4532 +21 +-3.10297 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-3.10297 +11 +6.4532 +21 +-3.10297 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-3.10297 +11 +6.45314 +21 +-3.10304 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-3.10304 +11 +6.45307 +21 +-3.10311 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-3.10311 +11 +6.4494 +21 +-3.10677 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-3.10677 +11 +6.4494 +21 +-3.30882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-3.30882 +11 +6.44941 +21 +-3.30892 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-4.05717 +11 +6.42856 +21 +-4.05727 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-4.05727 +11 +6.42856 +21 +-4.05727 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-4.05727 +11 +6.42854 +21 +-4.05756 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-4.05756 +11 +6.42842 +21 +-4.05793 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-4.05793 +11 +6.42824 +21 +-4.05827 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-4.05827 +11 +6.42799 +21 +-4.05857 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-4.05857 +11 +6.42779 +21 +-4.05874 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42779 +20 +-4.05874 +11 +6.42769 +21 +-4.05882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42769 +20 +-4.05882 +11 +6.42751 +21 +-4.05891 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42751 +20 +-4.05891 +11 +6.42735 +21 +-4.059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42735 +20 +-4.059 +11 +6.42698 +21 +-4.05911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42698 +20 +-4.05911 +11 +6.42659 +21 +-4.05915 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-4.05915 +11 +6.42659 +21 +-4.05915 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-4.05915 +11 +6.42656 +21 +-4.05915 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42656 +20 +-4.05915 +11 +6.42621 +21 +-4.05911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-4.05911 +11 +6.42584 +21 +-4.059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-4.059 +11 +6.42568 +21 +-4.05891 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42568 +20 +-4.05891 +11 +6.4255 +21 +-4.05882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-4.05882 +11 +6.42527 +21 +-4.05863 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42527 +20 +-4.05863 +11 +6.4252 +21 +-4.05857 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-4.05857 +11 +6.42513 +21 +-4.0585 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42513 +20 +-4.0585 +11 +6.24925 +21 +-3.88261 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-3.88261 +11 +6.24917 +21 +-3.88254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-3.88254 +11 +6.24911 +21 +-3.88247 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24911 +20 +-3.88247 +11 +6.24893 +21 +-3.88224 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-3.88224 +11 +6.24874 +21 +-3.8819 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-3.8819 +11 +6.24863 +21 +-3.88153 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-3.88153 +11 +6.24859 +21 +-3.88115 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-3.88115 +11 +6.2486 +21 +-3.88105 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-3.88105 +11 +6.2486 +21 +-3.30291 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-3.30291 +11 +6.24859 +21 +-3.30282 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-3.30282 +11 +6.2486 +21 +-3.30272 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-3.30272 +11 +6.24863 +21 +-3.30243 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-3.30243 +11 +6.24874 +21 +-3.30206 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-3.30206 +11 +6.24883 +21 +-3.3019 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24883 +20 +-3.3019 +11 +6.24893 +21 +-3.30172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-3.30172 +11 +6.24903 +21 +-3.30159 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24903 +20 +-3.30159 +11 +6.24917 +21 +-3.30142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-3.30142 +11 +6.24925 +21 +-3.30136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-3.30136 +11 +6.42514 +21 +-3.12547 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42514 +20 +-3.12547 +11 +6.4252 +21 +-3.12539 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-3.12539 +11 +6.42527 +21 +-3.12533 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42527 +20 +-3.12533 +11 +6.42527 +21 +-3.12533 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42527 +20 +-3.12533 +11 +6.4255 +21 +-3.12515 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-3.12515 +11 +6.42584 +21 +-3.12496 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-3.12496 +11 +6.42584 +21 +-3.12496 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-3.12496 +11 +6.42621 +21 +-3.12485 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-3.12485 +11 +6.42659 +21 +-3.12481 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-3.12481 +11 +6.42698 +21 +-3.12485 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42698 +20 +-3.12485 +11 +6.42735 +21 +-3.12496 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42735 +20 +-3.12496 +11 +6.42769 +21 +-3.12515 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42769 +20 +-3.12515 +11 +6.42799 +21 +-3.12539 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-3.12539 +11 +6.42824 +21 +-3.12569 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-3.12569 +11 +6.42842 +21 +-3.12603 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-3.12603 +11 +6.42854 +21 +-3.12641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-3.12641 +11 +6.42856 +21 +-3.1267 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.1267 +11 +6.42857 +21 +-3.12679 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-3.12679 +11 +6.42856 +21 +-3.12689 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.12689 +11 +6.42856 +21 +-3.30695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.30695 +11 +6.44546 +21 +-3.30695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.30695 +11 +6.44546 +21 +-3.29841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.29841 +11 +6.44546 +21 +-3.29841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.29841 +11 +6.44546 +21 +-3.10605 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.10605 +11 +6.44545 +21 +-3.10596 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-3.10596 +11 +6.44546 +21 +-3.10586 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.10586 +11 +6.44549 +21 +-3.10557 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-3.10557 +11 +6.4456 +21 +-3.1052 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-3.1052 +11 +6.4456 +21 +-3.1052 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-3.1052 +11 +6.44578 +21 +-3.10486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-3.10486 +11 +6.44585 +21 +-3.10478 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44585 +20 +-3.10478 +11 +6.44603 +21 +-3.10456 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-3.10456 +11 +6.4461 +21 +-3.1045 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-3.1045 +11 +6.44896 +21 +-3.10165 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44896 +20 +-3.10165 +11 +6.4461 +21 +-3.09879 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-3.09879 +11 +6.44603 +21 +-3.09873 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-3.09873 +11 +6.44589 +21 +-3.09856 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44589 +20 +-3.09856 +11 +6.44578 +21 +-3.09843 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-3.09843 +11 +6.4456 +21 +-3.09809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-3.09809 +11 +6.44549 +21 +-3.09772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-3.09772 +11 +6.44545 +21 +-3.09733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-3.09733 +11 +6.44546 +21 +-3.09724 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.09724 +11 +6.44546 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.0932 +11 +6.44142 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44142 +20 +-3.0932 +11 +6.44132 +21 +-3.09321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44132 +20 +-3.09321 +11 +6.44123 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-3.0932 +11 +6.44123 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-3.0932 +11 +6.44094 +21 +-3.09317 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44094 +20 +-3.09317 +11 +6.44057 +21 +-3.09306 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44057 +20 +-3.09306 +11 +6.44041 +21 +-3.09297 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44041 +20 +-3.09297 +11 +6.44023 +21 +-3.09287 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44023 +20 +-3.09287 +11 +6.44 +21 +-3.09269 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44 +20 +-3.09269 +11 +6.43993 +21 +-3.09263 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43993 +20 +-3.09263 +11 +6.43986 +21 +-3.09255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43986 +20 +-3.09255 +11 +6.43701 +21 +-3.0897 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-3.0897 +11 +6.43416 +21 +-3.09255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43416 +20 +-3.09255 +11 +6.4341 +21 +-3.09263 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4341 +20 +-3.09263 +11 +6.4338 +21 +-3.09287 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4338 +20 +-3.09287 +11 +6.43346 +21 +-3.09306 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43346 +20 +-3.09306 +11 +6.43308 +21 +-3.09317 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43308 +20 +-3.09317 +11 +6.43279 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-3.0932 +11 +6.43279 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-3.0932 +11 +6.4327 +21 +-3.09321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4327 +20 +-3.09321 +11 +6.4326 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4326 +20 +-3.0932 +11 +6.42856 +21 +-3.0932 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.0932 +11 +6.42856 +21 +-3.09724 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.09724 +11 +6.42857 +21 +-3.09733 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-3.09733 +11 +6.42856 +21 +-3.09743 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.09743 +11 +6.42856 +21 +-3.09743 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.09743 +11 +6.42854 +21 +-3.09772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-3.09772 +11 +6.42842 +21 +-3.09809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-3.09809 +11 +6.42842 +21 +-3.09809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-3.09809 +11 +6.42824 +21 +-3.09843 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-3.09843 +11 +6.42806 +21 +-3.09866 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42806 +20 +-3.09866 +11 +6.42799 +21 +-3.09873 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-3.09873 +11 +6.42792 +21 +-3.09879 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42792 +20 +-3.09879 +11 +6.2373 +21 +-3.28941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2373 +20 +-3.28941 +11 +6.23724 +21 +-3.28949 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23724 +20 +-3.28949 +11 +6.23694 +21 +-3.28973 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23694 +20 +-3.28973 +11 +6.2366 +21 +-3.28992 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2366 +20 +-3.28992 +11 +6.23623 +21 +-3.29003 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23623 +20 +-3.29003 +11 +6.23594 +21 +-3.29006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-3.29006 +11 +6.23594 +21 +-3.29006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-3.29006 +11 +6.23584 +21 +-3.29007 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23584 +20 +-3.29007 +11 +6.23574 +21 +-3.29006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23574 +20 +-3.29006 +11 +6.2317 +21 +-3.29006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.29006 +11 +6.2317 +21 +-3.29409 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.29409 +11 +6.23171 +21 +-3.29419 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-3.29419 +11 +6.2317 +21 +-3.29429 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.29429 +11 +6.2317 +21 +-3.29429 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.29429 +11 +6.23168 +21 +-3.29458 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-3.29458 +11 +6.23156 +21 +-3.29495 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-3.29495 +11 +6.23156 +21 +-3.29495 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-3.29495 +11 +6.23138 +21 +-3.29529 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-3.29529 +11 +6.23123 +21 +-3.29548 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23123 +20 +-3.29548 +11 +6.23114 +21 +-3.29559 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-3.29559 +11 +6.23106 +21 +-3.29565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-3.29565 +11 +6.22821 +21 +-3.2985 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22821 +20 +-3.2985 +11 +6.23106 +21 +-3.30136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-3.30136 +11 +6.23114 +21 +-3.30142 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-3.30142 +11 +6.2313 +21 +-3.30161 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2313 +20 +-3.30161 +11 +6.23138 +21 +-3.30172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-3.30172 +11 +6.23138 +21 +-3.30172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-3.30172 +11 +6.23156 +21 +-3.30206 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-3.30206 +11 +6.23168 +21 +-3.30243 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-3.30243 +11 +6.2317 +21 +-3.30272 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.30272 +11 +6.23171 +21 +-3.30282 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-3.30282 +11 +6.2317 +21 +-3.30291 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.30291 +11 +6.2317 +21 +-3.88105 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.88105 +11 +6.23171 +21 +-3.88115 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-3.88115 +11 +6.2317 +21 +-3.88124 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.88124 +11 +6.2317 +21 +-3.88124 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.88124 +11 +6.23168 +21 +-3.88153 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-3.88153 +11 +6.23156 +21 +-3.8819 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-3.8819 +11 +6.23156 +21 +-3.8819 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-3.8819 +11 +6.23138 +21 +-3.88224 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-3.88224 +11 +6.2312 +21 +-3.88247 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-3.88247 +11 +6.23114 +21 +-3.88254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-3.88254 +11 +6.23106 +21 +-3.88261 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-3.88261 +11 +6.2282 +21 +-3.88546 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2282 +20 +-3.88546 +11 +6.23106 +21 +-3.88833 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-3.88833 +11 +6.23114 +21 +-3.88839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-3.88839 +11 +6.2312 +21 +-3.88847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-3.88847 +11 +6.2312 +21 +-3.88847 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-3.88847 +11 +6.23126 +21 +-3.88854 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23126 +20 +-3.88854 +11 +6.23138 +21 +-3.88869 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-3.88869 +11 +6.23138 +21 +-3.8887 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-3.8887 +11 +6.23138 +21 +-3.8887 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-3.8887 +11 +6.23147 +21 +-3.88887 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23147 +20 +-3.88887 +11 +6.23156 +21 +-3.88904 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-3.88904 +11 +6.23156 +21 +-3.88904 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-3.88904 +11 +6.23157 +21 +-3.88904 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23157 +20 +-3.88904 +11 +6.23162 +21 +-3.88922 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23162 +20 +-3.88922 +11 +6.23168 +21 +-3.88941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-3.88941 +11 +6.23168 +21 +-3.88941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-3.88941 +11 +6.23168 +21 +-3.88941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-3.88941 +11 +6.2317 +21 +-3.8896 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.8896 +11 +6.2317 +21 +-3.8897 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.8897 +11 +6.2317 +21 +-3.8897 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.8897 +11 +6.23171 +21 +-3.8898 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-3.8898 +11 +6.2317 +21 +-3.88989 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.88989 +11 +6.2317 +21 +-3.89391 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-3.89391 +11 +6.23572 +21 +-3.89391 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23572 +20 +-3.89391 +11 +6.23582 +21 +-3.8939 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23582 +20 +-3.8939 +11 +6.23592 +21 +-3.89391 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23592 +20 +-3.89391 +11 +6.23592 +21 +-3.89391 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23592 +20 +-3.89391 +11 +6.23621 +21 +-3.89394 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23621 +20 +-3.89394 +11 +6.23658 +21 +-3.89405 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23658 +20 +-3.89405 +11 +6.23692 +21 +-3.89423 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23692 +20 +-3.89423 +11 +6.23722 +21 +-3.89448 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23722 +20 +-3.89448 +11 +6.23728 +21 +-3.89455 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23728 +20 +-3.89455 +11 +6.42792 +21 +-4.08517 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42792 +20 +-4.08517 +11 +6.42799 +21 +-4.08523 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-4.08523 +11 +6.42809 +21 +-4.08535 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42809 +20 +-4.08535 +11 +6.42824 +21 +-4.08553 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-4.08553 +11 +6.42824 +21 +-4.08553 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-4.08553 +11 +6.42842 +21 +-4.08587 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-4.08587 +11 +6.42854 +21 +-4.08624 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-4.08624 +11 +6.42856 +21 +-4.08652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-4.08652 +11 +6.42857 +21 +-4.08663 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-4.08663 +11 +6.42856 +21 +-4.08673 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-4.08673 +11 +6.42856 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-4.09077 +11 +6.4326 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4326 +20 +-4.09077 +11 +6.4327 +21 +-4.09076 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4327 +20 +-4.09076 +11 +6.43279 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-4.09077 +11 +6.43279 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-4.09077 +11 +6.43308 +21 +-4.09079 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43308 +20 +-4.09079 +11 +6.43346 +21 +-4.09091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43346 +20 +-4.09091 +11 +6.4338 +21 +-4.09109 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4338 +20 +-4.09109 +11 +6.4341 +21 +-4.09134 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4341 +20 +-4.09134 +11 +6.43416 +21 +-4.09141 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43416 +20 +-4.09141 +11 +6.43701 +21 +-4.09426 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-4.09426 +11 +6.43986 +21 +-4.09141 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43986 +20 +-4.09141 +11 +6.43993 +21 +-4.09134 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43993 +20 +-4.09134 +11 +6.44 +21 +-4.09127 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44 +20 +-4.09127 +11 +6.44023 +21 +-4.09109 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44023 +20 +-4.09109 +11 +6.44041 +21 +-4.09099 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44041 +20 +-4.09099 +11 +6.44057 +21 +-4.09091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44057 +20 +-4.09091 +11 +6.44094 +21 +-4.09079 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44094 +20 +-4.09079 +11 +6.44123 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-4.09077 +11 +6.44123 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-4.09077 +11 +6.44132 +21 +-4.09076 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44132 +20 +-4.09076 +11 +6.44142 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44142 +20 +-4.09077 +11 +6.44546 +21 +-4.09077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-4.09077 +11 +6.44546 +21 +-4.08673 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-4.08673 +11 +6.44545 +21 +-4.08663 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-4.08663 +11 +6.44546 +21 +-4.08653 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-4.08653 +11 +6.44549 +21 +-4.08625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-4.08625 +11 +6.4456 +21 +-4.08587 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-4.08587 +11 +6.44569 +21 +-4.08571 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44569 +20 +-4.08571 +11 +6.44578 +21 +-4.08553 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-4.08553 +11 +6.44589 +21 +-4.0854 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44589 +20 +-4.0854 +11 +6.44603 +21 +-4.08523 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-4.08523 +11 +6.4461 +21 +-4.08517 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-4.08517 +11 +6.44896 +21 +-4.08232 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44896 +20 +-4.08232 +11 +6.4461 +21 +-4.07946 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-4.07946 +11 +6.44603 +21 +-4.0794 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-4.0794 +11 +6.44589 +21 +-4.07923 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44589 +20 +-4.07923 +11 +6.44578 +21 +-4.0791 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-4.0791 +11 +6.4456 +21 +-4.07876 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-4.07876 +11 +6.44549 +21 +-4.07839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-4.07839 +11 +6.44545 +21 +-4.078 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-4.078 +11 +6.44546 +21 +-4.07791 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-4.07791 +11 +6.44546 +21 +-3.88536 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.88536 +11 +6.44546 +21 +-3.88536 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.88536 +11 +6.44546 +21 +-3.87701 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-3.87701 +11 +6.42856 +21 +-3.87701 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-3.87701 +11 +6.42856 +21 +-4.05707 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-4.05707 +11 +6.42857 +21 +-4.05717 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317509 +20 +-3.90572 +11 +0.3175 +21 +-3.90582 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-3.90582 +11 +0.3175 +21 +-3.90582 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-3.90582 +11 +0.317471 +21 +-3.90611 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317471 +20 +-3.90611 +11 +0.317359 +21 +-3.90648 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317359 +20 +-3.90648 +11 +0.317176 +21 +-3.90682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317176 +20 +-3.90682 +11 +0.31693 +21 +-3.90712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31693 +20 +-3.90712 +11 +0.31663 +21 +-3.90737 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31663 +20 +-3.90737 +11 +0.316288 +21 +-3.90755 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.316288 +20 +-3.90755 +11 +0.315917 +21 +-3.90766 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315917 +20 +-3.90766 +11 +0.315531 +21 +-3.9077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315531 +20 +-3.9077 +11 +0.315435 +21 +-3.90769 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315435 +20 +-3.90769 +11 +0.275121 +21 +-3.90769 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275121 +20 +-3.90769 +11 +0.275024 +21 +-3.9077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275024 +20 +-3.9077 +11 +0.274639 +21 +-3.90766 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274639 +20 +-3.90766 +11 +0.274267 +21 +-3.90755 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274267 +20 +-3.90755 +11 +0.273926 +21 +-3.90737 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273926 +20 +-3.90737 +11 +0.273626 +21 +-3.90712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273626 +20 +-3.90712 +11 +0.27338 +21 +-3.90682 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.27338 +20 +-3.90682 +11 +0.273197 +21 +-3.90648 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273197 +20 +-3.90648 +11 +0.273084 +21 +-3.90611 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273084 +20 +-3.90611 +11 +0.273046 +21 +-3.90572 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273046 +20 +-3.90572 +11 +0.273056 +21 +-3.90563 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.90563 +11 +0.273056 +21 +-3.8954 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.8954 +11 +0.273056 +21 +-3.8954 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.8954 +11 +0.273056 +21 +-3.88499 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.88499 +11 +0.273056 +21 +-3.88499 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.88499 +11 +0.273056 +21 +-3.28875 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.28875 +11 +0.273056 +21 +-3.28875 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.28875 +11 +0.273056 +21 +-3.27834 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-3.27834 +11 +0.273046 +21 +-3.27824 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273046 +20 +-3.27824 +11 +0.273084 +21 +-3.27785 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273084 +20 +-3.27785 +11 +0.273197 +21 +-3.27748 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273197 +20 +-3.27748 +11 +0.27338 +21 +-3.27714 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.27338 +20 +-3.27714 +11 +0.273626 +21 +-3.27684 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273626 +20 +-3.27684 +11 +0.273926 +21 +-3.2766 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273926 +20 +-3.2766 +11 +0.274267 +21 +-3.27641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274267 +20 +-3.27641 +11 +0.274639 +21 +-3.2763 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274639 +20 +-3.2763 +11 +0.274928 +21 +-3.27627 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274928 +20 +-3.27627 +11 +0.275024 +21 +-3.27626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275024 +20 +-3.27626 +11 +0.275121 +21 +-3.27627 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275121 +20 +-3.27627 +11 +0.315435 +21 +-3.27627 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315435 +20 +-3.27627 +11 +0.315531 +21 +-3.27626 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315531 +20 +-3.27626 +11 +0.315628 +21 +-3.27627 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315628 +20 +-3.27627 +11 +0.315917 +21 +-3.2763 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315917 +20 +-3.2763 +11 +0.316288 +21 +-3.27641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.316288 +20 +-3.27641 +11 +0.31663 +21 +-3.2766 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31663 +20 +-3.2766 +11 +0.31693 +21 +-3.27684 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31693 +20 +-3.27684 +11 +0.317176 +21 +-3.27714 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317176 +20 +-3.27714 +11 +0.317359 +21 +-3.27748 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317359 +20 +-3.27748 +11 +0.317471 +21 +-3.27785 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317471 +20 +-3.27785 +11 +0.317509 +21 +-3.27824 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317509 +20 +-3.27824 +11 +0.3175 +21 +-3.27834 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-3.27834 +11 +0.3175 +21 +-3.90563 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-3.90563 +11 +0.317509 +21 +-3.90572 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.276993 +20 +-3.90375 +11 +0.313563 +21 +-3.90375 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-3.90375 +11 +0.313563 +21 +-3.89521 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-3.89521 +11 +0.313563 +21 +-3.89521 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-3.89521 +11 +0.313563 +21 +-3.29898 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-3.29898 +11 +0.313563 +21 +-3.29898 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-3.29898 +11 +0.313563 +21 +-3.28021 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-3.28021 +11 +0.276993 +21 +-3.28021 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.276993 +20 +-3.28021 +11 +0.276993 +21 +-3.90375 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23181 +20 +-2.64035 +11 +4.2321 +21 +-2.64038 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.2321 +20 +-2.64038 +11 +4.23247 +21 +-2.64049 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23247 +20 +-2.64049 +11 +4.23281 +21 +-2.64067 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23281 +20 +-2.64067 +11 +4.23311 +21 +-2.64092 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23311 +20 +-2.64092 +11 +4.23335 +21 +-2.64122 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23335 +20 +-2.64122 +11 +4.23354 +21 +-2.64156 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23354 +20 +-2.64156 +11 +4.23365 +21 +-2.64193 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23365 +20 +-2.64193 +11 +4.23369 +21 +-2.64232 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23369 +20 +-2.64232 +11 +4.23368 +21 +-2.64241 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23368 +20 +-2.64241 +11 +4.23368 +21 +-2.93635 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23368 +20 +-2.93635 +11 +4.23369 +21 +-2.93644 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23369 +20 +-2.93644 +11 +4.23365 +21 +-2.93683 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23365 +20 +-2.93683 +11 +4.23354 +21 +-2.9372 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23354 +20 +-2.9372 +11 +4.23335 +21 +-2.93754 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23335 +20 +-2.93754 +11 +4.23311 +21 +-2.93784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23311 +20 +-2.93784 +11 +4.23281 +21 +-2.93809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23281 +20 +-2.93809 +11 +4.23247 +21 +-2.93827 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23247 +20 +-2.93827 +11 +4.2321 +21 +-2.93838 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.2321 +20 +-2.93838 +11 +4.23181 +21 +-2.93841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23181 +20 +-2.93841 +11 +4.23171 +21 +-2.93842 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23171 +20 +-2.93842 +11 +4.23161 +21 +-2.93841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23161 +20 +-2.93841 +11 +3.18965 +21 +-2.93841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18965 +20 +-2.93841 +11 +3.18955 +21 +-2.93842 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18955 +20 +-2.93842 +11 +3.18946 +21 +-2.93841 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18946 +20 +-2.93841 +11 +3.18917 +21 +-2.93838 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18917 +20 +-2.93838 +11 +3.1888 +21 +-2.93827 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.1888 +20 +-2.93827 +11 +3.18846 +21 +-2.93809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18846 +20 +-2.93809 +11 +3.18816 +21 +-2.93784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18816 +20 +-2.93784 +11 +3.18791 +21 +-2.93754 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18791 +20 +-2.93754 +11 +3.18773 +21 +-2.9372 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18773 +20 +-2.9372 +11 +3.18761 +21 +-2.93683 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18761 +20 +-2.93683 +11 +3.18758 +21 +-2.93644 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18758 +20 +-2.93644 +11 +3.18759 +21 +-2.93635 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18759 +20 +-2.93635 +11 +3.18759 +21 +-2.64241 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18759 +20 +-2.64241 +11 +3.18758 +21 +-2.64232 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18758 +20 +-2.64232 +11 +3.18761 +21 +-2.64193 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18761 +20 +-2.64193 +11 +3.18773 +21 +-2.64156 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18773 +20 +-2.64156 +11 +3.18791 +21 +-2.64122 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18791 +20 +-2.64122 +11 +3.18816 +21 +-2.64092 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18816 +20 +-2.64092 +11 +3.18846 +21 +-2.64067 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18846 +20 +-2.64067 +11 +3.1888 +21 +-2.64049 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.1888 +20 +-2.64049 +11 +3.18917 +21 +-2.64038 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18917 +20 +-2.64038 +11 +3.18946 +21 +-2.64035 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18946 +20 +-2.64035 +11 +3.18955 +21 +-2.64034 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18955 +20 +-2.64034 +11 +3.18965 +21 +-2.64035 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.18965 +20 +-2.64035 +11 +4.23161 +21 +-2.64035 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23161 +20 +-2.64035 +11 +4.23171 +21 +-2.64034 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.23171 +20 +-2.64034 +11 +4.23181 +21 +-2.64035 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.19152 +20 +-2.64428 +11 +3.19152 +21 +-2.93448 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +3.19152 +20 +-2.93448 +11 +4.22974 +21 +-2.93448 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.22974 +20 +-2.93448 +11 +4.22974 +21 +-2.64428 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.22974 +20 +-2.64428 +11 +3.19152 +21 +-2.64428 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-1.84149 +11 +6.4494 +21 +-1.84159 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-1.84159 +11 +6.4494 +21 +-1.84159 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-1.84159 +11 +6.44937 +21 +-1.84188 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-1.84188 +11 +6.44926 +21 +-1.84225 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-1.84225 +11 +6.44907 +21 +-1.84259 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-1.84259 +11 +6.44883 +21 +-1.84289 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-1.84289 +11 +6.44853 +21 +-1.84314 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-1.84314 +11 +6.44819 +21 +-1.84332 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-1.84332 +11 +6.44781 +21 +-1.84343 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-1.84343 +11 +6.44743 +21 +-1.84347 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-1.84347 +11 +6.44733 +21 +-1.84346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-1.84346 +11 +6.42669 +21 +-1.84346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-1.84346 +11 +6.42659 +21 +-1.84347 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-1.84347 +11 +6.42621 +21 +-1.84343 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-1.84343 +11 +6.42584 +21 +-1.84332 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-1.84332 +11 +6.4255 +21 +-1.84314 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-1.84314 +11 +6.4252 +21 +-1.84289 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-1.84289 +11 +6.42495 +21 +-1.84259 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-1.84259 +11 +6.42477 +21 +-1.84225 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-1.84225 +11 +6.42465 +21 +-1.84188 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-1.84188 +11 +6.42462 +21 +-1.84149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-1.84149 +11 +6.42463 +21 +-1.8414 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-1.8414 +11 +6.42463 +21 +-1.83117 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-1.83117 +11 +6.42463 +21 +-1.83117 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-1.83117 +11 +6.42463 +21 +-1.66412 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-1.66412 +11 +6.25254 +21 +-1.83621 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-1.83621 +11 +6.25254 +21 +-2.4129 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.25254 +20 +-2.4129 +11 +6.42463 +21 +-2.58499 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-2.58499 +11 +6.42463 +21 +-2.41813 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-2.41813 +11 +6.42463 +21 +-2.41813 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-2.41813 +11 +6.42463 +21 +-2.40771 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-2.40771 +11 +6.42462 +21 +-2.40761 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-2.40761 +11 +6.42465 +21 +-2.40723 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-2.40723 +11 +6.42477 +21 +-2.40686 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-2.40686 +11 +6.42495 +21 +-2.40652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-2.40652 +11 +6.4252 +21 +-2.40622 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-2.40622 +11 +6.4255 +21 +-2.40597 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-2.40597 +11 +6.42584 +21 +-2.40579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-2.40579 +11 +6.42621 +21 +-2.40567 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-2.40567 +11 +6.4265 +21 +-2.40565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4265 +20 +-2.40565 +11 +6.42659 +21 +-2.40564 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-2.40564 +11 +6.42669 +21 +-2.40565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-2.40565 +11 +6.44733 +21 +-2.40565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-2.40565 +11 +6.44743 +21 +-2.40564 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-2.40564 +11 +6.44752 +21 +-2.40565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44752 +20 +-2.40565 +11 +6.44781 +21 +-2.40567 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-2.40567 +11 +6.44819 +21 +-2.40579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-2.40579 +11 +6.44853 +21 +-2.40597 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-2.40597 +11 +6.44883 +21 +-2.40622 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-2.40622 +11 +6.44907 +21 +-2.40652 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-2.40652 +11 +6.44926 +21 +-2.40686 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-2.40686 +11 +6.44937 +21 +-2.40723 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-2.40723 +11 +6.44941 +21 +-2.40761 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-2.40761 +11 +6.4494 +21 +-2.40771 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-2.40771 +11 +6.4494 +21 +-2.60976 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-2.60976 +11 +6.45307 +21 +-2.61343 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-2.61343 +11 +6.45314 +21 +-2.61349 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-2.61349 +11 +6.4532 +21 +-2.61357 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-2.61357 +11 +6.4532 +21 +-2.61357 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-2.61357 +11 +6.45339 +21 +-2.61379 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-2.61379 +11 +6.45357 +21 +-2.61413 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-2.61413 +11 +6.45368 +21 +-2.6145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-2.6145 +11 +6.45372 +21 +-2.61489 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45372 +20 +-2.61489 +11 +6.45368 +21 +-2.61528 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-2.61528 +11 +6.4536 +21 +-2.61553 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4536 +20 +-2.61553 +11 +6.45357 +21 +-2.61565 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-2.61565 +11 +6.45339 +21 +-2.61599 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-2.61599 +11 +6.45323 +21 +-2.61618 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45323 +20 +-2.61618 +11 +6.45314 +21 +-2.61629 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-2.61629 +11 +6.45307 +21 +-2.61635 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-2.61635 +11 +6.4494 +21 +-2.62002 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-2.62002 +11 +6.4494 +21 +-2.62521 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-2.62521 +11 +6.44941 +21 +-2.62531 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-2.62531 +11 +6.4494 +21 +-2.6254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-2.6254 +11 +6.4494 +21 +-2.6254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-2.6254 +11 +6.44937 +21 +-2.62569 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-2.62569 +11 +6.44926 +21 +-2.62606 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-2.62606 +11 +6.44907 +21 +-2.62641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-2.62641 +11 +6.44883 +21 +-2.62671 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-2.62671 +11 +6.44853 +21 +-2.62695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-2.62695 +11 +6.44819 +21 +-2.62713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-2.62713 +11 +6.44781 +21 +-2.62725 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-2.62725 +11 +6.44743 +21 +-2.62728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-2.62728 +11 +6.44733 +21 +-2.62728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-2.62728 +11 +6.44214 +21 +-2.62728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44214 +20 +-2.62728 +11 +6.43847 +21 +-2.63094 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43847 +20 +-2.63094 +11 +6.43841 +21 +-2.63102 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43841 +20 +-2.63102 +11 +6.43834 +21 +-2.63108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43834 +20 +-2.63108 +11 +6.43834 +21 +-2.63108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43834 +20 +-2.63108 +11 +6.43824 +21 +-2.63116 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43824 +20 +-2.63116 +11 +6.43811 +21 +-2.63126 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43811 +20 +-2.63126 +11 +6.43777 +21 +-2.63145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43777 +20 +-2.63145 +11 +6.4374 +21 +-2.63156 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4374 +20 +-2.63156 +11 +6.43701 +21 +-2.6316 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-2.6316 +11 +6.43701 +21 +-2.6316 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-2.6316 +11 +6.43663 +21 +-2.63156 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43663 +20 +-2.63156 +11 +6.43625 +21 +-2.63145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43625 +20 +-2.63145 +11 +6.43591 +21 +-2.63126 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43591 +20 +-2.63126 +11 +6.43569 +21 +-2.63108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-2.63108 +11 +6.43569 +21 +-2.63108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-2.63108 +11 +6.43561 +21 +-2.63102 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43561 +20 +-2.63102 +11 +6.43555 +21 +-2.63094 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43555 +20 +-2.63094 +11 +6.43188 +21 +-2.62728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43188 +20 +-2.62728 +11 +6.42669 +21 +-2.62728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-2.62728 +11 +6.42659 +21 +-2.62728 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-2.62728 +11 +6.42621 +21 +-2.62725 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-2.62725 +11 +6.42584 +21 +-2.62713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-2.62713 +11 +6.4255 +21 +-2.62695 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-2.62695 +11 +6.4252 +21 +-2.62671 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-2.62671 +11 +6.42513 +21 +-2.62663 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42513 +20 +-2.62663 +11 +6.42495 +21 +-2.62641 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-2.62641 +11 +6.42477 +21 +-2.62606 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-2.62606 +11 +6.42465 +21 +-2.62569 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-2.62569 +11 +6.42462 +21 +-2.62531 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-2.62531 +11 +6.42463 +21 +-2.62521 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-2.62521 +11 +6.42463 +21 +-2.62002 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-2.62002 +11 +6.23502 +21 +-2.43042 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23502 +20 +-2.43042 +11 +6.22983 +21 +-2.43042 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-2.43042 +11 +6.22974 +21 +-2.43043 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-2.43043 +11 +6.22935 +21 +-2.43039 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-2.43039 +11 +6.22898 +21 +-2.43028 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-2.43028 +11 +6.22864 +21 +-2.43009 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-2.43009 +11 +6.22834 +21 +-2.42985 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-2.42985 +11 +6.22822 +21 +-2.42971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22822 +20 +-2.42971 +11 +6.22809 +21 +-2.42955 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-2.42955 +11 +6.22791 +21 +-2.42921 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-2.42921 +11 +6.2278 +21 +-2.42883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-2.42883 +11 +6.22776 +21 +-2.42845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-2.42845 +11 +6.22777 +21 +-2.42835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-2.42835 +11 +6.22777 +21 +-2.42316 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-2.42316 +11 +6.2241 +21 +-2.41949 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-2.41949 +11 +6.22402 +21 +-2.41943 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22402 +20 +-2.41943 +11 +6.22386 +21 +-2.41923 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22386 +20 +-2.41923 +11 +6.22378 +21 +-2.41913 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-2.41913 +11 +6.2236 +21 +-2.41879 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-2.41879 +11 +6.22348 +21 +-2.41842 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-2.41842 +11 +6.22345 +21 +-2.41803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-2.41803 +11 +6.22348 +21 +-2.41765 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-2.41765 +11 +6.22348 +21 +-2.41765 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-2.41765 +11 +6.2236 +21 +-2.41727 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-2.41727 +11 +6.22378 +21 +-2.41693 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-2.41693 +11 +6.22396 +21 +-2.41671 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-2.41671 +11 +6.22402 +21 +-2.41663 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22402 +20 +-2.41663 +11 +6.2241 +21 +-2.41657 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-2.41657 +11 +6.22777 +21 +-2.4129 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-2.4129 +11 +6.22777 +21 +-1.83621 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-1.83621 +11 +6.2241 +21 +-1.83254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-1.83254 +11 +6.22403 +21 +-1.83248 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22403 +20 +-1.83248 +11 +6.22396 +21 +-1.8324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-1.8324 +11 +6.22396 +21 +-1.8324 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-1.8324 +11 +6.22391 +21 +-1.83233 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22391 +20 +-1.83233 +11 +6.22378 +21 +-1.83218 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-1.83218 +11 +6.22378 +21 +-1.83218 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-1.83218 +11 +6.22378 +21 +-1.83218 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-1.83218 +11 +6.22369 +21 +-1.83201 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22369 +20 +-1.83201 +11 +6.2236 +21 +-1.83184 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-1.83184 +11 +6.2236 +21 +-1.83184 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-1.83184 +11 +6.2236 +21 +-1.83183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-1.83183 +11 +6.22354 +21 +-1.83165 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22354 +20 +-1.83165 +11 +6.22348 +21 +-1.83147 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-1.83147 +11 +6.22348 +21 +-1.83146 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-1.83146 +11 +6.22348 +21 +-1.83146 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-1.83146 +11 +6.22346 +21 +-1.83127 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22346 +20 +-1.83127 +11 +6.22345 +21 +-1.83108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-1.83108 +11 +6.22345 +21 +-1.83108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-1.83108 +11 +6.22345 +21 +-1.83108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22345 +20 +-1.83108 +11 +6.22346 +21 +-1.83089 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22346 +20 +-1.83089 +11 +6.22348 +21 +-1.8307 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-1.8307 +11 +6.22348 +21 +-1.83069 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-1.83069 +11 +6.22348 +21 +-1.83069 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22348 +20 +-1.83069 +11 +6.22354 +21 +-1.83051 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22354 +20 +-1.83051 +11 +6.22359 +21 +-1.83032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22359 +20 +-1.83032 +11 +6.2236 +21 +-1.83032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-1.83032 +11 +6.2236 +21 +-1.83032 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2236 +20 +-1.83032 +11 +6.22368 +21 +-1.83016 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22368 +20 +-1.83016 +11 +6.22378 +21 +-1.82998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-1.82998 +11 +6.22378 +21 +-1.82998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-1.82998 +11 +6.22378 +21 +-1.82998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22378 +20 +-1.82998 +11 +6.2239 +21 +-1.82983 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2239 +20 +-1.82983 +11 +6.22396 +21 +-1.82976 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-1.82976 +11 +6.22396 +21 +-1.82975 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22396 +20 +-1.82975 +11 +6.22402 +21 +-1.82968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22402 +20 +-1.82968 +11 +6.2241 +21 +-1.82962 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2241 +20 +-1.82962 +11 +6.22777 +21 +-1.82593 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-1.82593 +11 +6.22777 +21 +-1.82076 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22777 +20 +-1.82076 +11 +6.22776 +21 +-1.82066 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22776 +20 +-1.82066 +11 +6.2278 +21 +-1.82027 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2278 +20 +-1.82027 +11 +6.22791 +21 +-1.8199 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22791 +20 +-1.8199 +11 +6.22809 +21 +-1.81956 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22809 +20 +-1.81956 +11 +6.22834 +21 +-1.81926 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22834 +20 +-1.81926 +11 +6.22864 +21 +-1.81902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22864 +20 +-1.81902 +11 +6.22898 +21 +-1.81883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22898 +20 +-1.81883 +11 +6.22935 +21 +-1.81872 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22935 +20 +-1.81872 +11 +6.22964 +21 +-1.81869 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22964 +20 +-1.81869 +11 +6.22974 +21 +-1.81868 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22974 +20 +-1.81868 +11 +6.22983 +21 +-1.81869 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22983 +20 +-1.81869 +11 +6.235 +21 +-1.81869 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.235 +20 +-1.81869 +11 +6.42463 +21 +-1.62909 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-1.62909 +11 +6.42463 +21 +-1.6239 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42463 +20 +-1.6239 +11 +6.42462 +21 +-1.6238 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42462 +20 +-1.6238 +11 +6.42465 +21 +-1.62342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42465 +20 +-1.62342 +11 +6.42477 +21 +-1.62304 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42477 +20 +-1.62304 +11 +6.42495 +21 +-1.6227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42495 +20 +-1.6227 +11 +6.4252 +21 +-1.6224 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-1.6224 +11 +6.4255 +21 +-1.62216 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-1.62216 +11 +6.42584 +21 +-1.62197 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-1.62197 +11 +6.42621 +21 +-1.62186 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-1.62186 +11 +6.4265 +21 +-1.62183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4265 +20 +-1.62183 +11 +6.42659 +21 +-1.62182 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-1.62182 +11 +6.42669 +21 +-1.62183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42669 +20 +-1.62183 +11 +6.43188 +21 +-1.62183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43188 +20 +-1.62183 +11 +6.43555 +21 +-1.61816 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43555 +20 +-1.61816 +11 +6.43561 +21 +-1.61809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43561 +20 +-1.61809 +11 +6.43569 +21 +-1.61803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-1.61803 +11 +6.43569 +21 +-1.61803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43569 +20 +-1.61803 +11 +6.43591 +21 +-1.61784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43591 +20 +-1.61784 +11 +6.43625 +21 +-1.61766 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43625 +20 +-1.61766 +11 +6.43663 +21 +-1.61755 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43663 +20 +-1.61755 +11 +6.43701 +21 +-1.61751 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-1.61751 +11 +6.43701 +21 +-1.61751 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-1.61751 +11 +6.4374 +21 +-1.61755 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4374 +20 +-1.61755 +11 +6.43777 +21 +-1.61766 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43777 +20 +-1.61766 +11 +6.43811 +21 +-1.61784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43811 +20 +-1.61784 +11 +6.43841 +21 +-1.61809 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43841 +20 +-1.61809 +11 +6.43847 +21 +-1.61816 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43847 +20 +-1.61816 +11 +6.44214 +21 +-1.62183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44214 +20 +-1.62183 +11 +6.44733 +21 +-1.62183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44733 +20 +-1.62183 +11 +6.44743 +21 +-1.62182 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44743 +20 +-1.62182 +11 +6.44752 +21 +-1.62183 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44752 +20 +-1.62183 +11 +6.44781 +21 +-1.62186 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44781 +20 +-1.62186 +11 +6.44819 +21 +-1.62197 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44819 +20 +-1.62197 +11 +6.44853 +21 +-1.62216 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44853 +20 +-1.62216 +11 +6.44883 +21 +-1.6224 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44883 +20 +-1.6224 +11 +6.44907 +21 +-1.6227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44907 +20 +-1.6227 +11 +6.44926 +21 +-1.62304 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44926 +20 +-1.62304 +11 +6.44937 +21 +-1.62342 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44937 +20 +-1.62342 +11 +6.44941 +21 +-1.6238 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44941 +20 +-1.6238 +11 +6.4494 +21 +-1.6239 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-1.6239 +11 +6.4494 +21 +-1.62909 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-1.62909 +11 +6.45307 +21 +-1.63276 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-1.63276 +11 +6.45314 +21 +-1.63282 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-1.63282 +11 +6.4533 +21 +-1.63301 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4533 +20 +-1.63301 +11 +6.45339 +21 +-1.63312 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-1.63312 +11 +6.45357 +21 +-1.63346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-1.63346 +11 +6.45357 +21 +-1.63346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-1.63346 +11 +6.45368 +21 +-1.63383 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-1.63383 +11 +6.45372 +21 +-1.63422 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45372 +20 +-1.63422 +11 +6.45368 +21 +-1.6346 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45368 +20 +-1.6346 +11 +6.45357 +21 +-1.63497 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45357 +20 +-1.63497 +11 +6.45339 +21 +-1.63532 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45339 +20 +-1.63532 +11 +6.4532 +21 +-1.63554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-1.63554 +11 +6.4532 +21 +-1.63554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4532 +20 +-1.63554 +11 +6.45314 +21 +-1.63562 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45314 +20 +-1.63562 +11 +6.45307 +21 +-1.63568 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.45307 +20 +-1.63568 +11 +6.4494 +21 +-1.63935 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-1.63935 +11 +6.4494 +21 +-1.8414 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4494 +20 +-1.8414 +11 +6.44941 +21 +-1.84149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-2.58974 +11 +6.42856 +21 +-2.58984 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-2.58984 +11 +6.42856 +21 +-2.58984 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-2.58984 +11 +6.42854 +21 +-2.59013 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-2.59013 +11 +6.42842 +21 +-2.5905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-2.5905 +11 +6.42842 +21 +-2.5905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-2.5905 +11 +6.42824 +21 +-2.59084 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-2.59084 +11 +6.42799 +21 +-2.59114 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-2.59114 +11 +6.42769 +21 +-2.59139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42769 +20 +-2.59139 +11 +6.42735 +21 +-2.59157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42735 +20 +-2.59157 +11 +6.42735 +21 +-2.59157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42735 +20 +-2.59157 +11 +6.42698 +21 +-2.59168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42698 +20 +-2.59168 +11 +6.42659 +21 +-2.59172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-2.59172 +11 +6.42621 +21 +-2.59168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-2.59168 +11 +6.42584 +21 +-2.59157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-2.59157 +11 +6.42568 +21 +-2.59149 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42568 +20 +-2.59149 +11 +6.4255 +21 +-2.59139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-2.59139 +11 +6.42527 +21 +-2.5912 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42527 +20 +-2.5912 +11 +6.4252 +21 +-2.59114 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-2.59114 +11 +6.42513 +21 +-2.59107 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42513 +20 +-2.59107 +11 +6.24925 +21 +-2.41518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-2.41518 +11 +6.24917 +21 +-2.41512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-2.41512 +11 +6.24911 +21 +-2.41504 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24911 +20 +-2.41504 +11 +6.24893 +21 +-2.41482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-2.41482 +11 +6.24874 +21 +-2.41448 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-2.41448 +11 +6.24874 +21 +-2.41448 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-2.41448 +11 +6.24863 +21 +-2.4141 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-2.4141 +11 +6.24863 +21 +-2.41407 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-2.41407 +11 +6.24859 +21 +-2.41372 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-2.41372 +11 +6.2486 +21 +-2.41362 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-2.41362 +11 +6.2486 +21 +-1.83549 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-1.83549 +11 +6.24859 +21 +-1.83539 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24859 +20 +-1.83539 +11 +6.2486 +21 +-1.83529 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2486 +20 +-1.83529 +11 +6.24863 +21 +-1.835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24863 +20 +-1.835 +11 +6.24874 +21 +-1.83463 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24874 +20 +-1.83463 +11 +6.24883 +21 +-1.83447 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24883 +20 +-1.83447 +11 +6.24893 +21 +-1.83429 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24893 +20 +-1.83429 +11 +6.24903 +21 +-1.83416 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24903 +20 +-1.83416 +11 +6.24917 +21 +-1.83399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24917 +20 +-1.83399 +11 +6.24925 +21 +-1.83393 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.24925 +20 +-1.83393 +11 +6.42514 +21 +-1.65804 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42514 +20 +-1.65804 +11 +6.4252 +21 +-1.65797 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4252 +20 +-1.65797 +11 +6.42527 +21 +-1.6579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42527 +20 +-1.6579 +11 +6.42527 +21 +-1.6579 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42527 +20 +-1.6579 +11 +6.4255 +21 +-1.65772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4255 +20 +-1.65772 +11 +6.42584 +21 +-1.65754 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-1.65754 +11 +6.42584 +21 +-1.65754 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42584 +20 +-1.65754 +11 +6.42621 +21 +-1.65742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42621 +20 +-1.65742 +11 +6.42659 +21 +-1.65739 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42659 +20 +-1.65739 +11 +6.42698 +21 +-1.65742 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42698 +20 +-1.65742 +11 +6.42735 +21 +-1.65754 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42735 +20 +-1.65754 +11 +6.42769 +21 +-1.65772 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42769 +20 +-1.65772 +11 +6.42799 +21 +-1.65797 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-1.65797 +11 +6.42824 +21 +-1.65827 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-1.65827 +11 +6.42842 +21 +-1.65861 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-1.65861 +11 +6.42854 +21 +-1.65898 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-1.65898 +11 +6.42856 +21 +-1.65927 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-1.65927 +11 +6.42857 +21 +-1.65936 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-1.65936 +11 +6.42856 +21 +-1.65946 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-1.65946 +11 +6.42856 +21 +-1.83952 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-1.83952 +11 +6.44546 +21 +-1.83952 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-1.83952 +11 +6.44546 +21 +-1.83098 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-1.83098 +11 +6.44546 +21 +-1.83098 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-1.83098 +11 +6.44546 +21 +-1.63863 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-1.63863 +11 +6.44545 +21 +-1.63853 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-1.63853 +11 +6.44546 +21 +-1.63843 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-1.63843 +11 +6.44549 +21 +-1.63815 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-1.63815 +11 +6.4456 +21 +-1.63777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-1.63777 +11 +6.44569 +21 +-1.63762 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44569 +20 +-1.63762 +11 +6.44578 +21 +-1.63743 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-1.63743 +11 +6.44589 +21 +-1.6373 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44589 +20 +-1.6373 +11 +6.44603 +21 +-1.63713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-1.63713 +11 +6.4461 +21 +-1.63707 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-1.63707 +11 +6.44896 +21 +-1.63422 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44896 +20 +-1.63422 +11 +6.4461 +21 +-1.63136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-1.63136 +11 +6.44603 +21 +-1.6313 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-1.6313 +11 +6.44597 +21 +-1.63123 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44597 +20 +-1.63123 +11 +6.44578 +21 +-1.631 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-1.631 +11 +6.4456 +21 +-1.63066 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-1.63066 +11 +6.44549 +21 +-1.63029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-1.63029 +11 +6.44545 +21 +-1.6299 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-1.6299 +11 +6.44546 +21 +-1.62981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-1.62981 +11 +6.44546 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-1.62577 +11 +6.44142 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44142 +20 +-1.62577 +11 +6.44132 +21 +-1.62578 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44132 +20 +-1.62578 +11 +6.44123 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-1.62577 +11 +6.44123 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-1.62577 +11 +6.44094 +21 +-1.62574 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44094 +20 +-1.62574 +11 +6.44057 +21 +-1.62563 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44057 +20 +-1.62563 +11 +6.44041 +21 +-1.62554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44041 +20 +-1.62554 +11 +6.44023 +21 +-1.62545 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44023 +20 +-1.62545 +11 +6.44 +21 +-1.62526 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44 +20 +-1.62526 +11 +6.43993 +21 +-1.6252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43993 +20 +-1.6252 +11 +6.43986 +21 +-1.62512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43986 +20 +-1.62512 +11 +6.43701 +21 +-1.62227 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-1.62227 +11 +6.43416 +21 +-1.62512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43416 +20 +-1.62512 +11 +6.4341 +21 +-1.6252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4341 +20 +-1.6252 +11 +6.4338 +21 +-1.62545 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4338 +20 +-1.62545 +11 +6.43346 +21 +-1.62563 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43346 +20 +-1.62563 +11 +6.43308 +21 +-1.62574 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43308 +20 +-1.62574 +11 +6.43279 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-1.62577 +11 +6.43279 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-1.62577 +11 +6.4327 +21 +-1.62578 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4327 +20 +-1.62578 +11 +6.4326 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4326 +20 +-1.62577 +11 +6.42856 +21 +-1.62577 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-1.62577 +11 +6.42856 +21 +-1.62981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-1.62981 +11 +6.42857 +21 +-1.6299 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-1.6299 +11 +6.42856 +21 +-1.63 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-1.63 +11 +6.42856 +21 +-1.63 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-1.63 +11 +6.42854 +21 +-1.63029 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-1.63029 +11 +6.42842 +21 +-1.63066 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-1.63066 +11 +6.42842 +21 +-1.63066 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-1.63066 +11 +6.42842 +21 +-1.63066 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-1.63066 +11 +6.42824 +21 +-1.631 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-1.631 +11 +6.42809 +21 +-1.63119 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42809 +20 +-1.63119 +11 +6.42799 +21 +-1.6313 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-1.6313 +11 +6.42792 +21 +-1.63136 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42792 +20 +-1.63136 +11 +6.23728 +21 +-1.82198 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23728 +20 +-1.82198 +11 +6.23722 +21 +-1.82206 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23722 +20 +-1.82206 +11 +6.23692 +21 +-1.8223 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23692 +20 +-1.8223 +11 +6.23658 +21 +-1.82249 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23658 +20 +-1.82249 +11 +6.23621 +21 +-1.8226 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23621 +20 +-1.8226 +11 +6.23592 +21 +-1.82263 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23592 +20 +-1.82263 +11 +6.23592 +21 +-1.82263 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23592 +20 +-1.82263 +11 +6.23582 +21 +-1.82264 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23582 +20 +-1.82264 +11 +6.23572 +21 +-1.82263 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23572 +20 +-1.82263 +11 +6.2317 +21 +-1.82263 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-1.82263 +11 +6.2317 +21 +-1.82664 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-1.82664 +11 +6.23171 +21 +-1.82674 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-1.82674 +11 +6.2317 +21 +-1.82684 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-1.82684 +11 +6.2317 +21 +-1.82684 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-1.82684 +11 +6.2317 +21 +-1.82694 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-1.82694 +11 +6.23168 +21 +-1.82712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-1.82712 +11 +6.23168 +21 +-1.82713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-1.82713 +11 +6.23168 +21 +-1.82713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-1.82713 +11 +6.23162 +21 +-1.82732 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23162 +20 +-1.82732 +11 +6.23157 +21 +-1.8275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23157 +20 +-1.8275 +11 +6.23156 +21 +-1.8275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-1.8275 +11 +6.23156 +21 +-1.8275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-1.8275 +11 +6.23147 +21 +-1.82767 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23147 +20 +-1.82767 +11 +6.23138 +21 +-1.82784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-1.82784 +11 +6.23138 +21 +-1.82784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-1.82784 +11 +6.23138 +21 +-1.82784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-1.82784 +11 +6.23126 +21 +-1.82799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23126 +20 +-1.82799 +11 +6.2312 +21 +-1.82806 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-1.82806 +11 +6.2312 +21 +-1.82807 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-1.82807 +11 +6.23114 +21 +-1.82814 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-1.82814 +11 +6.23106 +21 +-1.8282 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-1.8282 +11 +6.2282 +21 +-1.83107 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2282 +20 +-1.83107 +11 +6.23106 +21 +-1.83393 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-1.83393 +11 +6.23114 +21 +-1.83399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-1.83399 +11 +6.2312 +21 +-1.83407 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-1.83407 +11 +6.23138 +21 +-1.83429 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-1.83429 +11 +6.23138 +21 +-1.83429 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-1.83429 +11 +6.23156 +21 +-1.83463 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-1.83463 +11 +6.23168 +21 +-1.835 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-1.835 +11 +6.2317 +21 +-1.83529 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-1.83529 +11 +6.23171 +21 +-1.83539 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-1.83539 +11 +6.2317 +21 +-1.83549 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-1.83549 +11 +6.2317 +21 +-2.41362 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-2.41362 +11 +6.23171 +21 +-2.41372 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-2.41372 +11 +6.2317 +21 +-2.41381 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-2.41381 +11 +6.2317 +21 +-2.41381 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-2.41381 +11 +6.23168 +21 +-2.4141 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-2.4141 +11 +6.23156 +21 +-2.41448 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-2.41448 +11 +6.23156 +21 +-2.41448 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-2.41448 +11 +6.23138 +21 +-2.41482 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-2.41482 +11 +6.2313 +21 +-2.41492 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2313 +20 +-2.41492 +11 +6.23114 +21 +-2.41512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-2.41512 +11 +6.23106 +21 +-2.41518 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-2.41518 +11 +6.22821 +21 +-2.41803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.22821 +20 +-2.41803 +11 +6.23106 +21 +-2.42088 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23106 +20 +-2.42088 +11 +6.23114 +21 +-2.42095 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23114 +20 +-2.42095 +11 +6.2312 +21 +-2.42102 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2312 +20 +-2.42102 +11 +6.23138 +21 +-2.42125 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-2.42125 +11 +6.23138 +21 +-2.42125 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23138 +20 +-2.42125 +11 +6.23156 +21 +-2.42159 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23156 +20 +-2.42159 +11 +6.23168 +21 +-2.42196 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23168 +20 +-2.42196 +11 +6.2317 +21 +-2.42225 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-2.42225 +11 +6.23171 +21 +-2.42234 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23171 +20 +-2.42234 +11 +6.2317 +21 +-2.42244 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-2.42244 +11 +6.2317 +21 +-2.42648 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2317 +20 +-2.42648 +11 +6.23574 +21 +-2.42648 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23574 +20 +-2.42648 +11 +6.23584 +21 +-2.42647 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23584 +20 +-2.42647 +11 +6.23594 +21 +-2.42648 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-2.42648 +11 +6.23594 +21 +-2.42648 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23594 +20 +-2.42648 +11 +6.23623 +21 +-2.42651 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23623 +20 +-2.42651 +11 +6.2366 +21 +-2.42662 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2366 +20 +-2.42662 +11 +6.23694 +21 +-2.4268 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23694 +20 +-2.4268 +11 +6.23724 +21 +-2.42705 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.23724 +20 +-2.42705 +11 +6.2373 +21 +-2.42712 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.2373 +20 +-2.42712 +11 +6.42792 +21 +-2.61774 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42792 +20 +-2.61774 +11 +6.42799 +21 +-2.6178 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42799 +20 +-2.6178 +11 +6.42806 +21 +-2.61788 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42806 +20 +-2.61788 +11 +6.42824 +21 +-2.6181 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-2.6181 +11 +6.42824 +21 +-2.6181 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42824 +20 +-2.6181 +11 +6.42842 +21 +-2.61845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42842 +20 +-2.61845 +11 +6.42854 +21 +-2.61882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42854 +20 +-2.61882 +11 +6.42856 +21 +-2.61911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-2.61911 +11 +6.42857 +21 +-2.6192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42857 +20 +-2.6192 +11 +6.42856 +21 +-2.6193 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-2.6193 +11 +6.42856 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-2.62334 +11 +6.4326 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4326 +20 +-2.62334 +11 +6.4327 +21 +-2.62333 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4327 +20 +-2.62333 +11 +6.43279 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-2.62334 +11 +6.43279 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43279 +20 +-2.62334 +11 +6.43308 +21 +-2.62337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43308 +20 +-2.62337 +11 +6.43346 +21 +-2.62348 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43346 +20 +-2.62348 +11 +6.4338 +21 +-2.62366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4338 +20 +-2.62366 +11 +6.4341 +21 +-2.62391 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4341 +20 +-2.62391 +11 +6.43416 +21 +-2.62398 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43416 +20 +-2.62398 +11 +6.43701 +21 +-2.62684 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43701 +20 +-2.62684 +11 +6.43986 +21 +-2.62398 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43986 +20 +-2.62398 +11 +6.43993 +21 +-2.62391 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.43993 +20 +-2.62391 +11 +6.44 +21 +-2.62385 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44 +20 +-2.62385 +11 +6.44023 +21 +-2.62366 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44023 +20 +-2.62366 +11 +6.44041 +21 +-2.62356 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44041 +20 +-2.62356 +11 +6.44057 +21 +-2.62348 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44057 +20 +-2.62348 +11 +6.44094 +21 +-2.62337 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44094 +20 +-2.62337 +11 +6.44123 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-2.62334 +11 +6.44123 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44123 +20 +-2.62334 +11 +6.44132 +21 +-2.62333 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44132 +20 +-2.62333 +11 +6.44142 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44142 +20 +-2.62334 +11 +6.44546 +21 +-2.62334 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-2.62334 +11 +6.44546 +21 +-2.6193 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-2.6193 +11 +6.44545 +21 +-2.6192 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-2.6192 +11 +6.44546 +21 +-2.61911 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-2.61911 +11 +6.44549 +21 +-2.61882 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-2.61882 +11 +6.4456 +21 +-2.61845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-2.61845 +11 +6.4456 +21 +-2.61845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-2.61845 +11 +6.44578 +21 +-2.6181 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-2.6181 +11 +6.44585 +21 +-2.61803 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44585 +20 +-2.61803 +11 +6.44603 +21 +-2.6178 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-2.6178 +11 +6.4461 +21 +-2.61774 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-2.61774 +11 +6.44896 +21 +-2.61489 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44896 +20 +-2.61489 +11 +6.4461 +21 +-2.61204 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4461 +20 +-2.61204 +11 +6.44603 +21 +-2.61198 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44603 +20 +-2.61198 +11 +6.44597 +21 +-2.6119 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44597 +20 +-2.6119 +11 +6.44578 +21 +-2.61168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44578 +20 +-2.61168 +11 +6.4456 +21 +-2.61133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.4456 +20 +-2.61133 +11 +6.44549 +21 +-2.61096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44549 +20 +-2.61096 +11 +6.44545 +21 +-2.61058 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44545 +20 +-2.61058 +11 +6.44546 +21 +-2.61048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-2.61048 +11 +6.44546 +21 +-2.41794 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-2.41794 +11 +6.44546 +21 +-2.41793 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-2.41793 +11 +6.44546 +21 +-2.40958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.44546 +20 +-2.40958 +11 +6.42856 +21 +-2.40958 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-2.40958 +11 +6.42856 +21 +-2.58965 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.42856 +20 +-2.58965 +11 +6.42857 +21 +-2.58974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317509 +20 +-2.4383 +11 +0.3175 +21 +-2.43839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-2.43839 +11 +0.3175 +21 +-2.43839 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-2.43839 +11 +0.317471 +21 +-2.43868 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317471 +20 +-2.43868 +11 +0.317359 +21 +-2.43905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317359 +20 +-2.43905 +11 +0.317176 +21 +-2.43939 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317176 +20 +-2.43939 +11 +0.31693 +21 +-2.43969 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31693 +20 +-2.43969 +11 +0.31663 +21 +-2.43994 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31663 +20 +-2.43994 +11 +0.316288 +21 +-2.44012 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.316288 +20 +-2.44012 +11 +0.315917 +21 +-2.44024 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315917 +20 +-2.44024 +11 +0.315531 +21 +-2.44027 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315531 +20 +-2.44027 +11 +0.315435 +21 +-2.44026 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315435 +20 +-2.44026 +11 +0.275121 +21 +-2.44026 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275121 +20 +-2.44026 +11 +0.275024 +21 +-2.44027 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275024 +20 +-2.44027 +11 +0.274639 +21 +-2.44024 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274639 +20 +-2.44024 +11 +0.274267 +21 +-2.44012 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274267 +20 +-2.44012 +11 +0.273926 +21 +-2.43994 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273926 +20 +-2.43994 +11 +0.273626 +21 +-2.43969 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273626 +20 +-2.43969 +11 +0.27338 +21 +-2.43939 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.27338 +20 +-2.43939 +11 +0.273197 +21 +-2.43905 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273197 +20 +-2.43905 +11 +0.273084 +21 +-2.43868 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273084 +20 +-2.43868 +11 +0.273046 +21 +-2.4383 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273046 +20 +-2.4383 +11 +0.273056 +21 +-2.4382 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-2.4382 +11 +0.273056 +21 +-2.42798 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-2.42798 +11 +0.273056 +21 +-2.42797 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-2.42797 +11 +0.273056 +21 +-2.41756 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-2.41756 +11 +0.273056 +21 +-2.41756 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-2.41756 +11 +0.273056 +21 +-1.82133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-1.82133 +11 +0.273056 +21 +-1.82133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-1.82133 +11 +0.273056 +21 +-1.81091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273056 +20 +-1.81091 +11 +0.273046 +21 +-1.81081 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273046 +20 +-1.81081 +11 +0.273084 +21 +-1.81043 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273084 +20 +-1.81043 +11 +0.273197 +21 +-1.81006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273197 +20 +-1.81006 +11 +0.27338 +21 +-1.80971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.27338 +20 +-1.80971 +11 +0.273626 +21 +-1.80941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273626 +20 +-1.80941 +11 +0.273926 +21 +-1.80917 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.273926 +20 +-1.80917 +11 +0.274267 +21 +-1.80899 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274267 +20 +-1.80899 +11 +0.274639 +21 +-1.80887 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274639 +20 +-1.80887 +11 +0.274928 +21 +-1.80884 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.274928 +20 +-1.80884 +11 +0.275024 +21 +-1.80883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275024 +20 +-1.80883 +11 +0.275121 +21 +-1.80884 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.275121 +20 +-1.80884 +11 +0.315435 +21 +-1.80884 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315435 +20 +-1.80884 +11 +0.315531 +21 +-1.80883 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315531 +20 +-1.80883 +11 +0.315628 +21 +-1.80884 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315628 +20 +-1.80884 +11 +0.315917 +21 +-1.80887 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.315917 +20 +-1.80887 +11 +0.316288 +21 +-1.80899 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.316288 +20 +-1.80899 +11 +0.31663 +21 +-1.80917 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31663 +20 +-1.80917 +11 +0.31693 +21 +-1.80941 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.31693 +20 +-1.80941 +11 +0.317176 +21 +-1.80971 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317176 +20 +-1.80971 +11 +0.317359 +21 +-1.81006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317359 +20 +-1.81006 +11 +0.317471 +21 +-1.81043 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317471 +20 +-1.81043 +11 +0.317509 +21 +-1.81081 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.317509 +20 +-1.81081 +11 +0.3175 +21 +-1.81091 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-1.81091 +11 +0.3175 +21 +-2.4382 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.3175 +20 +-2.4382 +11 +0.317509 +21 +-2.4383 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-2.43633 +11 +0.313563 +21 +-2.42778 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-2.42778 +11 +0.313563 +21 +-2.42778 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-2.42778 +11 +0.313563 +21 +-1.83155 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-1.83155 +11 +0.313563 +21 +-1.83155 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-1.83155 +11 +0.313563 +21 +-1.81278 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.313563 +20 +-1.81278 +11 +0.276993 +21 +-1.81278 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.276993 +20 +-1.81278 +11 +0.276993 +21 +-2.43633 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +0.276993 +20 +-2.43633 +11 +0.313563 +21 +-2.43633 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05267 +20 +-1.66592 +11 +6.05296 +21 +-1.66595 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05296 +20 +-1.66595 +11 +6.05333 +21 +-1.66606 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05333 +20 +-1.66606 +11 +6.05367 +21 +-1.66624 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05367 +20 +-1.66624 +11 +6.05397 +21 +-1.66649 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05397 +20 +-1.66649 +11 +6.05422 +21 +-1.66679 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05422 +20 +-1.66679 +11 +6.0544 +21 +-1.66713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0544 +20 +-1.66713 +11 +6.05451 +21 +-1.6675 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05451 +20 +-1.6675 +11 +6.05455 +21 +-1.66789 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05455 +20 +-1.66789 +11 +6.05454 +21 +-1.66799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05454 +20 +-1.66799 +11 +6.05454 +21 +-2.00129 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05454 +20 +-2.00129 +11 +6.05455 +21 +-2.00139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05455 +20 +-2.00139 +11 +6.05451 +21 +-2.00177 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05451 +20 +-2.00177 +11 +6.0544 +21 +-2.00214 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0544 +20 +-2.00214 +11 +6.05422 +21 +-2.00248 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05422 +20 +-2.00248 +11 +6.05397 +21 +-2.00278 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05397 +20 +-2.00278 +11 +6.05367 +21 +-2.00303 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05367 +20 +-2.00303 +11 +6.05333 +21 +-2.00321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05333 +20 +-2.00321 +11 +6.05296 +21 +-2.00333 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05296 +20 +-2.00333 +11 +6.05267 +21 +-2.00335 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05267 +20 +-2.00335 +11 +6.05257 +21 +-2.00336 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05257 +20 +-2.00336 +11 +6.05248 +21 +-2.00335 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05248 +20 +-2.00335 +11 +5.91603 +21 +-2.00335 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91603 +20 +-2.00335 +11 +5.91593 +21 +-2.00336 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91593 +20 +-2.00336 +11 +5.91584 +21 +-2.00335 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91584 +20 +-2.00335 +11 +5.91555 +21 +-2.00333 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91555 +20 +-2.00333 +11 +5.91518 +21 +-2.00321 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91518 +20 +-2.00321 +11 +5.91484 +21 +-2.00303 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91484 +20 +-2.00303 +11 +5.91454 +21 +-2.00278 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91454 +20 +-2.00278 +11 +5.91429 +21 +-2.00248 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91429 +20 +-2.00248 +11 +5.91411 +21 +-2.00214 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91411 +20 +-2.00214 +11 +5.91399 +21 +-2.00177 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91399 +20 +-2.00177 +11 +5.91396 +21 +-2.00139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91396 +20 +-2.00139 +11 +5.91397 +21 +-2.00129 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91397 +20 +-2.00129 +11 +5.91397 +21 +-1.66799 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91397 +20 +-1.66799 +11 +5.91396 +21 +-1.66789 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91396 +20 +-1.66789 +11 +5.91399 +21 +-1.6675 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91399 +20 +-1.6675 +11 +5.91411 +21 +-1.66713 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91411 +20 +-1.66713 +11 +5.91429 +21 +-1.66679 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91429 +20 +-1.66679 +11 +5.91454 +21 +-1.66649 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91454 +20 +-1.66649 +11 +5.91484 +21 +-1.66624 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91484 +20 +-1.66624 +11 +5.91518 +21 +-1.66606 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91518 +20 +-1.66606 +11 +5.91555 +21 +-1.66595 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91555 +20 +-1.66595 +11 +5.91584 +21 +-1.66592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91584 +20 +-1.66592 +11 +5.91593 +21 +-1.66591 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91593 +20 +-1.66591 +11 +5.91603 +21 +-1.66592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.91603 +20 +-1.66592 +11 +6.05248 +21 +-1.66592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05248 +20 +-1.66592 +11 +6.05257 +21 +-1.66591 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.05257 +20 +-1.66591 +11 +6.05267 +21 +-1.66592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9179 +20 +-1.66986 +11 +5.9179 +21 +-1.99942 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +5.9179 +20 +-1.99942 +11 +6.0506 +21 +-1.99942 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0506 +20 +-1.99942 +11 +6.0506 +21 +-1.66986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +6.0506 +20 +-1.66986 +11 +5.9179 +21 +-1.66986 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28209 +20 +-1.79586 +11 +1.28208 +21 +-1.79596 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28208 +20 +-1.79596 +11 +1.28208 +21 +-1.79596 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28208 +20 +-1.79596 +11 +1.28205 +21 +-1.79625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28205 +20 +-1.79625 +11 +1.28194 +21 +-1.79662 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28194 +20 +-1.79662 +11 +1.28176 +21 +-1.79696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28176 +20 +-1.79696 +11 +1.28151 +21 +-1.79726 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28151 +20 +-1.79726 +11 +1.28121 +21 +-1.7975 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28121 +20 +-1.7975 +11 +1.28087 +21 +-1.79769 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28087 +20 +-1.79769 +11 +1.2805 +21 +-1.7978 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.2805 +20 +-1.7978 +11 +1.28011 +21 +-1.79784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28011 +20 +-1.79784 +11 +1.28001 +21 +-1.79783 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28001 +20 +-1.79783 +11 +1.23968 +21 +-1.79783 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23968 +20 +-1.79783 +11 +1.23958 +21 +-1.79784 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23958 +20 +-1.79784 +11 +1.2392 +21 +-1.7978 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.2392 +20 +-1.7978 +11 +1.23883 +21 +-1.79769 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23883 +20 +-1.79769 +11 +1.23848 +21 +-1.7975 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23848 +20 +-1.7975 +11 +1.23818 +21 +-1.79726 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23818 +20 +-1.79726 +11 +1.23794 +21 +-1.79696 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23794 +20 +-1.79696 +11 +1.23776 +21 +-1.79662 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23776 +20 +-1.79662 +11 +1.23764 +21 +-1.79625 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23764 +20 +-1.79625 +11 +1.23761 +21 +-1.79586 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.79586 +11 +1.23761 +21 +-1.79576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.79576 +11 +1.23761 +21 +-1.78554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.78554 +11 +1.23761 +21 +-1.78554 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.78554 +11 +1.23761 +21 +-1.77512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.77512 +11 +1.23761 +21 +-1.77512 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.77512 +11 +1.23761 +21 +-1.41152 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.41152 +11 +1.23761 +21 +-1.41152 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.41152 +11 +1.23761 +21 +-1.4011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.4011 +11 +1.23761 +21 +-1.401 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23761 +20 +-1.401 +11 +1.23764 +21 +-1.40062 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23764 +20 +-1.40062 +11 +1.23776 +21 +-1.40025 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23776 +20 +-1.40025 +11 +1.23794 +21 +-1.3999 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23794 +20 +-1.3999 +11 +1.23818 +21 +-1.3996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23818 +20 +-1.3996 +11 +1.23848 +21 +-1.39936 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23848 +20 +-1.39936 +11 +1.23883 +21 +-1.39918 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23883 +20 +-1.39918 +11 +1.2392 +21 +-1.39906 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.2392 +20 +-1.39906 +11 +1.23949 +21 +-1.39903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23949 +20 +-1.39903 +11 +1.23958 +21 +-1.39902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23958 +20 +-1.39902 +11 +1.23968 +21 +-1.39903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.23968 +20 +-1.39903 +11 +1.28001 +21 +-1.39903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28001 +20 +-1.39903 +11 +1.28011 +21 +-1.39902 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28011 +20 +-1.39902 +11 +1.28021 +21 +-1.39903 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28021 +20 +-1.39903 +11 +1.2805 +21 +-1.39906 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.2805 +20 +-1.39906 +11 +1.28087 +21 +-1.39918 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28087 +20 +-1.39918 +11 +1.28121 +21 +-1.39936 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28121 +20 +-1.39936 +11 +1.28151 +21 +-1.3996 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28151 +20 +-1.3996 +11 +1.28176 +21 +-1.3999 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28176 +20 +-1.3999 +11 +1.28194 +21 +-1.40025 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28194 +20 +-1.40025 +11 +1.28205 +21 +-1.40062 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28205 +20 +-1.40062 +11 +1.28209 +21 +-1.401 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28209 +20 +-1.401 +11 +1.28208 +21 +-1.4011 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28208 +20 +-1.4011 +11 +1.28208 +21 +-1.79576 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.28208 +20 +-1.79576 +11 +1.28209 +21 +-1.79586 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.27814 +20 +-1.79389 +11 +1.27814 +21 +-1.78535 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.27814 +20 +-1.78535 +11 +1.27814 +21 +-1.78535 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.27814 +20 +-1.78535 +11 +1.27814 +21 +-1.42174 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.27814 +20 +-1.42174 +11 +1.27814 +21 +-1.42174 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.27814 +20 +-1.42174 +11 +1.27814 +21 +-1.40297 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.27814 +20 +-1.40297 +11 +1.24155 +21 +-1.40297 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.24155 +20 +-1.40297 +11 +1.24155 +21 +-1.79389 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +1.24155 +20 +-1.79389 +11 +1.27814 +21 +-1.79389 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50057 +20 +-1.25057 +11 +4.50056 +21 +-1.25067 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50056 +20 +-1.25067 +11 +4.50056 +21 +-1.25067 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50056 +20 +-1.25067 +11 +4.50054 +21 +-1.25096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50054 +20 +-1.25096 +11 +4.50042 +21 +-1.25133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50042 +20 +-1.25133 +11 +4.50024 +21 +-1.25167 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50024 +20 +-1.25167 +11 +4.49999 +21 +-1.25197 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49999 +20 +-1.25197 +11 +4.4997 +21 +-1.25222 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.4997 +20 +-1.25222 +11 +4.49935 +21 +-1.2524 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49935 +20 +-1.2524 +11 +4.49898 +21 +-1.25251 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49898 +20 +-1.25251 +11 +4.4986 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.4986 +20 +-1.25255 +11 +4.4985 +21 +-1.25254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.4985 +20 +-1.25254 +11 +4.00543 +21 +-1.25254 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00543 +20 +-1.25254 +11 +4.00533 +21 +-1.25255 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00533 +20 +-1.25255 +11 +4.00494 +21 +-1.25251 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00494 +20 +-1.25251 +11 +4.00457 +21 +-1.2524 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00457 +20 +-1.2524 +11 +4.00423 +21 +-1.25222 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00423 +20 +-1.25222 +11 +4.00393 +21 +-1.25197 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00393 +20 +-1.25197 +11 +4.00369 +21 +-1.25167 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00369 +20 +-1.25167 +11 +4.0035 +21 +-1.25133 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0035 +20 +-1.25133 +11 +4.00339 +21 +-1.25096 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00339 +20 +-1.25096 +11 +4.00335 +21 +-1.25057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00335 +20 +-1.25057 +11 +4.00336 +21 +-1.25048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00336 +20 +-1.25048 +11 +4.00336 +21 +-1.24025 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00336 +20 +-1.24025 +11 +4.00336 +21 +-1.24025 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00336 +20 +-1.24025 +11 +4.00336 +21 +-0.531592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00336 +20 +-0.531592 +11 +4.00336 +21 +-0.531592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00336 +20 +-0.531592 +11 +4.00336 +21 +-0.521176 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00336 +20 +-0.521176 +11 +4.00335 +21 +-0.521079 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00335 +20 +-0.521079 +11 +4.00339 +21 +-0.520693 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00339 +20 +-0.520693 +11 +4.0035 +21 +-0.520322 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0035 +20 +-0.520322 +11 +4.00369 +21 +-0.51998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00369 +20 +-0.51998 +11 +4.00393 +21 +-0.51968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00393 +20 +-0.51968 +11 +4.00423 +21 +-0.519434 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00423 +20 +-0.519434 +11 +4.00457 +21 +-0.519252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00457 +20 +-0.519252 +11 +4.00494 +21 +-0.519139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00494 +20 +-0.519139 +11 +4.00523 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00523 +20 +-0.519111 +11 +4.00533 +21 +-0.519101 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00533 +20 +-0.519101 +11 +4.00543 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.00543 +20 +-0.519111 +11 +4.02607 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02607 +20 +-0.519111 +11 +4.02616 +21 +-0.519101 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02616 +20 +-0.519101 +11 +4.02626 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02626 +20 +-0.519111 +11 +4.02655 +21 +-0.519139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02655 +20 +-0.519139 +11 +4.02692 +21 +-0.519252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02692 +20 +-0.519252 +11 +4.02726 +21 +-0.519434 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02726 +20 +-0.519434 +11 +4.02756 +21 +-0.51968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02756 +20 +-0.51968 +11 +4.02781 +21 +-0.51998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02781 +20 +-0.51998 +11 +4.02799 +21 +-0.520322 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02799 +20 +-0.520322 +11 +4.0281 +21 +-0.520693 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0281 +20 +-0.520693 +11 +4.02814 +21 +-0.521079 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02814 +20 +-0.521079 +11 +4.02813 +21 +-0.521175 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02813 +20 +-0.521175 +11 +4.02813 +21 +-1.22777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02813 +20 +-1.22777 +11 +4.47579 +21 +-1.22777 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47579 +20 +-1.22777 +11 +4.47579 +21 +-0.531592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47579 +20 +-0.531592 +11 +4.47579 +21 +-0.531592 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47579 +20 +-0.531592 +11 +4.47579 +21 +-0.521176 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47579 +20 +-0.521176 +11 +4.47578 +21 +-0.521079 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47578 +20 +-0.521079 +11 +4.47582 +21 +-0.520693 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47582 +20 +-0.520693 +11 +4.47594 +21 +-0.520322 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47594 +20 +-0.520322 +11 +4.47612 +21 +-0.51998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47612 +20 +-0.51998 +11 +4.47636 +21 +-0.51968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47636 +20 +-0.51968 +11 +4.47666 +21 +-0.519434 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47666 +20 +-0.519434 +11 +4.47701 +21 +-0.519252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47701 +20 +-0.519252 +11 +4.47738 +21 +-0.519139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47738 +20 +-0.519139 +11 +4.47767 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47767 +20 +-0.519111 +11 +4.47776 +21 +-0.519101 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47776 +20 +-0.519101 +11 +4.47786 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47786 +20 +-0.519111 +11 +4.4985 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.4985 +20 +-0.519111 +11 +4.4986 +21 +-0.519101 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.4986 +20 +-0.519101 +11 +4.49869 +21 +-0.519111 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49869 +20 +-0.519111 +11 +4.49898 +21 +-0.519139 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49898 +20 +-0.519139 +11 +4.49935 +21 +-0.519252 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49935 +20 +-0.519252 +11 +4.4997 +21 +-0.519434 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.4997 +20 +-0.519434 +11 +4.49999 +21 +-0.51968 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49999 +20 +-0.51968 +11 +4.50024 +21 +-0.51998 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50024 +20 +-0.51998 +11 +4.50042 +21 +-0.520322 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50042 +20 +-0.520322 +11 +4.50054 +21 +-0.520693 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50054 +20 +-0.520693 +11 +4.50057 +21 +-0.521079 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50057 +20 +-0.521079 +11 +4.50056 +21 +-0.521175 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50056 +20 +-0.521175 +11 +4.50056 +21 +-1.25048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.50056 +20 +-1.25048 +11 +4.50057 +21 +-1.25057 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47974 +20 +-1.22974 +11 +4.4797 +21 +-1.23012 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.4797 +20 +-1.23012 +11 +4.47959 +21 +-1.2305 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47959 +20 +-1.2305 +11 +4.47941 +21 +-1.23084 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47941 +20 +-1.23084 +11 +4.47916 +21 +-1.23114 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47916 +20 +-1.23114 +11 +4.47886 +21 +-1.23138 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47886 +20 +-1.23138 +11 +4.47852 +21 +-1.23157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47852 +20 +-1.23157 +11 +4.47815 +21 +-1.23168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47815 +20 +-1.23168 +11 +4.47786 +21 +-1.23171 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47786 +20 +-1.23171 +11 +4.47776 +21 +-1.23172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47776 +20 +-1.23172 +11 +4.47767 +21 +-1.23171 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47767 +20 +-1.23171 +11 +4.02626 +21 +-1.23171 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02626 +20 +-1.23171 +11 +4.02616 +21 +-1.23172 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02616 +20 +-1.23172 +11 +4.02607 +21 +-1.23171 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02607 +20 +-1.23171 +11 +4.02578 +21 +-1.23168 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02578 +20 +-1.23168 +11 +4.02541 +21 +-1.23157 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02541 +20 +-1.23157 +11 +4.02506 +21 +-1.23138 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02506 +20 +-1.23138 +11 +4.02477 +21 +-1.23114 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02477 +20 +-1.23114 +11 +4.02452 +21 +-1.23084 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02452 +20 +-1.23084 +11 +4.02434 +21 +-1.2305 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02434 +20 +-1.2305 +11 +4.02422 +21 +-1.23012 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02422 +20 +-1.23012 +11 +4.02419 +21 +-1.22974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.02419 +20 +-1.22974 +11 +4.0242 +21 +-1.22964 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0242 +20 +-1.22964 +11 +4.0242 +21 +-0.531399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0242 +20 +-0.531399 +11 +4.0242 +21 +-0.531399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0242 +20 +-0.531399 +11 +4.0242 +21 +-0.523048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0242 +20 +-0.523048 +11 +4.0073 +21 +-0.523048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0073 +20 +-0.523048 +11 +4.0073 +21 +-1.2486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.0073 +20 +-1.2486 +11 +4.49663 +21 +-1.2486 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-1.2486 +11 +4.49663 +21 +-1.24006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-1.24006 +11 +4.49663 +21 +-1.24006 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-1.24006 +11 +4.49663 +21 +-1.22964 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-1.22964 +11 +4.49663 +21 +-1.22964 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-1.22964 +11 +4.49663 +21 +-0.531399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-0.531399 +11 +4.49663 +21 +-0.531399 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-0.531399 +11 +4.49663 +21 +-0.523048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.49663 +20 +-0.523048 +11 +4.47973 +21 +-0.523048 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47973 +20 +-0.523048 +11 +4.47973 +21 +-1.22964 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.47973 +20 +-1.22964 +11 +4.47974 +21 +-1.22974 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18562 +20 +-1.0506 +11 +4.34103 +21 +-1.0506 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34103 +20 +-1.0506 +11 +4.34113 +21 +-1.05059 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34113 +20 +-1.05059 +11 +4.34122 +21 +-1.0506 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34122 +20 +-1.0506 +11 +4.34151 +21 +-1.05063 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34151 +20 +-1.05063 +11 +4.34188 +21 +-1.05075 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34188 +20 +-1.05075 +11 +4.34222 +21 +-1.05093 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34222 +20 +-1.05093 +11 +4.34252 +21 +-1.05117 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34252 +20 +-1.05117 +11 +4.34277 +21 +-1.05147 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34277 +20 +-1.05147 +11 +4.34295 +21 +-1.05182 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34295 +20 +-1.05182 +11 +4.34307 +21 +-1.05219 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34307 +20 +-1.05219 +11 +4.3431 +21 +-1.05257 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.3431 +20 +-1.05257 +11 +4.34309 +21 +-1.05267 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34309 +20 +-1.05267 +11 +4.34309 +21 +-1.07331 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34309 +20 +-1.07331 +11 +4.3431 +21 +-1.07341 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.3431 +20 +-1.07341 +11 +4.34309 +21 +-1.0735 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34309 +20 +-1.0735 +11 +4.34309 +21 +-1.0735 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34309 +20 +-1.0735 +11 +4.34307 +21 +-1.07379 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34307 +20 +-1.07379 +11 +4.34295 +21 +-1.07416 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34295 +20 +-1.07416 +11 +4.34277 +21 +-1.07451 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34277 +20 +-1.07451 +11 +4.34252 +21 +-1.0748 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34252 +20 +-1.0748 +11 +4.34222 +21 +-1.07505 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34222 +20 +-1.07505 +11 +4.34188 +21 +-1.07523 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34188 +20 +-1.07523 +11 +4.34151 +21 +-1.07535 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34151 +20 +-1.07535 +11 +4.34113 +21 +-1.07538 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34113 +20 +-1.07538 +11 +4.34103 +21 +-1.07537 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34103 +20 +-1.07537 +11 +4.16292 +21 +-1.07537 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16292 +20 +-1.07537 +11 +4.16282 +21 +-1.07538 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16282 +20 +-1.07538 +11 +4.16244 +21 +-1.07535 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16244 +20 +-1.07535 +11 +4.16206 +21 +-1.07523 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16206 +20 +-1.07523 +11 +4.16172 +21 +-1.07505 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16172 +20 +-1.07505 +11 +4.16142 +21 +-1.0748 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16142 +20 +-1.0748 +11 +4.16118 +21 +-1.07451 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16118 +20 +-1.07451 +11 +4.16099 +21 +-1.07416 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16099 +20 +-1.07416 +11 +4.16088 +21 +-1.07379 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16088 +20 +-1.07379 +11 +4.16084 +21 +-1.07341 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16084 +20 +-1.07341 +11 +4.16085 +21 +-1.07331 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-1.07331 +11 +4.16085 +21 +-1.06309 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-1.06309 +11 +4.16085 +21 +-1.06309 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-1.06309 +11 +4.16085 +21 +-1.05267 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-1.05267 +11 +4.16085 +21 +-1.05267 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-1.05267 +11 +4.16085 +21 +-0.708757 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-0.708757 +11 +4.16085 +21 +-0.708757 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-0.708757 +11 +4.16085 +21 +-0.69834 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16085 +20 +-0.69834 +11 +4.16084 +21 +-0.698244 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16084 +20 +-0.698244 +11 +4.16088 +21 +-0.697858 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16088 +20 +-0.697858 +11 +4.16099 +21 +-0.697487 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16099 +20 +-0.697487 +11 +4.16118 +21 +-0.697145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16118 +20 +-0.697145 +11 +4.16142 +21 +-0.696845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16142 +20 +-0.696845 +11 +4.16172 +21 +-0.696599 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16172 +20 +-0.696599 +11 +4.16206 +21 +-0.696416 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16206 +20 +-0.696416 +11 +4.16244 +21 +-0.696304 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16244 +20 +-0.696304 +11 +4.16273 +21 +-0.696275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16273 +20 +-0.696275 +11 +4.16282 +21 +-0.696266 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16282 +20 +-0.696266 +11 +4.16292 +21 +-0.696275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16292 +20 +-0.696275 +11 +4.34103 +21 +-0.696275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34103 +20 +-0.696275 +11 +4.34113 +21 +-0.696266 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34113 +20 +-0.696266 +11 +4.34122 +21 +-0.696275 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34122 +20 +-0.696275 +11 +4.34151 +21 +-0.696304 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34151 +20 +-0.696304 +11 +4.34188 +21 +-0.696416 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34188 +20 +-0.696416 +11 +4.34222 +21 +-0.696599 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34222 +20 +-0.696599 +11 +4.34252 +21 +-0.696845 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34252 +20 +-0.696845 +11 +4.34277 +21 +-0.697145 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34277 +20 +-0.697145 +11 +4.34295 +21 +-0.697487 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34295 +20 +-0.697487 +11 +4.34307 +21 +-0.697858 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34307 +20 +-0.697858 +11 +4.3431 +21 +-0.698244 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.3431 +20 +-0.698244 +11 +4.34309 +21 +-0.69834 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34309 +20 +-0.69834 +11 +4.34309 +21 +-0.718981 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34309 +20 +-0.718981 +11 +4.3431 +21 +-0.719077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.3431 +20 +-0.719077 +11 +4.34309 +21 +-0.719173 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34309 +20 +-0.719173 +11 +4.34307 +21 +-0.719463 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34307 +20 +-0.719463 +11 +4.34295 +21 +-0.719834 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34295 +20 +-0.719834 +11 +4.34277 +21 +-0.720176 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34277 +20 +-0.720176 +11 +4.34252 +21 +-0.720476 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34252 +20 +-0.720476 +11 +4.34222 +21 +-0.720722 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34222 +20 +-0.720722 +11 +4.34188 +21 +-0.720904 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34188 +20 +-0.720904 +11 +4.34151 +21 +-0.721017 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34151 +20 +-0.721017 +11 +4.34113 +21 +-0.721055 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34113 +20 +-0.721055 +11 +4.34103 +21 +-0.721045 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.34103 +20 +-0.721045 +11 +4.18562 +21 +-0.721045 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18562 +20 +-0.721045 +11 +4.18562 +21 +-1.0506 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.33916 +20 +-1.07144 +11 +4.33916 +21 +-1.05454 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.33916 +20 +-1.05454 +11 +4.18375 +21 +-1.05454 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18375 +20 +-1.05454 +11 +4.18365 +21 +-1.05455 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18365 +20 +-1.05455 +11 +4.18356 +21 +-1.05454 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18356 +20 +-1.05454 +11 +4.18327 +21 +-1.05451 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18327 +20 +-1.05451 +11 +4.1829 +21 +-1.0544 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.1829 +20 +-1.0544 +11 +4.18256 +21 +-1.05422 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18256 +20 +-1.05422 +11 +4.18226 +21 +-1.05397 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18226 +20 +-1.05397 +11 +4.18201 +21 +-1.05367 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18201 +20 +-1.05367 +11 +4.18183 +21 +-1.05333 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18183 +20 +-1.05333 +11 +4.18171 +21 +-1.05296 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18171 +20 +-1.05296 +11 +4.18168 +21 +-1.05257 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18168 +20 +-1.05257 +11 +4.18169 +21 +-1.05248 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18169 +20 +-1.05248 +11 +4.18169 +21 +-0.719173 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18169 +20 +-0.719173 +11 +4.18168 +21 +-0.719077 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18168 +20 +-0.719077 +11 +4.18171 +21 +-0.718691 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18171 +20 +-0.718691 +11 +4.18183 +21 +-0.71832 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18183 +20 +-0.71832 +11 +4.18201 +21 +-0.717978 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18201 +20 +-0.717978 +11 +4.18226 +21 +-0.717678 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18226 +20 +-0.717678 +11 +4.18256 +21 +-0.717432 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18256 +20 +-0.717432 +11 +4.1829 +21 +-0.717249 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.1829 +20 +-0.717249 +11 +4.18327 +21 +-0.717137 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18327 +20 +-0.717137 +11 +4.18356 +21 +-0.717108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18356 +20 +-0.717108 +11 +4.18365 +21 +-0.717099 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18365 +20 +-0.717099 +11 +4.18375 +21 +-0.717108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.18375 +20 +-0.717108 +11 +4.33916 +21 +-0.717108 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.33916 +20 +-0.717108 +11 +4.33916 +21 +-0.700212 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.33916 +20 +-0.700212 +11 +4.16479 +21 +-0.700212 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16479 +20 +-0.700212 +11 +4.16479 +21 +-1.07144 +0 +LINE +8 +BLACK +6 +CONTINUOUS +10 +4.16479 +20 +-1.07144 +11 +4.33916 +21 +-1.07144 + 0 +ENDSEC + 0 +EOF diff --git a/kicad_board.dsn b/kicad_board.dsn new file mode 100644 index 0000000..bf4e54d --- /dev/null +++ b/kicad_board.dsn @@ -0,0 +1,1208 @@ + +(PCB "kicad_board" + (parser + (string_quote ") + (space_in_quoted_tokens on) + (host_cad "KiCad's Pcbnew") + (host_version "5.1.3-ffb9f22~84~ubuntu18.04.1") + (generated_by_freeroute) + ) + (resolution um 10) + (structure + (boundary + (rect pcb 164.6 -249435.0 169835.0 -164.6) + ) + (boundary + (polygon signal 0 + 96264.4 -249335.0 + 169735.0 -249335.0 + 169735.0 -211865.0 + 150736.0 -211865.0 + 150736.0 -211335.0 + 160735.0 -211335.0 + 160735.0 -151865.0 + 150736.0 -151865.0 + 150736.0 -151336.0 + 160735.0 -151336.0 + 160735.0 -113864.0 + 137735.0 -113864.0 + 137735.0 -113335.0 + 165736.0 -113335.0 + 165736.0 -31864.8 + 137735.0 -31864.8 + 137735.0 -264.6 + 78264.5 -264.6 + 78264.5 -31864.8 + 264.6 -31864.8 + 264.6 -113335.0 + 119265.0 -113335.0 + 119265.0 -113864.0 + 87264.4 -113864.0 + 87264.4 -151336.0 + 138264.0 -151336.0 + 138264.0 -151865.0 + 37264.4 -151865.0 + 37264.4 -211335.0 + 138264.0 -211335.0 + 138264.0 -211865.0 + 96264.4 -211865.0 + ) + ) + (snap_angle + fortyfive_degree + ) + (via "Via[0-1]_800:400_um") + (control + (via_at_smd off) + ) + (rule + (width 1000.0) + (clear 200.2) + (clear 125.0 (type smd_to_turn_gap)) + (clear 50.0 (type smd_smd)) + ) + (layer F.Cu + (type signal) + ) + (layer B.Cu + (type signal) + ) + (autoroute_settings + (fanout off) + (autoroute on) + (postroute on) + (vias on) + (via_costs 50) + (plane_via_costs 5) + (start_ripup_costs 100) + (start_pass_no 4) + (layer_rule F.Cu + (active on) + (preferred_direction vertical) + (preferred_direction_trace_costs 1.0) + (against_preferred_direction_trace_costs 2.5) + ) + (layer_rule B.Cu + (active on) + (preferred_direction horizontal) + (preferred_direction_trace_costs 1.0) + (against_preferred_direction_trace_costs 1.7) + ) + ) + (keepout + (polygon B.Cu 0 + 101735.0 -31764.5 + 114264.0 -31764.5 + 114264.0 -13235.4 + 113735.0 -13235.4 + 113735.0 -31235.4 + 102265.0 -31235.4 + 102265.0 -13235.4 + 101735.0 -13235.4 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 101735.0 -31764.5 + 114264.0 -31764.5 + 114264.0 -13235.4 + 113735.0 -13235.4 + 113735.0 -31235.4 + 102265.0 -31235.4 + 102265.0 -13235.4 + 101735.0 -13235.4 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 31485.4 -45614.8 + 32514.8 -45614.8 + 32514.8 -35585.5 + 31485.4 -35585.5 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 31485.4 -45614.8 + 32514.8 -45614.8 + 32514.8 -35585.5 + 31485.4 -35585.5 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 150265.0 -50835.2 + 153735.0 -50835.2 + 153735.0 -42364.4 + 150265.0 -42364.4 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 150265.0 -50835.2 + 153735.0 -50835.2 + 153735.0 -42364.4 + 150265.0 -42364.4 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 6985.6 -61932.7 + 8014.5 -61932.7 + 8014.5 -45994.6 + 6985.6 -45994.6 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 6985.6 -61932.7 + 8014.5 -61932.7 + 8014.5 -45994.6 + 6985.6 -45994.6 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 163500.0 -66792.3 + 163610.0 -66682.8 + 163765.0 -66682.8 + 163765.0 -66527.8 + 163874.0 -66418.2 + 163765.0 -66308.7 + 163765.0 -61153.4 + 163236.0 -61153.4 + 163236.0 -65779.5 + 158764.0 -61308.4 + 158764.0 -46618.9 + 163236.0 -42147.9 + 163236.0 -46773.9 + 163765.0 -46773.9 + 163765.0 -41618.7 + 163874.0 -41509.1 + 163765.0 -41399.6 + 163765.0 -41244.6 + 163610.0 -41244.6 + 163500.0 -41135.0 + 163391.0 -41244.6 + 163236.0 -41244.6 + 163236.0 -41399.6 + 158390.0 -46244.8 + 158235.0 -46244.8 + 158235.0 -46399.3 + 158126.0 -46509.3 + 158235.0 -46618.9 + 158235.0 -61308.4 + 158126.0 -61418.0 + 158235.0 -61527.6 + 158235.0 -61682.6 + 158390.0 -61682.6 + 163236.0 -66527.8 + 163236.0 -66682.8 + 163391.0 -66682.8 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 163500.0 -66792.3 + 163610.0 -66682.8 + 163765.0 -66682.8 + 163765.0 -66527.8 + 163874.0 -66418.2 + 163765.0 -66308.7 + 163765.0 -61153.4 + 163236.0 -61153.4 + 163236.0 -65779.5 + 158764.0 -61308.4 + 158764.0 -46618.9 + 163236.0 -42147.9 + 163236.0 -46773.9 + 163765.0 -46773.9 + 163765.0 -41618.7 + 163874.0 -41509.1 + 163765.0 -41399.6 + 163765.0 -41244.6 + 163610.0 -41244.6 + 163500.0 -41135.0 + 163391.0 -41244.6 + 163236.0 -41244.6 + 163236.0 -41399.6 + 158390.0 -46244.8 + 158235.0 -46244.8 + 158235.0 -46399.3 + 158126.0 -46509.3 + 158235.0 -46618.9 + 158235.0 -61308.4 + 158126.0 -61418.0 + 158235.0 -61527.6 + 158235.0 -61682.6 + 158390.0 -61682.6 + 163236.0 -66527.8 + 163236.0 -66682.8 + 163391.0 -66682.8 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 81014.7 -74585.7 + 107485.0 -74585.7 + 107485.0 -67114.8 + 81014.7 -67114.8 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 81014.7 -74585.7 + 107485.0 -74585.7 + 107485.0 -67114.8 + 81014.7 -67114.8 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 6985.6 -99205.4 + 8014.5 -99205.4 + 8014.5 -83267.3 + 6985.6 -83267.3 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 6985.6 -99205.4 + 8014.5 -99205.4 + 8014.5 -83267.3 + 6985.6 -83267.3 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 163500.0 -104065.0 + 163610.0 -103955.0 + 163765.0 -103955.0 + 163765.0 -103800.0 + 163874.0 -103691.0 + 163765.0 -103581.0 + 163765.0 -98426.1 + 163236.0 -98426.1 + 163236.0 -103052.0 + 158764.0 -98581.1 + 158764.0 -83891.6 + 163236.0 -79420.5 + 163236.0 -84046.6 + 163765.0 -84046.6 + 163765.0 -78891.3 + 163874.0 -78781.8 + 163765.0 -78672.2 + 163765.0 -78517.2 + 163610.0 -78517.2 + 163500.0 -78407.7 + 163391.0 -78517.2 + 163236.0 -78517.2 + 163236.0 -78672.2 + 158390.0 -83517.4 + 158235.0 -83517.4 + 158235.0 -83672.5 + 158126.0 -83782.0 + 158235.0 -83891.6 + 158235.0 -98581.1 + 158126.0 -98690.7 + 158235.0 -98800.7 + 158235.0 -98955.2 + 158390.0 -98955.2 + 163236.0 -103800.0 + 163236.0 -103955.0 + 163391.0 -103955.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 163500.0 -104065.0 + 163610.0 -103955.0 + 163765.0 -103955.0 + 163765.0 -103800.0 + 163874.0 -103691.0 + 163765.0 -103581.0 + 163765.0 -98426.1 + 163236.0 -98426.1 + 163236.0 -103052.0 + 158764.0 -98581.1 + 158764.0 -83891.6 + 163236.0 -79420.5 + 163236.0 -84046.6 + 163765.0 -84046.6 + 163765.0 -78891.3 + 163874.0 -78781.8 + 163765.0 -78672.2 + 163765.0 -78517.2 + 163610.0 -78517.2 + 163500.0 -78407.7 + 163391.0 -78517.2 + 163236.0 -78517.2 + 163236.0 -78672.2 + 158390.0 -83517.4 + 158235.0 -83517.4 + 158235.0 -83672.5 + 158126.0 -83782.0 + 158235.0 -83891.6 + 158235.0 -98581.1 + 158126.0 -98690.7 + 158235.0 -98800.7 + 158235.0 -98955.2 + 158390.0 -98955.2 + 163236.0 -103800.0 + 163236.0 -103955.0 + 163391.0 -103955.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 138725.0 -108336.0 + 150275.0 -108336.0 + 150275.0 -85864.6 + 138725.0 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 138725.0 -108336.0 + 150275.0 -108336.0 + 150275.0 -85864.6 + 138725.0 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 65725.7 -108336.0 + 77274.4 -108336.0 + 77274.4 -85864.6 + 65725.7 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 65725.7 -108336.0 + 77274.4 -108336.0 + 77274.4 -85864.6 + 65725.7 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 93985.5 -139448.0 + 95014.4 -139448.0 + 95014.4 -125752.0 + 93985.5 -125752.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 93985.5 -139448.0 + 95014.4 -139448.0 + 95014.4 -125752.0 + 93985.5 -125752.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 138725.0 -141336.0 + 150275.0 -141336.0 + 150275.0 -118865.0 + 138725.0 -118865.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 138725.0 -141336.0 + 150275.0 -141336.0 + 150275.0 -118865.0 + 138725.0 -118865.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 158500.0 -144308.0 + 158609.0 -144198.0 + 158764.0 -144198.0 + 158764.0 -144043.0 + 158874.0 -143933.0 + 158764.0 -143824.0 + 158764.0 -138669.0 + 158235.0 -138669.0 + 158235.0 -143295.0 + 153765.0 -138824.0 + 153765.0 -126376.0 + 158235.0 -121905.0 + 158235.0 -126531.0 + 158764.0 -126531.0 + 158764.0 -121376.0 + 158874.0 -121267.0 + 158764.0 -121157.0 + 158764.0 -121002.0 + 158609.0 -121002.0 + 158500.0 -120892.0 + 158390.0 -121002.0 + 158235.0 -121002.0 + 158235.0 -121157.0 + 153391.0 -126002.0 + 153236.0 -126002.0 + 153236.0 -126157.0 + 153126.0 -126267.0 + 153236.0 -126376.0 + 153236.0 -138824.0 + 153126.0 -138933.0 + 153236.0 -139043.0 + 153236.0 -139198.0 + 153391.0 -139198.0 + 158235.0 -144043.0 + 158235.0 -144198.0 + 158390.0 -144198.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 158500.0 -144308.0 + 158609.0 -144198.0 + 158764.0 -144198.0 + 158764.0 -144043.0 + 158874.0 -143933.0 + 158764.0 -143824.0 + 158764.0 -138669.0 + 158235.0 -138669.0 + 158235.0 -143295.0 + 153765.0 -138824.0 + 153765.0 -126376.0 + 158235.0 -121905.0 + 158235.0 -126531.0 + 158764.0 -126531.0 + 158764.0 -121376.0 + 158874.0 -121267.0 + 158764.0 -121157.0 + 158764.0 -121002.0 + 158609.0 -121002.0 + 158500.0 -120892.0 + 158390.0 -121002.0 + 158235.0 -121002.0 + 158235.0 -121157.0 + 153391.0 -126002.0 + 153236.0 -126002.0 + 153236.0 -126157.0 + 153126.0 -126267.0 + 153236.0 -126376.0 + 153236.0 -138824.0 + 153126.0 -138933.0 + 153236.0 -139043.0 + 153236.0 -139198.0 + 153391.0 -139198.0 + 158235.0 -144043.0 + 158235.0 -144198.0 + 158390.0 -144198.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 43985.4 -192114.0 + 45014.8 -192114.0 + 45014.8 -171085.0 + 43985.4 -171085.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 43985.4 -192114.0 + 45014.8 -192114.0 + 45014.8 -171085.0 + 43985.4 -171085.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 158500.0 -196974.0 + 158609.0 -196865.0 + 158764.0 -196865.0 + 158764.0 -196709.0 + 158874.0 -196600.0 + 158764.0 -196490.0 + 158764.0 -191336.0 + 158235.0 -191336.0 + 158235.0 -195961.0 + 153765.0 -191490.0 + 153765.0 -171709.0 + 158235.0 -167239.0 + 158235.0 -171864.0 + 158764.0 -171864.0 + 158764.0 -165961.0 + 153391.0 -171335.0 + 153236.0 -171335.0 + 153236.0 -171490.0 + 153126.0 -171600.0 + 153236.0 -171709.0 + 153236.0 -191710.0 + 158235.0 -196709.0 + 158235.0 -196865.0 + 158390.0 -196865.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 158500.0 -196974.0 + 158609.0 -196865.0 + 158764.0 -196865.0 + 158764.0 -196709.0 + 158874.0 -196600.0 + 158764.0 -196490.0 + 158764.0 -191336.0 + 158235.0 -191336.0 + 158235.0 -195961.0 + 153765.0 -191490.0 + 153765.0 -171709.0 + 158235.0 -167239.0 + 158235.0 -171864.0 + 158764.0 -171864.0 + 158764.0 -165961.0 + 153391.0 -171335.0 + 153236.0 -171335.0 + 153236.0 -171490.0 + 153126.0 -171600.0 + 153236.0 -171709.0 + 153236.0 -191710.0 + 158235.0 -196709.0 + 158235.0 -196865.0 + 158390.0 -196865.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 129515.0 -208585.0 + 136985.0 -208585.0 + 136985.0 -182115.0 + 129515.0 -182115.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 129515.0 -208585.0 + 136985.0 -208585.0 + 136985.0 -182115.0 + 129515.0 -182115.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 161985.0 -237448.0 + 163014.0 -237448.0 + 163014.0 -223752.0 + 161985.0 -223752.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 161985.0 -237448.0 + 163014.0 -237448.0 + 163014.0 -223752.0 + 161985.0 -223752.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 98235.3 -242572.0 + 103610.0 -237198.0 + 103765.0 -237198.0 + 103765.0 -237043.0 + 103874.0 -236933.0 + 103765.0 -236824.0 + 103765.0 -224376.0 + 103874.0 -224266.0 + 103765.0 -224157.0 + 103765.0 -224002.0 + 103610.0 -224002.0 + 98235.3 -218628.0 + 98235.3 -224531.0 + 98764.5 -224531.0 + 98764.5 -219905.0 + 103236.0 -224376.0 + 103236.0 -236824.0 + 98764.5 -241294.0 + 98764.5 -236669.0 + 98235.3 -236669.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 98235.3 -242572.0 + 103610.0 -237198.0 + 103765.0 -237198.0 + 103765.0 -237043.0 + 103874.0 -236933.0 + 103765.0 -236824.0 + 103765.0 -224376.0 + 103874.0 -224266.0 + 103765.0 -224157.0 + 103765.0 -224002.0 + 103610.0 -224002.0 + 98235.3 -218628.0 + 98235.3 -224531.0 + 98764.5 -224531.0 + 98764.5 -219905.0 + 103236.0 -224376.0 + 103236.0 -236824.0 + 98764.5 -241294.0 + 98764.5 -236669.0 + 98235.3 -236669.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 138725.0 -244336.0 + 150275.0 -244336.0 + 150275.0 -221865.0 + 138725.0 -221865.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 138725.0 -244336.0 + 150275.0 -244336.0 + 150275.0 -221865.0 + 138725.0 -221865.0 + ) + (clearance_class default) + ) + ) + (placement + (component U1 + (place + U1 103000.0 -48000.0 front 90 + (pin 1 (clearance_class default)) + (pin 2 (clearance_class default)) + (pin 3 (clearance_class default)) + (pin 4 (clearance_class default)) + (pin 5 (clearance_class default)) + (pin 6 (clearance_class default)) + (pin 7 (clearance_class default)) + (pin 8 (clearance_class default)) + (pin 9 (clearance_class default)) + (pin 10 (clearance_class default)) + (pin 11 (clearance_class default)) + (pin 12 (clearance_class default)) + (pin 13 (clearance_class default)) + (pin 14 (clearance_class default)) + (pin 15 (clearance_class default)) + (pin 16 (clearance_class default)) + (pin 17 (clearance_class default)) + (pin 18 (clearance_class default)) + (pin 19 (clearance_class default)) + (pin 20 (clearance_class default)) + (pin 21 (clearance_class default)) + (pin 22 (clearance_class default)) + (pin 23 (clearance_class default)) + (pin 24 (clearance_class default)) + (pin 25 (clearance_class default)) + (pin 26 (clearance_class default)) + (pin 27 (clearance_class default)) + (pin 28 (clearance_class default)) + (pin 29 (clearance_class default)) + (pin 30 (clearance_class default)) + ) + ) + (component J1 + (place + J1 100000.0 -87000.0 front 270 + (pin 1 (clearance_class default)) + (pin 2 (clearance_class default)) + (pin 3 (clearance_class default)) + (pin 4 (clearance_class default)) + (pin 5 (clearance_class default)) + (pin 6 (clearance_class default)) + (pin 7 (clearance_class default)) + (pin 8 (clearance_class default)) + (pin 9 (clearance_class default)) + (pin 10 (clearance_class default)) + ) + ) + ) + (library + (image U1 + (side front) + (pin "Round[A]Pad_1524_um" 1 -12065.0 19050.0) + (pin "Round[A]Pad_1524_um" 2 -12065.0 16510.0) + (pin "Round[A]Pad_1524_um" 3 -12065.0 13970.0) + (pin "Round[A]Pad_1524_um" 4 -12065.0 11430.0) + (pin "Round[A]Pad_1524_um" 5 -12065.0 8890.0) + (pin "Round[A]Pad_1524_um" 6 -12065.0 6350.0) + (pin "Round[A]Pad_1524_um" 7 -12065.0 3810.0) + (pin "Round[A]Pad_1524_um" 8 -12065.0 1270.0) + (pin "Round[A]Pad_1524_um" 9 -12065.0 -1270.0) + (pin "Round[A]Pad_1524_um" 10 -12065.0 -3810.0) + (pin "Round[A]Pad_1524_um" 11 -12065.0 -6350.0) + (pin "Round[A]Pad_1524_um" 12 -12065.0 -8890.0) + (pin "Round[A]Pad_1524_um" 13 -12065.0 -11430.0) + (pin "Round[A]Pad_1524_um" 14 -12065.0 -13970.0) + (pin "Round[A]Pad_1524_um" 15 -12065.0 -16510.0) + (pin "Round[A]Pad_1524_um" 16 11430.0 -16510.0) + (pin "Round[A]Pad_1524_um" 17 11430.0 -13970.0) + (pin "Round[A]Pad_1524_um" 18 11430.0 -11430.0) + (pin "Round[A]Pad_1524_um" 19 11430.0 -8890.0) + (pin "Round[A]Pad_1524_um" 20 11430.0 -6350.0) + (pin "Round[A]Pad_1524_um" 21 11430.0 -3810.0) + (pin "Round[A]Pad_1524_um" 22 11430.0 -1270.0) + (pin "Round[A]Pad_1524_um" 23 11430.0 1270.0) + (pin "Round[A]Pad_1524_um" 24 11430.0 3810.0) + (pin "Round[A]Pad_1524_um" 25 11430.0 6350.0) + (pin "Round[A]Pad_1524_um" 26 11430.0 8890.0) + (pin "Round[A]Pad_1524_um" 27 11430.0 11430.0) + (pin "Round[A]Pad_1524_um" 28 11430.0 13970.0) + (pin "Round[A]Pad_1524_um" 29 11430.0 16510.0) + (pin "Round[A]Pad_1524_um" 30 11430.0 19050.0) + (outline + (polygon signal 0 + 3778.9 -22935.0 + 11461.1 -22935.0 + 11505.0 -22891.1 + 11505.0 -22828.9 + 11461.1 -22785.0 + 3778.9 -22785.0 + 3735.0 -22828.9 + 3735.0 -22891.1 + ) + ) + (outline + (polygon signal 0 + -5531.1 18195.0 + 5531.1 18195.0 + 5575.0 18238.9 + 5575.0 18301.1 + 5531.1 18345.0 + -5531.1 18345.0 + -5575.0 18301.1 + -5575.0 18238.9 + ) + ) + (outline + (polygon signal 0 + 5468.9 18195.0 + 5531.1 18195.0 + 5575.0 18238.9 + 5575.0 25431.1 + 5531.1 25475.0 + 5468.9 25475.0 + 5425.0 25431.1 + 5425.0 18238.9 + ) + ) + (outline + (polygon signal 0 + -5531.1 18195.0 + -5468.9 18195.0 + -5425.0 18238.9 + -5425.0 25431.1 + -5468.9 25475.0 + -5531.1 25475.0 + -5575.0 25431.1 + -5575.0 18238.9 + ) + ) + (outline + (polygon signal 0 + -3831.1 -23935.0 + -3768.9 -23935.0 + -3725.0 -23891.1 + -3725.0 -18098.9 + -3768.9 -18055.0 + -3831.1 -18055.0 + -3875.0 -18098.9 + -3875.0 -23891.1 + ) + ) + (outline + (polygon signal 0 + -3831.1 -18205.0 + 3831.1 -18205.0 + 3875.0 -18161.1 + 3875.0 -18098.9 + 3831.1 -18055.0 + -3831.1 -18055.0 + -3875.0 -18098.9 + -3875.0 -18161.1 + ) + ) + (outline + (polygon signal 0 + 3768.9 -23935.0 + 3831.1 -23935.0 + 3875.0 -23891.1 + 3875.0 -18098.9 + 3831.1 -18055.0 + 3768.9 -18055.0 + 3725.0 -18098.9 + 3725.0 -23891.1 + ) + ) + (outline + (polygon signal 0 + -3831.1 -23935.0 + 3831.1 -23935.0 + 3875.0 -23891.1 + 3875.0 -23828.9 + 3831.1 -23785.0 + -3831.1 -23785.0 + -3875.0 -23828.9 + -3875.0 -23891.1 + ) + ) + (outline + (polygon signal 0 + 12668.9 -21665.0 + 12731.1 -21665.0 + 12775.0 -21621.1 + 12775.0 24161.1 + 12731.1 24205.0 + 12668.9 24205.0 + 12625.0 24161.1 + 12625.0 -21621.1 + ) + ) + (outline + (polygon signal 0 + -13366.1 -21665.0 + -13303.9 -21665.0 + -13260.0 -21621.1 + -13260.0 24161.1 + -13303.9 24205.0 + -13366.1 24205.0 + -13410.0 24161.1 + -13410.0 -21621.1 + ) + ) + (outline + (polygon signal 0 + -12096.1 -22935.0 + -3778.9 -22935.0 + -3735.0 -22891.1 + -3735.0 -22828.9 + -3778.9 -22785.0 + -12096.1 -22785.0 + -12140.0 -22828.9 + -12140.0 -22891.1 + ) + ) + (outline + (polygon signal 0 + -12731.1 25325.0 + 11461.1 25325.0 + 11505.0 25368.9 + 11505.0 25431.1 + 11461.1 25475.0 + -12731.1 25475.0 + -12775.0 25431.1 + -12775.0 25368.9 + ) + ) + (outline + (polygon signal 0 + 10291.530499999999 -22186.0 + 10302.527455919397 -22186.0 + 10843.97169166293 -22062.463585293 + 11325.947013782543 -21784.152986217458 + 11333.023404255318 -21777.07659574468 + 11706.60450939226 -21374.569111791534 + 11948.7281602337 -20871.76907233432 + 12031.1 -20325.30726817043 + 12031.1 -20314.69273182957 + 11948.7281602337 -19768.23092766568 + 11706.60450939226 -19265.430888208466 + 11333.023404255318 -18862.92340425532 + 11325.947013782543 -18855.847013782542 + 10843.97169166293 -18577.536414707 + 10302.527455919397 -18454.0 + 10291.530499999999 -18454.0 + 9743.298242366403 -18495.073778432932 + 9224.211525157132 -18698.833284525917 + 8793.049528301886 -19042.650471698114 + 8785.39658848614 -19050.303411513858 + 8473.459064925266 -19507.763513208072 + 8309.0 -20040.952724968312 + 8309.0 -20599.047275031688 + 8473.459064925266 -21132.236486791928 + 8785.39658848614 -21589.696588486142 + 8793.049528301886 -21597.349528301886 + 9224.211525157132 -21941.166715474083 + 9743.298242366403 -22144.926221567068 + ) + ) + (outline + (polygon signal 0 + -10663.469500000001 -22186.0 + -10652.472544080603 -22186.0 + -10111.02830833707 -22062.463585293 + -9629.052986217457 -21784.152986217458 + -9621.976595744682 -21777.07659574468 + -9248.39549060774 -21374.569111791534 + -9006.2718397663 -20871.76907233432 + -8923.9 -20325.30726817043 + -8923.9 -20314.69273182957 + -9006.2718397663 -19768.23092766568 + -9248.39549060774 -19265.430888208466 + -9621.976595744682 -18862.92340425532 + -9629.052986217457 -18855.847013782542 + -10111.02830833707 -18577.536414707 + -10652.472544080603 -18454.0 + -10663.469500000001 -18454.0 + -11211.701757633597 -18495.073778432932 + -11730.788474842868 -18698.833284525917 + -12161.950471698114 -19042.650471698114 + -12169.60341151386 -19050.303411513858 + -12481.540935074734 -19507.763513208072 + -12646.0 -20040.952724968312 + -12646.0 -20599.047275031688 + -12481.540935074734 -21132.236486791928 + -12169.60341151386 -21589.696588486142 + -12161.950471698114 -21597.349528301886 + -11730.788474842868 -21941.166715474083 + -11211.701757633597 -22144.926221567068 + ) + ) + (outline + (polygon signal 0 + -10663.469500000001 20994.0 + -10652.472544080603 20994.0 + -10111.02830833707 21117.536414707 + -9629.052986217457 21395.847013782542 + -9621.976595744682 21402.92340425532 + -9248.39549060774 21805.430888208466 + -9006.2718397663 22308.23092766568 + -8923.9 22854.69273182957 + -8923.9 22865.30726817043 + -9006.2718397663 23411.76907233432 + -9248.39549060774 23914.569111791534 + -9621.976595744682 24317.07659574468 + -9629.052986217457 24324.152986217458 + -10111.02830833707 24602.463585293 + -10652.472544080603 24726.0 + -10663.469500000001 24726.0 + -11211.701757633597 24684.926221567068 + -11730.788474842868 24481.166715474083 + -12161.950471698114 24137.349528301886 + -12169.60341151386 24129.696588486142 + -12481.540935074734 23672.236486791928 + -12646.0 23139.047275031688 + -12646.0 22580.952724968312 + -12481.540935074734 22047.763513208072 + -12169.60341151386 21590.303411513858 + -12161.950471698114 21582.650471698114 + -11730.788474842868 21238.833284525917 + -11211.701757633597 21035.073778432932 + ) + ) + (outline + (polygon signal 0 + 10291.530499999999 20994.0 + 10302.527455919397 20994.0 + 10843.97169166293 21117.536414707 + 11325.947013782543 21395.847013782542 + 11333.023404255318 21402.92340425532 + 11706.60450939226 21805.430888208466 + 11948.7281602337 22308.23092766568 + 12031.1 22854.69273182957 + 12031.1 22865.30726817043 + 11948.7281602337 23411.76907233432 + 11706.60450939226 23914.569111791534 + 11333.023404255318 24317.07659574468 + 11325.947013782543 24324.152986217458 + 10843.97169166293 24602.463585293 + 10302.527455919397 24726.0 + 10291.530499999999 24726.0 + 9743.298242366403 24684.926221567068 + 9224.211525157132 24481.166715474083 + 8793.049528301886 24137.349528301886 + 8785.39658848614 24129.696588486142 + 8473.459064925266 23672.236486791928 + 8309.0 23139.047275031688 + 8309.0 22580.952724968312 + 8473.459064925266 22047.763513208072 + 8785.39658848614 21590.303411513858 + 8793.049528301886 21582.650471698114 + 9224.211525157132 21238.833284525917 + 9743.298242366403 21035.073778432932 + ) + ) + ) + (image J1 + (side front) + (pin "Round[A]Pad_1524_um" 1 -6350.0 10160.0) + (pin "Round[A]Pad_1524_um" 2 -6350.0 7620.0) + (pin "Round[A]Pad_1524_um" 3 -6350.0 5080.0) + (pin "Round[A]Pad_1524_um" 4 -6350.0 2540.0) + (pin "Round[A]Pad_1524_um" 5 -6350.0 0.0) + (pin "Round[A]Pad_1524_um" 6 -6350.0 -2540.0) + (pin "Round[A]Pad_1524_um" 7 -6350.0 -5080.0) + (pin "Round[A]Pad_1524_um" 8 -6350.0 -7620.0) + (pin "Round[A]Pad_1524_um" 9 -6350.0 -10160.0) + (pin "Round[A]Pad_1524_um" 10 -6350.0 -12700.0) + (outline + (polygon signal 0 + -7644.9 11370.0 + 7564.9 11370.0 + 7600.0 11405.1 + 7600.0 11454.9 + 7564.9 11490.0 + -7644.9 11490.0 + -7680.0 11454.9 + -7680.0 11405.1 + ) + ) + (outline + (polygon signal 0 + 7595.1 -13630.0 + 7644.9 -13630.0 + 7680.0 -13594.9 + 7680.0 11454.9 + 7644.9 11490.0 + 7595.1 11490.0 + 7560.0 11454.9 + 7560.0 -13594.9 + ) + ) + (outline + (polygon signal 0 + -7644.9 -13630.0 + 7644.9 -13630.0 + 7680.0 -13594.9 + 7680.0 -13545.1 + 7644.9 -13510.0 + -7644.9 -13510.0 + -7680.0 -13545.1 + -7680.0 -13594.9 + ) + ) + (outline + (polygon signal 0 + -7644.9 -13630.0 + -7595.1 -13630.0 + -7560.0 -13594.9 + -7560.0 11454.9 + -7595.1 11490.0 + -7644.9 11490.0 + -7680.0 11454.9 + -7680.0 -13594.9 + ) + ) + ) + (padstack "Round[A]Pad_1524_um" + (shape + (circle F.Cu 1524.0 0.0 0.0) + ) + (shape + (circle B.Cu 1524.0 0.0 0.0) + ) + (attach off) + ) + (padstack "Via[0-1]_800:400_um" + (shape + (circle F.Cu 800.0 0.0 0.0) + ) + (shape + (circle B.Cu 800.0 0.0 0.0) + ) + (attach off) + ) + ) + (network + (net 3v3 1 + (pins + J1-1 + U1-3 + ) + ) + (net VIN 1 + (pins + U1-1 + ) + ) + (via + "Via[0-1]_800:400_um" "Via[0-1]_800:400_um" default + ) + (via + "Via[0-1]_800:400_um-kicad_default" "Via[0-1]_800:400_um" "kicad_default" + ) + (via_rule + default "Via[0-1]_800:400_um" + ) + (via_rule + "kicad_default" "Via[0-1]_800:400_um-kicad_default" + ) + (via_rule + default "Via[0-1]_800:400_um" + ) + (class default + 3v3 VIN + (clearance_class default) + (via_rule default) + (rule + (width 1000.0) + ) + (circuit + (use_layer F.Cu B.Cu) + ) + ) + (class "kicad_default" + (clearance_class "kicad_default") + (via_rule kicad_default) + (rule + (width 250.0) + ) + (circuit + (use_layer F.Cu B.Cu) + ) + ) + ) + (wiring + (wire + (polyline_path B.Cu 1000.0 + 110160.0 -80650.0 110159.9 -80650.0 + 110160.0 -80650.0 110160.0 -68737.2 + 110160.0 -68737.2 104063.6 -62640.8 + 104063.6 -62640.8 89030.0 -62640.8 + 89030.0 -60065.0 89029.9 -60064.9 + 89030.0 -60065.0 89030.1 -60065.0 + ) + (net 3v3 1) + (clearance_class default) + ) + ) +) \ No newline at end of file diff --git a/kicad_board.kicad_pcb b/kicad_board.kicad_pcb new file mode 100644 index 0000000..456c41e --- /dev/null +++ b/kicad_board.kicad_pcb @@ -0,0 +1,767 @@ + +(kicad_pcb + (version 1) + (host pykicad x.x.x) + (general + (nets 5)) + (page User 500.000000 300.000000) + (layers +( 0 F.Cu signal) +( 1 B.Cu signal) +( 32 Edge.Cuts user) +( 33 B.Mask user) +( 34 F.Mask user) +( 35 B.Paste user) +( 36 F.Paste user) +( 37 B.SilkS user) +( 38 F.SilkS user) +( 39 B.CrtYd user) +( 40 F.CrtYd user) +( 41 B.Fab user) +( 42 F.Fab user)) +(net 1 3v3) +(net 2 VIN) +(net 3 GND) +(net_class default "" + (trace_width 1) (add_net 3v3) (add_net VIN) (add_net GND)) +(module U1 + (layer F.Cu) + (tedit 5B8C418D) + (at 103 48 90) +(fp_text reference U1 + (at 0.6350000000 -1.2700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text value ESP12F-Devkit-V3 + (at 0.0000000000 -6.3500000000 90) + (layer F.Fab) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user USB + (at 0.0000000000 21.5900000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user "RF Antenna" + (at 0.0000000000 -21.5900000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VIN + (at -9.5250000000 16.5100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 13.9700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user RST + (at -9.5250000000 11.4300000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user EN + (at -9.5250000000 8.8900000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at -9.5250000000 6.3500000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 3.8100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SK + (at -9.5250000000 1.2700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SO + (at -9.5250000000 -1.2700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SC + (at -9.5250000000 -3.8100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S1 + (at -9.5250000000 -6.3500000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S2 + (at -9.5250000000 -8.8900000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S3 + (at -9.5250000000 -11.4300000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VU + (at -9.5250000000 -13.9700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 -16.5100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user A0 + (at -9.5250000000 -19.0500000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at 8.8900000000 16.5100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at 8.8900000000 13.9700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user TX + (at 8.8900000000 11.4300000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user RX + (at 8.8900000000 8.8900000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D8 + (at 8.8900000000 6.3500000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D7 + (at 8.8900000000 3.8100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D6 + (at 8.8900000000 1.2700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D5 + (at 8.8900000000 -1.2700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at 8.8900000000 -3.8100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at 8.8900000000 -6.3500000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D4 + (at 8.8900000000 -8.8900000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D3 + (at 8.8900000000 -11.4300000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D2 + (at 8.8900000000 -13.9700000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D1 + (at 8.8900000000 -16.5100000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D0 + (at 8.8900000000 -19.0500000000 90) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_line + (start 11.4300000000 22.8600000000) + (end 3.8100000000 22.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 5.5000000000 -18.2700000000) + (end -5.5000000000 -18.2700000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 5.5000000000 -25.4000000000) + (end 5.5000000000 -18.2700000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -5.5000000000 -18.2700000000) + (end -5.5000000000 -25.4000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8000000000 23.8600000000) + (end -3.8000000000 18.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8000000000 18.1300000000) + (end 3.8000000000 18.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 3.8000000000 18.1300000000) + (end 3.8000000000 23.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 3.8000000000 23.8600000000) + (end -3.8000000000 23.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 12.7000000000 -24.1300000000) + (end 12.7000000000 21.5900000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -13.3350000000 -24.1300000000) + (end -13.3350000000 21.5900000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8100000000 22.8600000000) + (end -12.0650000000 22.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 11.4300000000 -25.4000000000) + (end -12.7000000000 -25.4000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center 10.1600000000 20.3200000000) + (end 11.4300000000 19.0500000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center -10.7950000000 20.3200000000) + (end -9.5250000000 19.0500000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center -10.7950000000 -22.8600000000) + (end -9.5250000000 -24.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center 10.1600000000 -22.8600000000) + (end 11.4300000000 -24.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start -12.0650000000 -24.1300000000) + (end -13.3350000000 -24.1300000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start 11.4300000000 -24.1300000000) + (end 11.4300000000 -25.4000000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start 11.4300000000 21.5900000000) + (end 12.7000000000 21.5900000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start -12.0650000000 21.5900000000) + (end -12.0650000000 22.8600000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(pad 1 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -19.0500000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762) +(net 2 VIN)) +(pad 2 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -16.5100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 3 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -13.9700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762) +(net 1 3v3)) +(pad 4 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -11.4300000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 5 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -8.8900000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 6 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -6.3500000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 7 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -3.8100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 8 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -1.2700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 9 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 1.2700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 10 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 3.8100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 11 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 6.3500000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 12 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 8.8900000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 13 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 11.4300000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 14 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 13.9700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 15 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 16.5100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 16 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 16.5100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 17 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 13.9700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 18 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 11.4300000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 19 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 8.8900000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 20 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 6.3500000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 21 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 3.8100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 22 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 1.2700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 23 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -1.2700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 24 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -3.8100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 25 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -6.3500000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 26 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -8.8900000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 27 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -11.4300000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 28 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -13.9700000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 29 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -16.5100000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 30 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -19.0500000000 90) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762))) +(module J1 + (layer F.Cu) + (tedit 5D266054) + (at 100 87 270) +(fp_text reference J1 + (at 2.5400000000 -3.8100000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text value mpu-9250 + (at 2.5400000000 -7.6200000000 270) + (layer F.Fab) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VCC + (at -3.8100000000 -10.1600000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user GND + (at -3.8100000000 -7.6200000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SCL + (at -3.8100000000 -5.0800000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SDA + (at -3.8100000000 -2.5400000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user EDA + (at -3.8100000000 0.0000000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user ECL + (at -3.8100000000 2.5400000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user ADO + (at -3.8100000000 5.0800000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user INT + (at -3.8100000000 7.6200000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user NCS + (at -3.8100000000 10.1600000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user FSYNC + (at -2.5400000000 12.7000000000 270) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_line + (start -7.6200000000 -11.4300000000) + (end 7.5400000000 -11.4300000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start 7.6200000000 -11.4300000000) + (end 7.6200000000 13.5700000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start 7.6200000000 13.5700000000) + (end -7.6200000000 13.5700000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start -7.6200000000 13.5700000000) + (end -7.6200000000 -11.4300000000) + (layer F.SilkS) + (width 0.1200000000)) +(pad 1 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -10.1600000000 270) + (layers *.Cu *.Mask) +(drill 0.762) +(net 1 3v3)) +(pad 2 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -7.6200000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 3 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -5.0800000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 4 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -2.5400000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 5 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 0.0000000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 6 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 2.5400000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 7 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 5.0800000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 8 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 7.6200000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 9 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 10.1600000000 270) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 10 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 12.7000000000 270) + (layers *.Cu *.Mask) +(drill 0.762))) +(gr_poly + (pts (xy 96.264407 249.335209) (xy 106.000248 249.335209) (xy 106.264832 249.335209) (xy 118.999971 249.335209) (xy 137.999846 249.335209) (xy 151.000084 249.335209) (xy 151.264668 249.335209) (xy 169.735376 249.335209) (xy 169.735376 211.864629) (xy 161.264576 211.864629) (xy 160.999993 211.864629) (xy 151.000084 211.864629) (xy 150.735501 211.864629) (xy 150.735501 211.335463) (xy 151.000084 211.335463) (xy 160.735410 211.335463) (xy 160.735410 151.864673) (xy 151.000084 151.864673) (xy 150.735501 151.864673) (xy 150.735501 151.335506) (xy 151.000084 151.335506) (xy 160.735410 151.335506) (xy 160.735410 113.864407) (xy 155.735197 113.864407) (xy 151.000084 113.864407) (xy 150.735501 113.864407) (xy 137.999846 113.864407) (xy 137.735262 113.864407) (xy 137.735262 113.335241) (xy 137.999846 113.335241) (xy 150.735501 113.335241) (xy 151.000084 113.335241) (xy 155.735197 113.335241) (xy 160.999993 113.335241) (xy 165.735619 113.335241) (xy 165.735619 31.864772) (xy 156.264364 31.864772) (xy 155.999781 31.864772) (xy 138.264429 31.864772) (xy 137.735262 31.864772) (xy 137.735262 31.600189) (xy 137.735262 31.499938) (xy 137.735262 31.335606) (xy 137.735262 31.235355) (xy 137.735262 0.264632) (xy 118.264617 0.264632) (xy 118.000034 0.264632) (xy 98.264803 0.264632) (xy 98.000219 0.264632) (xy 78.264472 0.264632) (xy 78.264472 31.499938) (xy 78.264472 31.600189) (xy 78.264472 31.864772) (xy 77.999889 31.864772) (xy 60.264537 31.864772) (xy 59.999954 31.864772) (xy 35.999870 31.864772) (xy 24.264669 31.864772) (xy 24.000085 31.864772) (xy 0.264583 31.864772) (xy 0.264583 113.335241) (xy 59.999954 113.335241) (xy 77.735306 113.335241) (xy 77.999889 113.335241) (xy 78.264472 113.335241) (xy 86.735274 113.335241) (xy 96.999764 113.335241) (xy 97.264347 113.335241) (xy 105.735665 113.335241) (xy 118.999971 113.335241) (xy 119.264554 113.335241) (xy 119.264554 113.864407) (xy 118.999971 113.864407) (xy 105.735665 113.864407) (xy 97.264347 113.864407) (xy 96.999764 113.864407) (xy 87.264441 113.864407) (xy 87.264441 151.335506) (xy 93.999947 151.335506) (xy 94.264530 151.335506) (xy 137.999846 151.335506) (xy 138.264429 151.335506) (xy 138.264429 151.864673) (xy 137.999846 151.864673) (xy 94.264530 151.864673) (xy 93.999947 151.864673) (xy 87.264441 151.864673) (xy 86.999858 151.864673) (xy 81.000224 151.864673) (xy 37.264393 151.864673) (xy 37.264393 211.335463) (xy 81.000224 211.335463) (xy 93.999947 211.335463) (xy 94.264530 211.335463) (xy 95.999824 211.335463) (xy 96.264407 211.335463) (xy 137.999846 211.335463) (xy 138.264429 211.335463) (xy 138.264429 211.864629) (xy 137.999846 211.864629) (xy 96.264407 211.864629)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 138.725383 244.335513) (xy 150.274549 244.335513) (xy 150.274549 221.864535) (xy 138.725383 221.864535)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 98.235347 242.572314) (xy 98.235347 236.933382) (xy 98.235347 236.668798) (xy 98.764513 236.668798) (xy 98.764513 236.933382) (xy 98.764513 241.294355) (xy 103.235559 236.823828) (xy 103.235559 224.376008) (xy 98.764513 219.905481) (xy 98.764513 224.266454) (xy 98.764513 224.531038) (xy 98.235347 224.531038) (xy 98.235347 224.266454) (xy 98.235347 218.628041) (xy 103.609696 224.001871) (xy 103.764726 224.001871) (xy 103.764726 224.156901) (xy 103.874279 224.266454) (xy 103.764726 224.376008) (xy 103.764726 236.823828) (xy 103.874279 236.933382) (xy 103.764726 237.042935) (xy 103.764726 237.197965) (xy 103.609696 237.197965)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 161.985463 237.448081) (xy 161.985463 237.183497) (xy 161.985463 236.918914) (xy 161.985463 224.016857) (xy 161.985463 223.752274) (xy 162.250046 223.752274) (xy 162.514629 223.752274) (xy 162.749757 223.752274) (xy 163.014340 223.752274) (xy 163.014340 224.281440) (xy 163.014340 237.183497) (xy 163.014340 237.448081) (xy 162.749757 237.448081) (xy 162.514629 237.448081) (xy 162.250046 237.448081)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 129.514576 208.585241) (xy 136.985436 208.585241) (xy 136.985436 182.114506) (xy 129.514576 182.114506)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 158.499887 196.974064) (xy 158.390331 196.864511) (xy 158.235303 196.864511) (xy 158.235303 196.709481) (xy 153.235607 191.709785) (xy 153.235607 171.709457) (xy 153.126054 171.599904) (xy 153.235607 171.490348) (xy 153.235607 171.335320) (xy 153.390637 171.335320) (xy 158.764470 165.961487) (xy 158.764470 171.599904) (xy 158.764470 171.864487) (xy 158.235303 171.864487) (xy 158.235303 171.599904) (xy 158.235303 167.238927) (xy 153.764774 171.709457) (xy 153.764774 191.490162) (xy 158.235303 195.961205) (xy 158.235303 191.600231) (xy 158.235303 191.335648) (xy 158.764470 191.335648) (xy 158.764470 191.600231) (xy 158.764470 196.490372) (xy 158.874023 196.599928) (xy 158.764470 196.709481) (xy 158.764470 196.864511) (xy 158.609440 196.864511)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 43.985429 192.114412) (xy 43.985429 191.849829) (xy 43.985429 191.585245) (xy 43.985429 171.349788) (xy 43.985429 171.085204) (xy 44.250012 171.085204) (xy 44.514595 171.085204) (xy 44.750241 171.085204) (xy 45.014825 171.085204) (xy 45.014825 171.614371) (xy 45.014825 191.849829) (xy 45.014825 192.114412) (xy 44.750241 192.114412) (xy 44.514595 192.114412) (xy 44.250012 192.114412)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 158.499887 144.307511) (xy 158.390331 144.197958) (xy 158.235303 144.197958) (xy 158.235303 144.042928) (xy 153.390637 139.197745) (xy 153.235607 139.197745) (xy 153.235607 139.042715) (xy 153.126054 138.933162) (xy 153.235607 138.823609) (xy 153.235607 126.376307) (xy 153.126054 126.266751) (xy 153.235607 126.157198) (xy 153.235607 126.002168) (xy 153.390637 126.002168) (xy 158.235303 121.156985) (xy 158.235303 121.001958) (xy 158.390331 121.001958) (xy 158.499887 120.892402) (xy 158.609440 121.001958) (xy 158.764470 121.001958) (xy 158.764470 121.156985) (xy 158.874023 121.266541) (xy 158.764470 121.376095) (xy 158.764470 126.266751) (xy 158.764470 126.531334) (xy 158.235303 126.531334) (xy 158.235303 126.266751) (xy 158.235303 121.905261) (xy 153.764774 126.376307) (xy 153.764774 138.823609) (xy 158.235303 143.294654) (xy 158.235303 138.933162) (xy 158.235303 138.668579) (xy 158.764470 138.668579) (xy 158.764470 138.933162) (xy 158.764470 143.823821) (xy 158.874023 143.933374) (xy 158.764470 144.042928) (xy 158.764470 144.197958) (xy 158.609440 144.197958)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 138.725383 141.335600) (xy 150.274549 141.335600) (xy 150.274549 118.864619) (xy 138.725383 118.864619)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 93.985477 139.447859) (xy 93.985477 139.183275) (xy 93.985477 138.918692) (xy 93.985477 126.016638) (xy 93.985477 125.752054) (xy 94.250060 125.752054) (xy 94.514644 125.752054) (xy 95.014357 125.752054) (xy 95.014357 126.281221) (xy 95.014357 138.918692) (xy 95.014357 139.447859) (xy 94.514644 139.447859)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 65.725704 108.335547) (xy 77.274354 108.335547) (xy 77.274354 85.864566) (xy 65.725704 85.864566)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 138.725383 108.335547) (xy 150.274549 108.335547) (xy 150.274549 85.864566) (xy 138.725383 85.864566)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 163.500096 104.065008) (xy 163.390543 103.955452) (xy 163.235513 103.955452) (xy 163.235513 103.800425) (xy 158.389815 98.955242) (xy 158.235303 98.955242) (xy 158.235303 98.800728) (xy 158.125747 98.690659) (xy 158.235303 98.581103) (xy 158.235303 83.891561) (xy 158.125747 83.782007) (xy 158.235303 83.672454) (xy 158.235303 83.517424) (xy 158.390331 83.517424) (xy 163.235513 78.672242) (xy 163.235513 78.517212) (xy 163.390543 78.517212) (xy 163.500096 78.407658) (xy 163.609652 78.517212) (xy 163.764680 78.517212) (xy 163.764680 78.672242) (xy 163.874236 78.781795) (xy 163.764680 78.891348) (xy 163.764680 83.782007) (xy 163.764680 84.046591) (xy 163.235513 84.046591) (xy 163.235513 83.782007) (xy 163.235513 79.420515) (xy 158.764470 83.891561) (xy 158.764470 98.581103) (xy 163.235513 103.052148) (xy 163.235513 98.690659) (xy 163.235513 98.426076) (xy 163.764680 98.426076) (xy 163.764680 98.690659) (xy 163.764680 103.581315) (xy 163.874236 103.690868) (xy 163.764680 103.800425) (xy 163.764680 103.955452) (xy 163.609652 103.955452)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 6.985620 99.205355) (xy 6.985620 98.940772) (xy 6.985620 98.676189) (xy 6.985620 83.531894) (xy 6.985620 83.267311) (xy 7.250204 83.267311) (xy 7.514787 83.267311) (xy 7.749915 83.267311) (xy 8.014498 83.267311) (xy 8.014498 83.796477) (xy 8.014498 98.940772) (xy 8.014498 99.205355) (xy 7.749915 99.205355) (xy 7.514787 99.205355) (xy 7.250204 99.205355)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 81.014694 74.585670) (xy 107.485429 74.585670) (xy 107.485429 67.114808) (xy 81.014694 67.114808)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 163.500096 66.792347) (xy 163.390543 66.682793) (xy 163.235513 66.682793) (xy 163.235513 66.527763) (xy 158.390331 61.682581) (xy 158.235303 61.682581) (xy 158.235303 61.527551) (xy 158.125747 61.417998) (xy 158.235303 61.308444) (xy 158.235303 46.618899) (xy 158.125747 46.509346) (xy 158.235303 46.399277) (xy 158.235303 46.244763) (xy 158.389815 46.244763) (xy 163.235513 41.399580) (xy 163.235513 41.244550) (xy 163.390543 41.244550) (xy 163.500096 41.134997) (xy 163.609652 41.244550) (xy 163.764680 41.244550) (xy 163.764680 41.399580) (xy 163.874236 41.509134) (xy 163.764680 41.618690) (xy 163.764680 46.509346) (xy 163.764680 46.773929) (xy 163.235513 46.773929) (xy 163.235513 46.509346) (xy 163.235513 42.147856) (xy 158.764470 46.618899) (xy 158.764470 61.308444) (xy 163.235513 65.779487) (xy 163.235513 61.417998) (xy 163.235513 61.153414) (xy 163.764680 61.153414) (xy 163.764680 61.417998) (xy 163.764680 66.308654) (xy 163.874236 66.418210) (xy 163.764680 66.527763) (xy 163.764680 66.682793) (xy 163.609652 66.682793)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 6.985620 61.932694) (xy 6.985620 61.668111) (xy 6.985620 61.403528) (xy 6.985620 46.259233) (xy 6.985620 45.994649) (xy 7.250204 45.994649) (xy 7.514787 45.994649) (xy 7.749915 45.994649) (xy 8.014498 45.994649) (xy 8.014498 46.523816) (xy 8.014498 61.668111) (xy 8.014498 61.932694) (xy 7.749915 61.932694) (xy 7.514787 61.932694) (xy 7.250204 61.932694)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 150.264730 50.835180) (xy 153.735320 50.835180) (xy 153.735320 42.364381) (xy 150.264730 42.364381)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 31.485417 45.614827) (xy 31.485417 45.350243) (xy 31.485417 45.085660) (xy 31.485417 35.850048) (xy 31.485417 35.585465) (xy 31.750000 35.585465) (xy 32.014583 35.585465) (xy 32.250227 35.585465) (xy 32.514810 35.585465) (xy 32.514810 36.114632) (xy 32.514810 45.350243) (xy 32.514810 45.614827) (xy 32.250227 45.614827) (xy 32.014583 45.614827) (xy 31.750000 45.614827)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 101.735393 31.764522) (xy 101.735393 31.499938) (xy 101.735393 13.499990) (xy 101.735393 13.235407) (xy 102.264559 13.235407) (xy 102.264559 13.499990) (xy 102.264559 31.235355) (xy 113.735175 31.235355) (xy 113.735175 13.499990) (xy 113.735175 13.235407) (xy 114.264342 13.235407) (xy 114.264342 13.499990) (xy 114.264342 31.235355) (xy 114.264342 31.499938) (xy 114.264342 31.764522) (xy 113.999759 31.764522) (xy 102.264559 31.764522) (xy 101.999976 31.764522)) + (layer Edge.Cuts) + (width 0.1000000000)) +(gr_poly + (pts (xy 105.735665 27.264515) (xy 105.735665 26.999931) (xy 105.735665 26.735348) (xy 105.735665 17.999971) (xy 105.735665 17.735387) (xy 106.000248 17.735387) (xy 106.264832 17.735387) (xy 110.000005 17.735387) (xy 110.264588 17.735387) (xy 110.264588 18.264554) (xy 110.000005 18.264554) (xy 106.264832 18.264554) (xy 106.264832 26.735348) (xy 110.000005 26.735348) (xy 110.264588 26.735348) (xy 110.264588 27.264515) (xy 110.000005 27.264515) (xy 106.264832 27.264515) (xy 106.000248 27.264515)) + (layer Edge.Cuts) + (width 0.1000000000))) \ No newline at end of file diff --git a/kicad_board.kicad_pcb-bak b/kicad_board.kicad_pcb-bak new file mode 100644 index 0000000..50f3307 --- /dev/null +++ b/kicad_board.kicad_pcb-bak @@ -0,0 +1,684 @@ + +(kicad_pcb + (version 1) + (host pykicad x.x.x) + (general + (nets 5)) + (layers +( 32 F.Cu signal) +( 33 Inner1.Cu signal) +( 34 Inner2.Cu signal) +( 35 B.Cu signal) +( 120 Edge.Cuts user) +( 121 B.Mask user) +( 122 F.Mask user) +( 123 B.Paste user) +( 124 F.Paste user) +( 125 B.SilkS user) +( 126 F.SilkS user) +( 127 B.CrtYd user) +( 128 F.CrtYd user) +( 129 B.Fab user) +( 130 F.Fab user)) +(net 25 3v3) +(net 26 VIN) +(net 27 GND) +(net_class default "" + (trace_width 1) (add_net 3v3) (add_net VIN) (add_net GND)) +(module U1 + (layer F.Cu) + (tedit 5B8C418D) + (at 0 0) +(fp_text reference U1 + (at 0.6350000000 -1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text value ESP12F-Devkit-V3 + (at 0.0000000000 -6.3500000000) + (layer F.Fab) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user USB + (at 0.0000000000 21.5900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user "RF Antenna" + (at 0.0000000000 -21.5900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VIN + (at -9.5250000000 16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user RST + (at -9.5250000000 11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user EN + (at -9.5250000000 8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at -9.5250000000 6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SK + (at -9.5250000000 1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SO + (at -9.5250000000 -1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SC + (at -9.5250000000 -3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S1 + (at -9.5250000000 -6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S2 + (at -9.5250000000 -8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S3 + (at -9.5250000000 -11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VU + (at -9.5250000000 -13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 -16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user A0 + (at -9.5250000000 -19.0500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at 8.8900000000 16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at 8.8900000000 13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user TX + (at 8.8900000000 11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user RX + (at 8.8900000000 8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D8 + (at 8.8900000000 6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D7 + (at 8.8900000000 3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D6 + (at 8.8900000000 1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D5 + (at 8.8900000000 -1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at 8.8900000000 -3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at 8.8900000000 -6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D4 + (at 8.8900000000 -8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D3 + (at 8.8900000000 -11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D2 + (at 8.8900000000 -13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D1 + (at 8.8900000000 -16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D0 + (at 8.8900000000 -19.0500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_line + (start 11.4300000000 22.8600000000) + (end 3.8100000000 22.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 5.5000000000 -18.2700000000) + (end -5.5000000000 -18.2700000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 5.5000000000 -25.4000000000) + (end 5.5000000000 -18.2700000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -5.5000000000 -18.2700000000) + (end -5.5000000000 -25.4000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8000000000 23.8600000000) + (end -3.8000000000 18.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8000000000 18.1300000000) + (end 3.8000000000 18.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 3.8000000000 18.1300000000) + (end 3.8000000000 23.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 3.8000000000 23.8600000000) + (end -3.8000000000 23.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 12.7000000000 -24.1300000000) + (end 12.7000000000 21.5900000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -13.3350000000 -24.1300000000) + (end -13.3350000000 21.5900000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8100000000 22.8600000000) + (end -12.0650000000 22.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 11.4300000000 -25.4000000000) + (end -12.7000000000 -25.4000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center 10.1600000000 20.3200000000) + (end 11.4300000000 19.0500000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center -10.7950000000 20.3200000000) + (end -9.5250000000 19.0500000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center -10.7950000000 -22.8600000000) + (end -9.5250000000 -24.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center 10.1600000000 -22.8600000000) + (end 11.4300000000 -24.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start -12.0650000000 -24.1300000000) + (end -13.3350000000 -24.1300000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start 11.4300000000 -24.1300000000) + (end 11.4300000000 -25.4000000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start 11.4300000000 21.5900000000) + (end 12.7000000000 21.5900000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start -12.0650000000 21.5900000000) + (end -12.0650000000 22.8600000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(pad 1 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -19.0500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762) +(net 26 VIN)) +(pad 2 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 3 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762) +(net 25 3v3)) +(pad 4 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 5 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 6 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 7 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 8 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 9 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 10 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 11 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 12 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 13 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 14 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 15 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 16 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 17 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 18 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 19 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 20 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 21 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 22 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 23 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 24 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 25 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 26 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 27 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 28 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 29 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 30 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -19.0500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762))) +(module J1 + (layer F.Cu) + (tedit 5D266054) + (at 10 10) +(fp_text reference J1 + (at 2.5400000000 -3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text value mpu-9250 + (at 2.5400000000 -7.6200000000) + (layer F.Fab) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VCC + (at -3.8100000000 -10.1600000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user GND + (at -3.8100000000 -7.6200000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SCL + (at -3.8100000000 -5.0800000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SDA + (at -3.8100000000 -2.5400000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user EDA + (at -3.8100000000 0.0000000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user ECL + (at -3.8100000000 2.5400000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user ADO + (at -3.8100000000 5.0800000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user INT + (at -3.8100000000 7.6200000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user NCS + (at -3.8100000000 10.1600000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user FSYNC + (at -2.5400000000 12.7000000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_line + (start -7.6200000000 -11.4300000000) + (end 7.5400000000 -11.4300000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start 7.6200000000 -11.4300000000) + (end 7.6200000000 13.5700000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start 7.6200000000 13.5700000000) + (end -7.6200000000 13.5700000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start -7.6200000000 13.5700000000) + (end -7.6200000000 -11.4300000000) + (layer F.SilkS) + (width 0.1200000000)) +(pad 1 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -10.1600000000) + (layers *.Cu *.Mask) +(drill 0.762) +(net 25 3v3)) +(pad 2 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -7.6200000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 3 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -5.0800000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 4 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -2.5400000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 5 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 0.0000000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 6 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 2.5400000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 7 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 5.0800000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 8 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 7.6200000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 9 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 10.1600000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 10 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 12.7000000000) + (layers *.Cu *.Mask) +(drill 0.762)))) \ No newline at end of file diff --git a/kicad_board.pro b/kicad_board.pro new file mode 100644 index 0000000..152769c --- /dev/null +++ b/kicad_board.pro @@ -0,0 +1,33 @@ +update=22/05/2015 07:44:53 +version=1 +last_client=kicad +[general] +version=1 +RootSch= +BoardNm= +[pcbnew] +version=1 +LastNetListRead= +UseCmpFile=1 +PadDrill=0.600000000000 +PadDrillOvalY=0.600000000000 +PadSizeH=1.500000000000 +PadSizeV=1.500000000000 +PcbTextSizeV=1.500000000000 +PcbTextSizeH=1.500000000000 +PcbTextThickness=0.300000000000 +ModuleTextSizeV=1.000000000000 +ModuleTextSizeH=1.000000000000 +ModuleTextSizeThickness=0.150000000000 +SolderMaskClearance=0.000000000000 +SolderMaskMinWidth=0.000000000000 +DrawSegmentWidth=0.200000000000 +BoardOutlineThickness=0.100000000000 +ModuleOutlineThickness=0.150000000000 +[cvpcb] +version=1 +NetIExt=net +[eeschema] +version=1 +LibDir= +[eeschema/libraries] diff --git a/kicad_board.rules b/kicad_board.rules new file mode 100644 index 0000000..35b82c1 --- /dev/null +++ b/kicad_board.rules @@ -0,0 +1,76 @@ + +(rules PCB kicad_board + (snap_angle + fortyfive_degree + ) + (autoroute_settings + (fanout off) + (autoroute on) + (postroute on) + (vias on) + (via_costs 50) + (plane_via_costs 5) + (start_ripup_costs 100) + (start_pass_no 4) + (layer_rule F.Cu + (active on) + (preferred_direction vertical) + (preferred_direction_trace_costs 1.0) + (against_preferred_direction_trace_costs 2.5) + ) + (layer_rule B.Cu + (active on) + (preferred_direction horizontal) + (preferred_direction_trace_costs 1.0) + (against_preferred_direction_trace_costs 1.7) + ) + ) + (rule + (width 1000.0) + (clear 200.2) + (clear 125.0 (type smd_to_turn_gap)) + (clear 50.0 (type smd_smd)) + ) + (padstack "Via[0-1]_800:400_um" + (shape + (circle F.Cu 800.0 0.0 0.0) + ) + (shape + (circle B.Cu 800.0 0.0 0.0) + ) + (attach off) + ) + (via + "Via[0-1]_800:400_um" "Via[0-1]_800:400_um" default + ) + (via + "Via[0-1]_800:400_um-kicad_default" "Via[0-1]_800:400_um" default + ) + (via_rule + "kicad_default" "Via[0-1]_800:400_um-kicad_default" + ) + (via_rule + default "Via[0-1]_800:400_um" + ) + (class default + 3v3 VIN + (clearance_class default) + (via_rule default) + (rule + (width 1000.0) + ) + (circuit + (use_layer F.Cu B.Cu) + ) + ) + (class "kicad_default" + (clearance_class default) + (via_rule kicad_default) + (rule + (width 250.0) + ) + (circuit + (use_layer F.Cu B.Cu) + ) + ) +) \ No newline at end of file diff --git a/kicad_board.ses b/kicad_board.ses new file mode 100644 index 0000000..3e4a489 --- /dev/null +++ b/kicad_board.ses @@ -0,0 +1,46 @@ + +(session kicad_board.ses + (base_design kicad_board.dsn) + (placement + (resolution um 10) + (component U1 + (place U1 1030000 -480000 front 90) + ) + (component J1 + (place J1 1000000 -870000 front 270) + ) + ) + (was_is + ) + (routes + (resolution um 10) + (parser + (host_cad "KiCad's Pcbnew") + (host_version "5.1.3-ffb9f22~84~ubuntu18.04.1") + ) + (library_out + (padstack "Via[0-1]_800:400_um" + (shape + (circle F.Cu 8000 0 0) + ) + (shape + (circle B.Cu 8000 0 0) + ) + (attach off) + ) + ) + (network_out + (net 3v3 + (wire + (path B.Cu 10000 + 1101600 -806500 + 1101600 -687372 + 1040636 -626408 + 916058 -626408 + 890300 -600650 + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/kicad_python.net b/kicad_python.net index b3e6821..2f40bd5 100644 --- a/kicad_python.net +++ b/kicad_python.net @@ -1,37 +1,37 @@ (export (version D) (design (source "/home/jingyan/Documents/summer_intern_lemur/roco_electrical/kicad_python.py") - (date "07/16/2019 04:59 PM") + (date "07/18/2019 01:50 PM") (tool "SKiDL (0.0.26)")) (components (comp (ref J1) (value MPU-9250) - (footprint node_mcu:mpu-9250) + (footprint ESP8266:mpu-9250) (fields (field (name keywords) connector)) (libsource (lib ESP8266) (part MPU-9250)) - (sheetpath (names /top/9860840872559336476) (tstamps /top/9860840872559336476))) + (sheetpath (names /top/12032157261764361145) (tstamps /top/12032157261764361145))) (comp (ref R1) (value 1K) (footprint Resistor_SMD:R_0402_1005Metric) (fields - (field (name keywords) "R res resistor") - (field (name description) Resistor)) + (field (name description) Resistor) + (field (name keywords) "R res resistor")) (libsource (lib ESP8266) (part 1000)) - (sheetpath (names /top/5624726637527145165) (tstamps /top/5624726637527145165))) + (sheetpath (names /top/18053750295021537276) (tstamps /top/18053750295021537276))) (comp (ref R2) (value 1K) (footprint Resistor_SMD:R_0402_1005Metric) (fields - (field (name keywords) "R res resistor") - (field (name description) Resistor)) + (field (name description) Resistor) + (field (name keywords) "R res resistor")) (libsource (lib ESP8266) (part 1000)) - (sheetpath (names /top/17050391654246193540) (tstamps /top/17050391654246193540))) + (sheetpath (names /top/4721344206233501840) (tstamps /top/4721344206233501840))) (comp (ref U1) (value NodeMCU_1.0_) - (footprint node_mcu:ESP12F-Devkit-V3) + (footprint ESP8266:ESP12F-Devkit-V3) (libsource (lib ESP8266) (part NodeMCU_1.0_)) - (sheetpath (names /top/8700831890441039016) (tstamps /top/8700831890441039016)))) + (sheetpath (names /top/18161168317481685099) (tstamps /top/18161168317481685099)))) (nets (net (code 0) (name 3v3) (node (ref J1) (pin 1)) @@ -46,11 +46,11 @@ (node (ref U1) (pin 14)) (node (ref U1) (pin 17)) (node (ref U1) (pin 24))) - (net (code 2) (name N$1) + (net (code 2) (name N$3) (node (ref J1) (pin 4)) (node (ref R1) (pin 2)) (node (ref U1) (pin 23))) - (net (code 3) (name N$2) + (net (code 3) (name N$4) (node (ref J1) (pin 3)) (node (ref R2) (pin 2)) (node (ref U1) (pin 22))) diff --git a/kicad_python.py b/kicad_python.py index 057fbff..5b08dfe 100644 --- a/kicad_python.py +++ b/kicad_python.py @@ -3,18 +3,25 @@ """ python 3.6.8 """ -import pcbnew + import skidl import csv +import os +import pcbnew +from pykicad import pcb +from pykicad import module +import numpy as np +from pcb_dxf_importer import importer + class schematic(): def __init__(self,lib_path): skidl.lib_search_paths['kicad'].append(lib_path) ## load symbol of all parts - self.esp8826=skidl.Part('ESP8266','NodeMCU_1.0_',footprint='ESP8266.pretty:ESP12F-Devkit-V3') - self.mpu9250=skidl.Part('ESP8266','MPU-9250',footprint='ESP8266.pretty:mpu-9250') - self.resistor1=skidl.Part('ESP8266','1000',value='1K',footprint='Resistor_SMD.pretty:R_0402_1005Metric',ref='R1') - self.resistor2=skidl.Part('ESP8266','1000',value='1K',footprint='Resistor_SMD.pretty:R_0402_1005Metric',ref='R2') + self.esp8826=skidl.Part('ESP8266','NodeMCU_1.0_',footprint='ESP8266:ESP12F-Devkit-V3') + self.mpu9250=skidl.Part('ESP8266','MPU-9250',footprint='ESP8266:mpu-9250') + self.resistor1=skidl.Part('ESP8266','1000',value='1K',footprint='Resistor_SMD:R_0402_1005Metric',ref='R1') + self.resistor2=skidl.Part('ESP8266','1000',value='1K',footprint='Resistor_SMD:R_0402_1005Metric',ref='R2') self.connect_pins() @@ -41,9 +48,74 @@ class schematic(): skidl.ERC() -# class pcb(): -# def __init__(self,lib_path): -# self. +class pcb_editor(): + def __init__(self,lib_path): + os.environ["MODULE_SEARCH_PATH"]=lib_path + self.save_name='kicad_board' + self.dxf_name='kicad_test.dxf' + self.load_module() + self.place_module() + self.build_netlist() + self.draw_pcb() + self.pcb_collect() + + def load_module(self): + + self.esp8266=module.Module.from_library('ESP8266','ESP12F-Devkit-V3') + self.esp8266.set_reference('U1') + self.mpu9250=module.Module.from_library('ESP8266','mpu-9250') + self.mpu9250.set_reference('J1') + + def place_module(self): + self.esp8266.at=[103,48] + self.esp8266.rotate(90) + self.mpu9250.at=[100,87] + self.mpu9250.rotate(270) + + self.modulelist=[self.esp8266,self.mpu9250] + + def build_netlist(self): + v33,v5,gnd=module.Net('3v3'),module.Net('VIN'),module.Net('GND') + self.nets=[v33,v5,gnd] + self.netclass=[pcb.NetClass('default',trace_width=1,nets=['3v3','VIN','GND'])] + + self.esp8266.pads[0].net=v5 + self.esp8266.pads[2].net = v33 + self.mpu9250.pads[0].net = v33 + + def draw_pcb(self): + self.loaddxf=importer(self.dxf_name,'Edge.Cuts',0.1) + self.outlines=self.loaddxf.poly_class() + + + def pcb_collect(self): + layers = [ + pcb.Layer('F.Cu'), + pcb.Layer('B.Cu'), + pcb.Layer('Edge.Cuts', type='user') + ] + + for layer in ['Mask', 'Paste', 'SilkS', 'CrtYd', 'Fab']: + for side in ['B', 'F']: + layers.append(pcb.Layer('%s.%s' % (side, layer), type='user')) + + #Pcb(version, host, board_thickness, num_nets, num_no_connects, title, date, rev, company, comment1, + # comment2, comment3, comment4, page_type, portrait, setup, layers, nets, net_classes, modules, + # segments, vias, texts, lines, arcs, circles, polygons, curves, zones, targets, dimensions) + + self.board=pcb.Pcb() + self.board.layers=layers + self.board.page_type=[500,300] + self.board.num_nets=5 + self.board.net_classes+=self.netclass + self.board.nets+=self.nets + self.board.modules+=self.modulelist + self.board.polygons+=self.outlines + self.board.to_file(self.save_name) + + lib_path='libraries/kicad-ESP8266' -net_generator=schematic(lib_path) +# net_generator=schematic(lib_path) + +pcb_generator=pcb_editor(lib_path) diff --git a/kicad_python_lib_sklib.py b/kicad_python_lib_sklib.py index 0a44b77..7e67297 100644 --- a/kicad_python_lib_sklib.py +++ b/kicad_python_lib_sklib.py @@ -3,7 +3,7 @@ from skidl import Pin, Part, SchLib, SKIDL, TEMPLATE SKIDL_lib_version = '0.0.1' kicad_python_lib = SchLib(tool=SKIDL).add_parts(*[ - Part(name='NodeMCU_1.0_',dest=TEMPLATE,tool=SKIDL,ref_prefix='U',num_units=1,do_erc=True,footprint='node_mcu:ESP12F-Devkit-V3',pins=[ + Part(name='NodeMCU_1.0_',dest=TEMPLATE,tool=SKIDL,ref_prefix='U',num_units=1,do_erc=True,footprint='ESP8266.pretty:ESP12F-Devkit-V3',pins=[ Pin(num='1',name='A0(ADC0)',do_erc=True), Pin(num='10',name='GND',do_erc=True), Pin(num='11',name='3.3V',func=Pin.PWROUT,do_erc=True), @@ -34,7 +34,7 @@ kicad_python_lib = SchLib(tool=SKIDL).add_parts(*[ Pin(num='7',name='CMD(CS)',func=Pin.BIDIR,do_erc=True), Pin(num='8',name='SDO(MISO)',func=Pin.BIDIR,do_erc=True), Pin(num='9',name='CLK(SCLK)',func=Pin.BIDIR,do_erc=True)]), - Part(name='MPU-9250',dest=TEMPLATE,tool=SKIDL,keywords='connector',ref_prefix='J',num_units=1,fplist=['Connector*:*_1x??_*'],do_erc=True,footprint='node_mcu:mpu-9250',pins=[ + Part(name='MPU-9250',dest=TEMPLATE,tool=SKIDL,keywords='connector',ref_prefix='J',num_units=1,fplist=['Connector*:*_1x??_*'],do_erc=True,footprint='ESP8266.pretty:mpu-9250',pins=[ Pin(num='1',name='VCC',func=Pin.PWRIN,do_erc=True), Pin(num='10',name='FSYNC',func=Pin.PASSIVE,do_erc=True), Pin(num='2',name='GND',func=Pin.PASSIVE,do_erc=True), @@ -45,6 +45,6 @@ kicad_python_lib = SchLib(tool=SKIDL).add_parts(*[ Pin(num='7',name='ADO',func=Pin.PASSIVE,do_erc=True), Pin(num='8',name='INT',func=Pin.PASSIVE,do_erc=True), Pin(num='9',name='NCS',func=Pin.PASSIVE,do_erc=True)]), - Part(name='1000',dest=TEMPLATE,tool=SKIDL,keywords='R res resistor',description='Resistor',ref_prefix='R',num_units=1,fplist=['R_*'],do_erc=True,footprint='Resistor_SMD:R_0402_1005Metric',pins=[ + Part(name='1000',dest=TEMPLATE,tool=SKIDL,keywords='R res resistor',description='Resistor',ref_prefix='R',num_units=1,fplist=['R_*'],do_erc=True,footprint='Resistor_SMD.pretty:R_0402_1005Metric',pins=[ Pin(num='1',name='~',func=Pin.PASSIVE,do_erc=True), Pin(num='2',name='~',func=Pin.PASSIVE,do_erc=True)])]) \ No newline at end of file diff --git a/layoutload b/layoutload new file mode 100644 index 0000000..09087d8 --- /dev/null +++ b/layoutload @@ -0,0 +1,13 @@ +Loading netlist: "/home/jingyan/Documents/summer_intern_lemur/roco_electrical/kicad_python.net" + +Strong warnings: + +52 Bad signal format ((comp (ref J1), (comp (ref R1), (comp (ref R2), (comp (ref U1), (components, (date "07/18/2019 12:19 PM"), (field (name description) Resistor)), (field (name keywords) "R res resistor"), (field (name keywords) connector)), (fields, (footprint Resistor_SMD.pretty:R_0402_1005Metric), (libsource (lib ESP8266) (part 1000)), (libsource (lib ESP8266) (part NodeMCU_1.0_)), (net (code 0) (name 3v3), (net (code 1) (name GND), (net (code 2) (name N$1), (net (code 3) (name N$2), (net (code 4) (name VIN), (nets, (node (ref J1) (pin 1)), (node (ref J1) (pin 2)), (node (ref J1) (pin 3)), (node (ref J1) (pin 4)), (node (ref R1) (pin 1)), (node (ref R1) (pin 2)), (node (ref R2) (pin 1)), (node (ref R2) (pin 2)), (node (ref U1) (pin 10)), (node (ref U1) (pin 11)), (node (ref U1) (pin 14)), (node (ref U1) (pin 15)))), (node (ref U1) (pin 16)), (node (ref U1) (pin 17)), (node (ref U1) (pin 22))), (node (ref U1) (pin 23))), (node (ref U1) (pin 24))), (node (ref U1) (pin 25))), (sheetpath (names /top/12130445717709598923) (tstamps /top/12130445717709598923))), (sheetpath (names /top/2029459414266585258) (tstamps /top/2029459414266585258)))), (sheetpath (names /top/4252771360195997730) (tstamps /top/4252771360195997730))), (sheetpath (names /top/6777596565628028251) (tstamps /top/6777596565628028251))), (source "/home/jingyan/Documents/summer_intern_lemur/roco_electrical/kicad_python.py"), (tool "SKiDL (0.0.26)")), (value 1K), (value NodeMCU_1.0_)) +4 Bad signal-pin (9250), 9250)), Devkit-V3)) + + +Informations: + +1 Using Protel format + + diff --git a/pcb_design_test.py b/pcb_design_test.py new file mode 100644 index 0000000..b16a396 --- /dev/null +++ b/pcb_design_test.py @@ -0,0 +1,69 @@ +from numpy import array +from pykicad.pcb import * +from pykicad.module import * + +# Define nets +vi, vo, gnd = Net('VI'), Net('VO'), Net('GND') + +# Load footprints +r1 = Module.from_library('ESP8266','ESP12F-Devkit-V3') +r2 = Module.from_library('ESP8266','mpu-9250') + +# Connect pads +r1.pads[0].net = vi +r1.pads[1].net = vo +r2.pads[0].net = r1.pads[1].net +r2.pads[1].net = gnd + +# Place components +r1.at = [0, 0] +r2.at = [15, 15] + +# Compute positions +start = array(r1.pads[1].at) + array(r1.at) +end = array(r2.pads[0].at) + array(r2.at) +pos = start + (end - start) / 2 + + +# Create vias +# v1 = Via(at=pos.tolist(), size=.8, drill=.6, net=vo.code) + +# Create segments +s1 = Segment(start=start.tolist(), end=pos.tolist(), net=vo.code) +s2 = Segment(start=pos.tolist(), end=end.tolist(), net=vo.code) + +# Create zones +# coords = [(0, 0), (10, 0), (10, 10), (0, 10)] +# gndplane_top = Zone(net_name='GND', layer='F.Cu', polygon=coords, clearance=0.3) + + +layers = [ + Layer('F.Cu'), + Layer('Inner1.Cu'), + Layer('Inner2.Cu'), + Layer('B.Cu'), + Layer('Edge.Cuts', type='user') +] + +for layer in ['Mask', 'Paste', 'SilkS', 'CrtYd', 'Fab']: + for side in ['B', 'F']: + layers.append(Layer('%s.%s' % (side, layer), type='user')) + +nc1 = NetClass('default', trace_width=1, nets=['VI', 'VO', 'GND']) + +# Create PCB +pcb = Pcb() +# pcb.title = 'A title' +# pcb.comment1 = 'Comment 1' +# pcb.page_type = [100, 100] +pcb.num_nets = 5 +# pcb.setup = Setup(grid_origin=[10, 10]) +pcb.layers = layers +pcb.modules += [r1, r2] +pcb.net_classes += [nc1] +pcb.nets += [vi, vo, gnd] +pcb.segments += [s1, s2] +# pcb.vias += [v1] +# pcb.zones += [gndplane_top] + +pcb.to_file('project.kicad_pcb') \ No newline at end of file diff --git a/pcb_dxf_importer.py b/pcb_dxf_importer.py new file mode 100644 index 0000000..30f3d99 --- /dev/null +++ b/pcb_dxf_importer.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 + +""" +python 3.6.8 +""" + +import ezdxf +from pykicad import pcb +import numpy as np + +class importer(): + def __init__(self,dxf_file,layer,width=None,board=None): + + self.dwg=ezdxf.readfile(dxf_file) + self.msp=self.dwg.modelspace() + self.layer=layer + self.width=width + + + if board!=None: + self.board=pcb.Pcb.from_file(board) + self.draw_pcb() + def all(self): + + self.line_class() + self.poly_class() + def line_class(self): + startlist=[] + endlist=[] + line_list=[] + + for e in self.msp.query('LINE'): + startlist.append(e.dxf.start[:2]) + endlist.append(e.dxf.end[:2]) + + for i in range(len(startlist)): + l=pcb.GrLine(startlist[i],endlist[i],self.layer,self.width) + line_list.append(l) + + return line_list + def poly_class(self): + pts_list=[] + ply_list=[] + for e in self.msp.query('LWPOLYLINE'): + pts_list.append(e.get_points()) + + for pts_set in pts_list: + p=pcb.GrPolygon(pts_set,self.layer,self.width) + ply_list.append(p) + + return ply_list + + def draw_pcb(self): + self.board.lines+=self.line_class() + self.board.polygons+=self.poly_class() + + + + + + + + + \ No newline at end of file diff --git a/pcbnew_temp.py b/pcbnew_temp.py new file mode 100644 index 0000000..9b44505 --- /dev/null +++ b/pcbnew_temp.py @@ -0,0 +1,14917 @@ +# This file was automatically generated by SWIG (http://www.swig.org). +# Version 4.0.0 +# +# Do not make changes to this file unless you know what you are doing--modify +# the SWIG interface file instead. + +from sys import version_info as _swig_python_version_info +if False: + raise RuntimeError('Python 2.7 or later required') + +# Import the low-level C/C++ module +if __package__ or '.' in __name__: + from . import _pcbnew +else: + import _pcbnew + +try: + import builtins as __builtin__ +except ImportError: + import __builtin__ + +def _swig_setattr_nondynamic(self, class_type, name, value, static=1): + if name == "thisown": + return self.this.own(value) + if name == "this": + if type(value).__name__ == 'SwigPyObject': + self.__dict__[name] = value + return + method = class_type.__swig_setmethods__.get(name, None) + if method: + return method(self, value) + if not static: + object.__setattr__(self, name, value) + else: + raise AttributeError("You cannot add attributes to %s" % self) + + +def _swig_setattr(self, class_type, name, value): + return _swig_setattr_nondynamic(self, class_type, name, value, 0) + + +def _swig_getattr(self, class_type, name): + if name == "thisown": + return self.this.own() + method = class_type.__swig_getmethods__.get(name, None) + if method: + return method(self) + raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) + + +def _swig_repr(self): + try: + strthis = "proxy of " + self.this.__repr__() + except __builtin__.Exception: + strthis = "" + return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) + + +def _swig_setattr_nondynamic_instance_variable(set): + def set_instance_attr(self, name, value): + if name == "thisown": + self.this.own(value) + elif name == "this": + set(self, name, value) + elif hasattr(self, name) and isinstance(getattr(type(self), name), property): + set(self, name, value) + else: + raise AttributeError("You cannot add instance attributes to %s" % self) + return set_instance_attr + + +def _swig_setattr_nondynamic_class_variable(set): + def set_class_attr(cls, name, value): + if hasattr(cls, name) and not isinstance(getattr(cls, name), property): + set(cls, name, value) + else: + raise AttributeError("You cannot add class attributes to %s" % cls) + return set_class_attr + + +def _swig_add_metaclass(metaclass): + """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass""" + def wrapper(cls): + return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy()) + return wrapper + + +class _SwigNonDynamicMeta(type): + """Meta class to enforce nondynamic attributes (no new attributes) for a class""" + __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__) + + +class SwigPyIterator(object): + r"""Proxy of C++ swig::SwigPyIterator class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_SwigPyIterator + + def value(self): + r"""value(SwigPyIterator self) -> PyObject *""" + return _pcbnew.SwigPyIterator_value(self) + + def incr(self, n=1): + r"""incr(SwigPyIterator self, size_t n=1) -> SwigPyIterator""" + return _pcbnew.SwigPyIterator_incr(self, n) + + def decr(self, n=1): + r"""decr(SwigPyIterator self, size_t n=1) -> SwigPyIterator""" + return _pcbnew.SwigPyIterator_decr(self, n) + + def distance(self, x): + r"""distance(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t""" + return _pcbnew.SwigPyIterator_distance(self, x) + + def equal(self, x): + r"""equal(SwigPyIterator self, SwigPyIterator x) -> bool""" + return _pcbnew.SwigPyIterator_equal(self, x) + + def copy(self): + r"""copy(SwigPyIterator self) -> SwigPyIterator""" + return _pcbnew.SwigPyIterator_copy(self) + + def next(self): + r"""next(SwigPyIterator self) -> PyObject *""" + return _pcbnew.SwigPyIterator_next(self) + + def __next__(self): + r"""__next__(SwigPyIterator self) -> PyObject *""" + return _pcbnew.SwigPyIterator___next__(self) + + def previous(self): + r"""previous(SwigPyIterator self) -> PyObject *""" + return _pcbnew.SwigPyIterator_previous(self) + + def advance(self, n): + r"""advance(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator""" + return _pcbnew.SwigPyIterator_advance(self, n) + + def __eq__(self, x): + r"""__eq__(SwigPyIterator self, SwigPyIterator x) -> bool""" + return _pcbnew.SwigPyIterator___eq__(self, x) + + def __ne__(self, x): + r"""__ne__(SwigPyIterator self, SwigPyIterator x) -> bool""" + return _pcbnew.SwigPyIterator___ne__(self, x) + + def __iadd__(self, n): + r"""__iadd__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator""" + return _pcbnew.SwigPyIterator___iadd__(self, n) + + def __isub__(self, n): + r"""__isub__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator""" + return _pcbnew.SwigPyIterator___isub__(self, n) + + def __add__(self, n): + r"""__add__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator""" + return _pcbnew.SwigPyIterator___add__(self, n) + + def __sub__(self, *args): + r""" + __sub__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator + __sub__(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t + """ + return _pcbnew.SwigPyIterator___sub__(self, *args) + def __iter__(self): + return self + +# Register SwigPyIterator in _pcbnew: +_pcbnew.SwigPyIterator_swigregister(SwigPyIterator) + +class string(object): + r"""Proxy of C++ std::basic_string< char > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def length(self): + r"""length(string self) -> std::basic_string< char >::size_type""" + return _pcbnew.string_length(self) + + def max_size(self): + r"""max_size(string self) -> std::basic_string< char >::size_type""" + return _pcbnew.string_max_size(self) + + def capacity(self): + r"""capacity(string self) -> std::basic_string< char >::size_type""" + return _pcbnew.string_capacity(self) + + def reserve(self, __res_arg=0): + r"""reserve(string self, std::basic_string< char >::size_type __res_arg=0)""" + return _pcbnew.string_reserve(self, __res_arg) + + def copy(self, __s, __n, __pos=0): + r"""copy(string self, char * __s, std::basic_string< char >::size_type __n, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type""" + return _pcbnew.string_copy(self, __s, __n, __pos) + + def c_str(self): + r"""c_str(string self) -> char const *""" + return _pcbnew.string_c_str(self) + + def find(self, *args): + r""" + find(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type + find(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type + find(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type + """ + return _pcbnew.string_find(self, *args) + + def rfind(self, *args): + r""" + rfind(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type + rfind(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type + rfind(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type + """ + return _pcbnew.string_rfind(self, *args) + + def find_first_of(self, *args): + r""" + find_first_of(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type + find_first_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type + find_first_of(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type + """ + return _pcbnew.string_find_first_of(self, *args) + + def find_last_of(self, *args): + r""" + find_last_of(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type + find_last_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type + find_last_of(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type + """ + return _pcbnew.string_find_last_of(self, *args) + + def find_first_not_of(self, *args): + r""" + find_first_not_of(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type + find_first_not_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type + find_first_not_of(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type + """ + return _pcbnew.string_find_first_not_of(self, *args) + + def find_last_not_of(self, *args): + r""" + find_last_not_of(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type + find_last_not_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type + find_last_not_of(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type + """ + return _pcbnew.string_find_last_not_of(self, *args) + + def substr(self, *args): + r"""substr(string self, std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string""" + return _pcbnew.string_substr(self, *args) + + def empty(self): + r"""empty(string self) -> bool""" + return _pcbnew.string_empty(self) + + def size(self): + r"""size(string self) -> std::basic_string< char >::size_type""" + return _pcbnew.string_size(self) + + def swap(self, v): + r"""swap(string self, string v)""" + return _pcbnew.string_swap(self, v) + + def begin(self): + r"""begin(string self) -> std::basic_string< char >::iterator""" + return _pcbnew.string_begin(self) + + def end(self): + r"""end(string self) -> std::basic_string< char >::iterator""" + return _pcbnew.string_end(self) + + def rbegin(self): + r"""rbegin(string self) -> std::basic_string< char >::reverse_iterator""" + return _pcbnew.string_rbegin(self) + + def rend(self): + r"""rend(string self) -> std::basic_string< char >::reverse_iterator""" + return _pcbnew.string_rend(self) + + def get_allocator(self): + r"""get_allocator(string self) -> std::basic_string< char >::allocator_type""" + return _pcbnew.string_get_allocator(self) + + def erase(self, *args): + r""" + erase(string self, std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string + erase(string self, std::basic_string< char >::iterator pos) -> std::basic_string< char >::iterator + erase(string self, std::basic_string< char >::iterator first, std::basic_string< char >::iterator last) -> std::basic_string< char >::iterator + """ + return _pcbnew.string_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(string self, char const * __s, std::basic_string< char >::size_type __n) -> string + __init__(string self) -> string + __init__(string self, string other) -> string + __init__(string self, std::basic_string< char >::size_type size, std::basic_string< char >::value_type value) -> string + """ + _pcbnew.string_swiginit(self, _pcbnew.new_string(*args)) + + def assign(self, *args): + r""" + assign(string self, string __str) -> string + assign(string self, string __str, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> string + assign(string self, char const * __s, std::basic_string< char >::size_type __n) -> string + assign(string self, std::basic_string< char >::size_type n, std::basic_string< char >::value_type x) + """ + return _pcbnew.string_assign(self, *args) + + def resize(self, *args): + r""" + resize(string self, std::basic_string< char >::size_type new_size) + resize(string self, std::basic_string< char >::size_type new_size, std::basic_string< char >::value_type x) + """ + return _pcbnew.string_resize(self, *args) + + def iterator(self): + r"""iterator(string self) -> SwigPyIterator""" + return _pcbnew.string_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(string self) -> bool""" + return _pcbnew.string___nonzero__(self) + + def __bool__(self): + r"""__bool__(string self) -> bool""" + return _pcbnew.string___bool__(self) + + def __len__(self): + r"""__len__(string self) -> std::basic_string< char >::size_type""" + return _pcbnew.string___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j) -> string""" + return _pcbnew.string___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j) + __setslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j, string v) + """ + return _pcbnew.string___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j)""" + return _pcbnew.string___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(string self, std::basic_string< char >::difference_type i) + __delitem__(string self, PySliceObject * slice) + """ + return _pcbnew.string___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(string self, PySliceObject * slice) -> string + __getitem__(string self, std::basic_string< char >::difference_type i) -> std::basic_string< char >::value_type + """ + return _pcbnew.string___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(string self, PySliceObject * slice, string v) + __setitem__(string self, PySliceObject * slice) + __setitem__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::value_type x) + """ + return _pcbnew.string___setitem__(self, *args) + + def insert(self, *args): + r""" + insert(string self, std::basic_string< char >::size_type __pos1, string __str) -> string + insert(string self, std::basic_string< char >::size_type __pos1, string __str, std::basic_string< char >::size_type __pos2, std::basic_string< char >::size_type __n) -> string + insert(string self, std::basic_string< char >::size_type __pos, char const * __s, std::basic_string< char >::size_type __n) -> string + insert(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, char __c) -> string + insert(string self, std::basic_string< char >::iterator pos, std::basic_string< char >::value_type x) -> std::basic_string< char >::iterator + insert(string self, std::basic_string< char >::iterator pos, std::basic_string< char >::size_type n, std::basic_string< char >::value_type x) + insert(string self, std::basic_string< char >::iterator __p, std::basic_string< char >::size_type __n, char __c) + """ + return _pcbnew.string_insert(self, *args) + + def replace(self, *args): + r""" + replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, string __str) -> string + replace(string self, std::basic_string< char >::size_type __pos1, std::basic_string< char >::size_type __n1, string __str, std::basic_string< char >::size_type __pos2, std::basic_string< char >::size_type __n2) -> string + replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, char const * __s, std::basic_string< char >::size_type __n2) -> string + replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, std::basic_string< char >::size_type __n2, char __c) -> string + replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, string __str) -> string + replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, char const * __s, std::basic_string< char >::size_type __n) -> string + replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, std::basic_string< char >::size_type __n, char __c) -> string + replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, char const * __k1, char const * __k2) -> string + replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, std::basic_string< char >::const_iterator __k1, std::basic_string< char >::const_iterator __k2) -> string + """ + return _pcbnew.string_replace(self, *args) + + def __iadd__(self, v): + r"""__iadd__(string self, string v) -> string""" + return _pcbnew.string___iadd__(self, v) + + def __add__(self, v): + r"""__add__(string self, string v) -> string""" + return _pcbnew.string___add__(self, v) + + def __radd__(self, v): + r"""__radd__(string self, string v) -> string""" + return _pcbnew.string___radd__(self, v) + + def __str__(self): + r"""__str__(string self) -> string""" + return _pcbnew.string___str__(self) + + def __rlshift__(self, out): + r"""__rlshift__(string self, std::basic_ostream< char,std::char_traits< char > > & out) -> std::basic_ostream< char,std::char_traits< char > > &""" + return _pcbnew.string___rlshift__(self, out) + + def __eq__(self, v): + r"""__eq__(string self, string v) -> bool""" + return _pcbnew.string___eq__(self, v) + + def __ne__(self, v): + r"""__ne__(string self, string v) -> bool""" + return _pcbnew.string___ne__(self, v) + + def __gt__(self, v): + r"""__gt__(string self, string v) -> bool""" + return _pcbnew.string___gt__(self, v) + + def __lt__(self, v): + r"""__lt__(string self, string v) -> bool""" + return _pcbnew.string___lt__(self, v) + + def __ge__(self, v): + r"""__ge__(string self, string v) -> bool""" + return _pcbnew.string___ge__(self, v) + + def __le__(self, v): + r"""__le__(string self, string v) -> bool""" + return _pcbnew.string___le__(self, v) + __swig_destroy__ = _pcbnew.delete_string + +# Register string in _pcbnew: +_pcbnew.string_swigregister(string) +cvar = _pcbnew.cvar +string.npos = _pcbnew.cvar.string_npos + +SHARED_PTR_DISOWN = _pcbnew.SHARED_PTR_DISOWN + +class KI_PARAM_ERROR(object): + r"""Proxy of C++ KI_PARAM_ERROR class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(KI_PARAM_ERROR self, wxString aMessage) -> KI_PARAM_ERROR + __init__(KI_PARAM_ERROR self) -> KI_PARAM_ERROR + """ + _pcbnew.KI_PARAM_ERROR_swiginit(self, _pcbnew.new_KI_PARAM_ERROR(*args)) + + def What(self): + r"""What(KI_PARAM_ERROR self) -> wxString""" + return _pcbnew.KI_PARAM_ERROR_What(self) + __swig_destroy__ = _pcbnew.delete_KI_PARAM_ERROR + +# Register KI_PARAM_ERROR in _pcbnew: +_pcbnew.KI_PARAM_ERROR_swigregister(KI_PARAM_ERROR) + +class IO_ERROR(object): + r"""Proxy of C++ IO_ERROR class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(IO_ERROR self, wxString aProblem, char const * aThrowersFile, char const * aThrowersFunction, int aThrowersLineNumber) -> IO_ERROR + __init__(IO_ERROR self) -> IO_ERROR + """ + _pcbnew.IO_ERROR_swiginit(self, _pcbnew.new_IO_ERROR(*args)) + + def init(self, aProblem, aThrowersFile, aThrowersFunction, aThrowersLineNumber): + r"""init(IO_ERROR self, wxString aProblem, char const * aThrowersFile, char const * aThrowersFunction, int aThrowersLineNumber)""" + return _pcbnew.IO_ERROR_init(self, aProblem, aThrowersFile, aThrowersFunction, aThrowersLineNumber) + + def Problem(self): + r"""Problem(IO_ERROR self) -> wxString""" + return _pcbnew.IO_ERROR_Problem(self) + + def Where(self): + r"""Where(IO_ERROR self) -> wxString""" + return _pcbnew.IO_ERROR_Where(self) + + def What(self): + r"""What(IO_ERROR self) -> wxString""" + return _pcbnew.IO_ERROR_What(self) + __swig_destroy__ = _pcbnew.delete_IO_ERROR + +# Register IO_ERROR in _pcbnew: +_pcbnew.IO_ERROR_swigregister(IO_ERROR) + + +def wxSetDefaultPyEncoding(encoding): + r"""wxSetDefaultPyEncoding(char const * encoding)""" + return _pcbnew.wxSetDefaultPyEncoding(encoding) + +def wxGetDefaultPyEncoding(): + r"""wxGetDefaultPyEncoding() -> char const *""" + return _pcbnew.wxGetDefaultPyEncoding() +class wxRect(object): + r"""Proxy of C++ wxRect class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(wxRect self) -> wxRect + __init__(wxRect self, int xx, int yy, int ww, int hh) -> wxRect + __init__(wxRect self, wxPoint topLeft, wxPoint bottomRight) -> wxRect + __init__(wxRect self, wxPoint pt, wxSize size) -> wxRect + __init__(wxRect self, wxSize size) -> wxRect + """ + _pcbnew.wxRect_swiginit(self, _pcbnew.new_wxRect(*args)) + + def GetX(self): + r"""GetX(wxRect self) -> int""" + return _pcbnew.wxRect_GetX(self) + + def SetX(self, xx): + r"""SetX(wxRect self, int xx)""" + return _pcbnew.wxRect_SetX(self, xx) + + def GetY(self): + r"""GetY(wxRect self) -> int""" + return _pcbnew.wxRect_GetY(self) + + def SetY(self, yy): + r"""SetY(wxRect self, int yy)""" + return _pcbnew.wxRect_SetY(self, yy) + + def GetWidth(self): + r"""GetWidth(wxRect self) -> int""" + return _pcbnew.wxRect_GetWidth(self) + + def SetWidth(self, w): + r"""SetWidth(wxRect self, int w)""" + return _pcbnew.wxRect_SetWidth(self, w) + + def GetHeight(self): + r"""GetHeight(wxRect self) -> int""" + return _pcbnew.wxRect_GetHeight(self) + + def SetHeight(self, h): + r"""SetHeight(wxRect self, int h)""" + return _pcbnew.wxRect_SetHeight(self, h) + + def GetPosition(self): + r"""GetPosition(wxRect self) -> wxPoint""" + return _pcbnew.wxRect_GetPosition(self) + + def SetPosition(self, p): + r"""SetPosition(wxRect self, wxPoint p)""" + return _pcbnew.wxRect_SetPosition(self, p) + x = property(_pcbnew.wxRect_x_get, _pcbnew.wxRect_x_set, doc=r"""x : int""") + y = property(_pcbnew.wxRect_y_get, _pcbnew.wxRect_y_set, doc=r"""y : int""") + width = property(_pcbnew.wxRect_width_get, _pcbnew.wxRect_width_set, doc=r"""width : int""") + height = property(_pcbnew.wxRect_height_get, _pcbnew.wxRect_height_set, doc=r"""height : int""") + + def Get(self): + r"""Get(wxRect self) -> PyObject *""" + return _pcbnew.wxRect_Get(self) + + + def __eq__(self,other): + return self.x==other.x and self.y==other.y and self.width==other.width and self.height==other.height + def __str__(self): return str(self.Get()) + def __repr__(self): return 'wxRect'+str(self.Get()) + def __len__(self): return len(self.Get()) + def __getitem__(self, index): return self.Get()[index] + def __setitem__(self, index, val): + if index == 0: self.SetX(val) + elif index == 1: self.SetY(val) + elif index == 2: self.SetWidth(val) + elif index == 3: self.SetHeight(val) + else: raise IndexError + def __nonzero__(self): return self.Get() != (0,0,0,0) + __safe_for_unpickling__ = True + + __swig_destroy__ = _pcbnew.delete_wxRect + +# Register wxRect in _pcbnew: +_pcbnew.wxRect_swigregister(wxRect) + +class wxSize(object): + r"""Proxy of C++ wxSize class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + x = property(_pcbnew.wxSize_x_get, _pcbnew.wxSize_x_set, doc=r"""x : int""") + y = property(_pcbnew.wxSize_y_get, _pcbnew.wxSize_y_set, doc=r"""y : int""") + + def __init__(self, *args): + r""" + __init__(wxSize self, int xx, int yy) -> wxSize + __init__(wxSize self, double xx, double yy) -> wxSize + """ + _pcbnew.wxSize_swiginit(self, _pcbnew.new_wxSize(*args)) + + def Get(self): + r"""Get(wxSize self) -> PyObject *""" + return _pcbnew.wxSize_Get(self) + __swig_destroy__ = _pcbnew.delete_wxSize + + def SetWidth(self, w): + r"""SetWidth(wxSize self, int w)""" + return _pcbnew.wxSize_SetWidth(self, w) + + def SetHeight(self, h): + r"""SetHeight(wxSize self, int h)""" + return _pcbnew.wxSize_SetHeight(self, h) + + def GetWidth(self): + r"""GetWidth(wxSize self) -> int""" + return _pcbnew.wxSize_GetWidth(self) + + def GetHeight(self): + r"""GetHeight(wxSize self) -> int""" + return _pcbnew.wxSize_GetHeight(self) + + def Scale(self,xscale,yscale): + return wxSize(self.x*xscale,self.y*yscale) + def __eq__(self,other): + return self.GetWidth()==other.GetWidth() and self.GetHeight()==other.GetHeight() + def __str__(self): return str(self.Get()) + def __repr__(self): return 'wxSize'+str(self.Get()) + def __len__(self): return len(self.Get()) + def __getitem__(self, index): return self.Get()[index] + def __setitem__(self, index, val): + if index == 0: self.SetWidth(val) + elif index == 1: self.SetHeight(val) + else: raise IndexError + def __nonzero__(self): return self.Get() != (0,0) + __safe_for_unpickling__ = True + + + +# Register wxSize in _pcbnew: +_pcbnew.wxSize_swigregister(wxSize) + +class wxPoint(object): + r"""Proxy of C++ wxPoint class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + x = property(_pcbnew.wxPoint_x_get, _pcbnew.wxPoint_x_set, doc=r"""x : int""") + y = property(_pcbnew.wxPoint_y_get, _pcbnew.wxPoint_y_set, doc=r"""y : int""") + + def __init__(self, *args): + r""" + __init__(wxPoint self, int xx, int yy) -> wxPoint + __init__(wxPoint self, double xx, double yy) -> wxPoint + """ + _pcbnew.wxPoint_swiginit(self, _pcbnew.new_wxPoint(*args)) + __swig_destroy__ = _pcbnew.delete_wxPoint + + def __add__(self, pt): + r"""__add__(wxPoint self, wxPoint pt) -> wxPoint""" + return _pcbnew.wxPoint___add__(self, pt) + + def __sub__(self, pt): + r"""__sub__(wxPoint self, wxPoint pt) -> wxPoint""" + return _pcbnew.wxPoint___sub__(self, pt) + + def Set(self, x, y): + r"""Set(wxPoint self, long x, long y)""" + return _pcbnew.wxPoint_Set(self, x, y) + + def Get(self): + r"""Get(wxPoint self) -> PyObject *""" + return _pcbnew.wxPoint_Get(self) + + def __eq__(self,other): return (self.x==other.x and self.y==other.y) + def __ne__(self,other): return not (self==other) + def __str__(self): return str(self.Get()) + def __repr__(self): return 'wxPoint'+str(self.Get()) + def __len__(self): return len(self.Get()) + def __getitem__(self, index): return self.Get()[index] + def __setitem__(self, index, val): + if index == 0: + self.x = val + elif index == 1: + self.y = val + else: + raise IndexError + def __nonzero__(self): return self.Get() != (0,0) + + + +# Register wxPoint in _pcbnew: +_pcbnew.wxPoint_swigregister(wxPoint) + +class wxString(object): + r"""Proxy of C++ wxString class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_wxString + + def __str__(self): + r"""__str__(wxString self) -> PyObject *""" + return _pcbnew.wxString___str__(self) + + def __repr__(self): return 'wxString(\'' + self.__str__() + '\')' + + + def __init__(self): + r"""__init__(wxString self) -> wxString""" + _pcbnew.wxString_swiginit(self, _pcbnew.new_wxString()) + +# Register wxString in _pcbnew: +_pcbnew.wxString_swigregister(wxString) + +class wxPoint_Vector(object): + r"""Proxy of C++ std::vector< wxPoint > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(wxPoint_Vector self) -> SwigPyIterator""" + return _pcbnew.wxPoint_Vector_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(wxPoint_Vector self) -> bool""" + return _pcbnew.wxPoint_Vector___nonzero__(self) + + def __bool__(self): + r"""__bool__(wxPoint_Vector self) -> bool""" + return _pcbnew.wxPoint_Vector___bool__(self) + + def __len__(self): + r"""__len__(wxPoint_Vector self) -> std::vector< wxPoint >::size_type""" + return _pcbnew.wxPoint_Vector___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(wxPoint_Vector self, std::vector< wxPoint >::difference_type i, std::vector< wxPoint >::difference_type j) -> wxPoint_Vector""" + return _pcbnew.wxPoint_Vector___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(wxPoint_Vector self, std::vector< wxPoint >::difference_type i, std::vector< wxPoint >::difference_type j) + __setslice__(wxPoint_Vector self, std::vector< wxPoint >::difference_type i, std::vector< wxPoint >::difference_type j, wxPoint_Vector v) + """ + return _pcbnew.wxPoint_Vector___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(wxPoint_Vector self, std::vector< wxPoint >::difference_type i, std::vector< wxPoint >::difference_type j)""" + return _pcbnew.wxPoint_Vector___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(wxPoint_Vector self, std::vector< wxPoint >::difference_type i) + __delitem__(wxPoint_Vector self, PySliceObject * slice) + """ + return _pcbnew.wxPoint_Vector___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(wxPoint_Vector self, PySliceObject * slice) -> wxPoint_Vector + __getitem__(wxPoint_Vector self, std::vector< wxPoint >::difference_type i) -> wxPoint + """ + return _pcbnew.wxPoint_Vector___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(wxPoint_Vector self, PySliceObject * slice, wxPoint_Vector v) + __setitem__(wxPoint_Vector self, PySliceObject * slice) + __setitem__(wxPoint_Vector self, std::vector< wxPoint >::difference_type i, wxPoint x) + """ + return _pcbnew.wxPoint_Vector___setitem__(self, *args) + + def pop(self): + r"""pop(wxPoint_Vector self) -> wxPoint""" + return _pcbnew.wxPoint_Vector_pop(self) + + def append(self, x): + r"""append(wxPoint_Vector self, wxPoint x)""" + return _pcbnew.wxPoint_Vector_append(self, x) + + def empty(self): + r"""empty(wxPoint_Vector self) -> bool""" + return _pcbnew.wxPoint_Vector_empty(self) + + def size(self): + r"""size(wxPoint_Vector self) -> std::vector< wxPoint >::size_type""" + return _pcbnew.wxPoint_Vector_size(self) + + def swap(self, v): + r"""swap(wxPoint_Vector self, wxPoint_Vector v)""" + return _pcbnew.wxPoint_Vector_swap(self, v) + + def begin(self): + r"""begin(wxPoint_Vector self) -> std::vector< wxPoint >::iterator""" + return _pcbnew.wxPoint_Vector_begin(self) + + def end(self): + r"""end(wxPoint_Vector self) -> std::vector< wxPoint >::iterator""" + return _pcbnew.wxPoint_Vector_end(self) + + def rbegin(self): + r"""rbegin(wxPoint_Vector self) -> std::vector< wxPoint >::reverse_iterator""" + return _pcbnew.wxPoint_Vector_rbegin(self) + + def rend(self): + r"""rend(wxPoint_Vector self) -> std::vector< wxPoint >::reverse_iterator""" + return _pcbnew.wxPoint_Vector_rend(self) + + def clear(self): + r"""clear(wxPoint_Vector self)""" + return _pcbnew.wxPoint_Vector_clear(self) + + def get_allocator(self): + r"""get_allocator(wxPoint_Vector self) -> std::vector< wxPoint >::allocator_type""" + return _pcbnew.wxPoint_Vector_get_allocator(self) + + def pop_back(self): + r"""pop_back(wxPoint_Vector self)""" + return _pcbnew.wxPoint_Vector_pop_back(self) + + def erase(self, *args): + r""" + erase(wxPoint_Vector self, std::vector< wxPoint >::iterator pos) -> std::vector< wxPoint >::iterator + erase(wxPoint_Vector self, std::vector< wxPoint >::iterator first, std::vector< wxPoint >::iterator last) -> std::vector< wxPoint >::iterator + """ + return _pcbnew.wxPoint_Vector_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(wxPoint_Vector self) -> wxPoint_Vector + __init__(wxPoint_Vector self, wxPoint_Vector other) -> wxPoint_Vector + __init__(wxPoint_Vector self, std::vector< wxPoint >::size_type size) -> wxPoint_Vector + __init__(wxPoint_Vector self, std::vector< wxPoint >::size_type size, wxPoint value) -> wxPoint_Vector + """ + _pcbnew.wxPoint_Vector_swiginit(self, _pcbnew.new_wxPoint_Vector(*args)) + + def push_back(self, x): + r"""push_back(wxPoint_Vector self, wxPoint x)""" + return _pcbnew.wxPoint_Vector_push_back(self, x) + + def front(self): + r"""front(wxPoint_Vector self) -> wxPoint""" + return _pcbnew.wxPoint_Vector_front(self) + + def back(self): + r"""back(wxPoint_Vector self) -> wxPoint""" + return _pcbnew.wxPoint_Vector_back(self) + + def assign(self, n, x): + r"""assign(wxPoint_Vector self, std::vector< wxPoint >::size_type n, wxPoint x)""" + return _pcbnew.wxPoint_Vector_assign(self, n, x) + + def resize(self, *args): + r""" + resize(wxPoint_Vector self, std::vector< wxPoint >::size_type new_size) + resize(wxPoint_Vector self, std::vector< wxPoint >::size_type new_size, wxPoint x) + """ + return _pcbnew.wxPoint_Vector_resize(self, *args) + + def insert(self, *args): + r""" + insert(wxPoint_Vector self, std::vector< wxPoint >::iterator pos, wxPoint x) -> std::vector< wxPoint >::iterator + insert(wxPoint_Vector self, std::vector< wxPoint >::iterator pos, std::vector< wxPoint >::size_type n, wxPoint x) + """ + return _pcbnew.wxPoint_Vector_insert(self, *args) + + def reserve(self, n): + r"""reserve(wxPoint_Vector self, std::vector< wxPoint >::size_type n)""" + return _pcbnew.wxPoint_Vector_reserve(self, n) + + def capacity(self): + r"""capacity(wxPoint_Vector self) -> std::vector< wxPoint >::size_type""" + return _pcbnew.wxPoint_Vector_capacity(self) + __swig_destroy__ = _pcbnew.delete_wxPoint_Vector + +# Register wxPoint_Vector in _pcbnew: +_pcbnew.wxPoint_Vector_swigregister(wxPoint_Vector) + + +def FROM_UTF8(cstring): + r"""FROM_UTF8(char const * cstring) -> wxString""" + return _pcbnew.FROM_UTF8(cstring) + +def AccumulateDescription(aDesc, aItem): + r"""AccumulateDescription(wxString aDesc, wxString aItem)""" + return _pcbnew.AccumulateDescription(aDesc, aItem) + +def GetChars(s): + r"""GetChars(wxString s) -> wxChar const *""" + return _pcbnew.GetChars(s) +NOT_USED = _pcbnew.NOT_USED + +EOT = _pcbnew.EOT + +TYPE_NOT_INIT = _pcbnew.TYPE_NOT_INIT + +PCB_T = _pcbnew.PCB_T + +SCREEN_T = _pcbnew.SCREEN_T + +PCB_MODULE_T = _pcbnew.PCB_MODULE_T + +PCB_PAD_T = _pcbnew.PCB_PAD_T + +PCB_LINE_T = _pcbnew.PCB_LINE_T + +PCB_TEXT_T = _pcbnew.PCB_TEXT_T + +PCB_MODULE_TEXT_T = _pcbnew.PCB_MODULE_TEXT_T + +PCB_MODULE_EDGE_T = _pcbnew.PCB_MODULE_EDGE_T + +PCB_TRACE_T = _pcbnew.PCB_TRACE_T + +PCB_VIA_T = _pcbnew.PCB_VIA_T + +PCB_MARKER_T = _pcbnew.PCB_MARKER_T + +PCB_DIMENSION_T = _pcbnew.PCB_DIMENSION_T + +PCB_TARGET_T = _pcbnew.PCB_TARGET_T + +PCB_ZONE_AREA_T = _pcbnew.PCB_ZONE_AREA_T + +PCB_ITEM_LIST_T = _pcbnew.PCB_ITEM_LIST_T + +PCB_NETINFO_T = _pcbnew.PCB_NETINFO_T + +SCH_MARKER_T = _pcbnew.SCH_MARKER_T + +SCH_JUNCTION_T = _pcbnew.SCH_JUNCTION_T + +SCH_NO_CONNECT_T = _pcbnew.SCH_NO_CONNECT_T + +SCH_BUS_WIRE_ENTRY_T = _pcbnew.SCH_BUS_WIRE_ENTRY_T + +SCH_BUS_BUS_ENTRY_T = _pcbnew.SCH_BUS_BUS_ENTRY_T + +SCH_LINE_T = _pcbnew.SCH_LINE_T + +SCH_BITMAP_T = _pcbnew.SCH_BITMAP_T + +SCH_TEXT_T = _pcbnew.SCH_TEXT_T + +SCH_LABEL_T = _pcbnew.SCH_LABEL_T + +SCH_GLOBAL_LABEL_T = _pcbnew.SCH_GLOBAL_LABEL_T + +SCH_HIER_LABEL_T = _pcbnew.SCH_HIER_LABEL_T + +SCH_FIELD_T = _pcbnew.SCH_FIELD_T + +SCH_COMPONENT_T = _pcbnew.SCH_COMPONENT_T + +SCH_SHEET_PIN_T = _pcbnew.SCH_SHEET_PIN_T + +SCH_SHEET_T = _pcbnew.SCH_SHEET_T + +SCH_PIN_T = _pcbnew.SCH_PIN_T + +SCH_FIELD_LOCATE_REFERENCE_T = _pcbnew.SCH_FIELD_LOCATE_REFERENCE_T + +SCH_FIELD_LOCATE_VALUE_T = _pcbnew.SCH_FIELD_LOCATE_VALUE_T + +SCH_FIELD_LOCATE_FOOTPRINT_T = _pcbnew.SCH_FIELD_LOCATE_FOOTPRINT_T + +SCH_FIELD_LOCATE_DATASHEET_T = _pcbnew.SCH_FIELD_LOCATE_DATASHEET_T + +SCH_LINE_LOCATE_WIRE_T = _pcbnew.SCH_LINE_LOCATE_WIRE_T + +SCH_LINE_LOCATE_BUS_T = _pcbnew.SCH_LINE_LOCATE_BUS_T + +SCH_LINE_LOCATE_GRAPHIC_LINE_T = _pcbnew.SCH_LINE_LOCATE_GRAPHIC_LINE_T + +SCH_LABEL_LOCATE_WIRE_T = _pcbnew.SCH_LABEL_LOCATE_WIRE_T + +SCH_LABEL_LOCATE_BUS_T = _pcbnew.SCH_LABEL_LOCATE_BUS_T + +SCH_LOCATE_ANY_T = _pcbnew.SCH_LOCATE_ANY_T + +SCH_SCREEN_T = _pcbnew.SCH_SCREEN_T + +LIB_PART_T = _pcbnew.LIB_PART_T + +LIB_ALIAS_T = _pcbnew.LIB_ALIAS_T + +LIB_ARC_T = _pcbnew.LIB_ARC_T + +LIB_CIRCLE_T = _pcbnew.LIB_CIRCLE_T + +LIB_TEXT_T = _pcbnew.LIB_TEXT_T + +LIB_RECTANGLE_T = _pcbnew.LIB_RECTANGLE_T + +LIB_POLYLINE_T = _pcbnew.LIB_POLYLINE_T + +LIB_BEZIER_T = _pcbnew.LIB_BEZIER_T + +LIB_PIN_T = _pcbnew.LIB_PIN_T + +LIB_FIELD_T = _pcbnew.LIB_FIELD_T + +GERBER_LAYOUT_T = _pcbnew.GERBER_LAYOUT_T + +GERBER_DRAW_ITEM_T = _pcbnew.GERBER_DRAW_ITEM_T + +GERBER_IMAGE_LIST_T = _pcbnew.GERBER_IMAGE_LIST_T + +GERBER_IMAGE_T = _pcbnew.GERBER_IMAGE_T + +WSG_LINE_T = _pcbnew.WSG_LINE_T + +WSG_RECT_T = _pcbnew.WSG_RECT_T + +WSG_POLY_T = _pcbnew.WSG_POLY_T + +WSG_TEXT_T = _pcbnew.WSG_TEXT_T + +WSG_BITMAP_T = _pcbnew.WSG_BITMAP_T + +WSG_PAGE_T = _pcbnew.WSG_PAGE_T + +WS_PROXY_UNDO_ITEM_T = _pcbnew.WS_PROXY_UNDO_ITEM_T + +WS_PROXY_UNDO_ITEM_PLUS_T = _pcbnew.WS_PROXY_UNDO_ITEM_PLUS_T + +SYMBOL_LIB_TABLE_T = _pcbnew.SYMBOL_LIB_TABLE_T + +FP_LIB_TABLE_T = _pcbnew.FP_LIB_TABLE_T + +PART_LIBS_T = _pcbnew.PART_LIBS_T + +SEARCH_STACK_T = _pcbnew.SEARCH_STACK_T + +CACHE_WRAPPER_T = _pcbnew.CACHE_WRAPPER_T + +MAX_STRUCT_TYPE_ID = _pcbnew.MAX_STRUCT_TYPE_ID + +NO_FILL = _pcbnew.NO_FILL + +FILLED_SHAPE = _pcbnew.FILLED_SHAPE + +FILLED_WITH_BG_BODYCOLOR = _pcbnew.FILLED_WITH_BG_BODYCOLOR + +SEARCH_QUIT = _pcbnew.SEARCH_QUIT + +SEARCH_CONTINUE = _pcbnew.SEARCH_CONTINUE + +IS_CHANGED = _pcbnew.IS_CHANGED + +IS_LINKED = _pcbnew.IS_LINKED + +IN_EDIT = _pcbnew.IN_EDIT + +IS_MOVED = _pcbnew.IS_MOVED + +IS_NEW = _pcbnew.IS_NEW + +IS_RESIZED = _pcbnew.IS_RESIZED + +IS_DRAGGED = _pcbnew.IS_DRAGGED + +IS_DELETED = _pcbnew.IS_DELETED + +IS_WIRE_IMAGE = _pcbnew.IS_WIRE_IMAGE + +STARTPOINT = _pcbnew.STARTPOINT + +ENDPOINT = _pcbnew.ENDPOINT + +SELECTED = _pcbnew.SELECTED + +SELECTEDNODE = _pcbnew.SELECTEDNODE + +STRUCT_DELETED = _pcbnew.STRUCT_DELETED + +CANDIDATE = _pcbnew.CANDIDATE + +SKIP_STRUCT = _pcbnew.SKIP_STRUCT + +DO_NOT_DRAW = _pcbnew.DO_NOT_DRAW + +IS_PASTED = _pcbnew.IS_PASTED + +TRACK_LOCKED = _pcbnew.TRACK_LOCKED + +TRACK_AR = _pcbnew.TRACK_AR + +FLAG1 = _pcbnew.FLAG1 + +FLAG0 = _pcbnew.FLAG0 + +BEGIN_ONPAD = _pcbnew.BEGIN_ONPAD + +END_ONPAD = _pcbnew.END_ONPAD + +BUSY = _pcbnew.BUSY + +HIGHLIGHTED = _pcbnew.HIGHLIGHTED + +BRIGHTENED = _pcbnew.BRIGHTENED + +DP_COUPLED = _pcbnew.DP_COUPLED + +UR_TRANSIENT = _pcbnew.UR_TRANSIENT + +IS_DANGLING = _pcbnew.IS_DANGLING + +EDA_ITEM_ALL_FLAGS = _pcbnew.EDA_ITEM_ALL_FLAGS + +class EDA_ITEM(object): + r"""Proxy of C++ EDA_ITEM class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_EDA_ITEM + + def Type(self): + r"""Type(EDA_ITEM self) -> KICAD_T""" + return _pcbnew.EDA_ITEM_Type(self) + + def SetTimeStamp(self, aNewTimeStamp): + r"""SetTimeStamp(EDA_ITEM self, timestamp_t aNewTimeStamp)""" + return _pcbnew.EDA_ITEM_SetTimeStamp(self, aNewTimeStamp) + + def GetTimeStamp(self): + r"""GetTimeStamp(EDA_ITEM self) -> timestamp_t""" + return _pcbnew.EDA_ITEM_GetTimeStamp(self) + + def Next(self): + r"""Next(EDA_ITEM self) -> EDA_ITEM""" + return _pcbnew.EDA_ITEM_Next(self) + + def Back(self): + r"""Back(EDA_ITEM self) -> EDA_ITEM""" + return _pcbnew.EDA_ITEM_Back(self) + + def GetParent(self): + r"""GetParent(EDA_ITEM self) -> EDA_ITEM""" + return _pcbnew.EDA_ITEM_GetParent(self) + + def GetList(self): + r"""GetList(EDA_ITEM self) -> DHEAD *""" + return _pcbnew.EDA_ITEM_GetList(self) + + def SetParent(self, aParent): + r"""SetParent(EDA_ITEM self, EDA_ITEM aParent)""" + return _pcbnew.EDA_ITEM_SetParent(self, aParent) + + def SetList(self, aList): + r"""SetList(EDA_ITEM self, DHEAD * aList)""" + return _pcbnew.EDA_ITEM_SetList(self, aList) + + def IsNew(self): + r"""IsNew(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsNew(self) + + def IsModified(self): + r"""IsModified(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsModified(self) + + def IsMoving(self): + r"""IsMoving(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsMoving(self) + + def IsDragging(self): + r"""IsDragging(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsDragging(self) + + def IsWireImage(self): + r"""IsWireImage(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsWireImage(self) + + def IsSelected(self): + r"""IsSelected(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsSelected(self) + + def IsResized(self): + r"""IsResized(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsResized(self) + + def IsHighlighted(self): + r"""IsHighlighted(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsHighlighted(self) + + def IsBrightened(self): + r"""IsBrightened(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsBrightened(self) + + def SetWireImage(self): + r"""SetWireImage(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_SetWireImage(self) + + def SetSelected(self): + r"""SetSelected(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_SetSelected(self) + + def SetHighlighted(self): + r"""SetHighlighted(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_SetHighlighted(self) + + def SetBrightened(self): + r"""SetBrightened(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_SetBrightened(self) + + def ClearSelected(self): + r"""ClearSelected(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_ClearSelected(self) + + def ClearHighlighted(self): + r"""ClearHighlighted(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_ClearHighlighted(self) + + def ClearBrightened(self): + r"""ClearBrightened(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_ClearBrightened(self) + + def SetModified(self): + r"""SetModified(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_SetModified(self) + + def GetState(self, type): + r"""GetState(EDA_ITEM self, int type) -> int""" + return _pcbnew.EDA_ITEM_GetState(self, type) + + def SetState(self, type, state): + r"""SetState(EDA_ITEM self, int type, int state)""" + return _pcbnew.EDA_ITEM_SetState(self, type, state) + + def GetStatus(self): + r"""GetStatus(EDA_ITEM self) -> STATUS_FLAGS""" + return _pcbnew.EDA_ITEM_GetStatus(self) + + def SetStatus(self, aStatus): + r"""SetStatus(EDA_ITEM self, STATUS_FLAGS aStatus)""" + return _pcbnew.EDA_ITEM_SetStatus(self, aStatus) + + def SetFlags(self, aMask): + r"""SetFlags(EDA_ITEM self, STATUS_FLAGS aMask)""" + return _pcbnew.EDA_ITEM_SetFlags(self, aMask) + + def ClearFlags(self, aMask=-1): + r"""ClearFlags(EDA_ITEM self, STATUS_FLAGS aMask=-1)""" + return _pcbnew.EDA_ITEM_ClearFlags(self, aMask) + + def GetFlags(self): + r"""GetFlags(EDA_ITEM self) -> STATUS_FLAGS""" + return _pcbnew.EDA_ITEM_GetFlags(self) + + def GetEditFlags(self): + r"""GetEditFlags(EDA_ITEM self) -> STATUS_FLAGS""" + return _pcbnew.EDA_ITEM_GetEditFlags(self) + + def ClearTempFlags(self): + r"""ClearTempFlags(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_ClearTempFlags(self) + + def ClearEditFlags(self): + r"""ClearEditFlags(EDA_ITEM self)""" + return _pcbnew.EDA_ITEM_ClearEditFlags(self) + + def IsType(self, aScanTypes): + r"""IsType(EDA_ITEM self, KICAD_T const [] aScanTypes) -> bool""" + return _pcbnew.EDA_ITEM_IsType(self, aScanTypes) + + def SetForceVisible(self, aEnable): + r"""SetForceVisible(EDA_ITEM self, bool aEnable)""" + return _pcbnew.EDA_ITEM_SetForceVisible(self, aEnable) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(EDA_ITEM self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.EDA_ITEM_GetMsgPanelInfo(self, aUnits, aList) + + def HitTest(self, *args): + r""" + HitTest(EDA_ITEM self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(EDA_ITEM self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.EDA_ITEM_HitTest(self, *args) + + def GetBoundingBox(self): + r"""GetBoundingBox(EDA_ITEM self) -> EDA_RECT""" + return _pcbnew.EDA_ITEM_GetBoundingBox(self) + + def Clone(self): + r"""Clone(EDA_ITEM self) -> EDA_ITEM""" + return _pcbnew.EDA_ITEM_Clone(self) + + def Visit(self, inspector, testData, scanTypes): + r"""Visit(EDA_ITEM self, INSPECTOR inspector, void * testData, KICAD_T const [] scanTypes) -> SEARCH_RESULT""" + return _pcbnew.EDA_ITEM_Visit(self, inspector, testData, scanTypes) + + @staticmethod + def IterateForward(listStart, inspector, testData, scanTypes): + r"""IterateForward(EDA_ITEM listStart, INSPECTOR inspector, void * testData, KICAD_T const [] scanTypes) -> SEARCH_RESULT""" + return _pcbnew.EDA_ITEM_IterateForward(listStart, inspector, testData, scanTypes) + + def GetClass(self): + r"""GetClass(EDA_ITEM self) -> wxString""" + return _pcbnew.EDA_ITEM_GetClass(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(EDA_ITEM self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.EDA_ITEM_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(EDA_ITEM self) -> BITMAP_DEF""" + return _pcbnew.EDA_ITEM_GetMenuImage(self) + + def Matches(self, aSearchData, aAuxData): + r"""Matches(EDA_ITEM self, wxFindReplaceData & aSearchData, void * aAuxData) -> bool""" + return _pcbnew.EDA_ITEM_Matches(self, aSearchData, aAuxData) + + def Replace(self, *args): + r""" + Replace(EDA_ITEM self, wxFindReplaceData & aSearchData, wxString aText) -> bool + Replace(EDA_ITEM self, wxFindReplaceData & aSearchData, void * aAuxData=None) -> bool + """ + return _pcbnew.EDA_ITEM_Replace(self, *args) + + def IsReplaceable(self): + r"""IsReplaceable(EDA_ITEM self) -> bool""" + return _pcbnew.EDA_ITEM_IsReplaceable(self) + + def __lt__(self, aItem): + r"""__lt__(EDA_ITEM self, EDA_ITEM aItem) -> bool""" + return _pcbnew.EDA_ITEM___lt__(self, aItem) + + @staticmethod + def Sort(aLeft, aRight): + r"""Sort(EDA_ITEM aLeft, EDA_ITEM aRight) -> bool""" + return _pcbnew.EDA_ITEM_Sort(aLeft, aRight) + + def ViewBBox(self): + r"""ViewBBox(EDA_ITEM self) -> BOX2I const""" + return _pcbnew.EDA_ITEM_ViewBBox(self) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(EDA_ITEM self, int [] aLayers, int & aCount)""" + return _pcbnew.EDA_ITEM_ViewGetLayers(self, aLayers, aCount) + +# Register EDA_ITEM in _pcbnew: +_pcbnew.EDA_ITEM_swigregister(EDA_ITEM) + +def EDA_ITEM_IterateForward(listStart, inspector, testData, scanTypes): + r"""EDA_ITEM_IterateForward(EDA_ITEM listStart, INSPECTOR inspector, void * testData, KICAD_T const [] scanTypes) -> SEARCH_RESULT""" + return _pcbnew.EDA_ITEM_IterateForward(listStart, inspector, testData, scanTypes) + +def EDA_ITEM_Sort(aLeft, aRight): + r"""EDA_ITEM_Sort(EDA_ITEM aLeft, EDA_ITEM aRight) -> bool""" + return _pcbnew.EDA_ITEM_Sort(aLeft, aRight) + + +def new_clone(aItem): + r"""new_clone(EDA_ITEM aItem) -> EDA_ITEM""" + return _pcbnew.new_clone(aItem) +class EDA_RECT(object): + r"""Proxy of C++ EDA_RECT class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(EDA_RECT self) -> EDA_RECT + __init__(EDA_RECT self, wxPoint aPos, wxSize aSize) -> EDA_RECT + """ + _pcbnew.EDA_RECT_swiginit(self, _pcbnew.new_EDA_RECT(*args)) + __swig_destroy__ = _pcbnew.delete_EDA_RECT + + def Centre(self): + r"""Centre(EDA_RECT self) -> wxPoint""" + return _pcbnew.EDA_RECT_Centre(self) + + def Move(self, aMoveVector): + r"""Move(EDA_RECT self, wxPoint aMoveVector)""" + return _pcbnew.EDA_RECT_Move(self, aMoveVector) + + def Normalize(self): + r"""Normalize(EDA_RECT self)""" + return _pcbnew.EDA_RECT_Normalize(self) + + def Contains(self, *args): + r""" + Contains(EDA_RECT self, wxPoint aPoint) -> bool + Contains(EDA_RECT self, int x, int y) -> bool + Contains(EDA_RECT self, EDA_RECT aRect) -> bool + """ + return _pcbnew.EDA_RECT_Contains(self, *args) + + def GetSize(self): + r"""GetSize(EDA_RECT self) -> wxSize""" + return _pcbnew.EDA_RECT_GetSize(self) + + def GetSizeMax(self): + r"""GetSizeMax(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetSizeMax(self) + + def GetX(self): + r"""GetX(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetX(self) + + def GetY(self): + r"""GetY(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetY(self) + + def GetOrigin(self): + r"""GetOrigin(EDA_RECT self) -> wxPoint""" + return _pcbnew.EDA_RECT_GetOrigin(self) + + def GetPosition(self): + r"""GetPosition(EDA_RECT self) -> wxPoint""" + return _pcbnew.EDA_RECT_GetPosition(self) + + def GetEnd(self): + r"""GetEnd(EDA_RECT self) -> wxPoint""" + return _pcbnew.EDA_RECT_GetEnd(self) + + def GetCenter(self): + r"""GetCenter(EDA_RECT self) -> wxPoint""" + return _pcbnew.EDA_RECT_GetCenter(self) + + def GetWidth(self): + r"""GetWidth(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetWidth(self) + + def GetHeight(self): + r"""GetHeight(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetHeight(self) + + def GetRight(self): + r"""GetRight(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetRight(self) + + def GetLeft(self): + r"""GetLeft(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetLeft(self) + + def GetTop(self): + r"""GetTop(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetTop(self) + + def GetBottom(self): + r"""GetBottom(EDA_RECT self) -> int""" + return _pcbnew.EDA_RECT_GetBottom(self) + + def SetOrigin(self, *args): + r""" + SetOrigin(EDA_RECT self, wxPoint pos) + SetOrigin(EDA_RECT self, int x, int y) + """ + return _pcbnew.EDA_RECT_SetOrigin(self, *args) + + def SetSize(self, *args): + r""" + SetSize(EDA_RECT self, wxSize size) + SetSize(EDA_RECT self, int w, int h) + """ + return _pcbnew.EDA_RECT_SetSize(self, *args) + + def Offset(self, *args): + r""" + Offset(EDA_RECT self, int dx, int dy) + Offset(EDA_RECT self, wxPoint offset) + """ + return _pcbnew.EDA_RECT_Offset(self, *args) + + def SetX(self, val): + r"""SetX(EDA_RECT self, int val)""" + return _pcbnew.EDA_RECT_SetX(self, val) + + def SetY(self, val): + r"""SetY(EDA_RECT self, int val)""" + return _pcbnew.EDA_RECT_SetY(self, val) + + def SetWidth(self, val): + r"""SetWidth(EDA_RECT self, int val)""" + return _pcbnew.EDA_RECT_SetWidth(self, val) + + def SetHeight(self, val): + r"""SetHeight(EDA_RECT self, int val)""" + return _pcbnew.EDA_RECT_SetHeight(self, val) + + def SetEnd(self, *args): + r""" + SetEnd(EDA_RECT self, int x, int y) + SetEnd(EDA_RECT self, wxPoint pos) + """ + return _pcbnew.EDA_RECT_SetEnd(self, *args) + + def RevertYAxis(self): + r"""RevertYAxis(EDA_RECT self)""" + return _pcbnew.EDA_RECT_RevertYAxis(self) + + def Intersects(self, *args): + r""" + Intersects(EDA_RECT self, EDA_RECT aRect) -> bool + Intersects(EDA_RECT self, EDA_RECT aRect, double aRot) -> bool + Intersects(EDA_RECT self, wxPoint aPoint1, wxPoint aPoint2) -> bool + """ + return _pcbnew.EDA_RECT_Intersects(self, *args) + + def ClosestPointTo(self, aPoint): + r"""ClosestPointTo(EDA_RECT self, wxPoint aPoint) -> wxPoint""" + return _pcbnew.EDA_RECT_ClosestPointTo(self, aPoint) + + def FarthestPointTo(self, aPoint): + r"""FarthestPointTo(EDA_RECT self, wxPoint aPoint) -> wxPoint""" + return _pcbnew.EDA_RECT_FarthestPointTo(self, aPoint) + + def IntersectsCircle(self, aCenter, aRadius): + r"""IntersectsCircle(EDA_RECT self, wxPoint aCenter, int const aRadius) -> bool""" + return _pcbnew.EDA_RECT_IntersectsCircle(self, aCenter, aRadius) + + def IntersectsCircleEdge(self, aCenter, aRadius, aWidth): + r"""IntersectsCircleEdge(EDA_RECT self, wxPoint aCenter, int const aRadius, int const aWidth) -> bool""" + return _pcbnew.EDA_RECT_IntersectsCircleEdge(self, aCenter, aRadius, aWidth) + + def getWxRect(self): + r"""getWxRect(EDA_RECT self) -> wxRect""" + return _pcbnew.EDA_RECT_getWxRect(self) + + def getBOX2I(self): + r"""getBOX2I(EDA_RECT self) -> BOX2I""" + return _pcbnew.EDA_RECT_getBOX2I(self) + + def Inflate(self, *args): + r""" + Inflate(EDA_RECT self, wxCoord dx, wxCoord dy) -> EDA_RECT + Inflate(EDA_RECT self, int aDelta) -> EDA_RECT + """ + return _pcbnew.EDA_RECT_Inflate(self, *args) + + def Merge(self, *args): + r""" + Merge(EDA_RECT self, EDA_RECT aRect) + Merge(EDA_RECT self, wxPoint aPoint) + """ + return _pcbnew.EDA_RECT_Merge(self, *args) + + def GetArea(self): + r"""GetArea(EDA_RECT self) -> double""" + return _pcbnew.EDA_RECT_GetArea(self) + + def Common(self, aRect): + r"""Common(EDA_RECT self, EDA_RECT aRect) -> EDA_RECT""" + return _pcbnew.EDA_RECT_Common(self, aRect) + + def GetBoundingBoxRotated(self, aRotCenter, aAngle): + r"""GetBoundingBoxRotated(EDA_RECT self, wxPoint aRotCenter, double aAngle) -> EDA_RECT""" + return _pcbnew.EDA_RECT_GetBoundingBoxRotated(self, aRotCenter, aAngle) + +# Register EDA_RECT in _pcbnew: +_pcbnew.EDA_RECT_swigregister(EDA_RECT) + +EDA_PANNING_UP_KEY = _pcbnew.EDA_PANNING_UP_KEY + +EDA_PANNING_DOWN_KEY = _pcbnew.EDA_PANNING_DOWN_KEY + +EDA_PANNING_LEFT_KEY = _pcbnew.EDA_PANNING_LEFT_KEY + +EDA_PANNING_RIGHT_KEY = _pcbnew.EDA_PANNING_RIGHT_KEY + +EDA_ZOOM_IN_FROM_MOUSE = _pcbnew.EDA_ZOOM_IN_FROM_MOUSE + +EDA_ZOOM_OUT_FROM_MOUSE = _pcbnew.EDA_ZOOM_OUT_FROM_MOUSE + +EDA_ZOOM_CENTER_FROM_MOUSE = _pcbnew.EDA_ZOOM_CENTER_FROM_MOUSE + +ESC = _pcbnew.ESC + +TEXT_ANGLE_HORIZ = _pcbnew.TEXT_ANGLE_HORIZ + +TEXT_ANGLE_VERT = _pcbnew.TEXT_ANGLE_VERT + + +def KiROUND(v): + r"""KiROUND(double v) -> int""" + return _pcbnew.KiROUND(v) +INCHES = _pcbnew.INCHES + +MILLIMETRES = _pcbnew.MILLIMETRES + +UNSCALED_UNITS = _pcbnew.UNSCALED_UNITS + +DEGREES = _pcbnew.DEGREES + +PERCENT = _pcbnew.PERCENT + +class LOCALE_IO(object): + r"""Proxy of C++ LOCALE_IO class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(LOCALE_IO self) -> LOCALE_IO""" + _pcbnew.LOCALE_IO_swiginit(self, _pcbnew.new_LOCALE_IO()) + __swig_destroy__ = _pcbnew.delete_LOCALE_IO + +# Register LOCALE_IO in _pcbnew: +_pcbnew.LOCALE_IO_swigregister(LOCALE_IO) + + +def GetTextSize(aSingleLine, aWindow): + r"""GetTextSize(wxString aSingleLine, wxWindow * aWindow) -> wxSize""" + return _pcbnew.GetTextSize(aSingleLine, aWindow) + +def EnsureTextCtrlWidth(aCtrl, aString=None): + r"""EnsureTextCtrlWidth(wxTextCtrl * aCtrl, wxString aString=None) -> bool""" + return _pcbnew.EnsureTextCtrlWidth(aCtrl, aString) + +def SelectReferenceNumber(aTextEntry): + r"""SelectReferenceNumber(wxTextEntry * aTextEntry)""" + return _pcbnew.SelectReferenceNumber(aTextEntry) + +def ProcessExecute(*args): + r"""ProcessExecute(wxString aCommandLine, int aFlags=wxEXEC_ASYNC, wxProcess * callback=None) -> int""" + return _pcbnew.ProcessExecute(*args) + +def GetNewTimeStamp(): + r"""GetNewTimeStamp() -> timestamp_t""" + return _pcbnew.GetNewTimeStamp() + +def RoundTo0(x, precision): + r"""RoundTo0(double x, double precision) -> double""" + return _pcbnew.RoundTo0(x, precision) + +def wxStringSplit(aText, aStrings, aSplitter): + r"""wxStringSplit(wxString aText, wxArrayString & aStrings, wxChar aSplitter)""" + return _pcbnew.wxStringSplit(aText, aStrings, aSplitter) + +def SearchHelpFileFullPath(aSearchStack, aBaseName): + r"""SearchHelpFileFullPath(SEARCH_STACK const & aSearchStack, wxString aBaseName) -> wxString""" + return _pcbnew.SearchHelpFileFullPath(aSearchStack, aBaseName) + +def EnsureFileDirectoryExists(aTargetFullFileName, aBaseFilename, aReporter=None): + r"""EnsureFileDirectoryExists(wxFileName * aTargetFullFileName, wxString aBaseFilename, REPORTER * aReporter=None) -> bool""" + return _pcbnew.EnsureFileDirectoryExists(aTargetFullFileName, aBaseFilename, aReporter) + +def PrePendPath(aEnvVar, aPriorityPath): + r"""PrePendPath(wxString aEnvVar, wxString aPriorityPath) -> wxString""" + return _pcbnew.PrePendPath(aEnvVar, aPriorityPath) + +def GetKicadConfigPath(): + r"""GetKicadConfigPath() -> wxString""" + return _pcbnew.GetKicadConfigPath() + +def ExpandEnvVarSubstitutions(aString): + r"""ExpandEnvVarSubstitutions(wxString aString) -> wxString""" + return _pcbnew.ExpandEnvVarSubstitutions(aString) + +def ResolveUriByEnvVars(aUri): + r"""ResolveUriByEnvVars(wxString aUri) -> wxString""" + return _pcbnew.ResolveUriByEnvVars(aUri) +class WX_FILENAME(object): + r"""Proxy of C++ WX_FILENAME class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aPath, aFilename): + r"""__init__(WX_FILENAME self, wxString aPath, wxString aFilename) -> WX_FILENAME""" + _pcbnew.WX_FILENAME_swiginit(self, _pcbnew.new_WX_FILENAME(aPath, aFilename)) + + def SetFullName(self, aFileNameAndExtension): + r"""SetFullName(WX_FILENAME self, wxString aFileNameAndExtension)""" + return _pcbnew.WX_FILENAME_SetFullName(self, aFileNameAndExtension) + + def GetName(self): + r"""GetName(WX_FILENAME self) -> wxString""" + return _pcbnew.WX_FILENAME_GetName(self) + + def GetFullName(self): + r"""GetFullName(WX_FILENAME self) -> wxString""" + return _pcbnew.WX_FILENAME_GetFullName(self) + + def GetPath(self): + r"""GetPath(WX_FILENAME self) -> wxString""" + return _pcbnew.WX_FILENAME_GetPath(self) + + def GetFullPath(self): + r"""GetFullPath(WX_FILENAME self) -> wxString""" + return _pcbnew.WX_FILENAME_GetFullPath(self) + + def GetTimestamp(self): + r"""GetTimestamp(WX_FILENAME self) -> long long""" + return _pcbnew.WX_FILENAME_GetTimestamp(self) + __swig_destroy__ = _pcbnew.delete_WX_FILENAME + +# Register WX_FILENAME in _pcbnew: +_pcbnew.WX_FILENAME_swigregister(WX_FILENAME) + + +def TimestampDir(aDirPath, aFilespec): + r"""TimestampDir(wxString aDirPath, wxString aFilespec) -> long long""" + return _pcbnew.TimestampDir(aDirPath, aFilespec) +class TITLE_BLOCK(object): + r"""Proxy of C++ TITLE_BLOCK class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(TITLE_BLOCK self) -> TITLE_BLOCK""" + _pcbnew.TITLE_BLOCK_swiginit(self, _pcbnew.new_TITLE_BLOCK()) + __swig_destroy__ = _pcbnew.delete_TITLE_BLOCK + + def SetTitle(self, aTitle): + r"""SetTitle(TITLE_BLOCK self, wxString aTitle)""" + return _pcbnew.TITLE_BLOCK_SetTitle(self, aTitle) + + def GetTitle(self): + r"""GetTitle(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetTitle(self) + + def SetDate(self, aDate): + r"""SetDate(TITLE_BLOCK self, wxString aDate)""" + return _pcbnew.TITLE_BLOCK_SetDate(self, aDate) + + def GetDate(self): + r"""GetDate(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetDate(self) + + def SetRevision(self, aRevision): + r"""SetRevision(TITLE_BLOCK self, wxString aRevision)""" + return _pcbnew.TITLE_BLOCK_SetRevision(self, aRevision) + + def GetRevision(self): + r"""GetRevision(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetRevision(self) + + def SetCompany(self, aCompany): + r"""SetCompany(TITLE_BLOCK self, wxString aCompany)""" + return _pcbnew.TITLE_BLOCK_SetCompany(self, aCompany) + + def GetCompany(self): + r"""GetCompany(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetCompany(self) + + def SetComment(self, aIdx, aComment): + r"""SetComment(TITLE_BLOCK self, int aIdx, wxString aComment)""" + return _pcbnew.TITLE_BLOCK_SetComment(self, aIdx, aComment) + + def GetComment(self, aIdx): + r"""GetComment(TITLE_BLOCK self, int aIdx) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetComment(self, aIdx) + + def SetComment1(self, aComment): + r"""SetComment1(TITLE_BLOCK self, wxString aComment)""" + return _pcbnew.TITLE_BLOCK_SetComment1(self, aComment) + + def SetComment2(self, aComment): + r"""SetComment2(TITLE_BLOCK self, wxString aComment)""" + return _pcbnew.TITLE_BLOCK_SetComment2(self, aComment) + + def SetComment3(self, aComment): + r"""SetComment3(TITLE_BLOCK self, wxString aComment)""" + return _pcbnew.TITLE_BLOCK_SetComment3(self, aComment) + + def SetComment4(self, aComment): + r"""SetComment4(TITLE_BLOCK self, wxString aComment)""" + return _pcbnew.TITLE_BLOCK_SetComment4(self, aComment) + + def GetComment1(self): + r"""GetComment1(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetComment1(self) + + def GetComment2(self): + r"""GetComment2(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetComment2(self) + + def GetComment3(self): + r"""GetComment3(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetComment3(self) + + def GetComment4(self): + r"""GetComment4(TITLE_BLOCK self) -> wxString""" + return _pcbnew.TITLE_BLOCK_GetComment4(self) + + def Clear(self): + r"""Clear(TITLE_BLOCK self)""" + return _pcbnew.TITLE_BLOCK_Clear(self) + + def Format(self, aFormatter, aNestLevel, aControlBits): + r"""Format(TITLE_BLOCK self, OUTPUTFORMATTER * aFormatter, int aNestLevel, int aControlBits)""" + return _pcbnew.TITLE_BLOCK_Format(self, aFormatter, aNestLevel, aControlBits) + +# Register TITLE_BLOCK in _pcbnew: +_pcbnew.TITLE_BLOCK_swigregister(TITLE_BLOCK) + +class COLOR4D(object): + r"""Proxy of C++ KIGFX::COLOR4D class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(COLOR4D self) -> COLOR4D + __init__(COLOR4D self, double aRed, double aGreen, double aBlue, double aAlpha) -> COLOR4D + __init__(COLOR4D self, EDA_COLOR_T aColor) -> COLOR4D + __init__(COLOR4D self, wxColour const & aColor) -> COLOR4D + """ + _pcbnew.COLOR4D_swiginit(self, _pcbnew.new_COLOR4D(*args)) + + def SetFromWxString(self, aColorString): + r"""SetFromWxString(COLOR4D self, wxString aColorString) -> bool""" + return _pcbnew.COLOR4D_SetFromWxString(self, aColorString) + + def ToWxString(self, flags): + r"""ToWxString(COLOR4D self, long flags) -> wxString""" + return _pcbnew.COLOR4D_ToWxString(self, flags) + + def ToColour(self): + r"""ToColour(COLOR4D self) -> wxColour""" + return _pcbnew.COLOR4D_ToColour(self) + + def LegacyMix(self, aColor): + r"""LegacyMix(COLOR4D self, COLOR4D aColor) -> COLOR4D""" + return _pcbnew.COLOR4D_LegacyMix(self, aColor) + + def ToU32(self): + r"""ToU32(COLOR4D self) -> unsigned int""" + return _pcbnew.COLOR4D_ToU32(self) + + def FromU32(self, aPackedColor): + r"""FromU32(COLOR4D self, unsigned int aPackedColor)""" + return _pcbnew.COLOR4D_FromU32(self, aPackedColor) + + def ToHSL(self, aOutHue, aOutSaturation, aOutValue): + r"""ToHSL(COLOR4D self, double & aOutHue, double & aOutSaturation, double & aOutValue)""" + return _pcbnew.COLOR4D_ToHSL(self, aOutHue, aOutSaturation, aOutValue) + + def FromHSL(self, aInHue, aInSaturation, aInLightness): + r"""FromHSL(COLOR4D self, double aInHue, double aInSaturation, double aInLightness)""" + return _pcbnew.COLOR4D_FromHSL(self, aInHue, aInSaturation, aInLightness) + + def Brighten(self, aFactor): + r"""Brighten(COLOR4D self, double aFactor) -> COLOR4D""" + return _pcbnew.COLOR4D_Brighten(self, aFactor) + + def Darken(self, aFactor): + r"""Darken(COLOR4D self, double aFactor) -> COLOR4D""" + return _pcbnew.COLOR4D_Darken(self, aFactor) + + def Invert(self): + r"""Invert(COLOR4D self) -> COLOR4D""" + return _pcbnew.COLOR4D_Invert(self) + + def Saturate(self, aFactor): + r"""Saturate(COLOR4D self, double aFactor) -> COLOR4D""" + return _pcbnew.COLOR4D_Saturate(self, aFactor) + + def Brightened(self, aFactor): + r"""Brightened(COLOR4D self, double aFactor) -> COLOR4D""" + return _pcbnew.COLOR4D_Brightened(self, aFactor) + + def Darkened(self, aFactor): + r"""Darkened(COLOR4D self, double aFactor) -> COLOR4D""" + return _pcbnew.COLOR4D_Darkened(self, aFactor) + + def Mix(self, aColor, aFactor): + r"""Mix(COLOR4D self, COLOR4D aColor, double aFactor) -> COLOR4D""" + return _pcbnew.COLOR4D_Mix(self, aColor, aFactor) + + def WithAlpha(self, aAlpha): + r"""WithAlpha(COLOR4D self, double aAlpha) -> COLOR4D""" + return _pcbnew.COLOR4D_WithAlpha(self, aAlpha) + + def Inverted(self): + r"""Inverted(COLOR4D self) -> COLOR4D""" + return _pcbnew.COLOR4D_Inverted(self) + + def GetBrightness(self): + r"""GetBrightness(COLOR4D self) -> double""" + return _pcbnew.COLOR4D_GetBrightness(self) + + def ToHSV(self, aOutHue, aOutSaturation, aOutValue, aAlwaysDefineHue=False): + r"""ToHSV(COLOR4D self, double & aOutHue, double & aOutSaturation, double & aOutValue, bool aAlwaysDefineHue=False)""" + return _pcbnew.COLOR4D_ToHSV(self, aOutHue, aOutSaturation, aOutValue, aAlwaysDefineHue) + + def FromHSV(self, aInH, aInS, aInV): + r"""FromHSV(COLOR4D self, double aInH, double aInS, double aInV)""" + return _pcbnew.COLOR4D_FromHSV(self, aInH, aInS, aInV) + r = property(_pcbnew.COLOR4D_r_get, _pcbnew.COLOR4D_r_set, doc=r"""r : double""") + g = property(_pcbnew.COLOR4D_g_get, _pcbnew.COLOR4D_g_set, doc=r"""g : double""") + b = property(_pcbnew.COLOR4D_b_get, _pcbnew.COLOR4D_b_set, doc=r"""b : double""") + a = property(_pcbnew.COLOR4D_a_get, _pcbnew.COLOR4D_a_set, doc=r"""a : double""") + __swig_destroy__ = _pcbnew.delete_COLOR4D + +# Register COLOR4D in _pcbnew: +_pcbnew.COLOR4D_swigregister(COLOR4D) +COLOR4D.UNSPECIFIED = _pcbnew.cvar.COLOR4D_UNSPECIFIED +COLOR4D.WHITE = _pcbnew.cvar.COLOR4D_WHITE +COLOR4D.BLACK = _pcbnew.cvar.COLOR4D_BLACK + + +def __eq__(lhs, rhs): + r"""__eq__(COLOR4D lhs, COLOR4D rhs) -> bool const""" + return _pcbnew.__eq__(lhs, rhs) + +def __ne__(lhs, rhs): + r"""__ne__(COLOR4D lhs, COLOR4D rhs) -> bool const""" + return _pcbnew.__ne__(lhs, rhs) + +def __lshift__(aStream, aColor): + r"""__lshift__(std::ostream & aStream, COLOR4D aColor) -> std::ostream &""" + return _pcbnew.__lshift__(aStream, aColor) +class SETTINGS(object): + r"""Proxy of C++ SETTINGS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(SETTINGS self) -> SETTINGS""" + _pcbnew.SETTINGS_swiginit(self, _pcbnew.new_SETTINGS()) + __swig_destroy__ = _pcbnew.delete_SETTINGS + + def SetConfigPrefix(self, aPrefix): + r"""SetConfigPrefix(SETTINGS self, wxString aPrefix)""" + return _pcbnew.SETTINGS_SetConfigPrefix(self, aPrefix) + + def GetConfigPrefix(self): + r"""GetConfigPrefix(SETTINGS self) -> wxString""" + return _pcbnew.SETTINGS_GetConfigPrefix(self) + + def Load(self, aConfig): + r"""Load(SETTINGS self, wxConfigBase * aConfig)""" + return _pcbnew.SETTINGS_Load(self, aConfig) + + def Save(self, aConfig): + r"""Save(SETTINGS self, wxConfigBase * aConfig)""" + return _pcbnew.SETTINGS_Save(self, aConfig) + + def Add(self, *args): + r""" + Add(SETTINGS self, wxString name, int * aPtr, int aDefaultValue) + Add(SETTINGS self, wxString name, bool * aPtr, bool aDefaultValue) + Add(SETTINGS self, wxString name, COLOR4D aPtr, COLOR4D aDefaultValue) + Add(SETTINGS self, wxString name, COLOR4D aPtr, EDA_COLOR_T aDefaultValue) + """ + return _pcbnew.SETTINGS_Add(self, *args) + +# Register SETTINGS in _pcbnew: +_pcbnew.SETTINGS_swigregister(SETTINGS) + +class COLORS_DESIGN_SETTINGS(SETTINGS): + r"""Proxy of C++ COLORS_DESIGN_SETTINGS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_LayersColors = property(_pcbnew.COLORS_DESIGN_SETTINGS_m_LayersColors_get, _pcbnew.COLORS_DESIGN_SETTINGS_m_LayersColors_set, doc=r"""m_LayersColors : a(LAYER_ID_COUNT).COLOR4D""") + + def __init__(self, aFrameType): + r"""__init__(COLORS_DESIGN_SETTINGS self, FRAME_T aFrameType) -> COLORS_DESIGN_SETTINGS""" + _pcbnew.COLORS_DESIGN_SETTINGS_swiginit(self, _pcbnew.new_COLORS_DESIGN_SETTINGS(aFrameType)) + __swig_destroy__ = _pcbnew.delete_COLORS_DESIGN_SETTINGS + + def Load(self, aConfig): + r"""Load(COLORS_DESIGN_SETTINGS self, wxConfigBase * aConfig)""" + return _pcbnew.COLORS_DESIGN_SETTINGS_Load(self, aConfig) + + def Save(self, aConfig): + r"""Save(COLORS_DESIGN_SETTINGS self, wxConfigBase * aConfig)""" + return _pcbnew.COLORS_DESIGN_SETTINGS_Save(self, aConfig) + + def GetLayerColor(self, aLayer): + r"""GetLayerColor(COLORS_DESIGN_SETTINGS self, LAYER_NUM aLayer) -> COLOR4D""" + return _pcbnew.COLORS_DESIGN_SETTINGS_GetLayerColor(self, aLayer) + + def SetLayerColor(self, aLayer, aColor): + r"""SetLayerColor(COLORS_DESIGN_SETTINGS self, LAYER_NUM aLayer, COLOR4D aColor)""" + return _pcbnew.COLORS_DESIGN_SETTINGS_SetLayerColor(self, aLayer, aColor) + + def GetItemColor(self, aItemIdx): + r"""GetItemColor(COLORS_DESIGN_SETTINGS self, int aItemIdx) -> COLOR4D""" + return _pcbnew.COLORS_DESIGN_SETTINGS_GetItemColor(self, aItemIdx) + + def SetItemColor(self, aItemIdx, aColor): + r"""SetItemColor(COLORS_DESIGN_SETTINGS self, int aItemIdx, COLOR4D aColor)""" + return _pcbnew.COLORS_DESIGN_SETTINGS_SetItemColor(self, aItemIdx, aColor) + + def SetAllColorsAs(self, aColor): + r"""SetAllColorsAs(COLORS_DESIGN_SETTINGS self, COLOR4D aColor)""" + return _pcbnew.COLORS_DESIGN_SETTINGS_SetAllColorsAs(self, aColor) + +# Register COLORS_DESIGN_SETTINGS in _pcbnew: +_pcbnew.COLORS_DESIGN_SETTINGS_swigregister(COLORS_DESIGN_SETTINGS) + +class MARKER_BASE(object): + r"""Proxy of C++ MARKER_BASE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + MARKER_UNSPEC = _pcbnew.MARKER_BASE_MARKER_UNSPEC + + MARKER_ERC = _pcbnew.MARKER_BASE_MARKER_ERC + + MARKER_PCB = _pcbnew.MARKER_BASE_MARKER_PCB + + MARKER_SIMUL = _pcbnew.MARKER_BASE_MARKER_SIMUL + + MARKER_SEVERITY_UNSPEC = _pcbnew.MARKER_BASE_MARKER_SEVERITY_UNSPEC + + MARKER_SEVERITY_INFO = _pcbnew.MARKER_BASE_MARKER_SEVERITY_INFO + + MARKER_SEVERITY_WARNING = _pcbnew.MARKER_BASE_MARKER_SEVERITY_WARNING + + MARKER_SEVERITY_ERROR = _pcbnew.MARKER_BASE_MARKER_SEVERITY_ERROR + + m_Pos = property(_pcbnew.MARKER_BASE_m_Pos_get, _pcbnew.MARKER_BASE_m_Pos_set, doc=r"""m_Pos : wxPoint""") + + def __init__(self, *args): + r""" + __init__(MARKER_BASE self, int aScalingFactor) -> MARKER_BASE + __init__(MARKER_BASE self, EDA_UNITS_T aUnits, int aErrorCode, wxPoint aMarkerPos, EDA_ITEM aItem, wxPoint aPos, EDA_ITEM bItem, wxPoint bPos, int aScalingFactor) -> MARKER_BASE + __init__(MARKER_BASE self, int aErrorCode, wxPoint aMarkerPos, wxString aText, wxPoint aPos, wxString bText, wxPoint bPos, int aScalingFactor) -> MARKER_BASE + __init__(MARKER_BASE self, int aErrorCode, wxPoint aMarkerPos, wxString aText, wxPoint aPos, int aScalingFactor) -> MARKER_BASE + __init__(MARKER_BASE self, MARKER_BASE aMarker) -> MARKER_BASE + """ + _pcbnew.MARKER_BASE_swiginit(self, _pcbnew.new_MARKER_BASE(*args)) + __swig_destroy__ = _pcbnew.delete_MARKER_BASE + + def MarkerScale(self): + r"""MarkerScale(MARKER_BASE self) -> int""" + return _pcbnew.MARKER_BASE_MarkerScale(self) + + def ShapeToPolygon(self, aPolygon): + r"""ShapeToPolygon(MARKER_BASE self, SHAPE_LINE_CHAIN aPolygon)""" + return _pcbnew.MARKER_BASE_ShapeToPolygon(self, aPolygon) + + def GetShapePolygon(self): + r"""GetShapePolygon(MARKER_BASE self) -> VECTOR2I""" + return _pcbnew.MARKER_BASE_GetShapePolygon(self) + + def GetShapePolygonCorner(self, aIdx): + r"""GetShapePolygonCorner(MARKER_BASE self, int aIdx) -> VECTOR2I""" + return _pcbnew.MARKER_BASE_GetShapePolygonCorner(self, aIdx) + + def GetShapePolygonCornerCount(self): + r"""GetShapePolygonCornerCount(MARKER_BASE self) -> int""" + return _pcbnew.MARKER_BASE_GetShapePolygonCornerCount(self) + + def PrintMarker(self, aDC, aOffset): + r"""PrintMarker(MARKER_BASE self, wxDC * aDC, wxPoint aOffset)""" + return _pcbnew.MARKER_BASE_PrintMarker(self, aDC, aOffset) + + def GetPos(self): + r"""GetPos(MARKER_BASE self) -> wxPoint""" + return _pcbnew.MARKER_BASE_GetPos(self) + + def SetColor(self, aColor): + r"""SetColor(MARKER_BASE self, COLOR4D aColor)""" + return _pcbnew.MARKER_BASE_SetColor(self, aColor) + + def SetErrorLevel(self, aErrorLevel): + r"""SetErrorLevel(MARKER_BASE self, MARKER_BASE::MARKER_SEVERITY aErrorLevel)""" + return _pcbnew.MARKER_BASE_SetErrorLevel(self, aErrorLevel) + + def GetErrorLevel(self): + r"""GetErrorLevel(MARKER_BASE self) -> MARKER_BASE::MARKER_SEVERITY""" + return _pcbnew.MARKER_BASE_GetErrorLevel(self) + + def SetMarkerType(self, aMarkerType): + r"""SetMarkerType(MARKER_BASE self, enum MARKER_BASE::TYPEMARKER aMarkerType)""" + return _pcbnew.MARKER_BASE_SetMarkerType(self, aMarkerType) + + def GetMarkerType(self): + r"""GetMarkerType(MARKER_BASE self) -> enum MARKER_BASE::TYPEMARKER""" + return _pcbnew.MARKER_BASE_GetMarkerType(self) + + def SetData(self, *args): + r""" + SetData(MARKER_BASE self, EDA_UNITS_T aUnits, int aErrorCode, wxPoint aMarkerPos, EDA_ITEM aItem, wxPoint aPos, EDA_ITEM bItem=None, wxPoint bPos=wxPoint()) + SetData(MARKER_BASE self, int aErrorCode, wxPoint aMarkerPos, wxString aText, wxPoint aPos, wxString bText=wxEmptyString, wxPoint bPos=wxPoint()) + """ + return _pcbnew.MARKER_BASE_SetData(self, *args) + + def SetAuxiliaryData(self, aAuxiliaryText, aAuxiliaryPos): + r"""SetAuxiliaryData(MARKER_BASE self, wxString aAuxiliaryText, wxPoint aAuxiliaryPos)""" + return _pcbnew.MARKER_BASE_SetAuxiliaryData(self, aAuxiliaryText, aAuxiliaryPos) + + def SetShowNoCoordinate(self): + r"""SetShowNoCoordinate(MARKER_BASE self)""" + return _pcbnew.MARKER_BASE_SetShowNoCoordinate(self) + + def GetReporter(self): + r"""GetReporter(MARKER_BASE self) -> DRC_ITEM const &""" + return _pcbnew.MARKER_BASE_GetReporter(self) + + def DisplayMarkerInfo(self, aFrame): + r"""DisplayMarkerInfo(MARKER_BASE self, EDA_DRAW_FRAME * aFrame)""" + return _pcbnew.MARKER_BASE_DisplayMarkerInfo(self, aFrame) + + def HitTestMarker(self, aHitPosition, aAccuracy): + r"""HitTestMarker(MARKER_BASE self, wxPoint aHitPosition, int aAccuracy) -> bool""" + return _pcbnew.MARKER_BASE_HitTestMarker(self, aHitPosition, aAccuracy) + + def GetBoundingBoxMarker(self): + r"""GetBoundingBoxMarker(MARKER_BASE self) -> EDA_RECT""" + return _pcbnew.MARKER_BASE_GetBoundingBoxMarker(self) + +# Register MARKER_BASE in _pcbnew: +_pcbnew.MARKER_BASE_swigregister(MARKER_BASE) + +CTL_OMIT_HIDE = _pcbnew.CTL_OMIT_HIDE + +GR_TEXT_HJUSTIFY_LEFT = _pcbnew.GR_TEXT_HJUSTIFY_LEFT + +GR_TEXT_HJUSTIFY_CENTER = _pcbnew.GR_TEXT_HJUSTIFY_CENTER + +GR_TEXT_HJUSTIFY_RIGHT = _pcbnew.GR_TEXT_HJUSTIFY_RIGHT + +GR_TEXT_VJUSTIFY_TOP = _pcbnew.GR_TEXT_VJUSTIFY_TOP + +GR_TEXT_VJUSTIFY_CENTER = _pcbnew.GR_TEXT_VJUSTIFY_CENTER + +GR_TEXT_VJUSTIFY_BOTTOM = _pcbnew.GR_TEXT_VJUSTIFY_BOTTOM + +FILLED = _pcbnew.FILLED + +SKETCH = _pcbnew.SKETCH + +DEFAULT_SIZE_TEXT = _pcbnew.DEFAULT_SIZE_TEXT + +DIM_ANCRE_TEXTE = _pcbnew.DIM_ANCRE_TEXTE + +class TEXT_EFFECTS(object): + r"""Proxy of C++ TEXT_EFFECTS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aSetOfBits=0): + r"""__init__(TEXT_EFFECTS self, int aSetOfBits=0) -> TEXT_EFFECTS""" + _pcbnew.TEXT_EFFECTS_swiginit(self, _pcbnew.new_TEXT_EFFECTS(aSetOfBits)) + bits = property(_pcbnew.TEXT_EFFECTS_bits_get, _pcbnew.TEXT_EFFECTS_bits_set, doc=r"""bits : short""") + hjustify = property(_pcbnew.TEXT_EFFECTS_hjustify_get, _pcbnew.TEXT_EFFECTS_hjustify_set, doc=r"""hjustify : signed char""") + vjustify = property(_pcbnew.TEXT_EFFECTS_vjustify_get, _pcbnew.TEXT_EFFECTS_vjustify_set, doc=r"""vjustify : signed char""") + size = property(_pcbnew.TEXT_EFFECTS_size_get, _pcbnew.TEXT_EFFECTS_size_set, doc=r"""size : wxSize""") + penwidth = property(_pcbnew.TEXT_EFFECTS_penwidth_get, _pcbnew.TEXT_EFFECTS_penwidth_set, doc=r"""penwidth : int""") + angle = property(_pcbnew.TEXT_EFFECTS_angle_get, _pcbnew.TEXT_EFFECTS_angle_set, doc=r"""angle : double""") + pos = property(_pcbnew.TEXT_EFFECTS_pos_get, _pcbnew.TEXT_EFFECTS_pos_set, doc=r"""pos : wxPoint""") + + def Bit(self, *args): + r""" + Bit(TEXT_EFFECTS self, int aBit, bool aValue) + Bit(TEXT_EFFECTS self, int aBit) -> bool + """ + return _pcbnew.TEXT_EFFECTS_Bit(self, *args) + __swig_destroy__ = _pcbnew.delete_TEXT_EFFECTS + +# Register TEXT_EFFECTS in _pcbnew: +_pcbnew.TEXT_EFFECTS_swigregister(TEXT_EFFECTS) + +class EDA_TEXT(object): + r"""Proxy of C++ EDA_TEXT class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(EDA_TEXT self, wxString text=wxEmptyString) -> EDA_TEXT + __init__(EDA_TEXT self, EDA_TEXT aText) -> EDA_TEXT + """ + _pcbnew.EDA_TEXT_swiginit(self, _pcbnew.new_EDA_TEXT(*args)) + __swig_destroy__ = _pcbnew.delete_EDA_TEXT + + def GetText(self): + r"""GetText(EDA_TEXT self) -> wxString""" + return _pcbnew.EDA_TEXT_GetText(self) + + def GetShownText(self): + r"""GetShownText(EDA_TEXT self) -> wxString""" + return _pcbnew.EDA_TEXT_GetShownText(self) + + def ShortenedShownText(self): + r"""ShortenedShownText(EDA_TEXT self) -> wxString""" + return _pcbnew.EDA_TEXT_ShortenedShownText(self) + + def SetText(self, aText): + r"""SetText(EDA_TEXT self, wxString aText)""" + return _pcbnew.EDA_TEXT_SetText(self, aText) + + def SetThickness(self, aNewThickness): + r"""SetThickness(EDA_TEXT self, int aNewThickness)""" + return _pcbnew.EDA_TEXT_SetThickness(self, aNewThickness) + + def GetThickness(self): + r"""GetThickness(EDA_TEXT self) -> int""" + return _pcbnew.EDA_TEXT_GetThickness(self) + + def SetTextAngle(self, aAngle): + r"""SetTextAngle(EDA_TEXT self, double aAngle)""" + return _pcbnew.EDA_TEXT_SetTextAngle(self, aAngle) + + def GetTextAngle(self): + r"""GetTextAngle(EDA_TEXT self) -> double""" + return _pcbnew.EDA_TEXT_GetTextAngle(self) + + def GetTextAngleDegrees(self): + r"""GetTextAngleDegrees(EDA_TEXT self) -> double""" + return _pcbnew.EDA_TEXT_GetTextAngleDegrees(self) + + def GetTextAngleRadians(self): + r"""GetTextAngleRadians(EDA_TEXT self) -> double""" + return _pcbnew.EDA_TEXT_GetTextAngleRadians(self) + + def SetItalic(self, isItalic): + r"""SetItalic(EDA_TEXT self, bool isItalic)""" + return _pcbnew.EDA_TEXT_SetItalic(self, isItalic) + + def IsItalic(self): + r"""IsItalic(EDA_TEXT self) -> bool""" + return _pcbnew.EDA_TEXT_IsItalic(self) + + def SetBold(self, aBold): + r"""SetBold(EDA_TEXT self, bool aBold)""" + return _pcbnew.EDA_TEXT_SetBold(self, aBold) + + def IsBold(self): + r"""IsBold(EDA_TEXT self) -> bool""" + return _pcbnew.EDA_TEXT_IsBold(self) + + def SetVisible(self, aVisible): + r"""SetVisible(EDA_TEXT self, bool aVisible)""" + return _pcbnew.EDA_TEXT_SetVisible(self, aVisible) + + def IsVisible(self): + r"""IsVisible(EDA_TEXT self) -> bool""" + return _pcbnew.EDA_TEXT_IsVisible(self) + + def SetMirrored(self, isMirrored): + r"""SetMirrored(EDA_TEXT self, bool isMirrored)""" + return _pcbnew.EDA_TEXT_SetMirrored(self, isMirrored) + + def IsMirrored(self): + r"""IsMirrored(EDA_TEXT self) -> bool""" + return _pcbnew.EDA_TEXT_IsMirrored(self) + + def SetMultilineAllowed(self, aAllow): + r"""SetMultilineAllowed(EDA_TEXT self, bool aAllow)""" + return _pcbnew.EDA_TEXT_SetMultilineAllowed(self, aAllow) + + def IsMultilineAllowed(self): + r"""IsMultilineAllowed(EDA_TEXT self) -> bool""" + return _pcbnew.EDA_TEXT_IsMultilineAllowed(self) + + def GetHorizJustify(self): + r"""GetHorizJustify(EDA_TEXT self) -> EDA_TEXT_HJUSTIFY_T""" + return _pcbnew.EDA_TEXT_GetHorizJustify(self) + + def GetVertJustify(self): + r"""GetVertJustify(EDA_TEXT self) -> EDA_TEXT_VJUSTIFY_T""" + return _pcbnew.EDA_TEXT_GetVertJustify(self) + + def SetHorizJustify(self, aType): + r"""SetHorizJustify(EDA_TEXT self, EDA_TEXT_HJUSTIFY_T aType)""" + return _pcbnew.EDA_TEXT_SetHorizJustify(self, aType) + + def SetVertJustify(self, aType): + r"""SetVertJustify(EDA_TEXT self, EDA_TEXT_VJUSTIFY_T aType)""" + return _pcbnew.EDA_TEXT_SetVertJustify(self, aType) + + def SetEffects(self, aSrc): + r"""SetEffects(EDA_TEXT self, EDA_TEXT aSrc)""" + return _pcbnew.EDA_TEXT_SetEffects(self, aSrc) + + def SwapEffects(self, aTradingPartner): + r"""SwapEffects(EDA_TEXT self, EDA_TEXT aTradingPartner)""" + return _pcbnew.EDA_TEXT_SwapEffects(self, aTradingPartner) + + def IsDefaultFormatting(self): + r"""IsDefaultFormatting(EDA_TEXT self) -> bool""" + return _pcbnew.EDA_TEXT_IsDefaultFormatting(self) + + def SetTextSize(self, aNewSize): + r"""SetTextSize(EDA_TEXT self, wxSize aNewSize)""" + return _pcbnew.EDA_TEXT_SetTextSize(self, aNewSize) + + def GetTextSize(self): + r"""GetTextSize(EDA_TEXT self) -> wxSize""" + return _pcbnew.EDA_TEXT_GetTextSize(self) + + def SetTextWidth(self, aWidth): + r"""SetTextWidth(EDA_TEXT self, int aWidth)""" + return _pcbnew.EDA_TEXT_SetTextWidth(self, aWidth) + + def GetTextWidth(self): + r"""GetTextWidth(EDA_TEXT self) -> int""" + return _pcbnew.EDA_TEXT_GetTextWidth(self) + + def SetTextHeight(self, aHeight): + r"""SetTextHeight(EDA_TEXT self, int aHeight)""" + return _pcbnew.EDA_TEXT_SetTextHeight(self, aHeight) + + def GetTextHeight(self): + r"""GetTextHeight(EDA_TEXT self) -> int""" + return _pcbnew.EDA_TEXT_GetTextHeight(self) + + def SetTextPos(self, aPoint): + r"""SetTextPos(EDA_TEXT self, wxPoint aPoint)""" + return _pcbnew.EDA_TEXT_SetTextPos(self, aPoint) + + def GetTextPos(self): + r"""GetTextPos(EDA_TEXT self) -> wxPoint""" + return _pcbnew.EDA_TEXT_GetTextPos(self) + + def SetTextX(self, aX): + r"""SetTextX(EDA_TEXT self, int aX)""" + return _pcbnew.EDA_TEXT_SetTextX(self, aX) + + def SetTextY(self, aY): + r"""SetTextY(EDA_TEXT self, int aY)""" + return _pcbnew.EDA_TEXT_SetTextY(self, aY) + + def Offset(self, aOffset): + r"""Offset(EDA_TEXT self, wxPoint aOffset)""" + return _pcbnew.EDA_TEXT_Offset(self, aOffset) + + def Empty(self): + r"""Empty(EDA_TEXT self)""" + return _pcbnew.EDA_TEXT_Empty(self) + + @staticmethod + def MapOrientation(labelType, aOrientation): + r"""MapOrientation(KICAD_T labelType, int aOrientation) -> int""" + return _pcbnew.EDA_TEXT_MapOrientation(labelType, aOrientation) + + @staticmethod + def MapHorizJustify(aHorizJustify): + r"""MapHorizJustify(int aHorizJustify) -> EDA_TEXT_HJUSTIFY_T""" + return _pcbnew.EDA_TEXT_MapHorizJustify(aHorizJustify) + + @staticmethod + def MapVertJustify(aVertJustify): + r"""MapVertJustify(int aVertJustify) -> EDA_TEXT_VJUSTIFY_T""" + return _pcbnew.EDA_TEXT_MapVertJustify(aVertJustify) + + def Print(self, aDC, aOffset, aColor, aDisplay_mode=FILLED): + r"""Print(EDA_TEXT self, wxDC * aDC, wxPoint aOffset, COLOR4D aColor, EDA_DRAW_MODE_T aDisplay_mode=FILLED)""" + return _pcbnew.EDA_TEXT_Print(self, aDC, aOffset, aColor, aDisplay_mode) + + def TransformTextShapeToSegmentList(self, aCornerBuffer): + r"""TransformTextShapeToSegmentList(EDA_TEXT self, wxPoint_Vector aCornerBuffer)""" + return _pcbnew.EDA_TEXT_TransformTextShapeToSegmentList(self, aCornerBuffer) + + def TransformBoundingBoxWithClearanceToPolygon(self, aCornerBuffer, aClearanceValue): + r"""TransformBoundingBoxWithClearanceToPolygon(EDA_TEXT self, SHAPE_POLY_SET aCornerBuffer, int aClearanceValue)""" + return _pcbnew.EDA_TEXT_TransformBoundingBoxWithClearanceToPolygon(self, aCornerBuffer, aClearanceValue) + + def TextHitTest(self, *args): + r""" + TextHitTest(EDA_TEXT self, wxPoint aPoint, int aAccuracy=0) -> bool + TextHitTest(EDA_TEXT self, EDA_RECT aRect, bool aContains, int aAccuracy=0) -> bool + """ + return _pcbnew.EDA_TEXT_TextHitTest(self, *args) + + def LenSize(self, aLine, aThickness): + r"""LenSize(EDA_TEXT self, wxString aLine, int aThickness) -> int""" + return _pcbnew.EDA_TEXT_LenSize(self, aLine, aThickness) + + def GetTextBox(self, aLine=-1, aThickness=-1, aInvertY=False): + r"""GetTextBox(EDA_TEXT self, int aLine=-1, int aThickness=-1, bool aInvertY=False) -> EDA_RECT""" + return _pcbnew.EDA_TEXT_GetTextBox(self, aLine, aThickness, aInvertY) + + def GetInterline(self, aTextThickness=-1): + r"""GetInterline(EDA_TEXT self, int aTextThickness=-1) -> int""" + return _pcbnew.EDA_TEXT_GetInterline(self, aTextThickness) + + def GetTextStyleName(self): + r"""GetTextStyleName(EDA_TEXT self) -> wxString""" + return _pcbnew.EDA_TEXT_GetTextStyleName(self) + + def GetPositionsOfLinesOfMultilineText(self, aPositions, aLineCount): + r"""GetPositionsOfLinesOfMultilineText(EDA_TEXT self, wxPoint_Vector aPositions, int aLineCount)""" + return _pcbnew.EDA_TEXT_GetPositionsOfLinesOfMultilineText(self, aPositions, aLineCount) + + def Format(self, aFormatter, aNestLevel, aControlBits): + r"""Format(EDA_TEXT self, OUTPUTFORMATTER * aFormatter, int aNestLevel, int aControlBits)""" + return _pcbnew.EDA_TEXT_Format(self, aFormatter, aNestLevel, aControlBits) + +# Register EDA_TEXT in _pcbnew: +_pcbnew.EDA_TEXT_swigregister(EDA_TEXT) + +def EDA_TEXT_MapOrientation(labelType, aOrientation): + r"""EDA_TEXT_MapOrientation(KICAD_T labelType, int aOrientation) -> int""" + return _pcbnew.EDA_TEXT_MapOrientation(labelType, aOrientation) + +def EDA_TEXT_MapHorizJustify(aHorizJustify): + r"""EDA_TEXT_MapHorizJustify(int aHorizJustify) -> EDA_TEXT_HJUSTIFY_T""" + return _pcbnew.EDA_TEXT_MapHorizJustify(aHorizJustify) + +def EDA_TEXT_MapVertJustify(aVertJustify): + r"""EDA_TEXT_MapVertJustify(int aVertJustify) -> EDA_TEXT_VJUSTIFY_T""" + return _pcbnew.EDA_TEXT_MapVertJustify(aVertJustify) + +class intVector(object): + r"""Proxy of C++ std::vector< int > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(intVector self) -> SwigPyIterator""" + return _pcbnew.intVector_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(intVector self) -> bool""" + return _pcbnew.intVector___nonzero__(self) + + def __bool__(self): + r"""__bool__(intVector self) -> bool""" + return _pcbnew.intVector___bool__(self) + + def __len__(self): + r"""__len__(intVector self) -> std::vector< int >::size_type""" + return _pcbnew.intVector___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(intVector self, std::vector< int >::difference_type i, std::vector< int >::difference_type j) -> intVector""" + return _pcbnew.intVector___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(intVector self, std::vector< int >::difference_type i, std::vector< int >::difference_type j) + __setslice__(intVector self, std::vector< int >::difference_type i, std::vector< int >::difference_type j, intVector v) + """ + return _pcbnew.intVector___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(intVector self, std::vector< int >::difference_type i, std::vector< int >::difference_type j)""" + return _pcbnew.intVector___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(intVector self, std::vector< int >::difference_type i) + __delitem__(intVector self, PySliceObject * slice) + """ + return _pcbnew.intVector___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(intVector self, PySliceObject * slice) -> intVector + __getitem__(intVector self, std::vector< int >::difference_type i) -> std::vector< int >::value_type const & + """ + return _pcbnew.intVector___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(intVector self, PySliceObject * slice, intVector v) + __setitem__(intVector self, PySliceObject * slice) + __setitem__(intVector self, std::vector< int >::difference_type i, std::vector< int >::value_type const & x) + """ + return _pcbnew.intVector___setitem__(self, *args) + + def pop(self): + r"""pop(intVector self) -> std::vector< int >::value_type""" + return _pcbnew.intVector_pop(self) + + def append(self, x): + r"""append(intVector self, std::vector< int >::value_type const & x)""" + return _pcbnew.intVector_append(self, x) + + def empty(self): + r"""empty(intVector self) -> bool""" + return _pcbnew.intVector_empty(self) + + def size(self): + r"""size(intVector self) -> std::vector< int >::size_type""" + return _pcbnew.intVector_size(self) + + def swap(self, v): + r"""swap(intVector self, intVector v)""" + return _pcbnew.intVector_swap(self, v) + + def begin(self): + r"""begin(intVector self) -> std::vector< int >::iterator""" + return _pcbnew.intVector_begin(self) + + def end(self): + r"""end(intVector self) -> std::vector< int >::iterator""" + return _pcbnew.intVector_end(self) + + def rbegin(self): + r"""rbegin(intVector self) -> std::vector< int >::reverse_iterator""" + return _pcbnew.intVector_rbegin(self) + + def rend(self): + r"""rend(intVector self) -> std::vector< int >::reverse_iterator""" + return _pcbnew.intVector_rend(self) + + def clear(self): + r"""clear(intVector self)""" + return _pcbnew.intVector_clear(self) + + def get_allocator(self): + r"""get_allocator(intVector self) -> std::vector< int >::allocator_type""" + return _pcbnew.intVector_get_allocator(self) + + def pop_back(self): + r"""pop_back(intVector self)""" + return _pcbnew.intVector_pop_back(self) + + def erase(self, *args): + r""" + erase(intVector self, std::vector< int >::iterator pos) -> std::vector< int >::iterator + erase(intVector self, std::vector< int >::iterator first, std::vector< int >::iterator last) -> std::vector< int >::iterator + """ + return _pcbnew.intVector_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(intVector self) -> intVector + __init__(intVector self, intVector other) -> intVector + __init__(intVector self, std::vector< int >::size_type size) -> intVector + __init__(intVector self, std::vector< int >::size_type size, std::vector< int >::value_type const & value) -> intVector + """ + _pcbnew.intVector_swiginit(self, _pcbnew.new_intVector(*args)) + + def push_back(self, x): + r"""push_back(intVector self, std::vector< int >::value_type const & x)""" + return _pcbnew.intVector_push_back(self, x) + + def front(self): + r"""front(intVector self) -> std::vector< int >::value_type const &""" + return _pcbnew.intVector_front(self) + + def back(self): + r"""back(intVector self) -> std::vector< int >::value_type const &""" + return _pcbnew.intVector_back(self) + + def assign(self, n, x): + r"""assign(intVector self, std::vector< int >::size_type n, std::vector< int >::value_type const & x)""" + return _pcbnew.intVector_assign(self, n, x) + + def resize(self, *args): + r""" + resize(intVector self, std::vector< int >::size_type new_size) + resize(intVector self, std::vector< int >::size_type new_size, std::vector< int >::value_type const & x) + """ + return _pcbnew.intVector_resize(self, *args) + + def insert(self, *args): + r""" + insert(intVector self, std::vector< int >::iterator pos, std::vector< int >::value_type const & x) -> std::vector< int >::iterator + insert(intVector self, std::vector< int >::iterator pos, std::vector< int >::size_type n, std::vector< int >::value_type const & x) + """ + return _pcbnew.intVector_insert(self, *args) + + def reserve(self, n): + r"""reserve(intVector self, std::vector< int >::size_type n)""" + return _pcbnew.intVector_reserve(self, n) + + def capacity(self): + r"""capacity(intVector self) -> std::vector< int >::size_type""" + return _pcbnew.intVector_capacity(self) + __swig_destroy__ = _pcbnew.delete_intVector + +# Register intVector in _pcbnew: +_pcbnew.intVector_swigregister(intVector) + +class str_utf8_Map(object): + r"""Proxy of C++ std::map< std::string,UTF8 > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(str_utf8_Map self) -> SwigPyIterator""" + return _pcbnew.str_utf8_Map_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(str_utf8_Map self) -> bool""" + return _pcbnew.str_utf8_Map___nonzero__(self) + + def __bool__(self): + r"""__bool__(str_utf8_Map self) -> bool""" + return _pcbnew.str_utf8_Map___bool__(self) + + def __len__(self): + r"""__len__(str_utf8_Map self) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::size_type""" + return _pcbnew.str_utf8_Map___len__(self) + def __iter__(self): + return self.key_iterator() + def iterkeys(self): + return self.key_iterator() + def itervalues(self): + return self.value_iterator() + def iteritems(self): + return self.iterator() + + def __getitem__(self, key): + r"""__getitem__(str_utf8_Map self, string key) -> UTF8""" + return _pcbnew.str_utf8_Map___getitem__(self, key) + + def __delitem__(self, key): + r"""__delitem__(str_utf8_Map self, string key)""" + return _pcbnew.str_utf8_Map___delitem__(self, key) + + def has_key(self, key): + r"""has_key(str_utf8_Map self, string key) -> bool""" + return _pcbnew.str_utf8_Map_has_key(self, key) + + def keys(self): + r"""keys(str_utf8_Map self) -> PyObject *""" + return _pcbnew.str_utf8_Map_keys(self) + + def values(self): + r"""values(str_utf8_Map self) -> PyObject *""" + return _pcbnew.str_utf8_Map_values(self) + + def items(self): + r"""items(str_utf8_Map self) -> PyObject *""" + return _pcbnew.str_utf8_Map_items(self) + + def __contains__(self, key): + r"""__contains__(str_utf8_Map self, string key) -> bool""" + return _pcbnew.str_utf8_Map___contains__(self, key) + + def key_iterator(self): + r"""key_iterator(str_utf8_Map self) -> SwigPyIterator""" + return _pcbnew.str_utf8_Map_key_iterator(self) + + def value_iterator(self): + r"""value_iterator(str_utf8_Map self) -> SwigPyIterator""" + return _pcbnew.str_utf8_Map_value_iterator(self) + + def __setitem__(self, *args): + r""" + __setitem__(str_utf8_Map self, string key) + __setitem__(str_utf8_Map self, string key, UTF8 x) + """ + return _pcbnew.str_utf8_Map___setitem__(self, *args) + + def asdict(self): + r"""asdict(str_utf8_Map self) -> PyObject *""" + return _pcbnew.str_utf8_Map_asdict(self) + + def __init__(self, *args): + r""" + __init__(str_utf8_Map self, std::less< std::basic_string< char,std::char_traits< char >,std::allocator< char > > > const & other) -> str_utf8_Map + __init__(str_utf8_Map self) -> str_utf8_Map + __init__(str_utf8_Map self, str_utf8_Map other) -> str_utf8_Map + """ + _pcbnew.str_utf8_Map_swiginit(self, _pcbnew.new_str_utf8_Map(*args)) + + def empty(self): + r"""empty(str_utf8_Map self) -> bool""" + return _pcbnew.str_utf8_Map_empty(self) + + def size(self): + r"""size(str_utf8_Map self) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::size_type""" + return _pcbnew.str_utf8_Map_size(self) + + def swap(self, v): + r"""swap(str_utf8_Map self, str_utf8_Map v)""" + return _pcbnew.str_utf8_Map_swap(self, v) + + def begin(self): + r"""begin(str_utf8_Map self) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator""" + return _pcbnew.str_utf8_Map_begin(self) + + def end(self): + r"""end(str_utf8_Map self) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator""" + return _pcbnew.str_utf8_Map_end(self) + + def rbegin(self): + r"""rbegin(str_utf8_Map self) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::reverse_iterator""" + return _pcbnew.str_utf8_Map_rbegin(self) + + def rend(self): + r"""rend(str_utf8_Map self) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::reverse_iterator""" + return _pcbnew.str_utf8_Map_rend(self) + + def clear(self): + r"""clear(str_utf8_Map self)""" + return _pcbnew.str_utf8_Map_clear(self) + + def get_allocator(self): + r"""get_allocator(str_utf8_Map self) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::allocator_type""" + return _pcbnew.str_utf8_Map_get_allocator(self) + + def count(self, x): + r"""count(str_utf8_Map self, string x) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::size_type""" + return _pcbnew.str_utf8_Map_count(self, x) + + def erase(self, *args): + r""" + erase(str_utf8_Map self, string x) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::size_type + erase(str_utf8_Map self, std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator position) + erase(str_utf8_Map self, std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator first, std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator last) + """ + return _pcbnew.str_utf8_Map_erase(self, *args) + + def find(self, x): + r"""find(str_utf8_Map self, string x) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator""" + return _pcbnew.str_utf8_Map_find(self, x) + + def lower_bound(self, x): + r"""lower_bound(str_utf8_Map self, string x) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator""" + return _pcbnew.str_utf8_Map_lower_bound(self, x) + + def upper_bound(self, x): + r"""upper_bound(str_utf8_Map self, string x) -> std::map< std::basic_string< char,std::char_traits< char >,std::allocator< char > >,UTF8 >::iterator""" + return _pcbnew.str_utf8_Map_upper_bound(self, x) + __swig_destroy__ = _pcbnew.delete_str_utf8_Map + +# Register str_utf8_Map in _pcbnew: +_pcbnew.str_utf8_Map_swigregister(str_utf8_Map) + +class base_seqVect(object): + r"""Proxy of C++ std::vector< enum PCB_LAYER_ID > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(base_seqVect self) -> SwigPyIterator""" + return _pcbnew.base_seqVect_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(base_seqVect self) -> bool""" + return _pcbnew.base_seqVect___nonzero__(self) + + def __bool__(self): + r"""__bool__(base_seqVect self) -> bool""" + return _pcbnew.base_seqVect___bool__(self) + + def __len__(self): + r"""__len__(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::size_type""" + return _pcbnew.base_seqVect___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::difference_type i, std::vector< enum PCB_LAYER_ID >::difference_type j) -> base_seqVect""" + return _pcbnew.base_seqVect___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::difference_type i, std::vector< enum PCB_LAYER_ID >::difference_type j) + __setslice__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::difference_type i, std::vector< enum PCB_LAYER_ID >::difference_type j, base_seqVect v) + """ + return _pcbnew.base_seqVect___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::difference_type i, std::vector< enum PCB_LAYER_ID >::difference_type j)""" + return _pcbnew.base_seqVect___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::difference_type i) + __delitem__(base_seqVect self, PySliceObject * slice) + """ + return _pcbnew.base_seqVect___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(base_seqVect self, PySliceObject * slice) -> base_seqVect + __getitem__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::difference_type i) -> std::vector< enum PCB_LAYER_ID >::value_type const & + """ + return _pcbnew.base_seqVect___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(base_seqVect self, PySliceObject * slice, base_seqVect v) + __setitem__(base_seqVect self, PySliceObject * slice) + __setitem__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::difference_type i, std::vector< enum PCB_LAYER_ID >::value_type const & x) + """ + return _pcbnew.base_seqVect___setitem__(self, *args) + + def pop(self): + r"""pop(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::value_type""" + return _pcbnew.base_seqVect_pop(self) + + def append(self, x): + r"""append(base_seqVect self, std::vector< enum PCB_LAYER_ID >::value_type const & x)""" + return _pcbnew.base_seqVect_append(self, x) + + def empty(self): + r"""empty(base_seqVect self) -> bool""" + return _pcbnew.base_seqVect_empty(self) + + def size(self): + r"""size(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::size_type""" + return _pcbnew.base_seqVect_size(self) + + def swap(self, v): + r"""swap(base_seqVect self, base_seqVect v)""" + return _pcbnew.base_seqVect_swap(self, v) + + def begin(self): + r"""begin(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::iterator""" + return _pcbnew.base_seqVect_begin(self) + + def end(self): + r"""end(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::iterator""" + return _pcbnew.base_seqVect_end(self) + + def rbegin(self): + r"""rbegin(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::reverse_iterator""" + return _pcbnew.base_seqVect_rbegin(self) + + def rend(self): + r"""rend(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::reverse_iterator""" + return _pcbnew.base_seqVect_rend(self) + + def clear(self): + r"""clear(base_seqVect self)""" + return _pcbnew.base_seqVect_clear(self) + + def get_allocator(self): + r"""get_allocator(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::allocator_type""" + return _pcbnew.base_seqVect_get_allocator(self) + + def pop_back(self): + r"""pop_back(base_seqVect self)""" + return _pcbnew.base_seqVect_pop_back(self) + + def erase(self, *args): + r""" + erase(base_seqVect self, std::vector< enum PCB_LAYER_ID >::iterator pos) -> std::vector< enum PCB_LAYER_ID >::iterator + erase(base_seqVect self, std::vector< enum PCB_LAYER_ID >::iterator first, std::vector< enum PCB_LAYER_ID >::iterator last) -> std::vector< enum PCB_LAYER_ID >::iterator + """ + return _pcbnew.base_seqVect_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(base_seqVect self) -> base_seqVect + __init__(base_seqVect self, base_seqVect other) -> base_seqVect + __init__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::size_type size) -> base_seqVect + __init__(base_seqVect self, std::vector< enum PCB_LAYER_ID >::size_type size, std::vector< enum PCB_LAYER_ID >::value_type const & value) -> base_seqVect + """ + _pcbnew.base_seqVect_swiginit(self, _pcbnew.new_base_seqVect(*args)) + + def push_back(self, x): + r"""push_back(base_seqVect self, std::vector< enum PCB_LAYER_ID >::value_type const & x)""" + return _pcbnew.base_seqVect_push_back(self, x) + + def front(self): + r"""front(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::value_type const &""" + return _pcbnew.base_seqVect_front(self) + + def back(self): + r"""back(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::value_type const &""" + return _pcbnew.base_seqVect_back(self) + + def assign(self, n, x): + r"""assign(base_seqVect self, std::vector< enum PCB_LAYER_ID >::size_type n, std::vector< enum PCB_LAYER_ID >::value_type const & x)""" + return _pcbnew.base_seqVect_assign(self, n, x) + + def resize(self, *args): + r""" + resize(base_seqVect self, std::vector< enum PCB_LAYER_ID >::size_type new_size) + resize(base_seqVect self, std::vector< enum PCB_LAYER_ID >::size_type new_size, std::vector< enum PCB_LAYER_ID >::value_type const & x) + """ + return _pcbnew.base_seqVect_resize(self, *args) + + def insert(self, *args): + r""" + insert(base_seqVect self, std::vector< enum PCB_LAYER_ID >::iterator pos, std::vector< enum PCB_LAYER_ID >::value_type const & x) -> std::vector< enum PCB_LAYER_ID >::iterator + insert(base_seqVect self, std::vector< enum PCB_LAYER_ID >::iterator pos, std::vector< enum PCB_LAYER_ID >::size_type n, std::vector< enum PCB_LAYER_ID >::value_type const & x) + """ + return _pcbnew.base_seqVect_insert(self, *args) + + def reserve(self, n): + r"""reserve(base_seqVect self, std::vector< enum PCB_LAYER_ID >::size_type n)""" + return _pcbnew.base_seqVect_reserve(self, n) + + def capacity(self): + r"""capacity(base_seqVect self) -> std::vector< enum PCB_LAYER_ID >::size_type""" + return _pcbnew.base_seqVect_capacity(self) + __swig_destroy__ = _pcbnew.delete_base_seqVect + +# Register base_seqVect in _pcbnew: +_pcbnew.base_seqVect_swigregister(base_seqVect) + + + +KICAD_PLUGINS={} # the list of loaded footprint wizards + +""" the list of not loaded python scripts + (usually because there is a syntax error in python script) + this is the python script full filenames list. + filenames are separated by '\n' +""" +NOT_LOADED_WIZARDS="" + +""" the list of paths used to search python scripts. + Stored here to be displayed on request in Pcbnew + paths are separated by '\n' +""" +PLUGIN_DIRECTORIES_SEARCH="" + +""" the trace of errors during execution of footprint wizards scripts +""" +FULL_BACK_TRACE="" + +def GetUnLoadableWizards(): + global NOT_LOADED_WIZARDS + return NOT_LOADED_WIZARDS + +def GetWizardsSearchPaths(): + global PLUGIN_DIRECTORIES_SEARCH + return PLUGIN_DIRECTORIES_SEARCH + +def GetWizardsBackTrace(): + global FULL_BACK_TRACE + return FULL_BACK_TRACE + + +def LoadPluginModule(Dirname, ModuleName, FileName): + """ + Load the plugin module named ModuleName located in the folder Dirname. + The module can be either inside a file called FileName or a subdirectory + called FileName that contains a __init__.py file. + If this module cannot be loaded, its name is stored in failed_wizards_list + and the error trace is stored in FULL_BACK_TRACE + """ + import os + import sys + import traceback + + global NOT_LOADED_WIZARDS + global FULL_BACK_TRACE + + try: # If there is an error loading the script, skip it + + module_filename = os.path.join( Dirname, FileName ) + mtime = os.path.getmtime( module_filename ) + + if ModuleName in KICAD_PLUGINS: + plugin = KICAD_PLUGINS[ModuleName] + + if sys.version_info >= (3,4,0): + import importlib + mod = importlib.reload( plugin["ModuleName"] ) + elif sys.version_info >= (3,2,0): + """ + TODO: This branch can be removed once the required python version is >=3.4 + """ + import imp + mod = imp.reload( plugin["ModuleName"] ) + else: + mod = reload( plugin["ModuleName"] ) + + else: + if sys.version_info >= (3,0,0): + import importlib + mod = importlib.import_module( ModuleName ) + else: + mod = __import__( ModuleName, locals(), globals() ) + + KICAD_PLUGINS[ModuleName]={ "filename":module_filename, + "modification_time":mtime, + "ModuleName":mod } + + except: + if NOT_LOADED_WIZARDS != "" : + NOT_LOADED_WIZARDS += "\n" + NOT_LOADED_WIZARDS += module_filename + FULL_BACK_TRACE += traceback.format_exc() + + +def LoadPlugins(bundlepath=None): + """ + Initialise Scripting/Plugin python environment and load plugins. + + Arguments: + bundlepath -- The path to the bundled scripts. + The bundled Plugins are relative to this path, in the + "plugins" subdirectory. + WARNING: bundlepath must use '/' as path separator, and not '\' + because it creates issues: + \n and \r are seen as a escaped seq when passing this string to this method + I am thinking this is due to the fact LoadPlugins is called from C++ code by + PyRun_SimpleString() + + NOTE: These are all of the possible "default" search paths for kicad + python scripts. These paths will ONLY be added to the python + search path ONLY IF they already exist. + + The Scripts bundled with the KiCad installation: + <bundlepath>/ + <bundlepath>/plugins/ + + The Scripts relative to the KiCad search path environment variable: + [KICAD_PATH]/scripting/ + [KICAD_PATH]/scripting/plugins/ + + The Scripts relative to the KiCad Users configuration: + <kicad_config_path>/scripting/ + <kicad_config_path>/scripting/plugins/ + + And on Linux ONLY, extra paths relative to the users home directory: + ~/.kicad_plugins/ + ~/.kicad/scripting/ + ~/.kicad/scripting/plugins/ + """ + import os + import sys + import traceback + import pcbnew + + if sys.version_info >= (3,3,0): + import importlib + importlib.invalidate_caches() + + kicad_path = os.environ.get('KICAD_PATH') + config_path = pcbnew.GetKicadConfigPath() + plugin_directories=[] + + """ + To be consistent with others paths, on windows, convert the unix '/' separator + to the windows separator, although using '/' works + """ + if sys.platform.startswith('win32'): + bundlepath = bundlepath.replace("/","\\") + + if bundlepath: + plugin_directories.append(bundlepath) + plugin_directories.append(os.path.join(bundlepath, 'plugins')) + + if kicad_path: + plugin_directories.append(os.path.join(kicad_path, 'scripting')) + plugin_directories.append(os.path.join(kicad_path, 'scripting', 'plugins')) + + if config_path: + plugin_directories.append(os.path.join(config_path, 'scripting')) + plugin_directories.append(os.path.join(config_path, 'scripting', 'plugins')) + + if sys.platform.startswith('linux'): + plugin_directories.append(os.path.join(os.environ['HOME'],'.kicad_plugins')) + plugin_directories.append(os.path.join(os.environ['HOME'],'.kicad','scripting')) + plugin_directories.append(os.path.join(os.environ['HOME'],'.kicad','scripting','plugins')) + + global PLUGIN_DIRECTORIES_SEARCH + PLUGIN_DIRECTORIES_SEARCH="" + for plugins_dir in plugin_directories: # save search path list for later use + if PLUGIN_DIRECTORIES_SEARCH != "" : + PLUGIN_DIRECTORIES_SEARCH += "\n" + PLUGIN_DIRECTORIES_SEARCH += plugins_dir + + global FULL_BACK_TRACE + FULL_BACK_TRACE="" # clear any existing trace + + global NOT_LOADED_WIZARDS + NOT_LOADED_WIZARDS = "" # save not loaded wizards names list for later use + + global KICAD_PLUGINS + + for plugins_dir in plugin_directories: + if not os.path.isdir( plugins_dir ): + continue + + sys.path.append( plugins_dir ) + + for module in os.listdir(plugins_dir): + fullPath = os.path.join( plugins_dir, module ) + + if os.path.isdir( fullPath ): + if os.path.exists( os.path.join( fullPath, '__init__.py' ) ): + LoadPluginModule( plugins_dir, module, module ) + else: + if NOT_LOADED_WIZARDS != "" : + NOT_LOADED_WIZARDS += "\n" + NOT_LOADED_WIZARDS += 'Skip subdir ' + fullPath + continue + + if module == '__init__.py' or module[-3:] != '.py': + continue + + LoadPluginModule( plugins_dir, module[:-3], module ) + + +class KiCadPlugin: + def __init__(self): + pass + + def register(self): + import inspect + import os + + if isinstance(self,FilePlugin): + pass # register to file plugins in C++ + + if isinstance(self,FootprintWizardPlugin): + PYTHON_FOOTPRINT_WIZARD_LIST.register_wizard(self) + return + + if isinstance(self,ActionPlugin): + """ + Get path to .py or .pyc that has definition of plugin class. + If path is binary but source also exists, assume definition is in source. + """ + self.__plugin_path = inspect.getfile(self.__class__) + if self.__plugin_path.endswith('.pyc') and os.path.isfile(self.__plugin_path[:-1]): + self.__plugin_path = self.__plugin_path[:-1] + self.__plugin_path = self.__plugin_path + '/' + self.__class__.__name__ + PYTHON_ACTION_PLUGINS.register_action(self) + return + + return + + def deregister(self): + if isinstance(self,FilePlugin): + pass # deregister to file plugins in C++ + + if isinstance(self,FootprintWizardPlugin): + PYTHON_FOOTPRINT_WIZARD_LIST.deregister_wizard(self) + return + + if isinstance(self,ActionPlugin): + PYTHON_ACTION_PLUGINS.deregister_action(self) + return + + return + + def GetPluginPath( self ): + return self.__plugin_path + + +class FilePlugin(KiCadPlugin): + def __init__(self): + KiCadPlugin.__init__(self) + + +from math import ceil, floor, sqrt + +uMM = "mm" # Millimetres +uMils = "mils" # Mils +uFloat = "float" # Natural number units (dimensionless) +uInteger = "integer" # Integer (no decimals, numeric, dimensionless) +uBool = "bool" # Boolean value +uRadians = "radians" # Angular units (radians) +uDegrees = "degrees" # Angular units (degrees) +uPercent = "%" # Percent (0% -> 100%) +uString = "string" # Raw string + +uNumeric = [uMM, uMils, uFloat, uInteger, uDegrees, uRadians, uPercent] # List of numeric types +uUnits = [uMM, uMils, uFloat, uInteger, uBool, uDegrees, uRadians, uPercent, uString] # List of allowable types + +class FootprintWizardParameter(object): + _true = ['true','t','y','yes','on','1',1,] + _false = ['false','f','n','no','off','0',0,'',None] + + _bools = _true + _false + + def __init__(self, page, name, units, default, **kwarg): + self.page = page + self.name = name + self.hint = kwarg.get('hint','') # Parameter hint (shown as mouse-over text) + self.designator = kwarg.get('designator',' ') # Parameter designator such as "e, D, p" (etc) + + if units.lower() in uUnits: + self.units = units.lower() + elif units.lower() == 'percent': + self.units = uPercent + elif type(units) in [list, tuple]: # Convert a list of options into a single string + self.units = ",".join([str(el).strip() for el in units]) + else: + self.units = units + + self.multiple = int(kwarg.get('multiple',1)) # Check integer values are multiples of this number + self.min_value = kwarg.get('min_value',None) # Check numeric values are above or equal to this number + self.max_value = kwarg.get('max_value',None) # Check numeric values are below or equal to this number + + self.SetValue(default) + self.default = self.raw_value # Save value as default + + def ClearErrors(self): + self.error_list = [] + + def AddError(self, err, info=None): + + if err in self.error_list: # prevent duplicate error messages + return + if info is not None: + err = err + " (" + str(info) + ")" + + self.error_list.append(err) + + def Check(self, min_value=None, max_value=None, multiple=None, info=None): + + if min_value is None: + min_value = self.min_value + if max_value is None: + max_value = self.max_value + if multiple is None: + multiple = self.multiple + + if self.units not in uUnits and ',' not in self.units: # Allow either valid units or a list of strings + self.AddError("type '{t}' unknown".format(t=self.units),info) + self.AddError("Allowable types: " + str(self.units),info) + + if self.units in uNumeric: + try: + to_num = float(self.raw_value) + + if min_value is not None: # Check minimum value if it is present + if to_num < min_value: + self.AddError("value '{v}' is below minimum ({m})".format(v=self.raw_value,m=min_value),info) + + if max_value is not None: # Check maximum value if it is present + if to_num > max_value: + self.AddError("value '{v}' is above maximum ({m})".format(v=self.raw_value,m=max_value),info) + + except: + self.AddError("value '{v}' is not of type '{t}'".format(v = self.raw_value, t=self.units),info) + + if self.units == uInteger: # Perform integer specific checks + try: + to_int = int(self.raw_value) + + if multiple is not None and multiple > 1: + if (to_int % multiple) > 0: + self.AddError("value '{v}' is not a multiple of {m}".format(v=self.raw_value,m=multiple),info) + except: + self.AddError("value '{v}' is not an integer".format(v=self.raw_value),info) + + if self.units == uBool: # Check that the value is of a correct boolean format + if self.raw_value in [True,False] or str(self.raw_value).lower() in self._bools: + pass + else: + self.AddError("value '{v}' is not a boolean value".format(v = self.raw_value),info) + + @property + def value(self): # Return the current value, converted to appropriate units (from string representation) if required + v = str(self.raw_value) # Enforce string type for known starting point + + if self.units == uInteger: # Integer values + return int(v) + elif self.units in uNumeric: # Any values that use floating points + v = v.replace(",",".") # Replace "," separators with "." + v = float(v) + + if self.units == uMM: # Convert from millimetres to nanometres + return FromMM(v) + + elif self.units == uMils: # Convert from mils to nanometres + return FromMils(v) + + else: # Any other floating-point values + return v + + elif self.units == uBool: + if v.lower() in self._true: + return True + else: + return False + else: + return v + + def DefaultValue(self): # Reset the value of the parameter to its default + self.raw_value = str(self.default) + + def SetValue(self, new_value): # Update the value + new_value = str(new_value) + + if len(new_value.strip()) == 0: + if not self.units in [uString, uBool]: + return # Ignore empty values unless for strings or bools + + if self.units == uBool: # Enforce the same boolean representation as is used in KiCad + new_value = "1" if new_value.lower() in self._true else "0" + elif self.units in uNumeric: + new_value = new_value.replace(",", ".") # Enforce decimal point separators + elif ',' in self.units: # Select from a list of values + if new_value not in self.units.split(','): + new_value = self.units.split(',')[0] + + self.raw_value = new_value + + def __str__(self): # pretty-print the parameter + + s = self.name + ": " + str(self.raw_value) + + if self.units in [uMM, uMils, uPercent, uRadians, uDegrees]: + s += self.units + elif self.units == uBool: # Special case for Boolean values + s = self.name + ": {b}".format(b = "True" if self.value else "False") + elif self.units == uString: + s = self.name + ": '" + self.raw_value + "'" + + return s + + +class FootprintWizardPlugin(KiCadPlugin, object): + def __init__(self): + KiCadPlugin.__init__(self) + self.defaults() + + def defaults(self): + self.module = None + self.params = [] # List of added parameters that observes addition order + + self.name = "KiCad FP Wizard" + self.description = "Undefined Footprint Wizard plugin" + self.image = "" + self.buildmessages = "" + + def AddParam(self, page, name, unit, default, **kwarg): + + if self.GetParam(page,name) is not None: # Param already exists! + return + + param = FootprintWizardParameter(page, name, unit, default, **kwarg) # Create a new parameter + self.params.append(param) + + @property + def parameters(self): # This is a helper function that returns a nested (unordered) dict of the VALUES of parameters + pages = {} # Page dict + for p in self.params: + if p.page not in pages: + pages[p.page] = {} + + pages[p.page][p.name] = p.value # Return the 'converted' value (convert from string to actual useful units) + + return pages + + @property + def values(self): # Same as above + return self.parameters + + def ResetWizard(self): # Reset all parameters to default values + for p in self.params: + p.DefaultValue() + + def GetName(self): # Return the name of this wizard + return self.name + + def GetImage(self): # Return the filename of the preview image associated with this wizard + return self.image + + def GetDescription(self): # Return the description text + return self.description + + def GetValue(self): + raise NotImplementedError + + def GetReferencePrefix(self): + return "REF" # Default reference prefix for any footprint + + def GetParam(self, page, name): # Grab a parameter + for p in self.params: + if p.page == page and p.name == name: + return p + + return None + + def CheckParam(self, page, name, **kwarg): + self.GetParam(page,name).Check(**kwarg) + + def AnyErrors(self): + return any([len(p.error_list) > 0 for p in self.params]) + + @property + def pages(self): # Return an (ordered) list of the available page names + page_list = [] + for p in self.params: + if p.page not in page_list: + page_list.append(p.page) + + return page_list + + def GetNumParameterPages(self): # Return the number of parameter pages + return len(self.pages) + + def GetParameterPageName(self,page_n): # Return the name of a page at a given index + return self.pages[page_n] + + def GetParametersByPageName(self, page_name): # Return a list of parameters on a given page + params = [] + + for p in self.params: + if p.page == page_name: + params.append(p) + + return params + + def GetParametersByPageIndex(self, page_index): # Return an ordered list of parameters on a given page + return self.GetParametersByPageName(self.GetParameterPageName(page_index)) + + def GetParameterDesignators(self, page_index): # Return a list of designators associated with a given page + params = self.GetParametersByPageIndex(page_index) + return [p.designator for p in params] + + def GetParameterNames(self,page_index): # Return the list of names associated with a given page + params = self.GetParametersByPageIndex(page_index) + return [p.name for p in params] + + def GetParameterValues(self,page_index): # Return the list of values associated with a given page + params = self.GetParametersByPageIndex(page_index) + return [str(p.raw_value) for p in params] + + def GetParameterErrors(self,page_index): # Return list of errors associated with a given page + params = self.GetParametersByPageIndex(page_index) + return [str("\n".join(p.error_list)) for p in params] + + def GetParameterTypes(self, page_index): # Return list of units associated with a given page + params = self.GetParametersByPageIndex(page_index) + return [str(p.units) for p in params] + + def GetParameterHints(self, page_index): # Return a list of units associated with a given page + params = self.GetParametersByPageIndex(page_index) + return [str(p.hint) for p in params] + + def GetParameterDesignators(self, page_index): # Return a list of designators associated with a given page + params = self.GetParametersByPageIndex(page_index) + return [str(p.designator) for p in params] + + def SetParameterValues(self, page_index, list_of_values): # Update values on a given page + + params = self.GetParametersByPageIndex(page_index) + + for i, param in enumerate(params): + if i >= len(list_of_values): + break + param.SetValue(list_of_values[i]) + + def GetFootprint( self ): + self.BuildFootprint() + return self.module + + def BuildFootprint(self): + return + + def GetBuildMessages( self ): + return self.buildmessages + + def Show(self): + text = "Footprint Wizard Name: {name}\n".format(name=self.GetName()) + text += "Footprint Wizard Description: {desc}\n".format(desc=self.GetDescription()) + + n_pages = self.GetNumParameterPages() + + text += "Pages: {n}\n".format(n=n_pages) + + for i in range(n_pages): + name = self.GetParameterPageName(i) + + params = self.GetParametersByPageName(name) + + text += "{name}\n".format(name=name) + + for j in range(len(params)): + text += ("\t{param}{err}\n".format( + param = str(params[j]), + err = ' *' if len(params[j].error_list) > 0 else '' + )) + + if self.AnyErrors(): + text += " * Errors exist for these parameters" + + return text + +class ActionPlugin(KiCadPlugin, object): + def __init__( self ): + KiCadPlugin.__init__( self ) + self.icon_file_name = "" + self.show_toolbar_button = False + self.defaults() + + def defaults( self ): + self.name = "Undefined Action plugin" + self.category = "Undefined" + self.description = "" + + def GetName( self ): + return self.name + + def GetCategoryName( self ): + return self.category + + def GetDescription( self ): + return self.description + + def GetShowToolbarButton( self ): + return self.show_toolbar_button + + def GetIconFileName( self ): + return self.icon_file_name + + def Run(self): + return + + +SH_RECT = _pcbnew.SH_RECT + +SH_SEGMENT = _pcbnew.SH_SEGMENT + +SH_LINE_CHAIN = _pcbnew.SH_LINE_CHAIN + +SH_CIRCLE = _pcbnew.SH_CIRCLE + +SH_SIMPLE = _pcbnew.SH_SIMPLE + +SH_POLY_SET = _pcbnew.SH_POLY_SET + +SH_COMPOUND = _pcbnew.SH_COMPOUND + +SH_ARC = _pcbnew.SH_ARC + +class SHAPE(object): + r"""Proxy of C++ SHAPE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_SHAPE + + def Type(self): + r"""Type(SHAPE self) -> SHAPE_TYPE""" + return _pcbnew.SHAPE_Type(self) + + def Clone(self): + r"""Clone(SHAPE self) -> SHAPE""" + return _pcbnew.SHAPE_Clone(self) + + def Collide(self, *args): + r""" + Collide(SHAPE self, VECTOR2I aP, int aClearance=0) -> bool + Collide(SHAPE self, SHAPE aShape, int aClearance, VECTOR2I aMTV) -> bool + Collide(SHAPE self, SHAPE aShape, int aClearance=0) -> bool + Collide(SHAPE self, SEG const & aSeg, int aClearance=0) -> bool + """ + return _pcbnew.SHAPE_Collide(self, *args) + + def BBox(self, aClearance=0): + r"""BBox(SHAPE self, int aClearance=0) -> BOX2I const""" + return _pcbnew.SHAPE_BBox(self, aClearance) + + def Centre(self): + r"""Centre(SHAPE self) -> VECTOR2I""" + return _pcbnew.SHAPE_Centre(self) + + def Move(self, aVector): + r"""Move(SHAPE self, VECTOR2I aVector)""" + return _pcbnew.SHAPE_Move(self, aVector) + + def IsSolid(self): + r"""IsSolid(SHAPE self) -> bool""" + return _pcbnew.SHAPE_IsSolid(self) + + def Parse(self, aStream): + r"""Parse(SHAPE self, std::stringstream & aStream) -> bool""" + return _pcbnew.SHAPE_Parse(self, aStream) + + def Format(self): + r"""Format(SHAPE self) -> string""" + return _pcbnew.SHAPE_Format(self) + +# Register SHAPE in _pcbnew: +_pcbnew.SHAPE_swigregister(SHAPE) + + +def CollideShapes(aA, aB, aClearance, aNeedMTV, aMTV): + r"""CollideShapes(SHAPE aA, SHAPE aB, int aClearance, bool aNeedMTV, VECTOR2I aMTV) -> bool""" + return _pcbnew.CollideShapes(aA, aB, aClearance, aNeedMTV, aMTV) +class VECTOR2I(object): + r"""Proxy of C++ VECTOR2< int > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + x = property(_pcbnew.VECTOR2I_x_get, _pcbnew.VECTOR2I_x_set, doc=r"""x : int""") + y = property(_pcbnew.VECTOR2I_y_get, _pcbnew.VECTOR2I_y_set, doc=r"""y : int""") + + def __init__(self, *args): + r""" + __init__(VECTOR2I self) -> VECTOR2I + __init__(VECTOR2I self, wxPoint aPoint) -> VECTOR2I + __init__(VECTOR2I self, wxSize aSize) -> VECTOR2I + __init__(VECTOR2I self, int x, int y) -> VECTOR2I + """ + _pcbnew.VECTOR2I_swiginit(self, _pcbnew.new_VECTOR2I(*args)) + + def getWxPoint(self): + r"""getWxPoint(VECTOR2I self) -> wxPoint""" + return _pcbnew.VECTOR2I_getWxPoint(self) + + def EuclideanNorm(self): + r"""EuclideanNorm(VECTOR2I self) -> int""" + return _pcbnew.VECTOR2I_EuclideanNorm(self) + + def SquaredEuclideanNorm(self): + r"""SquaredEuclideanNorm(VECTOR2I self) -> VECTOR2< int >::extended_type""" + return _pcbnew.VECTOR2I_SquaredEuclideanNorm(self) + + def Perpendicular(self): + r"""Perpendicular(VECTOR2I self) -> VECTOR2I""" + return _pcbnew.VECTOR2I_Perpendicular(self) + + def Resize(self, aNewLength): + r"""Resize(VECTOR2I self, int aNewLength) -> VECTOR2I""" + return _pcbnew.VECTOR2I_Resize(self, aNewLength) + + def Angle(self): + r"""Angle(VECTOR2I self) -> double""" + return _pcbnew.VECTOR2I_Angle(self) + + def Rotate(self, aAngle): + r"""Rotate(VECTOR2I self, double aAngle) -> VECTOR2I""" + return _pcbnew.VECTOR2I_Rotate(self, aAngle) + + def Format(self): + r"""Format(VECTOR2I self) -> string""" + return _pcbnew.VECTOR2I_Format(self) + + def Cross(self, aVector): + r"""Cross(VECTOR2I self, VECTOR2I aVector) -> VECTOR2< int >::extended_type""" + return _pcbnew.VECTOR2I_Cross(self, aVector) + + def Dot(self, aVector): + r"""Dot(VECTOR2I self, VECTOR2I aVector) -> VECTOR2< int >::extended_type""" + return _pcbnew.VECTOR2I_Dot(self, aVector) + + def __add__(self, *args): + r""" + __add__(VECTOR2I self, VECTOR2I aVector) -> VECTOR2I + __add__(VECTOR2I self, int const & aScalar) -> VECTOR2I + """ + return _pcbnew.VECTOR2I___add__(self, *args) + + def __iadd__(self, *args): + r""" + __iadd__(VECTOR2I self, VECTOR2I aVector) -> VECTOR2I + __iadd__(VECTOR2I self, int const & aScalar) -> VECTOR2I + """ + return _pcbnew.VECTOR2I___iadd__(self, *args) + + def __sub__(self, *args): + r""" + __sub__(VECTOR2I self, VECTOR2I aVector) -> VECTOR2I + __sub__(VECTOR2I self, int const & aScalar) -> VECTOR2I + """ + return _pcbnew.VECTOR2I___sub__(self, *args) + + def __isub__(self, *args): + r""" + __isub__(VECTOR2I self, VECTOR2I aVector) -> VECTOR2I + __isub__(VECTOR2I self, int const & aScalar) -> VECTOR2I + """ + return _pcbnew.VECTOR2I___isub__(self, *args) + + def __neg__(self): + r"""__neg__(VECTOR2I self) -> VECTOR2I""" + return _pcbnew.VECTOR2I___neg__(self) + + def __mul__(self, *args): + r""" + __mul__(VECTOR2I self, VECTOR2I aVector) -> VECTOR2< int >::extended_type + __mul__(VECTOR2I self, int const & aFactor) -> VECTOR2I + """ + return _pcbnew.VECTOR2I___mul__(self, *args) + + def __truediv__(self, *args): + return _pcbnew.VECTOR2I___truediv__(self, *args) + __div__ = __truediv__ + + + + def __eq__(self, aVector): + r"""__eq__(VECTOR2I self, VECTOR2I aVector) -> bool""" + return _pcbnew.VECTOR2I___eq__(self, aVector) + + def __ne__(self, aVector): + r"""__ne__(VECTOR2I self, VECTOR2I aVector) -> bool""" + return _pcbnew.VECTOR2I___ne__(self, aVector) + + def __lt__(self, aVector): + r"""__lt__(VECTOR2I self, VECTOR2I aVector) -> bool""" + return _pcbnew.VECTOR2I___lt__(self, aVector) + + def __le__(self, aVector): + r"""__le__(VECTOR2I self, VECTOR2I aVector) -> bool""" + return _pcbnew.VECTOR2I___le__(self, aVector) + + def __gt__(self, aVector): + r"""__gt__(VECTOR2I self, VECTOR2I aVector) -> bool""" + return _pcbnew.VECTOR2I___gt__(self, aVector) + + def __ge__(self, aVector): + r"""__ge__(VECTOR2I self, VECTOR2I aVector) -> bool""" + return _pcbnew.VECTOR2I___ge__(self, aVector) + __swig_destroy__ = _pcbnew.delete_VECTOR2I + +# Register VECTOR2I in _pcbnew: +_pcbnew.VECTOR2I_swigregister(VECTOR2I) + +class SHAPE_LINE_CHAIN(SHAPE): + r"""Proxy of C++ SHAPE_LINE_CHAIN class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(SHAPE_LINE_CHAIN self) -> SHAPE_LINE_CHAIN + __init__(SHAPE_LINE_CHAIN self, SHAPE_LINE_CHAIN aShape) -> SHAPE_LINE_CHAIN + __init__(SHAPE_LINE_CHAIN self, VECTOR2I aA, VECTOR2I aB) -> SHAPE_LINE_CHAIN + __init__(SHAPE_LINE_CHAIN self, VECTOR2I aA, VECTOR2I aB, VECTOR2I aC) -> SHAPE_LINE_CHAIN + __init__(SHAPE_LINE_CHAIN self, VECTOR2I aA, VECTOR2I aB, VECTOR2I aC, VECTOR2I aD) -> SHAPE_LINE_CHAIN + __init__(SHAPE_LINE_CHAIN self, VECTOR2I aV, int aCount) -> SHAPE_LINE_CHAIN + __init__(SHAPE_LINE_CHAIN self, ClipperLib::Path const & aPath) -> SHAPE_LINE_CHAIN + """ + _pcbnew.SHAPE_LINE_CHAIN_swiginit(self, _pcbnew.new_SHAPE_LINE_CHAIN(*args)) + __swig_destroy__ = _pcbnew.delete_SHAPE_LINE_CHAIN + + def Clone(self): + r"""Clone(SHAPE_LINE_CHAIN self) -> SHAPE""" + return _pcbnew.SHAPE_LINE_CHAIN_Clone(self) + + def Clear(self): + r"""Clear(SHAPE_LINE_CHAIN self)""" + return _pcbnew.SHAPE_LINE_CHAIN_Clear(self) + + def SetClosed(self, aClosed): + r"""SetClosed(SHAPE_LINE_CHAIN self, bool aClosed)""" + return _pcbnew.SHAPE_LINE_CHAIN_SetClosed(self, aClosed) + + def IsClosed(self): + r"""IsClosed(SHAPE_LINE_CHAIN self) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_IsClosed(self) + + def SegmentCount(self): + r"""SegmentCount(SHAPE_LINE_CHAIN self) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_SegmentCount(self) + + def PointCount(self): + r"""PointCount(SHAPE_LINE_CHAIN self) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_PointCount(self) + + def Segment(self, aIndex): + r"""Segment(SHAPE_LINE_CHAIN self, int aIndex) -> SEG""" + return _pcbnew.SHAPE_LINE_CHAIN_Segment(self, aIndex) + + def CSegment(self, aIndex): + r"""CSegment(SHAPE_LINE_CHAIN self, int aIndex) -> SEG const""" + return _pcbnew.SHAPE_LINE_CHAIN_CSegment(self, aIndex) + + def Point(self, aIndex): + r"""Point(SHAPE_LINE_CHAIN self, int aIndex) -> VECTOR2I""" + return _pcbnew.SHAPE_LINE_CHAIN_Point(self, aIndex) + + def CPoint(self, aIndex): + r"""CPoint(SHAPE_LINE_CHAIN self, int aIndex) -> VECTOR2I""" + return _pcbnew.SHAPE_LINE_CHAIN_CPoint(self, aIndex) + + def CPoints(self): + r"""CPoints(SHAPE_LINE_CHAIN self) -> std::vector< VECTOR2I,std::allocator< VECTOR2I > > const &""" + return _pcbnew.SHAPE_LINE_CHAIN_CPoints(self) + + def LastPoint(self): + r"""LastPoint(SHAPE_LINE_CHAIN self) -> VECTOR2I""" + return _pcbnew.SHAPE_LINE_CHAIN_LastPoint(self) + + def CLastPoint(self): + r"""CLastPoint(SHAPE_LINE_CHAIN self) -> VECTOR2I""" + return _pcbnew.SHAPE_LINE_CHAIN_CLastPoint(self) + + def BBox(self, aClearance=0): + r"""BBox(SHAPE_LINE_CHAIN self, int aClearance=0) -> BOX2I const""" + return _pcbnew.SHAPE_LINE_CHAIN_BBox(self, aClearance) + + def GenerateBBoxCache(self): + r"""GenerateBBoxCache(SHAPE_LINE_CHAIN self)""" + return _pcbnew.SHAPE_LINE_CHAIN_GenerateBBoxCache(self) + + def Collide(self, *args): + r""" + Collide(SHAPE_LINE_CHAIN self, VECTOR2I aP, int aClearance=0) -> bool + Collide(SHAPE_LINE_CHAIN self, SEG const & aSeg, int aClearance=0) -> bool + """ + return _pcbnew.SHAPE_LINE_CHAIN_Collide(self, *args) + + def Distance(self, aP, aOutlineOnly=False): + r"""Distance(SHAPE_LINE_CHAIN self, VECTOR2I aP, bool aOutlineOnly=False) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_Distance(self, aP, aOutlineOnly) + + def Reverse(self): + r"""Reverse(SHAPE_LINE_CHAIN self) -> SHAPE_LINE_CHAIN""" + return _pcbnew.SHAPE_LINE_CHAIN_Reverse(self) + + def Length(self): + r"""Length(SHAPE_LINE_CHAIN self) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_Length(self) + + def Append(self, *args): + r""" + Append(SHAPE_LINE_CHAIN self, int aX, int aY, bool aAllowDuplication=False) + Append(SHAPE_LINE_CHAIN self, VECTOR2I aP, bool aAllowDuplication=False) + Append(SHAPE_LINE_CHAIN self, SHAPE_LINE_CHAIN aOtherLine) + """ + return _pcbnew.SHAPE_LINE_CHAIN_Append(self, *args) + + def Insert(self, aVertex, aP): + r"""Insert(SHAPE_LINE_CHAIN self, int aVertex, VECTOR2I aP)""" + return _pcbnew.SHAPE_LINE_CHAIN_Insert(self, aVertex, aP) + + def Replace(self, *args): + r""" + Replace(SHAPE_LINE_CHAIN self, int aStartIndex, int aEndIndex, VECTOR2I aP) + Replace(SHAPE_LINE_CHAIN self, int aStartIndex, int aEndIndex, SHAPE_LINE_CHAIN aLine) + """ + return _pcbnew.SHAPE_LINE_CHAIN_Replace(self, *args) + + def Remove(self, *args): + r""" + Remove(SHAPE_LINE_CHAIN self, int aStartIndex, int aEndIndex) + Remove(SHAPE_LINE_CHAIN self, int aIndex) + """ + return _pcbnew.SHAPE_LINE_CHAIN_Remove(self, *args) + + def Split(self, aP): + r"""Split(SHAPE_LINE_CHAIN self, VECTOR2I aP) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_Split(self, aP) + + def Find(self, aP): + r"""Find(SHAPE_LINE_CHAIN self, VECTOR2I aP) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_Find(self, aP) + + def FindSegment(self, aP): + r"""FindSegment(SHAPE_LINE_CHAIN self, VECTOR2I aP) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_FindSegment(self, aP) + + def Slice(self, aStartIndex, aEndIndex=-1): + r"""Slice(SHAPE_LINE_CHAIN self, int aStartIndex, int aEndIndex=-1) -> SHAPE_LINE_CHAIN""" + return _pcbnew.SHAPE_LINE_CHAIN_Slice(self, aStartIndex, aEndIndex) + + def Intersects(self, aChain): + r"""Intersects(SHAPE_LINE_CHAIN self, SHAPE_LINE_CHAIN aChain) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_Intersects(self, aChain) + + def Intersect(self, *args): + r""" + Intersect(SHAPE_LINE_CHAIN self, SEG const & aSeg, SHAPE_LINE_CHAIN::INTERSECTIONS & aIp) -> int + Intersect(SHAPE_LINE_CHAIN self, SHAPE_LINE_CHAIN aChain, SHAPE_LINE_CHAIN::INTERSECTIONS & aIp) -> int + """ + return _pcbnew.SHAPE_LINE_CHAIN_Intersect(self, *args) + + def PathLength(self, aP): + r"""PathLength(SHAPE_LINE_CHAIN self, VECTOR2I aP) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_PathLength(self, aP) + + def PointInside(self, aPt, aAccuracy=0, aUseBBoxCache=False): + r"""PointInside(SHAPE_LINE_CHAIN self, VECTOR2I aPt, int aAccuracy=0, bool aUseBBoxCache=False) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_PointInside(self, aPt, aAccuracy, aUseBBoxCache) + + def PointOnEdge(self, aP, aAccuracy=0): + r"""PointOnEdge(SHAPE_LINE_CHAIN self, VECTOR2I aP, int aAccuracy=0) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_PointOnEdge(self, aP, aAccuracy) + + def EdgeContainingPoint(self, aP, aAccuracy=0): + r"""EdgeContainingPoint(SHAPE_LINE_CHAIN self, VECTOR2I aP, int aAccuracy=0) -> int""" + return _pcbnew.SHAPE_LINE_CHAIN_EdgeContainingPoint(self, aP, aAccuracy) + + def CheckClearance(self, aP, aDist): + r"""CheckClearance(SHAPE_LINE_CHAIN self, VECTOR2I aP, int const aDist) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_CheckClearance(self, aP, aDist) + + def SelfIntersecting(self): + r"""SelfIntersecting(SHAPE_LINE_CHAIN self) -> OPT< SHAPE_LINE_CHAIN::INTERSECTION > const""" + return _pcbnew.SHAPE_LINE_CHAIN_SelfIntersecting(self) + + def Simplify(self): + r"""Simplify(SHAPE_LINE_CHAIN self) -> SHAPE_LINE_CHAIN""" + return _pcbnew.SHAPE_LINE_CHAIN_Simplify(self) + + def convertToClipper(self, aRequiredOrientation): + r"""convertToClipper(SHAPE_LINE_CHAIN self, bool aRequiredOrientation) -> ClipperLib::Path""" + return _pcbnew.SHAPE_LINE_CHAIN_convertToClipper(self, aRequiredOrientation) + + def NearestPoint(self, *args): + r""" + NearestPoint(SHAPE_LINE_CHAIN self, VECTOR2I aP) -> VECTOR2I + NearestPoint(SHAPE_LINE_CHAIN self, SEG const & aSeg, int & dist) -> VECTOR2I + """ + return _pcbnew.SHAPE_LINE_CHAIN_NearestPoint(self, *args) + + def Format(self): + r"""Format(SHAPE_LINE_CHAIN self) -> string""" + return _pcbnew.SHAPE_LINE_CHAIN_Format(self) + + def Parse(self, aStream): + r"""Parse(SHAPE_LINE_CHAIN self, std::stringstream & aStream) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_Parse(self, aStream) + + def __ne__(self, aRhs): + r"""__ne__(SHAPE_LINE_CHAIN self, SHAPE_LINE_CHAIN aRhs) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN___ne__(self, aRhs) + + def CompareGeometry(self, aOther): + r"""CompareGeometry(SHAPE_LINE_CHAIN self, SHAPE_LINE_CHAIN aOther) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_CompareGeometry(self, aOther) + + def Move(self, aVector): + r"""Move(SHAPE_LINE_CHAIN self, VECTOR2I aVector)""" + return _pcbnew.SHAPE_LINE_CHAIN_Move(self, aVector) + + def Rotate(self, aAngle, aCenter): + r"""Rotate(SHAPE_LINE_CHAIN self, double aAngle, VECTOR2I aCenter)""" + return _pcbnew.SHAPE_LINE_CHAIN_Rotate(self, aAngle, aCenter) + + def IsSolid(self): + r"""IsSolid(SHAPE_LINE_CHAIN self) -> bool""" + return _pcbnew.SHAPE_LINE_CHAIN_IsSolid(self) + + def PointAlong(self, aPathLength): + r"""PointAlong(SHAPE_LINE_CHAIN self, int aPathLength) -> VECTOR2I""" + return _pcbnew.SHAPE_LINE_CHAIN_PointAlong(self, aPathLength) + + def Area(self): + r"""Area(SHAPE_LINE_CHAIN self) -> double""" + return _pcbnew.SHAPE_LINE_CHAIN_Area(self) + +# Register SHAPE_LINE_CHAIN in _pcbnew: +_pcbnew.SHAPE_LINE_CHAIN_swigregister(SHAPE_LINE_CHAIN) + +class SHAPE_POLY_SET(SHAPE): + r"""Proxy of C++ SHAPE_POLY_SET class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(SHAPE_POLY_SET self) -> SHAPE_POLY_SET + __init__(SHAPE_POLY_SET self, SHAPE_POLY_SET aOther, bool aDeepCopy=False) -> SHAPE_POLY_SET + """ + _pcbnew.SHAPE_POLY_SET_swiginit(self, _pcbnew.new_SHAPE_POLY_SET(*args)) + __swig_destroy__ = _pcbnew.delete_SHAPE_POLY_SET + + def GetRelativeIndices(self, aGlobalIdx, aRelativeIndices): + r"""GetRelativeIndices(SHAPE_POLY_SET self, int aGlobalIdx, SHAPE_POLY_SET::VERTEX_INDEX * aRelativeIndices) -> bool""" + return _pcbnew.SHAPE_POLY_SET_GetRelativeIndices(self, aGlobalIdx, aRelativeIndices) + + def GetGlobalIndex(self, aRelativeIndices, aGlobalIdx): + r"""GetGlobalIndex(SHAPE_POLY_SET self, SHAPE_POLY_SET::VERTEX_INDEX aRelativeIndices, int & aGlobalIdx) -> bool""" + return _pcbnew.SHAPE_POLY_SET_GetGlobalIndex(self, aRelativeIndices, aGlobalIdx) + + def Clone(self): + r"""Clone(SHAPE_POLY_SET self) -> SHAPE""" + return _pcbnew.SHAPE_POLY_SET_Clone(self) + + def NewOutline(self): + r"""NewOutline(SHAPE_POLY_SET self) -> int""" + return _pcbnew.SHAPE_POLY_SET_NewOutline(self) + + def NewHole(self, aOutline=-1): + r"""NewHole(SHAPE_POLY_SET self, int aOutline=-1) -> int""" + return _pcbnew.SHAPE_POLY_SET_NewHole(self, aOutline) + + def AddOutline(self, aOutline): + r"""AddOutline(SHAPE_POLY_SET self, SHAPE_LINE_CHAIN aOutline) -> int""" + return _pcbnew.SHAPE_POLY_SET_AddOutline(self, aOutline) + + def AddHole(self, aHole, aOutline=-1): + r"""AddHole(SHAPE_POLY_SET self, SHAPE_LINE_CHAIN aHole, int aOutline=-1) -> int""" + return _pcbnew.SHAPE_POLY_SET_AddHole(self, aHole, aOutline) + + def Append(self, *args): + r""" + Append(SHAPE_POLY_SET self, int x, int y, int aOutline=-1, int aHole=-1, bool aAllowDuplication=False) -> int + Append(SHAPE_POLY_SET self, SHAPE_POLY_SET aSet) + Append(SHAPE_POLY_SET self, VECTOR2I aP, int aOutline=-1, int aHole=-1) + """ + return _pcbnew.SHAPE_POLY_SET_Append(self, *args) + + def InsertVertex(self, aGlobalIndex, aNewVertex): + r"""InsertVertex(SHAPE_POLY_SET self, int aGlobalIndex, VECTOR2I aNewVertex)""" + return _pcbnew.SHAPE_POLY_SET_InsertVertex(self, aGlobalIndex, aNewVertex) + + def Vertex(self, *args): + r""" + Vertex(SHAPE_POLY_SET self, int aIndex, int aOutline, int aHole) -> VECTOR2I + Vertex(SHAPE_POLY_SET self, int aGlobalIndex) -> VECTOR2I + Vertex(SHAPE_POLY_SET self, SHAPE_POLY_SET::VERTEX_INDEX aIndex) -> VECTOR2I + """ + return _pcbnew.SHAPE_POLY_SET_Vertex(self, *args) + + def CVertex(self, *args): + r""" + CVertex(SHAPE_POLY_SET self, int aIndex, int aOutline, int aHole) -> VECTOR2I + CVertex(SHAPE_POLY_SET self, int aGlobalIndex) -> VECTOR2I + CVertex(SHAPE_POLY_SET self, SHAPE_POLY_SET::VERTEX_INDEX aIndex) -> VECTOR2I + """ + return _pcbnew.SHAPE_POLY_SET_CVertex(self, *args) + + def GetNeighbourIndexes(self, aGlobalIndex, aPrevious, aNext): + r"""GetNeighbourIndexes(SHAPE_POLY_SET self, int aGlobalIndex, int * aPrevious, int * aNext) -> bool""" + return _pcbnew.SHAPE_POLY_SET_GetNeighbourIndexes(self, aGlobalIndex, aPrevious, aNext) + + def IsPolygonSelfIntersecting(self, aPolygonIndex): + r"""IsPolygonSelfIntersecting(SHAPE_POLY_SET self, int aPolygonIndex) -> bool""" + return _pcbnew.SHAPE_POLY_SET_IsPolygonSelfIntersecting(self, aPolygonIndex) + + def IsSelfIntersecting(self): + r"""IsSelfIntersecting(SHAPE_POLY_SET self) -> bool""" + return _pcbnew.SHAPE_POLY_SET_IsSelfIntersecting(self) + + def TriangulatedPolyCount(self): + r"""TriangulatedPolyCount(SHAPE_POLY_SET self) -> unsigned int""" + return _pcbnew.SHAPE_POLY_SET_TriangulatedPolyCount(self) + + def OutlineCount(self): + r"""OutlineCount(SHAPE_POLY_SET self) -> int""" + return _pcbnew.SHAPE_POLY_SET_OutlineCount(self) + + def VertexCount(self, aOutline=-1, aHole=-1): + r"""VertexCount(SHAPE_POLY_SET self, int aOutline=-1, int aHole=-1) -> int""" + return _pcbnew.SHAPE_POLY_SET_VertexCount(self, aOutline, aHole) + + def HoleCount(self, aOutline): + r"""HoleCount(SHAPE_POLY_SET self, int aOutline) -> int""" + return _pcbnew.SHAPE_POLY_SET_HoleCount(self, aOutline) + + def Outline(self, aIndex): + r"""Outline(SHAPE_POLY_SET self, int aIndex) -> SHAPE_LINE_CHAIN""" + return _pcbnew.SHAPE_POLY_SET_Outline(self, aIndex) + + def Subset(self, aFirstPolygon, aLastPolygon): + r"""Subset(SHAPE_POLY_SET self, int aFirstPolygon, int aLastPolygon) -> SHAPE_POLY_SET""" + return _pcbnew.SHAPE_POLY_SET_Subset(self, aFirstPolygon, aLastPolygon) + + def UnitSet(self, aPolygonIndex): + r"""UnitSet(SHAPE_POLY_SET self, int aPolygonIndex) -> SHAPE_POLY_SET""" + return _pcbnew.SHAPE_POLY_SET_UnitSet(self, aPolygonIndex) + + def Hole(self, aOutline, aHole): + r"""Hole(SHAPE_POLY_SET self, int aOutline, int aHole) -> SHAPE_LINE_CHAIN""" + return _pcbnew.SHAPE_POLY_SET_Hole(self, aOutline, aHole) + + def Polygon(self, *args): + r""" + Polygon(SHAPE_POLY_SET self, int aIndex) -> SHAPE_POLY_SET::POLYGON + Polygon(SHAPE_POLY_SET self, int aIndex) -> SHAPE_POLY_SET::POLYGON const & + """ + return _pcbnew.SHAPE_POLY_SET_Polygon(self, *args) + + def TriangulatedPolygon(self, aIndex): + r"""TriangulatedPolygon(SHAPE_POLY_SET self, int aIndex) -> SHAPE_POLY_SET::TRIANGULATED_POLYGON const *""" + return _pcbnew.SHAPE_POLY_SET_TriangulatedPolygon(self, aIndex) + + def COutline(self, aIndex): + r"""COutline(SHAPE_POLY_SET self, int aIndex) -> SHAPE_LINE_CHAIN""" + return _pcbnew.SHAPE_POLY_SET_COutline(self, aIndex) + + def CHole(self, aOutline, aHole): + r"""CHole(SHAPE_POLY_SET self, int aOutline, int aHole) -> SHAPE_LINE_CHAIN""" + return _pcbnew.SHAPE_POLY_SET_CHole(self, aOutline, aHole) + + def CPolygon(self, aIndex): + r"""CPolygon(SHAPE_POLY_SET self, int aIndex) -> SHAPE_POLY_SET::POLYGON const &""" + return _pcbnew.SHAPE_POLY_SET_CPolygon(self, aIndex) + + def Iterate(self, *args): + r""" + Iterate(SHAPE_POLY_SET self, int aFirst, int aLast, bool aIterateHoles=False) -> SHAPE_POLY_SET::ITERATOR + Iterate(SHAPE_POLY_SET self, int aOutline) -> SHAPE_POLY_SET::ITERATOR + Iterate(SHAPE_POLY_SET self) -> SHAPE_POLY_SET::ITERATOR + """ + return _pcbnew.SHAPE_POLY_SET_Iterate(self, *args) + + def IterateWithHoles(self, *args): + r""" + IterateWithHoles(SHAPE_POLY_SET self, int aOutline) -> SHAPE_POLY_SET::ITERATOR + IterateWithHoles(SHAPE_POLY_SET self) -> SHAPE_POLY_SET::ITERATOR + """ + return _pcbnew.SHAPE_POLY_SET_IterateWithHoles(self, *args) + + def CIterate(self, *args): + r""" + CIterate(SHAPE_POLY_SET self, int aFirst, int aLast, bool aIterateHoles=False) -> SHAPE_POLY_SET::CONST_ITERATOR + CIterate(SHAPE_POLY_SET self, int aOutline) -> SHAPE_POLY_SET::CONST_ITERATOR + CIterate(SHAPE_POLY_SET self) -> SHAPE_POLY_SET::CONST_ITERATOR + """ + return _pcbnew.SHAPE_POLY_SET_CIterate(self, *args) + + def CIterateWithHoles(self, *args): + r""" + CIterateWithHoles(SHAPE_POLY_SET self, int aOutline) -> SHAPE_POLY_SET::CONST_ITERATOR + CIterateWithHoles(SHAPE_POLY_SET self) -> SHAPE_POLY_SET::CONST_ITERATOR + """ + return _pcbnew.SHAPE_POLY_SET_CIterateWithHoles(self, *args) + + def IterateFromVertexWithHoles(self, aGlobalIdx): + r"""IterateFromVertexWithHoles(SHAPE_POLY_SET self, int aGlobalIdx) -> SHAPE_POLY_SET::ITERATOR""" + return _pcbnew.SHAPE_POLY_SET_IterateFromVertexWithHoles(self, aGlobalIdx) + + def CIterateSegments(self, *args): + r""" + CIterateSegments(SHAPE_POLY_SET self, int aFirst, int aLast, bool aIterateHoles=False) -> SHAPE_POLY_SET::CONST_SEGMENT_ITERATOR + CIterateSegments(SHAPE_POLY_SET self, int aPolygonIdx) -> SHAPE_POLY_SET::CONST_SEGMENT_ITERATOR + """ + return _pcbnew.SHAPE_POLY_SET_CIterateSegments(self, *args) + + def IterateSegments(self, *args): + r""" + IterateSegments(SHAPE_POLY_SET self, int aFirst, int aLast, bool aIterateHoles=False) -> SHAPE_POLY_SET::SEGMENT_ITERATOR + IterateSegments(SHAPE_POLY_SET self, int aPolygonIdx) -> SHAPE_POLY_SET::SEGMENT_ITERATOR + IterateSegments(SHAPE_POLY_SET self) -> SHAPE_POLY_SET::SEGMENT_ITERATOR + """ + return _pcbnew.SHAPE_POLY_SET_IterateSegments(self, *args) + + def IterateSegmentsWithHoles(self, *args): + r""" + IterateSegmentsWithHoles(SHAPE_POLY_SET self) -> SHAPE_POLY_SET::SEGMENT_ITERATOR + IterateSegmentsWithHoles(SHAPE_POLY_SET self, int aOutline) -> SHAPE_POLY_SET::SEGMENT_ITERATOR + """ + return _pcbnew.SHAPE_POLY_SET_IterateSegmentsWithHoles(self, *args) + + def CIterateSegmentsWithHoles(self, aOutline): + r"""CIterateSegmentsWithHoles(SHAPE_POLY_SET self, int aOutline) -> SHAPE_POLY_SET::CONST_SEGMENT_ITERATOR""" + return _pcbnew.SHAPE_POLY_SET_CIterateSegmentsWithHoles(self, aOutline) + PM_FAST = _pcbnew.SHAPE_POLY_SET_PM_FAST + + PM_STRICTLY_SIMPLE = _pcbnew.SHAPE_POLY_SET_PM_STRICTLY_SIMPLE + + + def BooleanAdd(self, *args): + r""" + BooleanAdd(SHAPE_POLY_SET self, SHAPE_POLY_SET b, SHAPE_POLY_SET::POLYGON_MODE aFastMode) + BooleanAdd(SHAPE_POLY_SET self, SHAPE_POLY_SET a, SHAPE_POLY_SET b, SHAPE_POLY_SET::POLYGON_MODE aFastMode) + """ + return _pcbnew.SHAPE_POLY_SET_BooleanAdd(self, *args) + + def BooleanSubtract(self, *args): + r""" + BooleanSubtract(SHAPE_POLY_SET self, SHAPE_POLY_SET b, SHAPE_POLY_SET::POLYGON_MODE aFastMode) + BooleanSubtract(SHAPE_POLY_SET self, SHAPE_POLY_SET a, SHAPE_POLY_SET b, SHAPE_POLY_SET::POLYGON_MODE aFastMode) + """ + return _pcbnew.SHAPE_POLY_SET_BooleanSubtract(self, *args) + + def BooleanIntersection(self, *args): + r""" + BooleanIntersection(SHAPE_POLY_SET self, SHAPE_POLY_SET b, SHAPE_POLY_SET::POLYGON_MODE aFastMode) + BooleanIntersection(SHAPE_POLY_SET self, SHAPE_POLY_SET a, SHAPE_POLY_SET b, SHAPE_POLY_SET::POLYGON_MODE aFastMode) + """ + return _pcbnew.SHAPE_POLY_SET_BooleanIntersection(self, *args) + ALLOW_ACUTE_CORNERS = _pcbnew.SHAPE_POLY_SET_ALLOW_ACUTE_CORNERS + + CHOP_ACUTE_CORNERS = _pcbnew.SHAPE_POLY_SET_CHOP_ACUTE_CORNERS + + ROUND_ACUTE_CORNERS = _pcbnew.SHAPE_POLY_SET_ROUND_ACUTE_CORNERS + + ROUND_ALL_CORNERS = _pcbnew.SHAPE_POLY_SET_ROUND_ALL_CORNERS + + + def Inflate(self, *args): + r"""Inflate(SHAPE_POLY_SET self, int aAmount, int aCircleSegmentsCount, SHAPE_POLY_SET::CORNER_STRATEGY aCornerStrategy=ROUND_ALL_CORNERS)""" + return _pcbnew.SHAPE_POLY_SET_Inflate(self, *args) + + def Deflate(self, *args): + r"""Deflate(SHAPE_POLY_SET self, int aAmount, int aCircleSegmentsCount, SHAPE_POLY_SET::CORNER_STRATEGY aCornerStrategy=ROUND_ALL_CORNERS)""" + return _pcbnew.SHAPE_POLY_SET_Deflate(self, *args) + + def InflateWithLinkedHoles(self, aFactor, aCircleSegmentsCount, aFastMode): + r"""InflateWithLinkedHoles(SHAPE_POLY_SET self, int aFactor, int aCircleSegmentsCount, SHAPE_POLY_SET::POLYGON_MODE aFastMode)""" + return _pcbnew.SHAPE_POLY_SET_InflateWithLinkedHoles(self, aFactor, aCircleSegmentsCount, aFastMode) + + def Fracture(self, aFastMode): + r"""Fracture(SHAPE_POLY_SET self, SHAPE_POLY_SET::POLYGON_MODE aFastMode)""" + return _pcbnew.SHAPE_POLY_SET_Fracture(self, aFastMode) + + def Unfracture(self, aFastMode): + r"""Unfracture(SHAPE_POLY_SET self, SHAPE_POLY_SET::POLYGON_MODE aFastMode)""" + return _pcbnew.SHAPE_POLY_SET_Unfracture(self, aFastMode) + + def HasHoles(self): + r"""HasHoles(SHAPE_POLY_SET self) -> bool""" + return _pcbnew.SHAPE_POLY_SET_HasHoles(self) + + def HasTouchingHoles(self): + r"""HasTouchingHoles(SHAPE_POLY_SET self) -> bool""" + return _pcbnew.SHAPE_POLY_SET_HasTouchingHoles(self) + + def Simplify(self, aFastMode): + r"""Simplify(SHAPE_POLY_SET self, SHAPE_POLY_SET::POLYGON_MODE aFastMode)""" + return _pcbnew.SHAPE_POLY_SET_Simplify(self, aFastMode) + + def NormalizeAreaOutlines(self): + r"""NormalizeAreaOutlines(SHAPE_POLY_SET self) -> int""" + return _pcbnew.SHAPE_POLY_SET_NormalizeAreaOutlines(self) + + def Format(self): + r"""Format(SHAPE_POLY_SET self) -> string""" + return _pcbnew.SHAPE_POLY_SET_Format(self) + + def Parse(self, aStream): + r"""Parse(SHAPE_POLY_SET self, std::stringstream & aStream) -> bool""" + return _pcbnew.SHAPE_POLY_SET_Parse(self, aStream) + + def Move(self, aVector): + r"""Move(SHAPE_POLY_SET self, VECTOR2I aVector)""" + return _pcbnew.SHAPE_POLY_SET_Move(self, aVector) + + def Rotate(self, aAngle, aCenter): + r"""Rotate(SHAPE_POLY_SET self, double aAngle, VECTOR2I aCenter)""" + return _pcbnew.SHAPE_POLY_SET_Rotate(self, aAngle, aCenter) + + def IsSolid(self): + r"""IsSolid(SHAPE_POLY_SET self) -> bool""" + return _pcbnew.SHAPE_POLY_SET_IsSolid(self) + + def BBox(self, aClearance=0): + r"""BBox(SHAPE_POLY_SET self, int aClearance=0) -> BOX2I const""" + return _pcbnew.SHAPE_POLY_SET_BBox(self, aClearance) + + def PointOnEdge(self, aP): + r"""PointOnEdge(SHAPE_POLY_SET self, VECTOR2I aP) -> bool""" + return _pcbnew.SHAPE_POLY_SET_PointOnEdge(self, aP) + + def Collide(self, *args): + r""" + Collide(SHAPE_POLY_SET self, VECTOR2I aP, int aClearance=0) -> bool + Collide(SHAPE_POLY_SET self, SEG const & aSeg, int aClearance=0) -> bool + """ + return _pcbnew.SHAPE_POLY_SET_Collide(self, *args) + + def CollideVertex(self, aPoint, aClosestVertex, aClearance=0): + r"""CollideVertex(SHAPE_POLY_SET self, VECTOR2I aPoint, SHAPE_POLY_SET::VERTEX_INDEX & aClosestVertex, int aClearance=0) -> bool""" + return _pcbnew.SHAPE_POLY_SET_CollideVertex(self, aPoint, aClosestVertex, aClearance) + + def CollideEdge(self, aPoint, aClosestVertex, aClearance=0): + r"""CollideEdge(SHAPE_POLY_SET self, VECTOR2I aPoint, SHAPE_POLY_SET::VERTEX_INDEX & aClosestVertex, int aClearance=0) -> bool""" + return _pcbnew.SHAPE_POLY_SET_CollideEdge(self, aPoint, aClosestVertex, aClearance) + + def BuildBBoxCaches(self): + r"""BuildBBoxCaches(SHAPE_POLY_SET self)""" + return _pcbnew.SHAPE_POLY_SET_BuildBBoxCaches(self) + + def Contains(self, aP, aSubpolyIndex=-1, aAccuracy=0, aUseBBoxCaches=False): + r"""Contains(SHAPE_POLY_SET self, VECTOR2I aP, int aSubpolyIndex=-1, int aAccuracy=0, bool aUseBBoxCaches=False) -> bool""" + return _pcbnew.SHAPE_POLY_SET_Contains(self, aP, aSubpolyIndex, aAccuracy, aUseBBoxCaches) + + def IsEmpty(self): + r"""IsEmpty(SHAPE_POLY_SET self) -> bool""" + return _pcbnew.SHAPE_POLY_SET_IsEmpty(self) + + def RemoveVertex(self, *args): + r""" + RemoveVertex(SHAPE_POLY_SET self, int aGlobalIndex) + RemoveVertex(SHAPE_POLY_SET self, SHAPE_POLY_SET::VERTEX_INDEX aRelativeIndices) + """ + return _pcbnew.SHAPE_POLY_SET_RemoveVertex(self, *args) + + def RemoveAllContours(self): + r"""RemoveAllContours(SHAPE_POLY_SET self)""" + return _pcbnew.SHAPE_POLY_SET_RemoveAllContours(self) + + def RemoveContour(self, aContourIdx, aPolygonIdx=-1): + r"""RemoveContour(SHAPE_POLY_SET self, int aContourIdx, int aPolygonIdx=-1)""" + return _pcbnew.SHAPE_POLY_SET_RemoveContour(self, aContourIdx, aPolygonIdx) + + def RemoveNullSegments(self): + r"""RemoveNullSegments(SHAPE_POLY_SET self) -> int""" + return _pcbnew.SHAPE_POLY_SET_RemoveNullSegments(self) + + def TotalVertices(self): + r"""TotalVertices(SHAPE_POLY_SET self) -> int""" + return _pcbnew.SHAPE_POLY_SET_TotalVertices(self) + + def DeletePolygon(self, aIdx): + r"""DeletePolygon(SHAPE_POLY_SET self, int aIdx)""" + return _pcbnew.SHAPE_POLY_SET_DeletePolygon(self, aIdx) + + def ChamferPolygon(self, aDistance, aIndex, aPreserveCorners): + r"""ChamferPolygon(SHAPE_POLY_SET self, unsigned int aDistance, int aIndex, std::set< VECTOR2I,std::less< VECTOR2I >,std::allocator< VECTOR2I > > * aPreserveCorners) -> SHAPE_POLY_SET::POLYGON""" + return _pcbnew.SHAPE_POLY_SET_ChamferPolygon(self, aDistance, aIndex, aPreserveCorners) + + def FilletPolygon(self, aRadius, aErrorMax, aIndex, aPreserveCorners=None): + r"""FilletPolygon(SHAPE_POLY_SET self, unsigned int aRadius, int aErrorMax, int aIndex, std::set< VECTOR2I,std::less< VECTOR2I >,std::allocator< VECTOR2I > > * aPreserveCorners=None) -> SHAPE_POLY_SET::POLYGON""" + return _pcbnew.SHAPE_POLY_SET_FilletPolygon(self, aRadius, aErrorMax, aIndex, aPreserveCorners) + + def Chamfer(self, aDistance, aPreserveCorners=None): + r"""Chamfer(SHAPE_POLY_SET self, int aDistance, std::set< VECTOR2I,std::less< VECTOR2I >,std::allocator< VECTOR2I > > * aPreserveCorners=None) -> SHAPE_POLY_SET""" + return _pcbnew.SHAPE_POLY_SET_Chamfer(self, aDistance, aPreserveCorners) + + def Fillet(self, aRadius, aErrorMax, aPreserveCorners=None): + r"""Fillet(SHAPE_POLY_SET self, int aRadius, int aErrorMax, std::set< VECTOR2I,std::less< VECTOR2I >,std::allocator< VECTOR2I > > * aPreserveCorners=None) -> SHAPE_POLY_SET""" + return _pcbnew.SHAPE_POLY_SET_Fillet(self, aRadius, aErrorMax, aPreserveCorners) + + def DistanceToPolygon(self, *args): + r""" + DistanceToPolygon(SHAPE_POLY_SET self, VECTOR2I aPoint, int aIndex) -> int + DistanceToPolygon(SHAPE_POLY_SET self, SEG const & aSegment, int aIndex, int aSegmentWidth=0) -> int + """ + return _pcbnew.SHAPE_POLY_SET_DistanceToPolygon(self, *args) + + def Distance(self, *args): + r""" + Distance(SHAPE_POLY_SET self, VECTOR2I aPoint) -> int + Distance(SHAPE_POLY_SET self, SEG const & aSegment, int aSegmentWidth=0) -> int + """ + return _pcbnew.SHAPE_POLY_SET_Distance(self, *args) + + def IsVertexInHole(self, aGlobalIdx): + r"""IsVertexInHole(SHAPE_POLY_SET self, int aGlobalIdx) -> bool""" + return _pcbnew.SHAPE_POLY_SET_IsVertexInHole(self, aGlobalIdx) + + def CacheTriangulation(self): + r"""CacheTriangulation(SHAPE_POLY_SET self)""" + return _pcbnew.SHAPE_POLY_SET_CacheTriangulation(self) + + def IsTriangulationUpToDate(self): + r"""IsTriangulationUpToDate(SHAPE_POLY_SET self) -> bool""" + return _pcbnew.SHAPE_POLY_SET_IsTriangulationUpToDate(self) + + def GetHash(self): + r"""GetHash(SHAPE_POLY_SET self) -> MD5_HASH""" + return _pcbnew.SHAPE_POLY_SET_GetHash(self) + +# Register SHAPE_POLY_SET in _pcbnew: +_pcbnew.SHAPE_POLY_SET_swigregister(SHAPE_POLY_SET) + + +def IsUTF8(aString): + r"""IsUTF8(char const * aString) -> bool""" + return _pcbnew.IsUTF8(aString) +class UTF8(object): + r"""Proxy of C++ UTF8 class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(UTF8 self, wxString o) -> UTF8 + __init__(UTF8 self, char const * txt) -> UTF8 + __init__(UTF8 self, wchar_t const * txt) -> UTF8 + __init__(UTF8 self, string o) -> UTF8 + __init__(UTF8 self) -> UTF8 + """ + _pcbnew.UTF8_swiginit(self, _pcbnew.new_UTF8(*args)) + __swig_destroy__ = _pcbnew.delete_UTF8 + + def c_str(self): + r"""c_str(UTF8 self) -> char const *""" + return _pcbnew.UTF8_c_str(self) + + def empty(self): + r"""empty(UTF8 self) -> bool""" + return _pcbnew.UTF8_empty(self) + + def find(self, *args): + r""" + find(UTF8 self, char c) -> std::string::size_type + find(UTF8 self, char c, size_t & s) -> std::string::size_type + """ + return _pcbnew.UTF8_find(self, *args) + + def clear(self): + r"""clear(UTF8 self)""" + return _pcbnew.UTF8_clear(self) + + def length(self): + r"""length(UTF8 self) -> std::string::size_type""" + return _pcbnew.UTF8_length(self) + + def size(self): + r"""size(UTF8 self) -> std::string::size_type""" + return _pcbnew.UTF8_size(self) + + def compare(self, s): + r"""compare(UTF8 self, string s) -> int""" + return _pcbnew.UTF8_compare(self, s) + + def __eq__(self, *args): + r""" + __eq__(UTF8 self, UTF8 rhs) -> bool + __eq__(UTF8 self, string rhs) -> bool + __eq__(UTF8 self, char const * s) -> bool + """ + return _pcbnew.UTF8___eq__(self, *args) + + def find_first_of(self, str, pos=0): + r"""find_first_of(UTF8 self, string str, std::string::size_type pos=0) -> std::string::size_type""" + return _pcbnew.UTF8_find_first_of(self, str, pos) + + def __iadd__(self, *args): + r""" + __iadd__(UTF8 self, UTF8 str) -> UTF8 + __iadd__(UTF8 self, char ch) -> UTF8 + __iadd__(UTF8 self, char const * s) -> UTF8 + __iadd__(UTF8 self, unsigned int w_ch) -> UTF8 + """ + return _pcbnew.UTF8___iadd__(self, *args) + npos = _pcbnew.UTF8_npos + + + def substr(self, *args): + r"""substr(UTF8 self, size_t pos=0, size_t len=npos) -> string""" + return _pcbnew.UTF8_substr(self, *args) + + def utf8_to_string(self): + r"""utf8_to_string(UTF8 self) -> string""" + return _pcbnew.UTF8_utf8_to_string(self) + + def wx_str(self): + r"""wx_str(UTF8 self) -> wxString""" + return _pcbnew.UTF8_wx_str(self) + + def utf8_to_wxstring(self): + r"""utf8_to_wxstring(UTF8 self) -> wxString""" + return _pcbnew.UTF8_utf8_to_wxstring(self) + + def begin(self): + r"""begin(UTF8 self) -> std::string::const_iterator""" + return _pcbnew.UTF8_begin(self) + + def end(self): + r"""end(UTF8 self) -> std::string::const_iterator""" + return _pcbnew.UTF8_end(self) + + def Cast_to_CChar(self): + r"""Cast_to_CChar(UTF8 self) -> char const *""" + return _pcbnew.UTF8_Cast_to_CChar(self) + + + # Get the char buffer of the UTF8 string + def GetChars(self): + return self.Cast_to_CChar() + + # Convert the UTF8 string to a python string + # Same as GetChars(), but more easy to use in print command + def __str__(self): + return self.GetChars() + + + +# Register UTF8 in _pcbnew: +_pcbnew.UTF8_swigregister(UTF8) + + +def Mils2iu(mils): + r"""Mils2iu(int mils) -> int""" + return _pcbnew.Mils2iu(mils) + +def Millimeter2iu(mm): + r"""Millimeter2iu(double mm) -> int""" + return _pcbnew.Millimeter2iu(mm) + +def Iu2Millimeter(iu): + r"""Iu2Millimeter(int iu) -> double""" + return _pcbnew.Iu2Millimeter(iu) + +def Iu2Mils(iu): + r"""Iu2Mils(int iu) -> double""" + return _pcbnew.Iu2Mils(iu) +class LIB_ID(object): + r"""Proxy of C++ LIB_ID class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + ID_SCH = _pcbnew.LIB_ID_ID_SCH + + ID_PCB = _pcbnew.LIB_ID_ID_PCB + + + def __init__(self, *args): + r""" + __init__(LIB_ID self) -> LIB_ID + __init__(LIB_ID self, wxString aLibName, wxString aLibItemName, wxString aRevision=wxEmptyString) -> LIB_ID + """ + _pcbnew.LIB_ID_swiginit(self, _pcbnew.new_LIB_ID(*args)) + + def Parse(self, aId, aType, aFix=False): + r"""Parse(LIB_ID self, UTF8 aId, LIB_ID::LIB_ID_TYPE aType, bool aFix=False) -> int""" + return _pcbnew.LIB_ID_Parse(self, aId, aType, aFix) + + def GetLibNickname(self): + r"""GetLibNickname(LIB_ID self) -> UTF8""" + return _pcbnew.LIB_ID_GetLibNickname(self) + + def SetLibNickname(self, aNickname): + r"""SetLibNickname(LIB_ID self, UTF8 aNickname) -> int""" + return _pcbnew.LIB_ID_SetLibNickname(self, aNickname) + + def GetLibItemName(self): + r"""GetLibItemName(LIB_ID self) -> UTF8""" + return _pcbnew.LIB_ID_GetLibItemName(self) + + def GetUniStringLibItemName(self): + r"""GetUniStringLibItemName(LIB_ID self) -> wxString""" + return _pcbnew.LIB_ID_GetUniStringLibItemName(self) + + def SetLibItemName(self, aLibItemName, aTestForRev=True): + r"""SetLibItemName(LIB_ID self, UTF8 aLibItemName, bool aTestForRev=True) -> int""" + return _pcbnew.LIB_ID_SetLibItemName(self, aLibItemName, aTestForRev) + + def SetRevision(self, aRevision): + r"""SetRevision(LIB_ID self, UTF8 aRevision) -> int""" + return _pcbnew.LIB_ID_SetRevision(self, aRevision) + + def GetRevision(self): + r"""GetRevision(LIB_ID self) -> UTF8""" + return _pcbnew.LIB_ID_GetRevision(self) + + def GetLibItemNameAndRev(self): + r"""GetLibItemNameAndRev(LIB_ID self) -> UTF8""" + return _pcbnew.LIB_ID_GetLibItemNameAndRev(self) + + def GetUniStringLibId(self): + r"""GetUniStringLibId(LIB_ID self) -> wxString""" + return _pcbnew.LIB_ID_GetUniStringLibId(self) + + @staticmethod + def Format(*args): + r""" + Format() -> UTF8 + Format(UTF8 aLibNickname, UTF8 aLibItemName, UTF8 aRevision="") -> UTF8 + """ + return _pcbnew.LIB_ID_Format(*args) + + def IsValid(self): + r"""IsValid(LIB_ID self) -> bool""" + return _pcbnew.LIB_ID_IsValid(self) + + def IsLegacy(self): + r"""IsLegacy(LIB_ID self) -> bool""" + return _pcbnew.LIB_ID_IsLegacy(self) + + def clear(self): + r"""clear(LIB_ID self)""" + return _pcbnew.LIB_ID_clear(self) + + def empty(self): + r"""empty(LIB_ID self) -> bool""" + return _pcbnew.LIB_ID_empty(self) + + def compare(self, aLibId): + r"""compare(LIB_ID self, LIB_ID aLibId) -> int""" + return _pcbnew.LIB_ID_compare(self, aLibId) + + def __lt__(self, aLibId): + r"""__lt__(LIB_ID self, LIB_ID aLibId) -> bool""" + return _pcbnew.LIB_ID___lt__(self, aLibId) + + def __gt__(self, aLibId): + r"""__gt__(LIB_ID self, LIB_ID aLibId) -> bool""" + return _pcbnew.LIB_ID___gt__(self, aLibId) + + def __eq__(self, aLibId): + r"""__eq__(LIB_ID self, LIB_ID aLibId) -> bool""" + return _pcbnew.LIB_ID___eq__(self, aLibId) + + def __ne__(self, aLibId): + r"""__ne__(LIB_ID self, LIB_ID aLibId) -> bool""" + return _pcbnew.LIB_ID___ne__(self, aLibId) + + @staticmethod + def HasIllegalChars(aLibItemName, aType): + r"""HasIllegalChars(UTF8 aLibItemName, LIB_ID::LIB_ID_TYPE aType) -> int""" + return _pcbnew.LIB_ID_HasIllegalChars(aLibItemName, aType) + + @staticmethod + def FixIllegalChars(aLibItemName, aType, aLib=False): + r"""FixIllegalChars(UTF8 aLibItemName, LIB_ID::LIB_ID_TYPE aType, bool aLib=False) -> UTF8""" + return _pcbnew.LIB_ID_FixIllegalChars(aLibItemName, aType, aLib) + + @staticmethod + def FindIllegalLibNicknameChar(aNickname, aType): + r"""FindIllegalLibNicknameChar(UTF8 aNickname, LIB_ID::LIB_ID_TYPE aType) -> unsigned int""" + return _pcbnew.LIB_ID_FindIllegalLibNicknameChar(aNickname, aType) + __swig_destroy__ = _pcbnew.delete_LIB_ID + +# Register LIB_ID in _pcbnew: +_pcbnew.LIB_ID_swigregister(LIB_ID) +IU_PER_MM = cvar.IU_PER_MM +IU_PER_MILS = cvar.IU_PER_MILS +MM_PER_IU = cvar.MM_PER_IU +ARC_LOW_DEF = cvar.ARC_LOW_DEF +ARC_HIGH_DEF = cvar.ARC_HIGH_DEF + +def LIB_ID_Format(*args): + r""" + LIB_ID_Format() -> UTF8 + LIB_ID_Format(UTF8 aLibNickname, UTF8 aLibItemName, UTF8 aRevision="") -> UTF8 + """ + return _pcbnew.LIB_ID_Format(*args) + +def LIB_ID_HasIllegalChars(aLibItemName, aType): + r"""LIB_ID_HasIllegalChars(UTF8 aLibItemName, LIB_ID::LIB_ID_TYPE aType) -> int""" + return _pcbnew.LIB_ID_HasIllegalChars(aLibItemName, aType) + +def LIB_ID_FixIllegalChars(aLibItemName, aType, aLib=False): + r"""LIB_ID_FixIllegalChars(UTF8 aLibItemName, LIB_ID::LIB_ID_TYPE aType, bool aLib=False) -> UTF8""" + return _pcbnew.LIB_ID_FixIllegalChars(aLibItemName, aType, aLib) + +def LIB_ID_FindIllegalLibNicknameChar(aNickname, aType): + r"""LIB_ID_FindIllegalLibNicknameChar(UTF8 aNickname, LIB_ID::LIB_ID_TYPE aType) -> unsigned int""" + return _pcbnew.LIB_ID_FindIllegalLibNicknameChar(aNickname, aType) + +class BASE_SET(object): + r"""Proxy of C++ BASE_SET class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined") + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_BASE_SET + +# Register BASE_SET in _pcbnew: +_pcbnew.BASE_SET_swigregister(BASE_SET) + +class IO_MGR(object): + r"""Proxy of C++ IO_MGR class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + LEGACY = _pcbnew.IO_MGR_LEGACY + + KICAD_SEXP = _pcbnew.IO_MGR_KICAD_SEXP + + EAGLE = _pcbnew.IO_MGR_EAGLE + + PCAD = _pcbnew.IO_MGR_PCAD + + GEDA_PCB = _pcbnew.IO_MGR_GEDA_PCB + + FILE_TYPE_NONE = _pcbnew.IO_MGR_FILE_TYPE_NONE + + + @staticmethod + def PluginFind(aFileType): + r"""PluginFind(IO_MGR::PCB_FILE_T aFileType) -> PLUGIN""" + return _pcbnew.IO_MGR_PluginFind(aFileType) + + @staticmethod + def PluginRelease(aPlugin): + r"""PluginRelease(PLUGIN aPlugin)""" + return _pcbnew.IO_MGR_PluginRelease(aPlugin) + + @staticmethod + def ShowType(aFileType): + r"""ShowType(IO_MGR::PCB_FILE_T aFileType) -> wxString""" + return _pcbnew.IO_MGR_ShowType(aFileType) + + @staticmethod + def EnumFromStr(aFileType): + r"""EnumFromStr(wxString aFileType) -> IO_MGR::PCB_FILE_T""" + return _pcbnew.IO_MGR_EnumFromStr(aFileType) + + @staticmethod + def GetFileExtension(aFileType): + r"""GetFileExtension(IO_MGR::PCB_FILE_T aFileType) -> wxString""" + return _pcbnew.IO_MGR_GetFileExtension(aFileType) + + @staticmethod + def GuessPluginTypeFromLibPath(aLibPath): + r"""GuessPluginTypeFromLibPath(wxString aLibPath) -> IO_MGR::PCB_FILE_T""" + return _pcbnew.IO_MGR_GuessPluginTypeFromLibPath(aLibPath) + + @staticmethod + def Load(aFileType, aFileName, aAppendToMe=None, aProperties=None): + r"""Load(IO_MGR::PCB_FILE_T aFileType, wxString aFileName, BOARD aAppendToMe=None, PROPERTIES const * aProperties=None) -> BOARD""" + return _pcbnew.IO_MGR_Load(aFileType, aFileName, aAppendToMe, aProperties) + + @staticmethod + def Save(aFileType, aFileName, aBoard, aProperties=None): + r"""Save(IO_MGR::PCB_FILE_T aFileType, wxString aFileName, BOARD aBoard, PROPERTIES const * aProperties=None)""" + return _pcbnew.IO_MGR_Save(aFileType, aFileName, aBoard, aProperties) + + def __init__(self): + r"""__init__(IO_MGR self) -> IO_MGR""" + _pcbnew.IO_MGR_swiginit(self, _pcbnew.new_IO_MGR()) + __swig_destroy__ = _pcbnew.delete_IO_MGR + +# Register IO_MGR in _pcbnew: +_pcbnew.IO_MGR_swigregister(IO_MGR) + +def IO_MGR_PluginFind(aFileType): + r"""IO_MGR_PluginFind(IO_MGR::PCB_FILE_T aFileType) -> PLUGIN""" + return _pcbnew.IO_MGR_PluginFind(aFileType) + +def IO_MGR_PluginRelease(aPlugin): + r"""IO_MGR_PluginRelease(PLUGIN aPlugin)""" + return _pcbnew.IO_MGR_PluginRelease(aPlugin) + +def IO_MGR_ShowType(aFileType): + r"""IO_MGR_ShowType(IO_MGR::PCB_FILE_T aFileType) -> wxString""" + return _pcbnew.IO_MGR_ShowType(aFileType) + +def IO_MGR_EnumFromStr(aFileType): + r"""IO_MGR_EnumFromStr(wxString aFileType) -> IO_MGR::PCB_FILE_T""" + return _pcbnew.IO_MGR_EnumFromStr(aFileType) + +def IO_MGR_GetFileExtension(aFileType): + r"""IO_MGR_GetFileExtension(IO_MGR::PCB_FILE_T aFileType) -> wxString""" + return _pcbnew.IO_MGR_GetFileExtension(aFileType) + +def IO_MGR_GuessPluginTypeFromLibPath(aLibPath): + r"""IO_MGR_GuessPluginTypeFromLibPath(wxString aLibPath) -> IO_MGR::PCB_FILE_T""" + return _pcbnew.IO_MGR_GuessPluginTypeFromLibPath(aLibPath) + +def IO_MGR_Load(aFileType, aFileName, aAppendToMe=None, aProperties=None): + r"""IO_MGR_Load(IO_MGR::PCB_FILE_T aFileType, wxString aFileName, BOARD aAppendToMe=None, PROPERTIES const * aProperties=None) -> BOARD""" + return _pcbnew.IO_MGR_Load(aFileType, aFileName, aAppendToMe, aProperties) + +def IO_MGR_Save(aFileType, aFileName, aBoard, aProperties=None): + r"""IO_MGR_Save(IO_MGR::PCB_FILE_T aFileType, wxString aFileName, BOARD aBoard, PROPERTIES const * aProperties=None)""" + return _pcbnew.IO_MGR_Save(aFileType, aFileName, aBoard, aProperties) + +class PLUGIN(object): + r"""Proxy of C++ PLUGIN class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + def PluginName(self): + r"""PluginName(PLUGIN self) -> wxString""" + return _pcbnew.PLUGIN_PluginName(self) + + def GetFileExtension(self): + r"""GetFileExtension(PLUGIN self) -> wxString""" + return _pcbnew.PLUGIN_GetFileExtension(self) + + def Load(self, aFileName, aAppendToMe, aProperties=None): + r"""Load(PLUGIN self, wxString aFileName, BOARD aAppendToMe, PROPERTIES const * aProperties=None) -> BOARD""" + return _pcbnew.PLUGIN_Load(self, aFileName, aAppendToMe, aProperties) + + def Save(self, aFileName, aBoard, aProperties=None): + r"""Save(PLUGIN self, wxString aFileName, BOARD aBoard, PROPERTIES const * aProperties=None)""" + return _pcbnew.PLUGIN_Save(self, aFileName, aBoard, aProperties) + + def FootprintEnumerate(self, aFootprintNames, aLibraryPath, aProperties=None): + r"""FootprintEnumerate(PLUGIN self, wxArrayString & aFootprintNames, wxString aLibraryPath, PROPERTIES const * aProperties=None)""" + return _pcbnew.PLUGIN_FootprintEnumerate(self, aFootprintNames, aLibraryPath, aProperties) + + def GetLibraryTimestamp(self, aLibraryPath): + r"""GetLibraryTimestamp(PLUGIN self, wxString aLibraryPath) -> long long""" + return _pcbnew.PLUGIN_GetLibraryTimestamp(self, aLibraryPath) + + def PrefetchLib(self, aLibraryPath, aProperties=None): + r"""PrefetchLib(PLUGIN self, wxString aLibraryPath, PROPERTIES const * aProperties=None)""" + return _pcbnew.PLUGIN_PrefetchLib(self, aLibraryPath, aProperties) + + def FootprintLoad(self, aLibraryPath, aFootprintName, aProperties=None): + r"""FootprintLoad(PLUGIN self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None) -> MODULE""" + return _pcbnew.PLUGIN_FootprintLoad(self, aLibraryPath, aFootprintName, aProperties) + + def GetEnumeratedFootprint(self, aLibraryPath, aFootprintName, aProperties=None): + r"""GetEnumeratedFootprint(PLUGIN self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None) -> MODULE""" + return _pcbnew.PLUGIN_GetEnumeratedFootprint(self, aLibraryPath, aFootprintName, aProperties) + + def FootprintExists(self, aLibraryPath, aFootprintName, aProperties=None): + r"""FootprintExists(PLUGIN self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None) -> bool""" + return _pcbnew.PLUGIN_FootprintExists(self, aLibraryPath, aFootprintName, aProperties) + + def FootprintSave(self, aLibraryPath, aFootprint, aProperties=None): + r"""FootprintSave(PLUGIN self, wxString aLibraryPath, MODULE aFootprint, PROPERTIES const * aProperties=None)""" + return _pcbnew.PLUGIN_FootprintSave(self, aLibraryPath, aFootprint, aProperties) + + def FootprintDelete(self, aLibraryPath, aFootprintName, aProperties=None): + r"""FootprintDelete(PLUGIN self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None)""" + return _pcbnew.PLUGIN_FootprintDelete(self, aLibraryPath, aFootprintName, aProperties) + + def FootprintLibCreate(self, aLibraryPath, aProperties=None): + r"""FootprintLibCreate(PLUGIN self, wxString aLibraryPath, PROPERTIES const * aProperties=None)""" + return _pcbnew.PLUGIN_FootprintLibCreate(self, aLibraryPath, aProperties) + + def FootprintLibDelete(self, aLibraryPath, aProperties=None): + r"""FootprintLibDelete(PLUGIN self, wxString aLibraryPath, PROPERTIES const * aProperties=None) -> bool""" + return _pcbnew.PLUGIN_FootprintLibDelete(self, aLibraryPath, aProperties) + + def IsFootprintLibWritable(self, aLibraryPath): + r"""IsFootprintLibWritable(PLUGIN self, wxString aLibraryPath) -> bool""" + return _pcbnew.PLUGIN_IsFootprintLibWritable(self, aLibraryPath) + + def FootprintLibOptions(self, aListToAppendTo): + r"""FootprintLibOptions(PLUGIN self, PROPERTIES * aListToAppendTo)""" + return _pcbnew.PLUGIN_FootprintLibOptions(self, aListToAppendTo) + __swig_destroy__ = _pcbnew.delete_PLUGIN + + def footprintPyEnumerate(self, aLibraryPath, aExitOnError): + r"""footprintPyEnumerate(PLUGIN self, wxString aLibraryPath, bool aExitOnError) -> wxArrayString""" + return _pcbnew.PLUGIN_footprintPyEnumerate(self, aLibraryPath, aExitOnError) + + def FootprintEnumerate(self, libname): + return self.footprintPyEnumerate( libname, True ) + + +# Register PLUGIN in _pcbnew: +_pcbnew.PLUGIN_swigregister(PLUGIN) + +SEXPR_BOARD_FILE_VERSION = _pcbnew.SEXPR_BOARD_FILE_VERSION + +CTL_STD_LAYER_NAMES = _pcbnew.CTL_STD_LAYER_NAMES + +CTL_OMIT_NETS = _pcbnew.CTL_OMIT_NETS + +CTL_OMIT_TSTAMPS = _pcbnew.CTL_OMIT_TSTAMPS + +CTL_OMIT_INITIAL_COMMENTS = _pcbnew.CTL_OMIT_INITIAL_COMMENTS + +CTL_OMIT_PATH = _pcbnew.CTL_OMIT_PATH + +CTL_OMIT_AT = _pcbnew.CTL_OMIT_AT + +CTL_FOR_CLIPBOARD = _pcbnew.CTL_FOR_CLIPBOARD + +CTL_FOR_LIBRARY = _pcbnew.CTL_FOR_LIBRARY + +CTL_FOR_BOARD = _pcbnew.CTL_FOR_BOARD + +class PCB_IO(PLUGIN): + r"""Proxy of C++ PCB_IO class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def PluginName(self): + r"""PluginName(PCB_IO self) -> wxString""" + return _pcbnew.PCB_IO_PluginName(self) + + def GetFileExtension(self): + r"""GetFileExtension(PCB_IO self) -> wxString""" + return _pcbnew.PCB_IO_GetFileExtension(self) + + def Save(self, aFileName, aBoard, aProperties=None): + r"""Save(PCB_IO self, wxString aFileName, BOARD aBoard, PROPERTIES const * aProperties=None)""" + return _pcbnew.PCB_IO_Save(self, aFileName, aBoard, aProperties) + + def Load(self, aFileName, aAppendToMe, aProperties=None): + r"""Load(PCB_IO self, wxString aFileName, BOARD aAppendToMe, PROPERTIES const * aProperties=None) -> BOARD""" + return _pcbnew.PCB_IO_Load(self, aFileName, aAppendToMe, aProperties) + + def FootprintEnumerate(self, aFootprintNames, aLibraryPath, aProperties=None): + r"""FootprintEnumerate(PCB_IO self, wxArrayString & aFootprintNames, wxString aLibraryPath, PROPERTIES const * aProperties=None)""" + return _pcbnew.PCB_IO_FootprintEnumerate(self, aFootprintNames, aLibraryPath, aProperties) + + def GetEnumeratedFootprint(self, aLibraryPath, aFootprintName, aProperties=None): + r"""GetEnumeratedFootprint(PCB_IO self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None) -> MODULE""" + return _pcbnew.PCB_IO_GetEnumeratedFootprint(self, aLibraryPath, aFootprintName, aProperties) + + def FootprintExists(self, aLibraryPath, aFootprintName, aProperties=None): + r"""FootprintExists(PCB_IO self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None) -> bool""" + return _pcbnew.PCB_IO_FootprintExists(self, aLibraryPath, aFootprintName, aProperties) + + def FootprintLoad(self, aLibraryPath, aFootprintName, aProperties=None): + r"""FootprintLoad(PCB_IO self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None) -> MODULE""" + return _pcbnew.PCB_IO_FootprintLoad(self, aLibraryPath, aFootprintName, aProperties) + + def FootprintSave(self, aLibraryPath, aFootprint, aProperties=None): + r"""FootprintSave(PCB_IO self, wxString aLibraryPath, MODULE aFootprint, PROPERTIES const * aProperties=None)""" + return _pcbnew.PCB_IO_FootprintSave(self, aLibraryPath, aFootprint, aProperties) + + def FootprintDelete(self, aLibraryPath, aFootprintName, aProperties=None): + r"""FootprintDelete(PCB_IO self, wxString aLibraryPath, wxString aFootprintName, PROPERTIES const * aProperties=None)""" + return _pcbnew.PCB_IO_FootprintDelete(self, aLibraryPath, aFootprintName, aProperties) + + def GetLibraryTimestamp(self, aLibraryPath): + r"""GetLibraryTimestamp(PCB_IO self, wxString aLibraryPath) -> long long""" + return _pcbnew.PCB_IO_GetLibraryTimestamp(self, aLibraryPath) + + def FootprintLibCreate(self, aLibraryPath, aProperties=None): + r"""FootprintLibCreate(PCB_IO self, wxString aLibraryPath, PROPERTIES const * aProperties=None)""" + return _pcbnew.PCB_IO_FootprintLibCreate(self, aLibraryPath, aProperties) + + def FootprintLibDelete(self, aLibraryPath, aProperties=None): + r"""FootprintLibDelete(PCB_IO self, wxString aLibraryPath, PROPERTIES const * aProperties=None) -> bool""" + return _pcbnew.PCB_IO_FootprintLibDelete(self, aLibraryPath, aProperties) + + def IsFootprintLibWritable(self, aLibraryPath): + r"""IsFootprintLibWritable(PCB_IO self, wxString aLibraryPath) -> bool""" + return _pcbnew.PCB_IO_IsFootprintLibWritable(self, aLibraryPath) + + def __init__(self, *args): + r"""__init__(PCB_IO self, int aControlFlags=((1 << 3))) -> PCB_IO""" + _pcbnew.PCB_IO_swiginit(self, _pcbnew.new_PCB_IO(*args)) + __swig_destroy__ = _pcbnew.delete_PCB_IO + + def Format(self, aItem, aNestLevel=0): + r"""Format(PCB_IO self, BOARD_ITEM aItem, int aNestLevel=0)""" + return _pcbnew.PCB_IO_Format(self, aItem, aNestLevel) + + def GetStringOutput(self, doClear): + r"""GetStringOutput(PCB_IO self, bool doClear) -> string""" + return _pcbnew.PCB_IO_GetStringOutput(self, doClear) + + def SetOutputFormatter(self, aFormatter): + r"""SetOutputFormatter(PCB_IO self, OUTPUTFORMATTER * aFormatter)""" + return _pcbnew.PCB_IO_SetOutputFormatter(self, aFormatter) + + def Parse(self, aClipboardSourceInput): + r"""Parse(PCB_IO self, wxString aClipboardSourceInput) -> BOARD_ITEM""" + return _pcbnew.PCB_IO_Parse(self, aClipboardSourceInput) + +# Register PCB_IO in _pcbnew: +_pcbnew.PCB_IO_swigregister(PCB_IO) + +class PLOT_CONTROLLER(object): + r"""Proxy of C++ PLOT_CONTROLLER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aBoard): + r"""__init__(PLOT_CONTROLLER self, BOARD aBoard) -> PLOT_CONTROLLER""" + _pcbnew.PLOT_CONTROLLER_swiginit(self, _pcbnew.new_PLOT_CONTROLLER(aBoard)) + __swig_destroy__ = _pcbnew.delete_PLOT_CONTROLLER + + def GetPlotOptions(self): + r"""GetPlotOptions(PLOT_CONTROLLER self) -> PCB_PLOT_PARAMS""" + return _pcbnew.PLOT_CONTROLLER_GetPlotOptions(self) + + def SetLayer(self, aLayer): + r"""SetLayer(PLOT_CONTROLLER self, LAYER_NUM aLayer)""" + return _pcbnew.PLOT_CONTROLLER_SetLayer(self, aLayer) + + def GetLayer(self): + r"""GetLayer(PLOT_CONTROLLER self) -> LAYER_NUM""" + return _pcbnew.PLOT_CONTROLLER_GetLayer(self) + + def IsPlotOpen(self): + r"""IsPlotOpen(PLOT_CONTROLLER self) -> bool""" + return _pcbnew.PLOT_CONTROLLER_IsPlotOpen(self) + + def ClosePlot(self): + r"""ClosePlot(PLOT_CONTROLLER self)""" + return _pcbnew.PLOT_CONTROLLER_ClosePlot(self) + + def OpenPlotfile(self, aSuffix, aFormat, aSheetDesc): + r"""OpenPlotfile(PLOT_CONTROLLER self, wxString aSuffix, PlotFormat aFormat, wxString aSheetDesc) -> bool""" + return _pcbnew.PLOT_CONTROLLER_OpenPlotfile(self, aSuffix, aFormat, aSheetDesc) + + def PlotLayer(self): + r"""PlotLayer(PLOT_CONTROLLER self) -> bool""" + return _pcbnew.PLOT_CONTROLLER_PlotLayer(self) + + def GetPlotFileName(self): + r"""GetPlotFileName(PLOT_CONTROLLER self) -> wxString""" + return _pcbnew.PLOT_CONTROLLER_GetPlotFileName(self) + + def GetPlotDirName(self): + r"""GetPlotDirName(PLOT_CONTROLLER self) -> wxString""" + return _pcbnew.PLOT_CONTROLLER_GetPlotDirName(self) + + def SetColorMode(self, arg2): + r"""SetColorMode(PLOT_CONTROLLER self, bool arg2)""" + return _pcbnew.PLOT_CONTROLLER_SetColorMode(self, arg2) + + def GetColorMode(self): + r"""GetColorMode(PLOT_CONTROLLER self) -> bool""" + return _pcbnew.PLOT_CONTROLLER_GetColorMode(self) + +# Register PLOT_CONTROLLER in _pcbnew: +_pcbnew.PLOT_CONTROLLER_swigregister(PLOT_CONTROLLER) + +class PCB_PLOT_PARAMS(object): + r"""Proxy of C++ PCB_PLOT_PARAMS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + NO_DRILL_SHAPE = _pcbnew.PCB_PLOT_PARAMS_NO_DRILL_SHAPE + + SMALL_DRILL_SHAPE = _pcbnew.PCB_PLOT_PARAMS_SMALL_DRILL_SHAPE + + FULL_DRILL_SHAPE = _pcbnew.PCB_PLOT_PARAMS_FULL_DRILL_SHAPE + + + def __init__(self): + r"""__init__(PCB_PLOT_PARAMS self) -> PCB_PLOT_PARAMS""" + _pcbnew.PCB_PLOT_PARAMS_swiginit(self, _pcbnew.new_PCB_PLOT_PARAMS()) + + def SetSkipPlotNPTH_Pads(self, aSkip): + r"""SetSkipPlotNPTH_Pads(PCB_PLOT_PARAMS self, bool aSkip)""" + return _pcbnew.PCB_PLOT_PARAMS_SetSkipPlotNPTH_Pads(self, aSkip) + + def GetSkipPlotNPTH_Pads(self): + r"""GetSkipPlotNPTH_Pads(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetSkipPlotNPTH_Pads(self) + + def Format(self, aFormatter, aNestLevel, aControl=0): + r"""Format(PCB_PLOT_PARAMS self, OUTPUTFORMATTER * aFormatter, int aNestLevel, int aControl=0)""" + return _pcbnew.PCB_PLOT_PARAMS_Format(self, aFormatter, aNestLevel, aControl) + + def Parse(self, aParser): + r"""Parse(PCB_PLOT_PARAMS self, PCB_PLOT_PARAMS_PARSER * aParser)""" + return _pcbnew.PCB_PLOT_PARAMS_Parse(self, aParser) + + def IsSameAs(self, aPcbPlotParams, aCompareOnlySavedPrms): + r"""IsSameAs(PCB_PLOT_PARAMS self, PCB_PLOT_PARAMS aPcbPlotParams, bool aCompareOnlySavedPrms) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_IsSameAs(self, aPcbPlotParams, aCompareOnlySavedPrms) + + def SetColor(self, aVal): + r"""SetColor(PCB_PLOT_PARAMS self, COLOR4D aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetColor(self, aVal) + + def GetColor(self): + r"""GetColor(PCB_PLOT_PARAMS self) -> COLOR4D""" + return _pcbnew.PCB_PLOT_PARAMS_GetColor(self) + + def SetTextMode(self, aVal): + r"""SetTextMode(PCB_PLOT_PARAMS self, PlotTextMode aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetTextMode(self, aVal) + + def GetTextMode(self): + r"""GetTextMode(PCB_PLOT_PARAMS self) -> PlotTextMode""" + return _pcbnew.PCB_PLOT_PARAMS_GetTextMode(self) + + def SetPlotMode(self, aPlotMode): + r"""SetPlotMode(PCB_PLOT_PARAMS self, EDA_DRAW_MODE_T aPlotMode)""" + return _pcbnew.PCB_PLOT_PARAMS_SetPlotMode(self, aPlotMode) + + def GetPlotMode(self): + r"""GetPlotMode(PCB_PLOT_PARAMS self) -> EDA_DRAW_MODE_T""" + return _pcbnew.PCB_PLOT_PARAMS_GetPlotMode(self) + + def SetDXFPlotPolygonMode(self, aFlag): + r"""SetDXFPlotPolygonMode(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetDXFPlotPolygonMode(self, aFlag) + + def GetDXFPlotPolygonMode(self): + r"""GetDXFPlotPolygonMode(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetDXFPlotPolygonMode(self) + + def SetDXFPlotUnits(self, aUnit): + r"""SetDXFPlotUnits(PCB_PLOT_PARAMS self, DXF_PLOTTER::DXF_UNITS aUnit)""" + return _pcbnew.PCB_PLOT_PARAMS_SetDXFPlotUnits(self, aUnit) + + def GetDXFPlotUnits(self): + r"""GetDXFPlotUnits(PCB_PLOT_PARAMS self) -> DXF_PLOTTER::DXF_UNITS""" + return _pcbnew.PCB_PLOT_PARAMS_GetDXFPlotUnits(self) + + def SetDrillMarksType(self, aVal): + r"""SetDrillMarksType(PCB_PLOT_PARAMS self, PCB_PLOT_PARAMS::DrillMarksType aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetDrillMarksType(self, aVal) + + def GetDrillMarksType(self): + r"""GetDrillMarksType(PCB_PLOT_PARAMS self) -> PCB_PLOT_PARAMS::DrillMarksType""" + return _pcbnew.PCB_PLOT_PARAMS_GetDrillMarksType(self) + + def SetScale(self, aVal): + r"""SetScale(PCB_PLOT_PARAMS self, double aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetScale(self, aVal) + + def GetScale(self): + r"""GetScale(PCB_PLOT_PARAMS self) -> double""" + return _pcbnew.PCB_PLOT_PARAMS_GetScale(self) + + def SetFineScaleAdjustX(self, aVal): + r"""SetFineScaleAdjustX(PCB_PLOT_PARAMS self, double aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetFineScaleAdjustX(self, aVal) + + def GetFineScaleAdjustX(self): + r"""GetFineScaleAdjustX(PCB_PLOT_PARAMS self) -> double""" + return _pcbnew.PCB_PLOT_PARAMS_GetFineScaleAdjustX(self) + + def SetFineScaleAdjustY(self, aVal): + r"""SetFineScaleAdjustY(PCB_PLOT_PARAMS self, double aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetFineScaleAdjustY(self, aVal) + + def GetFineScaleAdjustY(self): + r"""GetFineScaleAdjustY(PCB_PLOT_PARAMS self) -> double""" + return _pcbnew.PCB_PLOT_PARAMS_GetFineScaleAdjustY(self) + + def SetWidthAdjust(self, aVal): + r"""SetWidthAdjust(PCB_PLOT_PARAMS self, int aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetWidthAdjust(self, aVal) + + def GetWidthAdjust(self): + r"""GetWidthAdjust(PCB_PLOT_PARAMS self) -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetWidthAdjust(self) + + def SetAutoScale(self, aFlag): + r"""SetAutoScale(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetAutoScale(self, aFlag) + + def GetAutoScale(self): + r"""GetAutoScale(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetAutoScale(self) + + def SetMirror(self, aFlag): + r"""SetMirror(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetMirror(self, aFlag) + + def GetMirror(self): + r"""GetMirror(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetMirror(self) + + def SetPlotPadsOnSilkLayer(self, aFlag): + r"""SetPlotPadsOnSilkLayer(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetPlotPadsOnSilkLayer(self, aFlag) + + def GetPlotPadsOnSilkLayer(self): + r"""GetPlotPadsOnSilkLayer(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetPlotPadsOnSilkLayer(self) + + def SetPlotInvisibleText(self, aFlag): + r"""SetPlotInvisibleText(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetPlotInvisibleText(self, aFlag) + + def GetPlotInvisibleText(self): + r"""GetPlotInvisibleText(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetPlotInvisibleText(self) + + def SetPlotValue(self, aFlag): + r"""SetPlotValue(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetPlotValue(self, aFlag) + + def GetPlotValue(self): + r"""GetPlotValue(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetPlotValue(self) + + def SetPlotReference(self, aFlag): + r"""SetPlotReference(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetPlotReference(self, aFlag) + + def GetPlotReference(self): + r"""GetPlotReference(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetPlotReference(self) + + def SetNegative(self, aFlag): + r"""SetNegative(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetNegative(self, aFlag) + + def GetNegative(self): + r"""GetNegative(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetNegative(self) + + def SetPlotViaOnMaskLayer(self, aFlag): + r"""SetPlotViaOnMaskLayer(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetPlotViaOnMaskLayer(self, aFlag) + + def GetPlotViaOnMaskLayer(self): + r"""GetPlotViaOnMaskLayer(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetPlotViaOnMaskLayer(self) + + def SetPlotFrameRef(self, aFlag): + r"""SetPlotFrameRef(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetPlotFrameRef(self, aFlag) + + def GetPlotFrameRef(self): + r"""GetPlotFrameRef(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetPlotFrameRef(self) + + def SetExcludeEdgeLayer(self, aFlag): + r"""SetExcludeEdgeLayer(PCB_PLOT_PARAMS self, bool aFlag)""" + return _pcbnew.PCB_PLOT_PARAMS_SetExcludeEdgeLayer(self, aFlag) + + def GetExcludeEdgeLayer(self): + r"""GetExcludeEdgeLayer(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetExcludeEdgeLayer(self) + + def SetFormat(self, aFormat): + r"""SetFormat(PCB_PLOT_PARAMS self, PlotFormat aFormat)""" + return _pcbnew.PCB_PLOT_PARAMS_SetFormat(self, aFormat) + + def GetFormat(self): + r"""GetFormat(PCB_PLOT_PARAMS self) -> PlotFormat""" + return _pcbnew.PCB_PLOT_PARAMS_GetFormat(self) + + def SetOutputDirectory(self, aDir): + r"""SetOutputDirectory(PCB_PLOT_PARAMS self, wxString aDir)""" + return _pcbnew.PCB_PLOT_PARAMS_SetOutputDirectory(self, aDir) + + def GetOutputDirectory(self): + r"""GetOutputDirectory(PCB_PLOT_PARAMS self) -> wxString""" + return _pcbnew.PCB_PLOT_PARAMS_GetOutputDirectory(self) + + def SetUseGerberX2format(self, aUse): + r"""SetUseGerberX2format(PCB_PLOT_PARAMS self, bool aUse)""" + return _pcbnew.PCB_PLOT_PARAMS_SetUseGerberX2format(self, aUse) + + def GetUseGerberX2format(self): + r"""GetUseGerberX2format(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetUseGerberX2format(self) + + def SetIncludeGerberNetlistInfo(self, aUse): + r"""SetIncludeGerberNetlistInfo(PCB_PLOT_PARAMS self, bool aUse)""" + return _pcbnew.PCB_PLOT_PARAMS_SetIncludeGerberNetlistInfo(self, aUse) + + def GetIncludeGerberNetlistInfo(self): + r"""GetIncludeGerberNetlistInfo(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetIncludeGerberNetlistInfo(self) + + def SetCreateGerberJobFile(self, aCreate): + r"""SetCreateGerberJobFile(PCB_PLOT_PARAMS self, bool aCreate)""" + return _pcbnew.PCB_PLOT_PARAMS_SetCreateGerberJobFile(self, aCreate) + + def GetCreateGerberJobFile(self): + r"""GetCreateGerberJobFile(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetCreateGerberJobFile(self) + + def SetUseGerberProtelExtensions(self, aUse): + r"""SetUseGerberProtelExtensions(PCB_PLOT_PARAMS self, bool aUse)""" + return _pcbnew.PCB_PLOT_PARAMS_SetUseGerberProtelExtensions(self, aUse) + + def GetUseGerberProtelExtensions(self): + r"""GetUseGerberProtelExtensions(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetUseGerberProtelExtensions(self) + + def SetGerberPrecision(self, aPrecision): + r"""SetGerberPrecision(PCB_PLOT_PARAMS self, int aPrecision)""" + return _pcbnew.PCB_PLOT_PARAMS_SetGerberPrecision(self, aPrecision) + + def GetGerberPrecision(self): + r"""GetGerberPrecision(PCB_PLOT_PARAMS self) -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetGerberPrecision(self) + + @staticmethod + def GetGerberDefaultPrecision(): + r"""GetGerberDefaultPrecision() -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetGerberDefaultPrecision() + + def SetSubtractMaskFromSilk(self, aSubtract): + r"""SetSubtractMaskFromSilk(PCB_PLOT_PARAMS self, bool aSubtract)""" + return _pcbnew.PCB_PLOT_PARAMS_SetSubtractMaskFromSilk(self, aSubtract) + + def GetSubtractMaskFromSilk(self): + r"""GetSubtractMaskFromSilk(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetSubtractMaskFromSilk(self) + + def SetLayerSelection(self, aSelection): + r"""SetLayerSelection(PCB_PLOT_PARAMS self, LSET aSelection)""" + return _pcbnew.PCB_PLOT_PARAMS_SetLayerSelection(self, aSelection) + + def GetLayerSelection(self): + r"""GetLayerSelection(PCB_PLOT_PARAMS self) -> LSET""" + return _pcbnew.PCB_PLOT_PARAMS_GetLayerSelection(self) + + def SetUseAuxOrigin(self, aAux): + r"""SetUseAuxOrigin(PCB_PLOT_PARAMS self, bool aAux)""" + return _pcbnew.PCB_PLOT_PARAMS_SetUseAuxOrigin(self, aAux) + + def GetUseAuxOrigin(self): + r"""GetUseAuxOrigin(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetUseAuxOrigin(self) + + def SetScaleSelection(self, aSelection): + r"""SetScaleSelection(PCB_PLOT_PARAMS self, int aSelection)""" + return _pcbnew.PCB_PLOT_PARAMS_SetScaleSelection(self, aSelection) + + def GetScaleSelection(self): + r"""GetScaleSelection(PCB_PLOT_PARAMS self) -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetScaleSelection(self) + + def SetA4Output(self, aForce): + r"""SetA4Output(PCB_PLOT_PARAMS self, int aForce)""" + return _pcbnew.PCB_PLOT_PARAMS_SetA4Output(self, aForce) + + def GetA4Output(self): + r"""GetA4Output(PCB_PLOT_PARAMS self) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_GetA4Output(self) + + def GetHPGLPenDiameter(self): + r"""GetHPGLPenDiameter(PCB_PLOT_PARAMS self) -> double""" + return _pcbnew.PCB_PLOT_PARAMS_GetHPGLPenDiameter(self) + + def SetHPGLPenDiameter(self, aValue): + r"""SetHPGLPenDiameter(PCB_PLOT_PARAMS self, double aValue) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_SetHPGLPenDiameter(self, aValue) + + def GetHPGLPenSpeed(self): + r"""GetHPGLPenSpeed(PCB_PLOT_PARAMS self) -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetHPGLPenSpeed(self) + + def SetHPGLPenSpeed(self, aValue): + r"""SetHPGLPenSpeed(PCB_PLOT_PARAMS self, int aValue) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_SetHPGLPenSpeed(self, aValue) + + def SetHPGLPenNum(self, aVal): + r"""SetHPGLPenNum(PCB_PLOT_PARAMS self, int aVal)""" + return _pcbnew.PCB_PLOT_PARAMS_SetHPGLPenNum(self, aVal) + + def GetHPGLPenNum(self): + r"""GetHPGLPenNum(PCB_PLOT_PARAMS self) -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetHPGLPenNum(self) + + def GetLineWidth(self): + r"""GetLineWidth(PCB_PLOT_PARAMS self) -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetLineWidth(self) + + def SetLineWidth(self, aValue): + r"""SetLineWidth(PCB_PLOT_PARAMS self, int aValue) -> bool""" + return _pcbnew.PCB_PLOT_PARAMS_SetLineWidth(self, aValue) + + # add SetUseGerberAttributes() for compatibility with old python scripts + # after renaming it to SetUseGerberX2format() + def SetUseGerberAttributes( self, aUse ): + return self.SetUseGerberX2format( aUse ) + + __swig_destroy__ = _pcbnew.delete_PCB_PLOT_PARAMS + +# Register PCB_PLOT_PARAMS in _pcbnew: +_pcbnew.PCB_PLOT_PARAMS_swigregister(PCB_PLOT_PARAMS) + +def PCB_PLOT_PARAMS_GetGerberDefaultPrecision(): + r"""PCB_PLOT_PARAMS_GetGerberDefaultPrecision() -> int""" + return _pcbnew.PCB_PLOT_PARAMS_GetGerberDefaultPrecision() + +PLOT_FORMAT_UNDEFINED = _pcbnew.PLOT_FORMAT_UNDEFINED + +PLOT_FIRST_FORMAT = _pcbnew.PLOT_FIRST_FORMAT + +PLOT_FORMAT_HPGL = _pcbnew.PLOT_FORMAT_HPGL + +PLOT_FORMAT_GERBER = _pcbnew.PLOT_FORMAT_GERBER + +PLOT_FORMAT_POST = _pcbnew.PLOT_FORMAT_POST + +PLOT_FORMAT_DXF = _pcbnew.PLOT_FORMAT_DXF + +PLOT_FORMAT_PDF = _pcbnew.PLOT_FORMAT_PDF + +PLOT_FORMAT_SVG = _pcbnew.PLOT_FORMAT_SVG + +PLOT_LAST_FORMAT = _pcbnew.PLOT_LAST_FORMAT + +PLOTTEXTMODE_STROKE = _pcbnew.PLOTTEXTMODE_STROKE + +PLOTTEXTMODE_NATIVE = _pcbnew.PLOTTEXTMODE_NATIVE + +PLOTTEXTMODE_PHANTOM = _pcbnew.PLOTTEXTMODE_PHANTOM + +PLOTTEXTMODE_DEFAULT = _pcbnew.PLOTTEXTMODE_DEFAULT + +PLOTDASHTYPE_SOLID = _pcbnew.PLOTDASHTYPE_SOLID + +PLOTDASHTYPE_DASH = _pcbnew.PLOTDASHTYPE_DASH + +PLOTDASHTYPE_DOT = _pcbnew.PLOTDASHTYPE_DOT + +PLOTDASHTYPE_DASHDOT = _pcbnew.PLOTDASHTYPE_DASHDOT + +class PLOTTER(object): + r"""Proxy of C++ PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + DO_NOT_SET_LINE_WIDTH = _pcbnew.PLOTTER_DO_NOT_SET_LINE_WIDTH + + USE_DEFAULT_LINE_WIDTH = _pcbnew.PLOTTER_USE_DEFAULT_LINE_WIDTH + + __swig_destroy__ = _pcbnew.delete_PLOTTER + + def GetPlotterType(self): + r"""GetPlotterType(PLOTTER self) -> PlotFormat""" + return _pcbnew.PLOTTER_GetPlotterType(self) + + def StartPlot(self): + r"""StartPlot(PLOTTER self) -> bool""" + return _pcbnew.PLOTTER_StartPlot(self) + + def EndPlot(self): + r"""EndPlot(PLOTTER self) -> bool""" + return _pcbnew.PLOTTER_EndPlot(self) + + def SetNegative(self, aNegative): + r"""SetNegative(PLOTTER self, bool aNegative)""" + return _pcbnew.PLOTTER_SetNegative(self, aNegative) + + def SetColorMode(self, aColorMode): + r"""SetColorMode(PLOTTER self, bool aColorMode)""" + return _pcbnew.PLOTTER_SetColorMode(self, aColorMode) + + def GetColorMode(self): + r"""GetColorMode(PLOTTER self) -> bool""" + return _pcbnew.PLOTTER_GetColorMode(self) + + def SetPageSettings(self, aPageSettings): + r"""SetPageSettings(PLOTTER self, PAGE_INFO const & aPageSettings)""" + return _pcbnew.PLOTTER_SetPageSettings(self, aPageSettings) + + def SetCurrentLineWidth(self, width, aData=None): + r"""SetCurrentLineWidth(PLOTTER self, int width, void * aData=None)""" + return _pcbnew.PLOTTER_SetCurrentLineWidth(self, width, aData) + + def SetDefaultLineWidth(self, width): + r"""SetDefaultLineWidth(PLOTTER self, int width)""" + return _pcbnew.PLOTTER_SetDefaultLineWidth(self, width) + + def GetCurrentLineWidth(self): + r"""GetCurrentLineWidth(PLOTTER self) -> int""" + return _pcbnew.PLOTTER_GetCurrentLineWidth(self) + + def SetColor(self, color): + r"""SetColor(PLOTTER self, COLOR4D color)""" + return _pcbnew.PLOTTER_SetColor(self, color) + + def SetDash(self, dashed): + r"""SetDash(PLOTTER self, int dashed)""" + return _pcbnew.PLOTTER_SetDash(self, dashed) + + def SetCreator(self, aCreator): + r"""SetCreator(PLOTTER self, wxString aCreator)""" + return _pcbnew.PLOTTER_SetCreator(self, aCreator) + + def SetTitle(self, aTitle): + r"""SetTitle(PLOTTER self, wxString aTitle)""" + return _pcbnew.PLOTTER_SetTitle(self, aTitle) + + def AddLineToHeader(self, aExtraString): + r"""AddLineToHeader(PLOTTER self, wxString aExtraString)""" + return _pcbnew.PLOTTER_AddLineToHeader(self, aExtraString) + + def ClearHeaderLinesList(self): + r"""ClearHeaderLinesList(PLOTTER self)""" + return _pcbnew.PLOTTER_ClearHeaderLinesList(self) + + def SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror): + r"""SetViewport(PLOTTER self, wxPoint aOffset, double aIusPerDecimil, double aScale, bool aMirror)""" + return _pcbnew.PLOTTER_SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror) + + def OpenFile(self, aFullFilename): + r"""OpenFile(PLOTTER self, wxString aFullFilename) -> bool""" + return _pcbnew.PLOTTER_OpenFile(self, aFullFilename) + + def GetIUsPerDecimil(self): + r"""GetIUsPerDecimil(PLOTTER self) -> double""" + return _pcbnew.PLOTTER_GetIUsPerDecimil(self) + + def GetPlotterArcLowDef(self): + r"""GetPlotterArcLowDef(PLOTTER self) -> int""" + return _pcbnew.PLOTTER_GetPlotterArcLowDef(self) + + def GetPlotterArcHighDef(self): + r"""GetPlotterArcHighDef(PLOTTER self) -> int""" + return _pcbnew.PLOTTER_GetPlotterArcHighDef(self) + + def Rect(self, *args): + r"""Rect(PLOTTER self, wxPoint p1, wxPoint p2, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PLOTTER_Rect(self, *args) + + def Circle(self, *args): + r"""Circle(PLOTTER self, wxPoint pos, int diametre, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PLOTTER_Circle(self, *args) + + def Arc(self, *args): + r"""Arc(PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PLOTTER_Arc(self, *args) + + def PenTo(self, pos, plume): + r"""PenTo(PLOTTER self, wxPoint pos, char plume)""" + return _pcbnew.PLOTTER_PenTo(self, pos, plume) + + def MoveTo(self, pos): + r"""MoveTo(PLOTTER self, wxPoint pos)""" + return _pcbnew.PLOTTER_MoveTo(self, pos) + + def LineTo(self, pos): + r"""LineTo(PLOTTER self, wxPoint pos)""" + return _pcbnew.PLOTTER_LineTo(self, pos) + + def FinishTo(self, pos): + r"""FinishTo(PLOTTER self, wxPoint pos)""" + return _pcbnew.PLOTTER_FinishTo(self, pos) + + def PenFinish(self): + r"""PenFinish(PLOTTER self)""" + return _pcbnew.PLOTTER_PenFinish(self) + + def PlotPoly(self, *args): + r""" + PlotPoly(PLOTTER self, wxPoint_Vector aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None) + PlotPoly(PLOTTER self, SHAPE_LINE_CHAIN aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None) + """ + return _pcbnew.PLOTTER_PlotPoly(self, *args) + + def PlotImage(self, aImage, aPos, aScaleFactor): + r"""PlotImage(PLOTTER self, wxImage const & aImage, wxPoint aPos, double aScaleFactor)""" + return _pcbnew.PLOTTER_PlotImage(self, aImage, aPos, aScaleFactor) + + def ThickSegment(self, start, end, width, tracemode, aData): + r"""ThickSegment(PLOTTER self, wxPoint start, wxPoint end, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.PLOTTER_ThickSegment(self, start, end, width, tracemode, aData) + + def ThickArc(self, centre, StAngle, EndAngle, rayon, width, tracemode, aData): + r"""ThickArc(PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.PLOTTER_ThickArc(self, centre, StAngle, EndAngle, rayon, width, tracemode, aData) + + def ThickRect(self, p1, p2, width, tracemode, aData): + r"""ThickRect(PLOTTER self, wxPoint p1, wxPoint p2, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.PLOTTER_ThickRect(self, p1, p2, width, tracemode, aData) + + def ThickCircle(self, pos, diametre, width, tracemode, aData): + r"""ThickCircle(PLOTTER self, wxPoint pos, int diametre, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.PLOTTER_ThickCircle(self, pos, diametre, width, tracemode, aData) + + def FlashPadCircle(self, aPadPos, aDiameter, aTraceMode, aData): + r"""FlashPadCircle(PLOTTER self, wxPoint aPadPos, int aDiameter, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PLOTTER_FlashPadCircle(self, aPadPos, aDiameter, aTraceMode, aData) + + def FlashPadOval(self, aPadPos, aSize, aPadOrient, aTraceMode, aData): + r"""FlashPadOval(PLOTTER self, wxPoint aPadPos, wxSize aSize, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PLOTTER_FlashPadOval(self, aPadPos, aSize, aPadOrient, aTraceMode, aData) + + def FlashPadRect(self, aPadPos, aSize, aPadOrient, aTraceMode, aData): + r"""FlashPadRect(PLOTTER self, wxPoint aPadPos, wxSize aSize, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PLOTTER_FlashPadRect(self, aPadPos, aSize, aPadOrient, aTraceMode, aData) + + def FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData): + r"""FlashPadRoundRect(PLOTTER self, wxPoint aPadPos, wxSize aSize, int aCornerRadius, double aOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PLOTTER_FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData) + + def FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData): + r"""FlashPadCustom(PLOTTER self, wxPoint aPadPos, wxSize aSize, SHAPE_POLY_SET aPolygons, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PLOTTER_FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData) + + def FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData): + r"""FlashPadTrapez(PLOTTER self, wxPoint aPadPos, wxPoint aCorners, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PLOTTER_FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData) + + def Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed=False, aData=None): + r"""Text(PLOTTER self, wxPoint aPos, COLOR4D aColor, wxString aText, double aOrient, wxSize aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, bool aMultilineAllowed=False, void * aData=None)""" + return _pcbnew.PLOTTER_Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed, aData) + MARKER_COUNT = _pcbnew.PLOTTER_MARKER_COUNT + + + def Marker(self, position, diametre, aShapeId): + r"""Marker(PLOTTER self, wxPoint position, int diametre, unsigned int aShapeId)""" + return _pcbnew.PLOTTER_Marker(self, position, diametre, aShapeId) + + def SetLayerPolarity(self, aPositive): + r"""SetLayerPolarity(PLOTTER self, bool aPositive)""" + return _pcbnew.PLOTTER_SetLayerPolarity(self, aPositive) + + def SetTextMode(self, mode): + r"""SetTextMode(PLOTTER self, PlotTextMode mode)""" + return _pcbnew.PLOTTER_SetTextMode(self, mode) + + def SetGerberCoordinatesFormat(self, aResolution, aUseInches=False): + r"""SetGerberCoordinatesFormat(PLOTTER self, int aResolution, bool aUseInches=False)""" + return _pcbnew.PLOTTER_SetGerberCoordinatesFormat(self, aResolution, aUseInches) + + def StartBlock(self, aData): + r"""StartBlock(PLOTTER self, void * aData)""" + return _pcbnew.PLOTTER_StartBlock(self, aData) + + def EndBlock(self, aData): + r"""EndBlock(PLOTTER self, void * aData)""" + return _pcbnew.PLOTTER_EndBlock(self, aData) + +# Register PLOTTER in _pcbnew: +_pcbnew.PLOTTER_swigregister(PLOTTER) + +class HPGL_PLOTTER(PLOTTER): + r"""Proxy of C++ HPGL_PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(HPGL_PLOTTER self) -> HPGL_PLOTTER""" + _pcbnew.HPGL_PLOTTER_swiginit(self, _pcbnew.new_HPGL_PLOTTER()) + + def GetPlotterType(self): + r"""GetPlotterType(HPGL_PLOTTER self) -> PlotFormat""" + return _pcbnew.HPGL_PLOTTER_GetPlotterType(self) + + @staticmethod + def GetDefaultFileExtension(): + r"""GetDefaultFileExtension() -> wxString""" + return _pcbnew.HPGL_PLOTTER_GetDefaultFileExtension() + + def StartPlot(self): + r"""StartPlot(HPGL_PLOTTER self) -> bool""" + return _pcbnew.HPGL_PLOTTER_StartPlot(self) + + def EndPlot(self): + r"""EndPlot(HPGL_PLOTTER self) -> bool""" + return _pcbnew.HPGL_PLOTTER_EndPlot(self) + + def SetCurrentLineWidth(self, width, aData=None): + r"""SetCurrentLineWidth(HPGL_PLOTTER self, int width, void * aData=None)""" + return _pcbnew.HPGL_PLOTTER_SetCurrentLineWidth(self, width, aData) + + def SetDefaultLineWidth(self, width): + r"""SetDefaultLineWidth(HPGL_PLOTTER self, int width)""" + return _pcbnew.HPGL_PLOTTER_SetDefaultLineWidth(self, width) + + def SetDash(self, dashed): + r"""SetDash(HPGL_PLOTTER self, int dashed)""" + return _pcbnew.HPGL_PLOTTER_SetDash(self, dashed) + + def SetColor(self, color): + r"""SetColor(HPGL_PLOTTER self, COLOR4D color)""" + return _pcbnew.HPGL_PLOTTER_SetColor(self, color) + + def SetPenSpeed(self, speed): + r"""SetPenSpeed(HPGL_PLOTTER self, int speed)""" + return _pcbnew.HPGL_PLOTTER_SetPenSpeed(self, speed) + + def SetPenNumber(self, number): + r"""SetPenNumber(HPGL_PLOTTER self, int number)""" + return _pcbnew.HPGL_PLOTTER_SetPenNumber(self, number) + + def SetPenDiameter(self, diameter): + r"""SetPenDiameter(HPGL_PLOTTER self, double diameter)""" + return _pcbnew.HPGL_PLOTTER_SetPenDiameter(self, diameter) + + def SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror): + r"""SetViewport(HPGL_PLOTTER self, wxPoint aOffset, double aIusPerDecimil, double aScale, bool aMirror)""" + return _pcbnew.HPGL_PLOTTER_SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror) + + def Rect(self, *args): + r"""Rect(HPGL_PLOTTER self, wxPoint p1, wxPoint p2, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.HPGL_PLOTTER_Rect(self, *args) + + def Circle(self, *args): + r"""Circle(HPGL_PLOTTER self, wxPoint pos, int diametre, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.HPGL_PLOTTER_Circle(self, *args) + + def PlotPoly(self, *args): + r"""PlotPoly(HPGL_PLOTTER self, wxPoint_Vector aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None)""" + return _pcbnew.HPGL_PLOTTER_PlotPoly(self, *args) + + def ThickSegment(self, start, end, width, tracemode, aData): + r"""ThickSegment(HPGL_PLOTTER self, wxPoint start, wxPoint end, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.HPGL_PLOTTER_ThickSegment(self, start, end, width, tracemode, aData) + + def Arc(self, *args): + r"""Arc(HPGL_PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.HPGL_PLOTTER_Arc(self, *args) + + def PenTo(self, pos, plume): + r"""PenTo(HPGL_PLOTTER self, wxPoint pos, char plume)""" + return _pcbnew.HPGL_PLOTTER_PenTo(self, pos, plume) + + def FlashPadCircle(self, aPadPos, aDiameter, aTraceMode, aData): + r"""FlashPadCircle(HPGL_PLOTTER self, wxPoint aPadPos, int aDiameter, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.HPGL_PLOTTER_FlashPadCircle(self, aPadPos, aDiameter, aTraceMode, aData) + + def FlashPadOval(self, aPadPos, aSize, aPadOrient, aTraceMode, aData): + r"""FlashPadOval(HPGL_PLOTTER self, wxPoint aPadPos, wxSize aSize, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.HPGL_PLOTTER_FlashPadOval(self, aPadPos, aSize, aPadOrient, aTraceMode, aData) + + def FlashPadRect(self, aPadPos, aSize, aOrient, aTraceMode, aData): + r"""FlashPadRect(HPGL_PLOTTER self, wxPoint aPadPos, wxSize aSize, double aOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.HPGL_PLOTTER_FlashPadRect(self, aPadPos, aSize, aOrient, aTraceMode, aData) + + def FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData): + r"""FlashPadRoundRect(HPGL_PLOTTER self, wxPoint aPadPos, wxSize aSize, int aCornerRadius, double aOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.HPGL_PLOTTER_FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData) + + def FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData): + r"""FlashPadCustom(HPGL_PLOTTER self, wxPoint aPadPos, wxSize aSize, SHAPE_POLY_SET aPolygons, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.HPGL_PLOTTER_FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData) + + def FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData): + r"""FlashPadTrapez(HPGL_PLOTTER self, wxPoint aPadPos, wxPoint aCorners, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.HPGL_PLOTTER_FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData) + __swig_destroy__ = _pcbnew.delete_HPGL_PLOTTER + +# Register HPGL_PLOTTER in _pcbnew: +_pcbnew.HPGL_PLOTTER_swigregister(HPGL_PLOTTER) + +def HPGL_PLOTTER_GetDefaultFileExtension(): + r"""HPGL_PLOTTER_GetDefaultFileExtension() -> wxString""" + return _pcbnew.HPGL_PLOTTER_GetDefaultFileExtension() + +class PSLIKE_PLOTTER(PLOTTER): + r"""Proxy of C++ PSLIKE_PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + def SetTextMode(self, mode): + r"""SetTextMode(PSLIKE_PLOTTER self, PlotTextMode mode)""" + return _pcbnew.PSLIKE_PLOTTER_SetTextMode(self, mode) + + def SetDefaultLineWidth(self, width): + r"""SetDefaultLineWidth(PSLIKE_PLOTTER self, int width)""" + return _pcbnew.PSLIKE_PLOTTER_SetDefaultLineWidth(self, width) + + def SetScaleAdjust(self, scaleX, scaleY): + r"""SetScaleAdjust(PSLIKE_PLOTTER self, double scaleX, double scaleY)""" + return _pcbnew.PSLIKE_PLOTTER_SetScaleAdjust(self, scaleX, scaleY) + + def FlashPadCircle(self, aPadPos, aDiameter, aTraceMode, aData): + r"""FlashPadCircle(PSLIKE_PLOTTER self, wxPoint aPadPos, int aDiameter, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PSLIKE_PLOTTER_FlashPadCircle(self, aPadPos, aDiameter, aTraceMode, aData) + + def FlashPadOval(self, aPadPos, aSize, aPadOrient, aTraceMode, aData): + r"""FlashPadOval(PSLIKE_PLOTTER self, wxPoint aPadPos, wxSize aSize, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PSLIKE_PLOTTER_FlashPadOval(self, aPadPos, aSize, aPadOrient, aTraceMode, aData) + + def FlashPadRect(self, aPadPos, aSize, aPadOrient, aTraceMode, aData): + r"""FlashPadRect(PSLIKE_PLOTTER self, wxPoint aPadPos, wxSize aSize, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PSLIKE_PLOTTER_FlashPadRect(self, aPadPos, aSize, aPadOrient, aTraceMode, aData) + + def FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData): + r"""FlashPadRoundRect(PSLIKE_PLOTTER self, wxPoint aPadPos, wxSize aSize, int aCornerRadius, double aOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PSLIKE_PLOTTER_FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData) + + def FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData): + r"""FlashPadCustom(PSLIKE_PLOTTER self, wxPoint aPadPos, wxSize aSize, SHAPE_POLY_SET aPolygons, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PSLIKE_PLOTTER_FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData) + + def FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData): + r"""FlashPadTrapez(PSLIKE_PLOTTER self, wxPoint aPadPos, wxPoint aCorners, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.PSLIKE_PLOTTER_FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData) + + def SetColor(self, color): + r"""SetColor(PSLIKE_PLOTTER self, COLOR4D color)""" + return _pcbnew.PSLIKE_PLOTTER_SetColor(self, color) + __swig_destroy__ = _pcbnew.delete_PSLIKE_PLOTTER + +# Register PSLIKE_PLOTTER in _pcbnew: +_pcbnew.PSLIKE_PLOTTER_swigregister(PSLIKE_PLOTTER) + +class PS_PLOTTER(PSLIKE_PLOTTER): + r"""Proxy of C++ PS_PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(PS_PLOTTER self) -> PS_PLOTTER""" + _pcbnew.PS_PLOTTER_swiginit(self, _pcbnew.new_PS_PLOTTER()) + + @staticmethod + def GetDefaultFileExtension(): + r"""GetDefaultFileExtension() -> wxString""" + return _pcbnew.PS_PLOTTER_GetDefaultFileExtension() + + def GetPlotterType(self): + r"""GetPlotterType(PS_PLOTTER self) -> PlotFormat""" + return _pcbnew.PS_PLOTTER_GetPlotterType(self) + + def StartPlot(self): + r"""StartPlot(PS_PLOTTER self) -> bool""" + return _pcbnew.PS_PLOTTER_StartPlot(self) + + def EndPlot(self): + r"""EndPlot(PS_PLOTTER self) -> bool""" + return _pcbnew.PS_PLOTTER_EndPlot(self) + + def SetCurrentLineWidth(self, width, aData=None): + r"""SetCurrentLineWidth(PS_PLOTTER self, int width, void * aData=None)""" + return _pcbnew.PS_PLOTTER_SetCurrentLineWidth(self, width, aData) + + def SetDash(self, dashed): + r"""SetDash(PS_PLOTTER self, int dashed)""" + return _pcbnew.PS_PLOTTER_SetDash(self, dashed) + + def SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror): + r"""SetViewport(PS_PLOTTER self, wxPoint aOffset, double aIusPerDecimil, double aScale, bool aMirror)""" + return _pcbnew.PS_PLOTTER_SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror) + + def Rect(self, *args): + r"""Rect(PS_PLOTTER self, wxPoint p1, wxPoint p2, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PS_PLOTTER_Rect(self, *args) + + def Circle(self, *args): + r"""Circle(PS_PLOTTER self, wxPoint pos, int diametre, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PS_PLOTTER_Circle(self, *args) + + def Arc(self, *args): + r"""Arc(PS_PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PS_PLOTTER_Arc(self, *args) + + def PlotPoly(self, *args): + r"""PlotPoly(PS_PLOTTER self, wxPoint_Vector aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None)""" + return _pcbnew.PS_PLOTTER_PlotPoly(self, *args) + + def PlotImage(self, aImage, aPos, aScaleFactor): + r"""PlotImage(PS_PLOTTER self, wxImage const & aImage, wxPoint aPos, double aScaleFactor)""" + return _pcbnew.PS_PLOTTER_PlotImage(self, aImage, aPos, aScaleFactor) + + def PenTo(self, pos, plume): + r"""PenTo(PS_PLOTTER self, wxPoint pos, char plume)""" + return _pcbnew.PS_PLOTTER_PenTo(self, pos, plume) + + def Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed=False, aData=None): + r"""Text(PS_PLOTTER self, wxPoint aPos, COLOR4D aColor, wxString aText, double aOrient, wxSize aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, bool aMultilineAllowed=False, void * aData=None)""" + return _pcbnew.PS_PLOTTER_Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed, aData) + __swig_destroy__ = _pcbnew.delete_PS_PLOTTER + +# Register PS_PLOTTER in _pcbnew: +_pcbnew.PS_PLOTTER_swigregister(PS_PLOTTER) + +def PS_PLOTTER_GetDefaultFileExtension(): + r"""PS_PLOTTER_GetDefaultFileExtension() -> wxString""" + return _pcbnew.PS_PLOTTER_GetDefaultFileExtension() + +class PDF_PLOTTER(PSLIKE_PLOTTER): + r"""Proxy of C++ PDF_PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(PDF_PLOTTER self) -> PDF_PLOTTER""" + _pcbnew.PDF_PLOTTER_swiginit(self, _pcbnew.new_PDF_PLOTTER()) + + def GetPlotterType(self): + r"""GetPlotterType(PDF_PLOTTER self) -> PlotFormat""" + return _pcbnew.PDF_PLOTTER_GetPlotterType(self) + + @staticmethod + def GetDefaultFileExtension(): + r"""GetDefaultFileExtension() -> wxString""" + return _pcbnew.PDF_PLOTTER_GetDefaultFileExtension() + + def OpenFile(self, aFullFilename): + r"""OpenFile(PDF_PLOTTER self, wxString aFullFilename) -> bool""" + return _pcbnew.PDF_PLOTTER_OpenFile(self, aFullFilename) + + def StartPlot(self): + r"""StartPlot(PDF_PLOTTER self) -> bool""" + return _pcbnew.PDF_PLOTTER_StartPlot(self) + + def EndPlot(self): + r"""EndPlot(PDF_PLOTTER self) -> bool""" + return _pcbnew.PDF_PLOTTER_EndPlot(self) + + def StartPage(self): + r"""StartPage(PDF_PLOTTER self)""" + return _pcbnew.PDF_PLOTTER_StartPage(self) + + def ClosePage(self): + r"""ClosePage(PDF_PLOTTER self)""" + return _pcbnew.PDF_PLOTTER_ClosePage(self) + + def SetCurrentLineWidth(self, width, aData=None): + r"""SetCurrentLineWidth(PDF_PLOTTER self, int width, void * aData=None)""" + return _pcbnew.PDF_PLOTTER_SetCurrentLineWidth(self, width, aData) + + def SetDash(self, dashed): + r"""SetDash(PDF_PLOTTER self, int dashed)""" + return _pcbnew.PDF_PLOTTER_SetDash(self, dashed) + + def SetPageSettings(self, aPageSettings): + r"""SetPageSettings(PDF_PLOTTER self, PAGE_INFO const & aPageSettings)""" + return _pcbnew.PDF_PLOTTER_SetPageSettings(self, aPageSettings) + + def SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror): + r"""SetViewport(PDF_PLOTTER self, wxPoint aOffset, double aIusPerDecimil, double aScale, bool aMirror)""" + return _pcbnew.PDF_PLOTTER_SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror) + + def Rect(self, *args): + r"""Rect(PDF_PLOTTER self, wxPoint p1, wxPoint p2, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PDF_PLOTTER_Rect(self, *args) + + def Circle(self, *args): + r"""Circle(PDF_PLOTTER self, wxPoint pos, int diametre, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PDF_PLOTTER_Circle(self, *args) + + def Arc(self, *args): + r"""Arc(PDF_PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.PDF_PLOTTER_Arc(self, *args) + + def PlotPoly(self, *args): + r"""PlotPoly(PDF_PLOTTER self, wxPoint_Vector aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None)""" + return _pcbnew.PDF_PLOTTER_PlotPoly(self, *args) + + def PenTo(self, pos, plume): + r"""PenTo(PDF_PLOTTER self, wxPoint pos, char plume)""" + return _pcbnew.PDF_PLOTTER_PenTo(self, pos, plume) + + def Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed=False, aData=None): + r"""Text(PDF_PLOTTER self, wxPoint aPos, COLOR4D aColor, wxString aText, double aOrient, wxSize aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, bool aMultilineAllowed=False, void * aData=None)""" + return _pcbnew.PDF_PLOTTER_Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed, aData) + + def PlotImage(self, aImage, aPos, aScaleFactor): + r"""PlotImage(PDF_PLOTTER self, wxImage const & aImage, wxPoint aPos, double aScaleFactor)""" + return _pcbnew.PDF_PLOTTER_PlotImage(self, aImage, aPos, aScaleFactor) + __swig_destroy__ = _pcbnew.delete_PDF_PLOTTER + +# Register PDF_PLOTTER in _pcbnew: +_pcbnew.PDF_PLOTTER_swigregister(PDF_PLOTTER) + +def PDF_PLOTTER_GetDefaultFileExtension(): + r"""PDF_PLOTTER_GetDefaultFileExtension() -> wxString""" + return _pcbnew.PDF_PLOTTER_GetDefaultFileExtension() + +class SVG_PLOTTER(PSLIKE_PLOTTER): + r"""Proxy of C++ SVG_PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(SVG_PLOTTER self) -> SVG_PLOTTER""" + _pcbnew.SVG_PLOTTER_swiginit(self, _pcbnew.new_SVG_PLOTTER()) + + @staticmethod + def GetDefaultFileExtension(): + r"""GetDefaultFileExtension() -> wxString""" + return _pcbnew.SVG_PLOTTER_GetDefaultFileExtension() + + def GetPlotterType(self): + r"""GetPlotterType(SVG_PLOTTER self) -> PlotFormat""" + return _pcbnew.SVG_PLOTTER_GetPlotterType(self) + + def SetColor(self, color): + r"""SetColor(SVG_PLOTTER self, COLOR4D color)""" + return _pcbnew.SVG_PLOTTER_SetColor(self, color) + + def StartPlot(self): + r"""StartPlot(SVG_PLOTTER self) -> bool""" + return _pcbnew.SVG_PLOTTER_StartPlot(self) + + def EndPlot(self): + r"""EndPlot(SVG_PLOTTER self) -> bool""" + return _pcbnew.SVG_PLOTTER_EndPlot(self) + + def SetCurrentLineWidth(self, width, aData=None): + r"""SetCurrentLineWidth(SVG_PLOTTER self, int width, void * aData=None)""" + return _pcbnew.SVG_PLOTTER_SetCurrentLineWidth(self, width, aData) + + def SetDash(self, dashed): + r"""SetDash(SVG_PLOTTER self, int dashed)""" + return _pcbnew.SVG_PLOTTER_SetDash(self, dashed) + + def SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror): + r"""SetViewport(SVG_PLOTTER self, wxPoint aOffset, double aIusPerDecimil, double aScale, bool aMirror)""" + return _pcbnew.SVG_PLOTTER_SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror) + + def Rect(self, *args): + r"""Rect(SVG_PLOTTER self, wxPoint p1, wxPoint p2, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.SVG_PLOTTER_Rect(self, *args) + + def Circle(self, *args): + r"""Circle(SVG_PLOTTER self, wxPoint pos, int diametre, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.SVG_PLOTTER_Circle(self, *args) + + def Arc(self, *args): + r"""Arc(SVG_PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.SVG_PLOTTER_Arc(self, *args) + + def PlotPoly(self, *args): + r"""PlotPoly(SVG_PLOTTER self, wxPoint_Vector aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None)""" + return _pcbnew.SVG_PLOTTER_PlotPoly(self, *args) + + def PlotImage(self, aImage, aPos, aScaleFactor): + r"""PlotImage(SVG_PLOTTER self, wxImage const & aImage, wxPoint aPos, double aScaleFactor)""" + return _pcbnew.SVG_PLOTTER_PlotImage(self, aImage, aPos, aScaleFactor) + + def PenTo(self, pos, plume): + r"""PenTo(SVG_PLOTTER self, wxPoint pos, char plume)""" + return _pcbnew.SVG_PLOTTER_PenTo(self, pos, plume) + + def StartBlock(self, aData): + r"""StartBlock(SVG_PLOTTER self, void * aData)""" + return _pcbnew.SVG_PLOTTER_StartBlock(self, aData) + + def EndBlock(self, aData): + r"""EndBlock(SVG_PLOTTER self, void * aData)""" + return _pcbnew.SVG_PLOTTER_EndBlock(self, aData) + + def Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed=False, aData=None): + r"""Text(SVG_PLOTTER self, wxPoint aPos, COLOR4D aColor, wxString aText, double aOrient, wxSize aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, bool aMultilineAllowed=False, void * aData=None)""" + return _pcbnew.SVG_PLOTTER_Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed, aData) + __swig_destroy__ = _pcbnew.delete_SVG_PLOTTER + +# Register SVG_PLOTTER in _pcbnew: +_pcbnew.SVG_PLOTTER_swigregister(SVG_PLOTTER) + +def SVG_PLOTTER_GetDefaultFileExtension(): + r"""SVG_PLOTTER_GetDefaultFileExtension() -> wxString""" + return _pcbnew.SVG_PLOTTER_GetDefaultFileExtension() + +FIRST_DCODE_VALUE = _pcbnew.FIRST_DCODE_VALUE + +class APERTURE(object): + r"""Proxy of C++ APERTURE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + Circle = _pcbnew.APERTURE_Circle + + Rect = _pcbnew.APERTURE_Rect + + Plotting = _pcbnew.APERTURE_Plotting + + Oval = _pcbnew.APERTURE_Oval + + m_Size = property(_pcbnew.APERTURE_m_Size_get, _pcbnew.APERTURE_m_Size_set, doc=r"""m_Size : wxSize""") + m_Type = property(_pcbnew.APERTURE_m_Type_get, _pcbnew.APERTURE_m_Type_set, doc=r"""m_Type : APERTURE::APERTURE_TYPE""") + m_DCode = property(_pcbnew.APERTURE_m_DCode_get, _pcbnew.APERTURE_m_DCode_set, doc=r"""m_DCode : int""") + m_ApertureAttribute = property(_pcbnew.APERTURE_m_ApertureAttribute_get, _pcbnew.APERTURE_m_ApertureAttribute_set, doc=r"""m_ApertureAttribute : int""") + + def __init__(self): + r"""__init__(APERTURE self) -> APERTURE""" + _pcbnew.APERTURE_swiginit(self, _pcbnew.new_APERTURE()) + __swig_destroy__ = _pcbnew.delete_APERTURE + +# Register APERTURE in _pcbnew: +_pcbnew.APERTURE_swigregister(APERTURE) + +class GERBER_PLOTTER(PLOTTER): + r"""Proxy of C++ GERBER_PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(GERBER_PLOTTER self) -> GERBER_PLOTTER""" + _pcbnew.GERBER_PLOTTER_swiginit(self, _pcbnew.new_GERBER_PLOTTER()) + + def GetPlotterType(self): + r"""GetPlotterType(GERBER_PLOTTER self) -> PlotFormat""" + return _pcbnew.GERBER_PLOTTER_GetPlotterType(self) + + @staticmethod + def GetDefaultFileExtension(): + r"""GetDefaultFileExtension() -> wxString""" + return _pcbnew.GERBER_PLOTTER_GetDefaultFileExtension() + + def StartPlot(self): + r"""StartPlot(GERBER_PLOTTER self) -> bool""" + return _pcbnew.GERBER_PLOTTER_StartPlot(self) + + def EndPlot(self): + r"""EndPlot(GERBER_PLOTTER self) -> bool""" + return _pcbnew.GERBER_PLOTTER_EndPlot(self) + + def SetCurrentLineWidth(self, width, aData=None): + r"""SetCurrentLineWidth(GERBER_PLOTTER self, int width, void * aData=None)""" + return _pcbnew.GERBER_PLOTTER_SetCurrentLineWidth(self, width, aData) + + def SetDefaultLineWidth(self, width): + r"""SetDefaultLineWidth(GERBER_PLOTTER self, int width)""" + return _pcbnew.GERBER_PLOTTER_SetDefaultLineWidth(self, width) + + def SetDash(self, dashed): + r"""SetDash(GERBER_PLOTTER self, int dashed)""" + return _pcbnew.GERBER_PLOTTER_SetDash(self, dashed) + + def SetColor(self, color): + r"""SetColor(GERBER_PLOTTER self, COLOR4D color)""" + return _pcbnew.GERBER_PLOTTER_SetColor(self, color) + + def SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror): + r"""SetViewport(GERBER_PLOTTER self, wxPoint aOffset, double aIusPerDecimil, double aScale, bool aMirror)""" + return _pcbnew.GERBER_PLOTTER_SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror) + + def Rect(self, *args): + r"""Rect(GERBER_PLOTTER self, wxPoint p1, wxPoint p2, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.GERBER_PLOTTER_Rect(self, *args) + + def Circle(self, *args): + r"""Circle(GERBER_PLOTTER self, wxPoint pos, int diametre, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.GERBER_PLOTTER_Circle(self, *args) + + def Arc(self, *args): + r"""Arc(GERBER_PLOTTER self, wxPoint aCenter, double aStAngle, double aEndAngle, int aRadius, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.GERBER_PLOTTER_Arc(self, *args) + + def ThickSegment(self, start, end, width, tracemode, aData): + r"""ThickSegment(GERBER_PLOTTER self, wxPoint start, wxPoint end, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_ThickSegment(self, start, end, width, tracemode, aData) + + def ThickArc(self, centre, StAngle, EndAngle, rayon, width, tracemode, aData): + r"""ThickArc(GERBER_PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_ThickArc(self, centre, StAngle, EndAngle, rayon, width, tracemode, aData) + + def ThickRect(self, p1, p2, width, tracemode, aData): + r"""ThickRect(GERBER_PLOTTER self, wxPoint p1, wxPoint p2, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_ThickRect(self, p1, p2, width, tracemode, aData) + + def ThickCircle(self, pos, diametre, width, tracemode, aData): + r"""ThickCircle(GERBER_PLOTTER self, wxPoint pos, int diametre, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_ThickCircle(self, pos, diametre, width, tracemode, aData) + + def PlotPoly(self, *args): + r"""PlotPoly(GERBER_PLOTTER self, wxPoint_Vector aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None)""" + return _pcbnew.GERBER_PLOTTER_PlotPoly(self, *args) + + def PenTo(self, pos, plume): + r"""PenTo(GERBER_PLOTTER self, wxPoint pos, char plume)""" + return _pcbnew.GERBER_PLOTTER_PenTo(self, pos, plume) + + def Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed=False, aData=None): + r"""Text(GERBER_PLOTTER self, wxPoint aPos, COLOR4D aColor, wxString aText, double aOrient, wxSize aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, bool aMultilineAllowed=False, void * aData=None)""" + return _pcbnew.GERBER_PLOTTER_Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed, aData) + + def FlashPadCircle(self, pos, diametre, trace_mode, aData): + r"""FlashPadCircle(GERBER_PLOTTER self, wxPoint pos, int diametre, EDA_DRAW_MODE_T trace_mode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_FlashPadCircle(self, pos, diametre, trace_mode, aData) + + def FlashPadOval(self, pos, size, orient, trace_mode, aData): + r"""FlashPadOval(GERBER_PLOTTER self, wxPoint pos, wxSize size, double orient, EDA_DRAW_MODE_T trace_mode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_FlashPadOval(self, pos, size, orient, trace_mode, aData) + + def FlashPadRect(self, pos, size, orient, trace_mode, aData): + r"""FlashPadRect(GERBER_PLOTTER self, wxPoint pos, wxSize size, double orient, EDA_DRAW_MODE_T trace_mode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_FlashPadRect(self, pos, size, orient, trace_mode, aData) + + def FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData): + r"""FlashPadRoundRect(GERBER_PLOTTER self, wxPoint aPadPos, wxSize aSize, int aCornerRadius, double aOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData) + + def FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData): + r"""FlashPadCustom(GERBER_PLOTTER self, wxPoint aPadPos, wxSize aSize, SHAPE_POLY_SET aPolygons, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData) + + def FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData): + r"""FlashPadTrapez(GERBER_PLOTTER self, wxPoint aPadPos, wxPoint aCorners, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.GERBER_PLOTTER_FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData) + + def SetLayerPolarity(self, aPositive): + r"""SetLayerPolarity(GERBER_PLOTTER self, bool aPositive)""" + return _pcbnew.GERBER_PLOTTER_SetLayerPolarity(self, aPositive) + + def SetGerberCoordinatesFormat(self, aResolution, aUseInches=False): + r"""SetGerberCoordinatesFormat(GERBER_PLOTTER self, int aResolution, bool aUseInches=False)""" + return _pcbnew.GERBER_PLOTTER_SetGerberCoordinatesFormat(self, aResolution, aUseInches) + + def UseX2format(self, aEnable): + r"""UseX2format(GERBER_PLOTTER self, bool aEnable)""" + return _pcbnew.GERBER_PLOTTER_UseX2format(self, aEnable) + + def UseX2NetAttributes(self, aEnable): + r"""UseX2NetAttributes(GERBER_PLOTTER self, bool aEnable)""" + return _pcbnew.GERBER_PLOTTER_UseX2NetAttributes(self, aEnable) + + def StartBlock(self, aData): + r"""StartBlock(GERBER_PLOTTER self, void * aData)""" + return _pcbnew.GERBER_PLOTTER_StartBlock(self, aData) + + def EndBlock(self, aData): + r"""EndBlock(GERBER_PLOTTER self, void * aData)""" + return _pcbnew.GERBER_PLOTTER_EndBlock(self, aData) + __swig_destroy__ = _pcbnew.delete_GERBER_PLOTTER + +# Register GERBER_PLOTTER in _pcbnew: +_pcbnew.GERBER_PLOTTER_swigregister(GERBER_PLOTTER) + +def GERBER_PLOTTER_GetDefaultFileExtension(): + r"""GERBER_PLOTTER_GetDefaultFileExtension() -> wxString""" + return _pcbnew.GERBER_PLOTTER_GetDefaultFileExtension() + +class DXF_PLOTTER(PLOTTER): + r"""Proxy of C++ DXF_PLOTTER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(DXF_PLOTTER self) -> DXF_PLOTTER""" + _pcbnew.DXF_PLOTTER_swiginit(self, _pcbnew.new_DXF_PLOTTER()) + + def GetPlotterType(self): + r"""GetPlotterType(DXF_PLOTTER self) -> PlotFormat""" + return _pcbnew.DXF_PLOTTER_GetPlotterType(self) + + @staticmethod + def GetDefaultFileExtension(): + r"""GetDefaultFileExtension() -> wxString""" + return _pcbnew.DXF_PLOTTER_GetDefaultFileExtension() + + def SetTextMode(self, mode): + r"""SetTextMode(DXF_PLOTTER self, PlotTextMode mode)""" + return _pcbnew.DXF_PLOTTER_SetTextMode(self, mode) + + def StartPlot(self): + r"""StartPlot(DXF_PLOTTER self) -> bool""" + return _pcbnew.DXF_PLOTTER_StartPlot(self) + + def EndPlot(self): + r"""EndPlot(DXF_PLOTTER self) -> bool""" + return _pcbnew.DXF_PLOTTER_EndPlot(self) + + def SetCurrentLineWidth(self, width, aData=None): + r"""SetCurrentLineWidth(DXF_PLOTTER self, int width, void * aData=None)""" + return _pcbnew.DXF_PLOTTER_SetCurrentLineWidth(self, width, aData) + + def SetDefaultLineWidth(self, width): + r"""SetDefaultLineWidth(DXF_PLOTTER self, int width)""" + return _pcbnew.DXF_PLOTTER_SetDefaultLineWidth(self, width) + + def SetDash(self, dashed): + r"""SetDash(DXF_PLOTTER self, int dashed)""" + return _pcbnew.DXF_PLOTTER_SetDash(self, dashed) + + def SetColor(self, color): + r"""SetColor(DXF_PLOTTER self, COLOR4D color)""" + return _pcbnew.DXF_PLOTTER_SetColor(self, color) + + def SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror): + r"""SetViewport(DXF_PLOTTER self, wxPoint aOffset, double aIusPerDecimil, double aScale, bool aMirror)""" + return _pcbnew.DXF_PLOTTER_SetViewport(self, aOffset, aIusPerDecimil, aScale, aMirror) + + def Rect(self, *args): + r"""Rect(DXF_PLOTTER self, wxPoint p1, wxPoint p2, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.DXF_PLOTTER_Rect(self, *args) + + def Circle(self, *args): + r"""Circle(DXF_PLOTTER self, wxPoint pos, int diametre, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.DXF_PLOTTER_Circle(self, *args) + + def PlotPoly(self, *args): + r"""PlotPoly(DXF_PLOTTER self, wxPoint_Vector aCornerList, FILL_T aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void * aData=None)""" + return _pcbnew.DXF_PLOTTER_PlotPoly(self, *args) + + def ThickSegment(self, start, end, width, tracemode, aData): + r"""ThickSegment(DXF_PLOTTER self, wxPoint start, wxPoint end, int width, EDA_DRAW_MODE_T tracemode, void * aData)""" + return _pcbnew.DXF_PLOTTER_ThickSegment(self, start, end, width, tracemode, aData) + + def Arc(self, *args): + r"""Arc(DXF_PLOTTER self, wxPoint centre, double StAngle, double EndAngle, int rayon, FILL_T fill, int width=USE_DEFAULT_LINE_WIDTH)""" + return _pcbnew.DXF_PLOTTER_Arc(self, *args) + + def PenTo(self, pos, plume): + r"""PenTo(DXF_PLOTTER self, wxPoint pos, char plume)""" + return _pcbnew.DXF_PLOTTER_PenTo(self, pos, plume) + + def FlashPadCircle(self, pos, diametre, trace_mode, aData): + r"""FlashPadCircle(DXF_PLOTTER self, wxPoint pos, int diametre, EDA_DRAW_MODE_T trace_mode, void * aData)""" + return _pcbnew.DXF_PLOTTER_FlashPadCircle(self, pos, diametre, trace_mode, aData) + + def FlashPadOval(self, pos, size, orient, trace_mode, aData): + r"""FlashPadOval(DXF_PLOTTER self, wxPoint pos, wxSize size, double orient, EDA_DRAW_MODE_T trace_mode, void * aData)""" + return _pcbnew.DXF_PLOTTER_FlashPadOval(self, pos, size, orient, trace_mode, aData) + + def FlashPadRect(self, pos, size, orient, trace_mode, aData): + r"""FlashPadRect(DXF_PLOTTER self, wxPoint pos, wxSize size, double orient, EDA_DRAW_MODE_T trace_mode, void * aData)""" + return _pcbnew.DXF_PLOTTER_FlashPadRect(self, pos, size, orient, trace_mode, aData) + + def FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData): + r"""FlashPadRoundRect(DXF_PLOTTER self, wxPoint aPadPos, wxSize aSize, int aCornerRadius, double aOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.DXF_PLOTTER_FlashPadRoundRect(self, aPadPos, aSize, aCornerRadius, aOrient, aTraceMode, aData) + + def FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData): + r"""FlashPadCustom(DXF_PLOTTER self, wxPoint aPadPos, wxSize aSize, SHAPE_POLY_SET aPolygons, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.DXF_PLOTTER_FlashPadCustom(self, aPadPos, aSize, aPolygons, aTraceMode, aData) + + def FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData): + r"""FlashPadTrapez(DXF_PLOTTER self, wxPoint aPadPos, wxPoint aCorners, double aPadOrient, EDA_DRAW_MODE_T aTraceMode, void * aData)""" + return _pcbnew.DXF_PLOTTER_FlashPadTrapez(self, aPadPos, aCorners, aPadOrient, aTraceMode, aData) + + def Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed=False, aData=None): + r"""Text(DXF_PLOTTER self, wxPoint aPos, COLOR4D aColor, wxString aText, double aOrient, wxSize aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, bool aMultilineAllowed=False, void * aData=None)""" + return _pcbnew.DXF_PLOTTER_Text(self, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, aWidth, aItalic, aBold, aMultilineAllowed, aData) + DXF_UNIT_INCHES = _pcbnew.DXF_PLOTTER_DXF_UNIT_INCHES + + DXF_UNIT_MILLIMETERS = _pcbnew.DXF_PLOTTER_DXF_UNIT_MILLIMETERS + + + def SetUnits(self, aUnit): + r"""SetUnits(DXF_PLOTTER self, DXF_PLOTTER::DXF_UNITS aUnit)""" + return _pcbnew.DXF_PLOTTER_SetUnits(self, aUnit) + + def GetUnits(self): + r"""GetUnits(DXF_PLOTTER self) -> DXF_PLOTTER::DXF_UNITS""" + return _pcbnew.DXF_PLOTTER_GetUnits(self) + + def GetUnitScaling(self): + r"""GetUnitScaling(DXF_PLOTTER self) -> double""" + return _pcbnew.DXF_PLOTTER_GetUnitScaling(self) + + def GetMeasurementDirective(self): + r"""GetMeasurementDirective(DXF_PLOTTER self) -> unsigned int""" + return _pcbnew.DXF_PLOTTER_GetMeasurementDirective(self) + __swig_destroy__ = _pcbnew.delete_DXF_PLOTTER + +# Register DXF_PLOTTER in _pcbnew: +_pcbnew.DXF_PLOTTER_swigregister(DXF_PLOTTER) + +def DXF_PLOTTER_GetDefaultFileExtension(): + r"""DXF_PLOTTER_GetDefaultFileExtension() -> wxString""" + return _pcbnew.DXF_PLOTTER_GetDefaultFileExtension() + + +def PlotWorkSheet(*args): + r"""PlotWorkSheet(PLOTTER plotter, TITLE_BLOCK aTitleBlock, PAGE_INFO const & aPageInfo, int aSheetNumber, int aNumberOfSheets, wxString aSheetDesc, wxString aFilename, COLOR4D aColor=COLOR4D::UNSPECIFIED)""" + return _pcbnew.PlotWorkSheet(*args) + +def GetDefaultPlotExtension(aFormat): + r"""GetDefaultPlotExtension(PlotFormat aFormat) -> wxString""" + return _pcbnew.GetDefaultPlotExtension(aFormat) +class DRILL_TOOL(object): + r"""Proxy of C++ DRILL_TOOL class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_Diameter = property(_pcbnew.DRILL_TOOL_m_Diameter_get, _pcbnew.DRILL_TOOL_m_Diameter_set, doc=r"""m_Diameter : int""") + m_TotalCount = property(_pcbnew.DRILL_TOOL_m_TotalCount_get, _pcbnew.DRILL_TOOL_m_TotalCount_set, doc=r"""m_TotalCount : int""") + m_OvalCount = property(_pcbnew.DRILL_TOOL_m_OvalCount_get, _pcbnew.DRILL_TOOL_m_OvalCount_set, doc=r"""m_OvalCount : int""") + m_Hole_NotPlated = property(_pcbnew.DRILL_TOOL_m_Hole_NotPlated_get, _pcbnew.DRILL_TOOL_m_Hole_NotPlated_set, doc=r"""m_Hole_NotPlated : bool""") + + def __init__(self, aDiameter, a_NotPlated): + r"""__init__(DRILL_TOOL self, int aDiameter, bool a_NotPlated) -> DRILL_TOOL""" + _pcbnew.DRILL_TOOL_swiginit(self, _pcbnew.new_DRILL_TOOL(aDiameter, a_NotPlated)) + __swig_destroy__ = _pcbnew.delete_DRILL_TOOL + +# Register DRILL_TOOL in _pcbnew: +_pcbnew.DRILL_TOOL_swigregister(DRILL_TOOL) + +class HOLE_INFO(object): + r"""Proxy of C++ HOLE_INFO class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_ItemParent = property(_pcbnew.HOLE_INFO_m_ItemParent_get, _pcbnew.HOLE_INFO_m_ItemParent_set, doc=r"""m_ItemParent : p.BOARD_ITEM""") + m_Hole_Diameter = property(_pcbnew.HOLE_INFO_m_Hole_Diameter_get, _pcbnew.HOLE_INFO_m_Hole_Diameter_set, doc=r"""m_Hole_Diameter : int""") + m_Tool_Reference = property(_pcbnew.HOLE_INFO_m_Tool_Reference_get, _pcbnew.HOLE_INFO_m_Tool_Reference_set, doc=r"""m_Tool_Reference : int""") + m_Hole_Size = property(_pcbnew.HOLE_INFO_m_Hole_Size_get, _pcbnew.HOLE_INFO_m_Hole_Size_set, doc=r"""m_Hole_Size : wxSize""") + m_Hole_Orient = property(_pcbnew.HOLE_INFO_m_Hole_Orient_get, _pcbnew.HOLE_INFO_m_Hole_Orient_set, doc=r"""m_Hole_Orient : double""") + m_Hole_Shape = property(_pcbnew.HOLE_INFO_m_Hole_Shape_get, _pcbnew.HOLE_INFO_m_Hole_Shape_set, doc=r"""m_Hole_Shape : int""") + m_Hole_Pos = property(_pcbnew.HOLE_INFO_m_Hole_Pos_get, _pcbnew.HOLE_INFO_m_Hole_Pos_set, doc=r"""m_Hole_Pos : wxPoint""") + m_Hole_Bottom_Layer = property(_pcbnew.HOLE_INFO_m_Hole_Bottom_Layer_get, _pcbnew.HOLE_INFO_m_Hole_Bottom_Layer_set, doc=r"""m_Hole_Bottom_Layer : PCB_LAYER_ID""") + m_Hole_Top_Layer = property(_pcbnew.HOLE_INFO_m_Hole_Top_Layer_get, _pcbnew.HOLE_INFO_m_Hole_Top_Layer_set, doc=r"""m_Hole_Top_Layer : PCB_LAYER_ID""") + m_Hole_NotPlated = property(_pcbnew.HOLE_INFO_m_Hole_NotPlated_get, _pcbnew.HOLE_INFO_m_Hole_NotPlated_set, doc=r"""m_Hole_NotPlated : bool""") + + def __init__(self): + r"""__init__(HOLE_INFO self) -> HOLE_INFO""" + _pcbnew.HOLE_INFO_swiginit(self, _pcbnew.new_HOLE_INFO()) + __swig_destroy__ = _pcbnew.delete_HOLE_INFO + +# Register HOLE_INFO in _pcbnew: +_pcbnew.HOLE_INFO_swigregister(HOLE_INFO) + +class DRILL_PRECISION(object): + r"""Proxy of C++ DRILL_PRECISION class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_lhs = property(_pcbnew.DRILL_PRECISION_m_lhs_get, _pcbnew.DRILL_PRECISION_m_lhs_set, doc=r"""m_lhs : int""") + m_rhs = property(_pcbnew.DRILL_PRECISION_m_rhs_get, _pcbnew.DRILL_PRECISION_m_rhs_set, doc=r"""m_rhs : int""") + + def __init__(self, l=2, r=4): + r"""__init__(DRILL_PRECISION self, int l=2, int r=4) -> DRILL_PRECISION""" + _pcbnew.DRILL_PRECISION_swiginit(self, _pcbnew.new_DRILL_PRECISION(l, r)) + + def GetPrecisionString(self): + r"""GetPrecisionString(DRILL_PRECISION self) -> wxString""" + return _pcbnew.DRILL_PRECISION_GetPrecisionString(self) + __swig_destroy__ = _pcbnew.delete_DRILL_PRECISION + +# Register DRILL_PRECISION in _pcbnew: +_pcbnew.DRILL_PRECISION_swigregister(DRILL_PRECISION) + +class GENDRILL_WRITER_BASE(object): + r"""Proxy of C++ GENDRILL_WRITER_BASE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined") + __repr__ = _swig_repr + DECIMAL_FORMAT = _pcbnew.GENDRILL_WRITER_BASE_DECIMAL_FORMAT + + SUPPRESS_LEADING = _pcbnew.GENDRILL_WRITER_BASE_SUPPRESS_LEADING + + SUPPRESS_TRAILING = _pcbnew.GENDRILL_WRITER_BASE_SUPPRESS_TRAILING + + KEEP_ZEROS = _pcbnew.GENDRILL_WRITER_BASE_KEEP_ZEROS + + __swig_destroy__ = _pcbnew.delete_GENDRILL_WRITER_BASE + + def SetMergeOption(self, aMerge): + r"""SetMergeOption(GENDRILL_WRITER_BASE self, bool aMerge)""" + return _pcbnew.GENDRILL_WRITER_BASE_SetMergeOption(self, aMerge) + + def GetOffset(self): + r"""GetOffset(GENDRILL_WRITER_BASE self) -> wxPoint""" + return _pcbnew.GENDRILL_WRITER_BASE_GetOffset(self) + + def SetPageInfo(self, aPageInfo): + r"""SetPageInfo(GENDRILL_WRITER_BASE self, PAGE_INFO const * aPageInfo)""" + return _pcbnew.GENDRILL_WRITER_BASE_SetPageInfo(self, aPageInfo) + + def SetMapFileFormat(self, aMapFmt): + r"""SetMapFileFormat(GENDRILL_WRITER_BASE self, PlotFormat aMapFmt)""" + return _pcbnew.GENDRILL_WRITER_BASE_SetMapFileFormat(self, aMapFmt) + + def CreateMapFilesSet(self, aPlotDirectory, aReporter=None): + r"""CreateMapFilesSet(GENDRILL_WRITER_BASE self, wxString aPlotDirectory, REPORTER * aReporter=None)""" + return _pcbnew.GENDRILL_WRITER_BASE_CreateMapFilesSet(self, aPlotDirectory, aReporter) + + def GenDrillReportFile(self, aFullFileName): + r"""GenDrillReportFile(GENDRILL_WRITER_BASE self, wxString aFullFileName) -> bool""" + return _pcbnew.GENDRILL_WRITER_BASE_GenDrillReportFile(self, aFullFileName) + +# Register GENDRILL_WRITER_BASE in _pcbnew: +_pcbnew.GENDRILL_WRITER_BASE_swigregister(GENDRILL_WRITER_BASE) + +class EXCELLON_WRITER(GENDRILL_WRITER_BASE): + r"""Proxy of C++ EXCELLON_WRITER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aPcb): + r"""__init__(EXCELLON_WRITER self, BOARD aPcb) -> EXCELLON_WRITER""" + _pcbnew.EXCELLON_WRITER_swiginit(self, _pcbnew.new_EXCELLON_WRITER(aPcb)) + __swig_destroy__ = _pcbnew.delete_EXCELLON_WRITER + + def GetOffset(self): + r"""GetOffset(EXCELLON_WRITER self) -> wxPoint""" + return _pcbnew.EXCELLON_WRITER_GetOffset(self) + + def SetRouteModeForOvalHoles(self, aUseRouteModeForOvalHoles): + r"""SetRouteModeForOvalHoles(EXCELLON_WRITER self, bool aUseRouteModeForOvalHoles)""" + return _pcbnew.EXCELLON_WRITER_SetRouteModeForOvalHoles(self, aUseRouteModeForOvalHoles) + + def SetFormat(self, *args): + r"""SetFormat(EXCELLON_WRITER self, bool aMetric, GENDRILL_WRITER_BASE::ZEROS_FMT aZerosFmt=DECIMAL_FORMAT, int aLeftDigits=0, int aRightDigits=0)""" + return _pcbnew.EXCELLON_WRITER_SetFormat(self, *args) + + def SetOptions(self, aMirror, aMinimalHeader, aOffset, aMerge_PTH_NPTH): + r"""SetOptions(EXCELLON_WRITER self, bool aMirror, bool aMinimalHeader, wxPoint aOffset, bool aMerge_PTH_NPTH)""" + return _pcbnew.EXCELLON_WRITER_SetOptions(self, aMirror, aMinimalHeader, aOffset, aMerge_PTH_NPTH) + + def CreateDrillandMapFilesSet(self, aPlotDirectory, aGenDrill, aGenMap, aReporter=None): + r"""CreateDrillandMapFilesSet(EXCELLON_WRITER self, wxString aPlotDirectory, bool aGenDrill, bool aGenMap, REPORTER * aReporter=None)""" + return _pcbnew.EXCELLON_WRITER_CreateDrillandMapFilesSet(self, aPlotDirectory, aGenDrill, aGenMap, aReporter) + +# Register EXCELLON_WRITER in _pcbnew: +_pcbnew.EXCELLON_WRITER_swigregister(EXCELLON_WRITER) + +class GERBER_WRITER(GENDRILL_WRITER_BASE): + r"""Proxy of C++ GERBER_WRITER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aPcb): + r"""__init__(GERBER_WRITER self, BOARD aPcb) -> GERBER_WRITER""" + _pcbnew.GERBER_WRITER_swiginit(self, _pcbnew.new_GERBER_WRITER(aPcb)) + __swig_destroy__ = _pcbnew.delete_GERBER_WRITER + + def SetFormat(self, aRightDigits=6): + r"""SetFormat(GERBER_WRITER self, int aRightDigits=6)""" + return _pcbnew.GERBER_WRITER_SetFormat(self, aRightDigits) + + def SetOptions(self, aOffset): + r"""SetOptions(GERBER_WRITER self, wxPoint aOffset)""" + return _pcbnew.GERBER_WRITER_SetOptions(self, aOffset) + + def CreateDrillandMapFilesSet(self, aPlotDirectory, aGenDrill, aGenMap, aReporter=None): + r"""CreateDrillandMapFilesSet(GERBER_WRITER self, wxString aPlotDirectory, bool aGenDrill, bool aGenMap, REPORTER * aReporter=None)""" + return _pcbnew.GERBER_WRITER_CreateDrillandMapFilesSet(self, aPlotDirectory, aGenDrill, aGenMap, aReporter) + +# Register GERBER_WRITER in _pcbnew: +_pcbnew.GERBER_WRITER_swigregister(GERBER_WRITER) + +SIDE_NONE = _pcbnew.SIDE_NONE + +SIDE_TOP = _pcbnew.SIDE_TOP + +SIDE_BOTTOM = _pcbnew.SIDE_BOTTOM + +SIDE_BOTH = _pcbnew.SIDE_BOTH + +class JOBFILE_PARAMS(object): + r"""Proxy of C++ JOBFILE_PARAMS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_GerberFileList = property(_pcbnew.JOBFILE_PARAMS_m_GerberFileList_get, _pcbnew.JOBFILE_PARAMS_m_GerberFileList_set, doc=r"""m_GerberFileList : wxArrayString""") + m_LayerId = property(_pcbnew.JOBFILE_PARAMS_m_LayerId_get, _pcbnew.JOBFILE_PARAMS_m_LayerId_set, doc=r"""m_LayerId : std::vector<(PCB_LAYER_ID,std::allocator<(PCB_LAYER_ID)>)>""") + + def __init__(self): + r"""__init__(JOBFILE_PARAMS self) -> JOBFILE_PARAMS""" + _pcbnew.JOBFILE_PARAMS_swiginit(self, _pcbnew.new_JOBFILE_PARAMS()) + __swig_destroy__ = _pcbnew.delete_JOBFILE_PARAMS + +# Register JOBFILE_PARAMS in _pcbnew: +_pcbnew.JOBFILE_PARAMS_swigregister(JOBFILE_PARAMS) + +class GERBER_JOBFILE_WRITER(object): + r"""Proxy of C++ GERBER_JOBFILE_WRITER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aPcb, aReporter=None): + r"""__init__(GERBER_JOBFILE_WRITER self, BOARD aPcb, REPORTER * aReporter=None) -> GERBER_JOBFILE_WRITER""" + _pcbnew.GERBER_JOBFILE_WRITER_swiginit(self, _pcbnew.new_GERBER_JOBFILE_WRITER(aPcb, aReporter)) + __swig_destroy__ = _pcbnew.delete_GERBER_JOBFILE_WRITER + + def AddGbrFile(self, aLayer, aFilename): + r"""AddGbrFile(GERBER_JOBFILE_WRITER self, PCB_LAYER_ID aLayer, wxString aFilename)""" + return _pcbnew.GERBER_JOBFILE_WRITER_AddGbrFile(self, aLayer, aFilename) + + def CreateJobFile(self, aFullFilename): + r"""CreateJobFile(GERBER_JOBFILE_WRITER self, wxString aFullFilename) -> bool""" + return _pcbnew.GERBER_JOBFILE_WRITER_CreateJobFile(self, aFullFilename) + + def WriteJSONJobFile(self, aFullFilename): + r"""WriteJSONJobFile(GERBER_JOBFILE_WRITER self, wxString aFullFilename) -> bool""" + return _pcbnew.GERBER_JOBFILE_WRITER_WriteJSONJobFile(self, aFullFilename) + +# Register GERBER_JOBFILE_WRITER in _pcbnew: +_pcbnew.GERBER_JOBFILE_WRITER_swigregister(GERBER_JOBFILE_WRITER) + +ROOM_FOR_KICADMANAGER = _pcbnew.ROOM_FOR_KICADMANAGER + +ROOM_FOR_3D_VIEWER = _pcbnew.ROOM_FOR_3D_VIEWER + +ROOM_FOR_PANEL_PREV_MODEL = _pcbnew.ROOM_FOR_PANEL_PREV_MODEL + +DEFAULT_FILE_HISTORY_SIZE = _pcbnew.DEFAULT_FILE_HISTORY_SIZE + +MAX_FILE_HISTORY_SIZE = _pcbnew.MAX_FILE_HISTORY_SIZE + +ID_RUN_PCB = _pcbnew.ID_RUN_PCB + +ID_LOAD_PROJECT = _pcbnew.ID_LOAD_PROJECT + +ID_APPEND_PROJECT = _pcbnew.ID_APPEND_PROJECT + +ID_SAVE_PROJECT = _pcbnew.ID_SAVE_PROJECT + +ID_SAVE_PROJECT_AS = _pcbnew.ID_SAVE_PROJECT_AS + +ID_LOAD_FILE = _pcbnew.ID_LOAD_FILE + +ID_NEW_BOARD = _pcbnew.ID_NEW_BOARD + +ID_SAVE_BOARD = _pcbnew.ID_SAVE_BOARD + +ID_SAVE_BOARD_AS = _pcbnew.ID_SAVE_BOARD_AS + +ID_AUTO_SAVE_TIMER = _pcbnew.ID_AUTO_SAVE_TIMER + +ID_FILE = _pcbnew.ID_FILE + +ID_FILE1 = _pcbnew.ID_FILE1 + +ID_FILEMAX = _pcbnew.ID_FILEMAX + +ID_MENU_CANVAS_OPENGL = _pcbnew.ID_MENU_CANVAS_OPENGL + +ID_MENU_CANVAS_CAIRO = _pcbnew.ID_MENU_CANVAS_CAIRO + +ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST = _pcbnew.ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST + +ID_PREFERENCES_CONFIGURE_PATHS = _pcbnew.ID_PREFERENCES_CONFIGURE_PATHS + +ID_EDIT_SYMBOL_LIBRARY_TABLE = _pcbnew.ID_EDIT_SYMBOL_LIBRARY_TABLE + +ID_EDIT_FOOTPRINT_LIBRARY_TABLE = _pcbnew.ID_EDIT_FOOTPRINT_LIBRARY_TABLE + +ID_GEN_PLOT = _pcbnew.ID_GEN_PLOT + +ID_GEN_PLOT_PS = _pcbnew.ID_GEN_PLOT_PS + +ID_GEN_PLOT_HPGL = _pcbnew.ID_GEN_PLOT_HPGL + +ID_GEN_PLOT_GERBER = _pcbnew.ID_GEN_PLOT_GERBER + +ID_GEN_PLOT_SVG = _pcbnew.ID_GEN_PLOT_SVG + +ID_GEN_PLOT_DXF = _pcbnew.ID_GEN_PLOT_DXF + +ID_GEN_PLOT_PDF = _pcbnew.ID_GEN_PLOT_PDF + +ID_GEN_EXPORT_FILE = _pcbnew.ID_GEN_EXPORT_FILE + +ID_GEN_IMPORT_FILE = _pcbnew.ID_GEN_IMPORT_FILE + +ID_OPTIONS_SETUP = _pcbnew.ID_OPTIONS_SETUP + +ID_H_TOOLBAR = _pcbnew.ID_H_TOOLBAR + +ID_V_TOOLBAR = _pcbnew.ID_V_TOOLBAR + +ID_OPT_TOOLBAR = _pcbnew.ID_OPT_TOOLBAR + +ID_AUX_TOOLBAR = _pcbnew.ID_AUX_TOOLBAR + +ID_EDIT_HOTKEY = _pcbnew.ID_EDIT_HOTKEY + +ID_NO_TOOL_SELECTED = _pcbnew.ID_NO_TOOL_SELECTED + +ID_ZOOM_SELECTION = _pcbnew.ID_ZOOM_SELECTION + +ID_SEL_BG_COLOR = _pcbnew.ID_SEL_BG_COLOR + +ID_LANGUAGE_CHOICE = _pcbnew.ID_LANGUAGE_CHOICE + +ID_LANGUAGE_DEFAULT = _pcbnew.ID_LANGUAGE_DEFAULT + +ID_LANGUAGE_ENGLISH = _pcbnew.ID_LANGUAGE_ENGLISH + +ID_LANGUAGE_FRENCH = _pcbnew.ID_LANGUAGE_FRENCH + +ID_LANGUAGE_FINNISH = _pcbnew.ID_LANGUAGE_FINNISH + +ID_LANGUAGE_SPANISH = _pcbnew.ID_LANGUAGE_SPANISH + +ID_LANGUAGE_GERMAN = _pcbnew.ID_LANGUAGE_GERMAN + +ID_LANGUAGE_GREEK = _pcbnew.ID_LANGUAGE_GREEK + +ID_LANGUAGE_RUSSIAN = _pcbnew.ID_LANGUAGE_RUSSIAN + +ID_LANGUAGE_PORTUGUESE = _pcbnew.ID_LANGUAGE_PORTUGUESE + +ID_LANGUAGE_ITALIAN = _pcbnew.ID_LANGUAGE_ITALIAN + +ID_LANGUAGE_SLOVENIAN = _pcbnew.ID_LANGUAGE_SLOVENIAN + +ID_LANGUAGE_SLOVAK = _pcbnew.ID_LANGUAGE_SLOVAK + +ID_LANGUAGE_HUNGARIAN = _pcbnew.ID_LANGUAGE_HUNGARIAN + +ID_LANGUAGE_POLISH = _pcbnew.ID_LANGUAGE_POLISH + +ID_LANGUAGE_CZECH = _pcbnew.ID_LANGUAGE_CZECH + +ID_LANGUAGE_KOREAN = _pcbnew.ID_LANGUAGE_KOREAN + +ID_LANGUAGE_CATALAN = _pcbnew.ID_LANGUAGE_CATALAN + +ID_LANGUAGE_CHINESE_SIMPLIFIED = _pcbnew.ID_LANGUAGE_CHINESE_SIMPLIFIED + +ID_LANGUAGE_CHINESE_TRADITIONAL = _pcbnew.ID_LANGUAGE_CHINESE_TRADITIONAL + +ID_LANGUAGE_DUTCH = _pcbnew.ID_LANGUAGE_DUTCH + +ID_LANGUAGE_JAPANESE = _pcbnew.ID_LANGUAGE_JAPANESE + +ID_LANGUAGE_BULGARIAN = _pcbnew.ID_LANGUAGE_BULGARIAN + +ID_LANGUAGE_LITHUANIAN = _pcbnew.ID_LANGUAGE_LITHUANIAN + +ID_LANGUAGE_CHOICE_END = _pcbnew.ID_LANGUAGE_CHOICE_END + +ID_KICAD_SELECT_ICONS_OPTIONS = _pcbnew.ID_KICAD_SELECT_ICONS_OPTIONS + +ID_KICAD_SELECT_ICONS_IN_MENUS = _pcbnew.ID_KICAD_SELECT_ICONS_IN_MENUS + +ID_KICAD_SELECT_ICON_OPTIONS_END = _pcbnew.ID_KICAD_SELECT_ICON_OPTIONS_END + +ID_ON_ZOOM_SELECT = _pcbnew.ID_ON_ZOOM_SELECT + +ID_POPUP_ZOOM_START_RANGE = _pcbnew.ID_POPUP_ZOOM_START_RANGE + +ID_POPUP_CANCEL = _pcbnew.ID_POPUP_CANCEL + +ID_POPUP_ZOOM_IN = _pcbnew.ID_POPUP_ZOOM_IN + +ID_POPUP_ZOOM_OUT = _pcbnew.ID_POPUP_ZOOM_OUT + +ID_POPUP_ZOOM_SELECT = _pcbnew.ID_POPUP_ZOOM_SELECT + +ID_POPUP_ZOOM_CENTER = _pcbnew.ID_POPUP_ZOOM_CENTER + +ID_POPUP_ZOOM_PAGE = _pcbnew.ID_POPUP_ZOOM_PAGE + +ID_POPUP_ZOOM_REDRAW = _pcbnew.ID_POPUP_ZOOM_REDRAW + +ID_KEY_ZOOM_IN = _pcbnew.ID_KEY_ZOOM_IN + +ID_KEY_ZOOM_OUT = _pcbnew.ID_KEY_ZOOM_OUT + +ID_POPUP_ZOOM_LEVEL_START = _pcbnew.ID_POPUP_ZOOM_LEVEL_START + +ID_POPUP_ZOOM_LEVEL_END = _pcbnew.ID_POPUP_ZOOM_LEVEL_END + +ID_POPUP_ZOOM_END_RANGE = _pcbnew.ID_POPUP_ZOOM_END_RANGE + +ID_ON_GRID_SELECT = _pcbnew.ID_ON_GRID_SELECT + +ID_POPUP_GRID_SELECT = _pcbnew.ID_POPUP_GRID_SELECT + +ID_POPUP_GRID_FIRST = _pcbnew.ID_POPUP_GRID_FIRST + +ID_POPUP_GRID_LEVEL_1000 = _pcbnew.ID_POPUP_GRID_LEVEL_1000 + +ID_POPUP_GRID_LEVEL_500 = _pcbnew.ID_POPUP_GRID_LEVEL_500 + +ID_POPUP_GRID_LEVEL_250 = _pcbnew.ID_POPUP_GRID_LEVEL_250 + +ID_POPUP_GRID_LEVEL_200 = _pcbnew.ID_POPUP_GRID_LEVEL_200 + +ID_POPUP_GRID_LEVEL_100 = _pcbnew.ID_POPUP_GRID_LEVEL_100 + +ID_POPUP_GRID_LEVEL_50 = _pcbnew.ID_POPUP_GRID_LEVEL_50 + +ID_POPUP_GRID_LEVEL_25 = _pcbnew.ID_POPUP_GRID_LEVEL_25 + +ID_POPUP_GRID_LEVEL_20 = _pcbnew.ID_POPUP_GRID_LEVEL_20 + +ID_POPUP_GRID_LEVEL_10 = _pcbnew.ID_POPUP_GRID_LEVEL_10 + +ID_POPUP_GRID_LEVEL_5 = _pcbnew.ID_POPUP_GRID_LEVEL_5 + +ID_POPUP_GRID_LEVEL_2 = _pcbnew.ID_POPUP_GRID_LEVEL_2 + +ID_POPUP_GRID_LEVEL_1 = _pcbnew.ID_POPUP_GRID_LEVEL_1 + +ID_POPUP_GRID_LEVEL_5MM = _pcbnew.ID_POPUP_GRID_LEVEL_5MM + +ID_POPUP_GRID_LEVEL_2_5MM = _pcbnew.ID_POPUP_GRID_LEVEL_2_5MM + +ID_POPUP_GRID_LEVEL_1MM = _pcbnew.ID_POPUP_GRID_LEVEL_1MM + +ID_POPUP_GRID_LEVEL_0_5MM = _pcbnew.ID_POPUP_GRID_LEVEL_0_5MM + +ID_POPUP_GRID_LEVEL_0_25MM = _pcbnew.ID_POPUP_GRID_LEVEL_0_25MM + +ID_POPUP_GRID_LEVEL_0_2MM = _pcbnew.ID_POPUP_GRID_LEVEL_0_2MM + +ID_POPUP_GRID_LEVEL_0_1MM = _pcbnew.ID_POPUP_GRID_LEVEL_0_1MM + +ID_POPUP_GRID_LEVEL_0_0_5MM = _pcbnew.ID_POPUP_GRID_LEVEL_0_0_5MM + +ID_POPUP_GRID_LEVEL_0_0_25MM = _pcbnew.ID_POPUP_GRID_LEVEL_0_0_25MM + +ID_POPUP_GRID_LEVEL_0_0_1MM = _pcbnew.ID_POPUP_GRID_LEVEL_0_0_1MM + +ID_POPUP_GRID_USER = _pcbnew.ID_POPUP_GRID_USER + +ID_POPUP_GRID_SEPARATOR = _pcbnew.ID_POPUP_GRID_SEPARATOR + +ID_POPUP_GRID_SETTINGS = _pcbnew.ID_POPUP_GRID_SETTINGS + +ID_GRID_SETTINGS = _pcbnew.ID_GRID_SETTINGS + +ID_COMPONENT_BUTT = _pcbnew.ID_COMPONENT_BUTT + +ID_ZOOM_BEGIN = _pcbnew.ID_ZOOM_BEGIN + +ID_ZOOM_IN = _pcbnew.ID_ZOOM_IN + +ID_ZOOM_OUT = _pcbnew.ID_ZOOM_OUT + +ID_ZOOM_PAGE = _pcbnew.ID_ZOOM_PAGE + +ID_ZOOM_REDRAW = _pcbnew.ID_ZOOM_REDRAW + +ID_VIEWER_ZOOM_IN = _pcbnew.ID_VIEWER_ZOOM_IN + +ID_VIEWER_ZOOM_OUT = _pcbnew.ID_VIEWER_ZOOM_OUT + +ID_VIEWER_ZOOM_PAGE = _pcbnew.ID_VIEWER_ZOOM_PAGE + +ID_VIEWER_ZOOM_REDRAW = _pcbnew.ID_VIEWER_ZOOM_REDRAW + +ID_OFFCENTER_ZOOM_IN = _pcbnew.ID_OFFCENTER_ZOOM_IN + +ID_OFFCENTER_ZOOM_OUT = _pcbnew.ID_OFFCENTER_ZOOM_OUT + +ID_ZOOM_END = _pcbnew.ID_ZOOM_END + +ID_PAN_UP = _pcbnew.ID_PAN_UP + +ID_PAN_DOWN = _pcbnew.ID_PAN_DOWN + +ID_PAN_LEFT = _pcbnew.ID_PAN_LEFT + +ID_PAN_RIGHT = _pcbnew.ID_PAN_RIGHT + +ID_MOUSE_CLICK = _pcbnew.ID_MOUSE_CLICK + +ID_MOUSE_DOUBLECLICK = _pcbnew.ID_MOUSE_DOUBLECLICK + +ID_FIND_ITEMS = _pcbnew.ID_FIND_ITEMS + +ID_EDA_SOCKET_EVENT_SERV = _pcbnew.ID_EDA_SOCKET_EVENT_SERV + +ID_EDA_SOCKET_EVENT = _pcbnew.ID_EDA_SOCKET_EVENT + +ID_HELP_GET_INVOLVED = _pcbnew.ID_HELP_GET_INVOLVED + +ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH = _pcbnew.ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH + +ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH = _pcbnew.ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH + +ID_TB_OPTIONS_SHOW_GRAPHIC_SKETCH = _pcbnew.ID_TB_OPTIONS_SHOW_GRAPHIC_SKETCH + +ID_TB_OPTIONS_SHOW_PADS_SKETCH = _pcbnew.ID_TB_OPTIONS_SHOW_PADS_SKETCH + +ID_DIALOG_ERC = _pcbnew.ID_DIALOG_ERC + +ID_KICAD_MANAGER_START = _pcbnew.ID_KICAD_MANAGER_START + +ID_KICAD_MANAGER_END = _pcbnew.ID_KICAD_MANAGER_END + +ID_KICAD_3D_VIEWER_START = _pcbnew.ID_KICAD_3D_VIEWER_START + +ID_KICAD_3D_VIEWER_END = _pcbnew.ID_KICAD_3D_VIEWER_END + +ID_KICAD_PANEL_PREV_MODEL_START = _pcbnew.ID_KICAD_PANEL_PREV_MODEL_START + +ID_KICAD_PANEL_PREV_MODEL_END = _pcbnew.ID_KICAD_PANEL_PREV_MODEL_END + +ID_POPUP_MENU_START = _pcbnew.ID_POPUP_MENU_START + +ID_POPUP_MENU_END = _pcbnew.ID_POPUP_MENU_END + +ID_END_LIST = _pcbnew.ID_END_LIST + + +def GetBoard(): + r"""GetBoard() -> BOARD""" + return _pcbnew.GetBoard() + +def LoadBoard(*args): + r""" + LoadBoard(wxString aFileName, IO_MGR::PCB_FILE_T aFormat) -> BOARD + LoadBoard(wxString aFileName) -> BOARD + """ + return _pcbnew.LoadBoard(*args) + +def SaveBoard(aFileName, aBoard): + r"""SaveBoard(wxString aFileName, BOARD aBoard) -> bool""" + return _pcbnew.SaveBoard(aFileName, aBoard) + +def ExportSpecctraDSN(aFullFilename): + r"""ExportSpecctraDSN(wxString aFullFilename) -> bool""" + return _pcbnew.ExportSpecctraDSN(aFullFilename) + +def ImportSpecctraSES(aFullFilename): + r"""ImportSpecctraSES(wxString aFullFilename) -> bool""" + return _pcbnew.ImportSpecctraSES(aFullFilename) + +def ArchiveModulesOnBoard(*args): + r"""ArchiveModulesOnBoard(bool aStoreInNewLib, wxString aLibName=wxEmptyString, wxString aLibPath=None) -> bool""" + return _pcbnew.ArchiveModulesOnBoard(*args) + +def Refresh(): + r"""Refresh()""" + return _pcbnew.Refresh() + +def UpdateUserInterface(): + r"""UpdateUserInterface()""" + return _pcbnew.UpdateUserInterface() + +def GetUserUnits(): + r"""GetUserUnits() -> int""" + return _pcbnew.GetUserUnits() + +def IsActionRunning(): + r"""IsActionRunning() -> bool""" + return _pcbnew.IsActionRunning() +S_SEGMENT = _pcbnew.S_SEGMENT + +S_RECT = _pcbnew.S_RECT + +S_ARC = _pcbnew.S_ARC + +S_CIRCLE = _pcbnew.S_CIRCLE + +S_POLYGON = _pcbnew.S_POLYGON + +S_CURVE = _pcbnew.S_CURVE + +S_LAST = _pcbnew.S_LAST + +class BOARD_ITEM(EDA_ITEM): + r"""Proxy of C++ BOARD_ITEM class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + def GetPosition(self): + r"""GetPosition(BOARD_ITEM self) -> wxPoint""" + return _pcbnew.BOARD_ITEM_GetPosition(self) + + def GetCenter(self): + r"""GetCenter(BOARD_ITEM self) -> wxPoint""" + return _pcbnew.BOARD_ITEM_GetCenter(self) + + def SetPosition(self, aPos): + r"""SetPosition(BOARD_ITEM self, wxPoint aPos)""" + return _pcbnew.BOARD_ITEM_SetPosition(self, aPos) + + def IsConnected(self): + r"""IsConnected(BOARD_ITEM self) -> bool""" + return _pcbnew.BOARD_ITEM_IsConnected(self) + + def GetParent(self): + r"""GetParent(BOARD_ITEM self) -> BOARD_ITEM_CONTAINER""" + return _pcbnew.BOARD_ITEM_GetParent(self) + + def GetLayer(self): + r"""GetLayer(BOARD_ITEM self) -> PCB_LAYER_ID""" + return _pcbnew.BOARD_ITEM_GetLayer(self) + + def GetLayerSet(self): + r"""GetLayerSet(BOARD_ITEM self) -> LSET""" + return _pcbnew.BOARD_ITEM_GetLayerSet(self) + + def SetLayer(self, aLayer): + r"""SetLayer(BOARD_ITEM self, PCB_LAYER_ID aLayer)""" + return _pcbnew.BOARD_ITEM_SetLayer(self, aLayer) + + def Print(self, *args): + r"""Print(BOARD_ITEM self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset=)""" + return _pcbnew.BOARD_ITEM_Print(self, *args) + + def SwapData(self, aImage): + r"""SwapData(BOARD_ITEM self, BOARD_ITEM aImage)""" + return _pcbnew.BOARD_ITEM_SwapData(self, aImage) + + def IsOnLayer(self, aLayer): + r"""IsOnLayer(BOARD_ITEM self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.BOARD_ITEM_IsOnLayer(self, aLayer) + + def IsTrack(self): + r"""IsTrack(BOARD_ITEM self) -> bool""" + return _pcbnew.BOARD_ITEM_IsTrack(self) + + def IsLocked(self): + r"""IsLocked(BOARD_ITEM self) -> bool""" + return _pcbnew.BOARD_ITEM_IsLocked(self) + + def SetLocked(self, aLocked): + r"""SetLocked(BOARD_ITEM self, bool aLocked)""" + return _pcbnew.BOARD_ITEM_SetLocked(self, aLocked) + + def UnLink(self): + r"""UnLink(BOARD_ITEM self)""" + return _pcbnew.BOARD_ITEM_UnLink(self) + + def DeleteStructure(self): + r"""DeleteStructure(BOARD_ITEM self)""" + return _pcbnew.BOARD_ITEM_DeleteStructure(self) + + @staticmethod + def ShowShape(aShape): + r"""ShowShape(STROKE_T aShape) -> wxString""" + return _pcbnew.BOARD_ITEM_ShowShape(aShape) + + def Move(self, *args): + r""" + Move(BOARD_ITEM self, wxPoint aMoveVector) + Move(BOARD_ITEM self, VECTOR2I aMoveVector) + """ + return _pcbnew.BOARD_ITEM_Move(self, *args) + + def Rotate(self, *args): + r""" + Rotate(BOARD_ITEM self, wxPoint aRotCentre, double aAngle) + Rotate(BOARD_ITEM self, VECTOR2I aRotCentre, double aAngle) + """ + return _pcbnew.BOARD_ITEM_Rotate(self, *args) + + def Flip(self, *args): + r""" + Flip(BOARD_ITEM self, wxPoint aCentre, bool aFlipLeftRight) + Flip(BOARD_ITEM self, VECTOR2I aCentre, bool aFlipLeftRight) + """ + return _pcbnew.BOARD_ITEM_Flip(self, *args) + + def GetBoard(self): + r"""GetBoard(BOARD_ITEM self) -> BOARD""" + return _pcbnew.BOARD_ITEM_GetBoard(self) + + def GetLayerName(self): + r"""GetLayerName(BOARD_ITEM self) -> wxString""" + return _pcbnew.BOARD_ITEM_GetLayerName(self) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(BOARD_ITEM self, int [] aLayers, int & aCount)""" + return _pcbnew.BOARD_ITEM_ViewGetLayers(self, aLayers, aCount) + + def TransformShapeWithClearanceToPolygon(self, *args): + r"""TransformShapeWithClearanceToPolygon(BOARD_ITEM self, SHAPE_POLY_SET aCornerBuffer, int aClearanceValue, int aError=ARC_LOW_DEF, bool ignoreLineWidth=False)""" + return _pcbnew.BOARD_ITEM_TransformShapeWithClearanceToPolygon(self, *args) + + def Cast(self): + + ct = self.GetClass() + + if ct=="PTEXT": + return Cast_to_TEXTE_PCB(self) + elif ct=="BOARD": + return Cast_to_BOARD(self) + elif ct=="DIMENSION": + return Cast_to_DIMENSION(self) + elif ct=="DRAWSEGMENT": + return Cast_to_DRAWSEGMENT(self) + elif ct=="MGRAPHIC": + return Cast_to_EDGE_MODULE(self) + elif ct=="MODULE": + return Cast_to_MODULE(self) + elif ct=="PAD": + return Cast_to_D_PAD(self) + elif ct=="MTEXT": + return Cast_to_TEXTE_MODULE(self) + elif ct=="VIA": + return Cast_to_VIA(self) + elif ct=="TRACK": + return Cast_to_TRACK(self) + elif ct=="PCB_TARGET": + return Cast_to_PCB_TARGET(self) + elif ct=="ZONE_CONTAINER": + return Cast_to_ZONE_CONTAINER(self) + else: + return none + + def Duplicate(self): + ct = self.GetClass() + if ct=="BOARD": + return None + else: + return Cast_to_BOARD_ITEM(self.Clone()).Cast() + + def SetPos(self,p): + self.SetPosition(p) + self.SetPos0(p) + + def SetStartEnd(self,start,end): + self.SetStart(start) + self.SetStart0(start) + self.SetEnd(end) + self.SetEnd0(end) + + __swig_destroy__ = _pcbnew.delete_BOARD_ITEM + +# Register BOARD_ITEM in _pcbnew: +_pcbnew.BOARD_ITEM_swigregister(BOARD_ITEM) + +def BOARD_ITEM_ShowShape(aShape): + r"""BOARD_ITEM_ShowShape(STROKE_T aShape) -> wxString""" + return _pcbnew.BOARD_ITEM_ShowShape(aShape) + + +def Cast_to_BOARD_ITEM(base): + r"""Cast_to_BOARD_ITEM(EDA_ITEM base) -> BOARD_ITEM""" + return _pcbnew.Cast_to_BOARD_ITEM(base) + +def Cast_to_TEXTE_PCB(arg1): + r"""Cast_to_TEXTE_PCB(BOARD_ITEM arg1) -> TEXTE_PCB""" + return _pcbnew.Cast_to_TEXTE_PCB(arg1) + +def Cast_to_DIMENSION(arg1): + r"""Cast_to_DIMENSION(BOARD_ITEM arg1) -> DIMENSION""" + return _pcbnew.Cast_to_DIMENSION(arg1) + +def Cast_to_MODULE(arg1): + r"""Cast_to_MODULE(BOARD_ITEM arg1) -> MODULE""" + return _pcbnew.Cast_to_MODULE(arg1) + +def Cast_to_TEXTE_MODULE(arg1): + r"""Cast_to_TEXTE_MODULE(BOARD_ITEM arg1) -> TEXTE_MODULE""" + return _pcbnew.Cast_to_TEXTE_MODULE(arg1) + +def Cast_to_DRAWSEGMENT(arg1): + r"""Cast_to_DRAWSEGMENT(BOARD_ITEM arg1) -> DRAWSEGMENT""" + return _pcbnew.Cast_to_DRAWSEGMENT(arg1) + +def Cast_to_MARKER_PCB(arg1): + r"""Cast_to_MARKER_PCB(BOARD_ITEM arg1) -> MARKER_PCB""" + return _pcbnew.Cast_to_MARKER_PCB(arg1) + +def Cast_to_BOARD(arg1): + r"""Cast_to_BOARD(BOARD_ITEM arg1) -> BOARD""" + return _pcbnew.Cast_to_BOARD(arg1) + +def Cast_to_EDGE_MODULE(arg1): + r"""Cast_to_EDGE_MODULE(BOARD_ITEM arg1) -> EDGE_MODULE""" + return _pcbnew.Cast_to_EDGE_MODULE(arg1) + +def Cast_to_D_PAD(arg1): + r"""Cast_to_D_PAD(BOARD_ITEM arg1) -> D_PAD""" + return _pcbnew.Cast_to_D_PAD(arg1) + +def Cast_to_TRACK(arg1): + r"""Cast_to_TRACK(BOARD_ITEM arg1) -> TRACK""" + return _pcbnew.Cast_to_TRACK(arg1) + +def Cast_to_VIA(arg1): + r"""Cast_to_VIA(BOARD_ITEM arg1) -> VIA""" + return _pcbnew.Cast_to_VIA(arg1) + +def Cast_to_ZONE_CONTAINER(arg1): + r"""Cast_to_ZONE_CONTAINER(BOARD_ITEM arg1) -> ZONE_CONTAINER""" + return _pcbnew.Cast_to_ZONE_CONTAINER(arg1) + +def Cast_to_PCB_TARGET(arg1): + r"""Cast_to_PCB_TARGET(BOARD_ITEM arg1) -> PCB_TARGET""" + return _pcbnew.Cast_to_PCB_TARGET(arg1) +ADD_INSERT = _pcbnew.ADD_INSERT + +ADD_APPEND = _pcbnew.ADD_APPEND + +class BOARD_ITEM_CONTAINER(BOARD_ITEM): + r"""Proxy of C++ BOARD_ITEM_CONTAINER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_BOARD_ITEM_CONTAINER + + def AddNative(self, aItem, aMode=ADD_INSERT): + r"""AddNative(BOARD_ITEM_CONTAINER self, BOARD_ITEM aItem, ADD_MODE aMode=ADD_INSERT)""" + return _pcbnew.BOARD_ITEM_CONTAINER_AddNative(self, aItem, aMode) + + def RemoveNative(self, aItem): + r"""RemoveNative(BOARD_ITEM_CONTAINER self, BOARD_ITEM aItem)""" + return _pcbnew.BOARD_ITEM_CONTAINER_RemoveNative(self, aItem) + + def DeleteNative(self, aItem): + r"""DeleteNative(BOARD_ITEM_CONTAINER self, BOARD_ITEM aItem)""" + return _pcbnew.BOARD_ITEM_CONTAINER_DeleteNative(self, aItem) + + def Add(self,item): + """ + Add a BOARD_ITEM to this BOARD_ITEM_CONTAINER, clear the thisown to prevent + python from deleting the object in the garbage collector + Add(BOARD_ITEM_CONTAINER self, BOARD_ITEM aItem, ADD_MODE aMode=ADD_INSERT) + Add(BOARD_ITEM_CONTAINER self, BOARD_ITEM aItem) + """ + item.thisown=0 + self.AddNative(item) + + def Remove(self,item): + """ + Remove a BOARD_ITEM from this BOARD_ITEM_CONTAINER, set the thisdown flag so that + the python wrapper owns the C++ BOARD_ITEM + Remove(self, BOARD_ITEM) + """ + self.RemoveNative(item) + if (not IsActionRunning()): + item.thisown=1 + + def Delete(self,item): + """ + Remove a BOARD_ITEM from this BOARD_ITEM_CONTAINER, set the thisdown flag so that + the python wrapper does not owns the C++ BOARD_ITEM + Delete(self, BOARD_ITEM) + """ + item.thisown=0 # C++'s BOARD_ITEM_CONTAINER::Delete() will delete + self.DeleteNative(item) + item.this = None + + +# Register BOARD_ITEM_CONTAINER in _pcbnew: +_pcbnew.BOARD_ITEM_CONTAINER_swigregister(BOARD_ITEM_CONTAINER) + +class BOARD_CONNECTED_ITEM(BOARD_ITEM): + r"""Proxy of C++ BOARD_CONNECTED_ITEM class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.BOARD_CONNECTED_ITEM_ClassOf(aItem) + + def IsConnected(self): + r"""IsConnected(BOARD_CONNECTED_ITEM self) -> bool""" + return _pcbnew.BOARD_CONNECTED_ITEM_IsConnected(self) + + def GetNet(self): + r"""GetNet(BOARD_CONNECTED_ITEM self) -> NETINFO_ITEM""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetNet(self) + + def SetNet(self, aNetInfo): + r"""SetNet(BOARD_CONNECTED_ITEM self, NETINFO_ITEM aNetInfo)""" + return _pcbnew.BOARD_CONNECTED_ITEM_SetNet(self, aNetInfo) + + def GetNetCode(self): + r"""GetNetCode(BOARD_CONNECTED_ITEM self) -> int""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetNetCode(self) + + def SetNetCode(self, aNetCode, aNoAssert=False): + r"""SetNetCode(BOARD_CONNECTED_ITEM self, int aNetCode, bool aNoAssert=False) -> bool""" + return _pcbnew.BOARD_CONNECTED_ITEM_SetNetCode(self, aNetCode, aNoAssert) + + def GetNetname(self): + r"""GetNetname(BOARD_CONNECTED_ITEM self) -> wxString""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetNetname(self) + + def GetNetnameMsg(self): + r"""GetNetnameMsg(BOARD_CONNECTED_ITEM self) -> wxString""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetNetnameMsg(self) + + def GetShortNetname(self): + r"""GetShortNetname(BOARD_CONNECTED_ITEM self) -> wxString""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetShortNetname(self) + + def GetClearance(self, aItem=None): + r"""GetClearance(BOARD_CONNECTED_ITEM self, BOARD_CONNECTED_ITEM aItem=None) -> int""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetClearance(self, aItem) + + def GetNetClass(self): + r"""GetNetClass(BOARD_CONNECTED_ITEM self) -> std::shared_ptr< NETCLASS >""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetNetClass(self) + + def GetNetClassName(self): + r"""GetNetClassName(BOARD_CONNECTED_ITEM self) -> wxString""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetNetClassName(self) + + def SetLocalRatsnestVisible(self, aVisible): + r"""SetLocalRatsnestVisible(BOARD_CONNECTED_ITEM self, bool aVisible)""" + return _pcbnew.BOARD_CONNECTED_ITEM_SetLocalRatsnestVisible(self, aVisible) + + def GetLocalRatsnestVisible(self): + r"""GetLocalRatsnestVisible(BOARD_CONNECTED_ITEM self) -> bool""" + return _pcbnew.BOARD_CONNECTED_ITEM_GetLocalRatsnestVisible(self) + __swig_destroy__ = _pcbnew.delete_BOARD_CONNECTED_ITEM + +# Register BOARD_CONNECTED_ITEM in _pcbnew: +_pcbnew.BOARD_CONNECTED_ITEM_swigregister(BOARD_CONNECTED_ITEM) + +def BOARD_CONNECTED_ITEM_ClassOf(aItem): + r"""BOARD_CONNECTED_ITEM_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.BOARD_CONNECTED_ITEM_ClassOf(aItem) + +DEFAULT_SILK_LINE_WIDTH = _pcbnew.DEFAULT_SILK_LINE_WIDTH + +DEFAULT_COPPER_LINE_WIDTH = _pcbnew.DEFAULT_COPPER_LINE_WIDTH + +DEFAULT_EDGE_WIDTH = _pcbnew.DEFAULT_EDGE_WIDTH + +DEFAULT_COURTYARD_WIDTH = _pcbnew.DEFAULT_COURTYARD_WIDTH + +DEFAULT_LINE_WIDTH = _pcbnew.DEFAULT_LINE_WIDTH + +DEFAULT_SILK_TEXT_SIZE = _pcbnew.DEFAULT_SILK_TEXT_SIZE + +DEFAULT_COPPER_TEXT_SIZE = _pcbnew.DEFAULT_COPPER_TEXT_SIZE + +DEFAULT_TEXT_SIZE = _pcbnew.DEFAULT_TEXT_SIZE + +DEFAULT_SILK_TEXT_WIDTH = _pcbnew.DEFAULT_SILK_TEXT_WIDTH + +DEFAULT_COPPER_TEXT_WIDTH = _pcbnew.DEFAULT_COPPER_TEXT_WIDTH + +DEFAULT_TEXT_WIDTH = _pcbnew.DEFAULT_TEXT_WIDTH + +DEFAULT_BOARD_THICKNESS_MM = _pcbnew.DEFAULT_BOARD_THICKNESS_MM + +DEFAULT_PCB_EDGE_THICKNESS = _pcbnew.DEFAULT_PCB_EDGE_THICKNESS + +DEFAULT_SOLDERMASK_CLEARANCE = _pcbnew.DEFAULT_SOLDERMASK_CLEARANCE + +DEFAULT_SOLDERMASK_MIN_WIDTH = _pcbnew.DEFAULT_SOLDERMASK_MIN_WIDTH + +DEFAULT_SOLDERPASTE_CLEARANCE = _pcbnew.DEFAULT_SOLDERPASTE_CLEARANCE + +DEFAULT_SOLDERPASTE_RATIO = _pcbnew.DEFAULT_SOLDERPASTE_RATIO + +DEFAULT_CUSTOMTRACKWIDTH = _pcbnew.DEFAULT_CUSTOMTRACKWIDTH + +DEFAULT_CUSTOMDPAIRWIDTH = _pcbnew.DEFAULT_CUSTOMDPAIRWIDTH + +DEFAULT_CUSTOMDPAIRGAP = _pcbnew.DEFAULT_CUSTOMDPAIRGAP + +DEFAULT_CUSTOMDPAIRVIAGAP = _pcbnew.DEFAULT_CUSTOMDPAIRVIAGAP + +DEFAULT_TRACKMINWIDTH = _pcbnew.DEFAULT_TRACKMINWIDTH + +DEFAULT_VIASMINSIZE = _pcbnew.DEFAULT_VIASMINSIZE + +DEFAULT_VIASMINDRILL = _pcbnew.DEFAULT_VIASMINDRILL + +DEFAULT_MICROVIASMINSIZE = _pcbnew.DEFAULT_MICROVIASMINSIZE + +DEFAULT_MICROVIASMINDRILL = _pcbnew.DEFAULT_MICROVIASMINDRILL + +DEFAULT_HOLETOHOLEMIN = _pcbnew.DEFAULT_HOLETOHOLEMIN + +DEFAULT_COPPEREDGECLEARANCE = _pcbnew.DEFAULT_COPPEREDGECLEARANCE + +LEGACY_COPPEREDGECLEARANCE = _pcbnew.LEGACY_COPPEREDGECLEARANCE + +MINIMUM_ERROR_SIZE_MM = _pcbnew.MINIMUM_ERROR_SIZE_MM + +MAXIMUM_ERROR_SIZE_MM = _pcbnew.MAXIMUM_ERROR_SIZE_MM + +class VIA_DIMENSION(object): + r"""Proxy of C++ VIA_DIMENSION class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_Diameter = property(_pcbnew.VIA_DIMENSION_m_Diameter_get, _pcbnew.VIA_DIMENSION_m_Diameter_set, doc=r"""m_Diameter : int""") + m_Drill = property(_pcbnew.VIA_DIMENSION_m_Drill_get, _pcbnew.VIA_DIMENSION_m_Drill_set, doc=r"""m_Drill : int""") + + def __init__(self, *args): + r""" + __init__(VIA_DIMENSION self) -> VIA_DIMENSION + __init__(VIA_DIMENSION self, int aDiameter, int aDrill) -> VIA_DIMENSION + """ + _pcbnew.VIA_DIMENSION_swiginit(self, _pcbnew.new_VIA_DIMENSION(*args)) + + def __eq__(self, aOther): + r"""__eq__(VIA_DIMENSION self, VIA_DIMENSION aOther) -> bool""" + return _pcbnew.VIA_DIMENSION___eq__(self, aOther) + + def __lt__(self, aOther): + r"""__lt__(VIA_DIMENSION self, VIA_DIMENSION aOther) -> bool""" + return _pcbnew.VIA_DIMENSION___lt__(self, aOther) + __swig_destroy__ = _pcbnew.delete_VIA_DIMENSION + +# Register VIA_DIMENSION in _pcbnew: +_pcbnew.VIA_DIMENSION_swigregister(VIA_DIMENSION) + +class DIFF_PAIR_DIMENSION(object): + r"""Proxy of C++ DIFF_PAIR_DIMENSION class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_Width = property(_pcbnew.DIFF_PAIR_DIMENSION_m_Width_get, _pcbnew.DIFF_PAIR_DIMENSION_m_Width_set, doc=r"""m_Width : int""") + m_Gap = property(_pcbnew.DIFF_PAIR_DIMENSION_m_Gap_get, _pcbnew.DIFF_PAIR_DIMENSION_m_Gap_set, doc=r"""m_Gap : int""") + m_ViaGap = property(_pcbnew.DIFF_PAIR_DIMENSION_m_ViaGap_get, _pcbnew.DIFF_PAIR_DIMENSION_m_ViaGap_set, doc=r"""m_ViaGap : int""") + + def __init__(self, *args): + r""" + __init__(DIFF_PAIR_DIMENSION self) -> DIFF_PAIR_DIMENSION + __init__(DIFF_PAIR_DIMENSION self, int aWidth, int aGap, int aViaGap) -> DIFF_PAIR_DIMENSION + """ + _pcbnew.DIFF_PAIR_DIMENSION_swiginit(self, _pcbnew.new_DIFF_PAIR_DIMENSION(*args)) + + def __eq__(self, aOther): + r"""__eq__(DIFF_PAIR_DIMENSION self, DIFF_PAIR_DIMENSION aOther) -> bool""" + return _pcbnew.DIFF_PAIR_DIMENSION___eq__(self, aOther) + + def __lt__(self, aOther): + r"""__lt__(DIFF_PAIR_DIMENSION self, DIFF_PAIR_DIMENSION aOther) -> bool""" + return _pcbnew.DIFF_PAIR_DIMENSION___lt__(self, aOther) + __swig_destroy__ = _pcbnew.delete_DIFF_PAIR_DIMENSION + +# Register DIFF_PAIR_DIMENSION in _pcbnew: +_pcbnew.DIFF_PAIR_DIMENSION_swigregister(DIFF_PAIR_DIMENSION) + +LAYER_CLASS_SILK = _pcbnew.LAYER_CLASS_SILK + +LAYER_CLASS_COPPER = _pcbnew.LAYER_CLASS_COPPER + +LAYER_CLASS_EDGES = _pcbnew.LAYER_CLASS_EDGES + +LAYER_CLASS_COURTYARD = _pcbnew.LAYER_CLASS_COURTYARD + +LAYER_CLASS_OTHERS = _pcbnew.LAYER_CLASS_OTHERS + +LAYER_CLASS_COUNT = _pcbnew.LAYER_CLASS_COUNT + +class BOARD_DESIGN_SETTINGS(object): + r"""Proxy of C++ BOARD_DESIGN_SETTINGS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_TrackWidthList = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_TrackWidthList_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_TrackWidthList_set, doc=r"""m_TrackWidthList : std::vector<(int,std::allocator<(int)>)>""") + m_ViasDimensionsList = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ViasDimensionsList_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ViasDimensionsList_set, doc=r"""m_ViasDimensionsList : std::vector<(VIA_DIMENSION,std::allocator<(VIA_DIMENSION)>)>""") + m_DiffPairDimensionsList = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_DiffPairDimensionsList_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_DiffPairDimensionsList_set, doc=r"""m_DiffPairDimensionsList : std::vector<(DIFF_PAIR_DIMENSION,std::allocator<(DIFF_PAIR_DIMENSION)>)>""") + m_NetClasses = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_NetClasses_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_NetClasses_set, doc=r"""m_NetClasses : NETCLASSES""") + m_MicroViasAllowed = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_MicroViasAllowed_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_MicroViasAllowed_set, doc=r"""m_MicroViasAllowed : bool""") + m_BlindBuriedViaAllowed = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_BlindBuriedViaAllowed_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_BlindBuriedViaAllowed_set, doc=r"""m_BlindBuriedViaAllowed : bool""") + m_CurrentViaType = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_CurrentViaType_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_CurrentViaType_set, doc=r"""m_CurrentViaType : VIATYPE_T""") + m_RequireCourtyards = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_RequireCourtyards_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_RequireCourtyards_set, doc=r"""m_RequireCourtyards : bool""") + m_ProhibitOverlappingCourtyards = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ProhibitOverlappingCourtyards_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ProhibitOverlappingCourtyards_set, doc=r"""m_ProhibitOverlappingCourtyards : bool""") + m_UseConnectedTrackWidth = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_UseConnectedTrackWidth_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_UseConnectedTrackWidth_set, doc=r"""m_UseConnectedTrackWidth : bool""") + m_TrackMinWidth = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_TrackMinWidth_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_TrackMinWidth_set, doc=r"""m_TrackMinWidth : int""") + m_ViasMinSize = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ViasMinSize_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ViasMinSize_set, doc=r"""m_ViasMinSize : int""") + m_ViasMinDrill = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ViasMinDrill_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ViasMinDrill_set, doc=r"""m_ViasMinDrill : int""") + m_MicroViasMinSize = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_MicroViasMinSize_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_MicroViasMinSize_set, doc=r"""m_MicroViasMinSize : int""") + m_MicroViasMinDrill = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_MicroViasMinDrill_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_MicroViasMinDrill_set, doc=r"""m_MicroViasMinDrill : int""") + m_CopperEdgeClearance = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_CopperEdgeClearance_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_CopperEdgeClearance_set, doc=r"""m_CopperEdgeClearance : int""") + m_ZoneUseNoOutlineInFill = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ZoneUseNoOutlineInFill_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ZoneUseNoOutlineInFill_set, doc=r"""m_ZoneUseNoOutlineInFill : bool""") + m_MaxError = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_MaxError_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_MaxError_set, doc=r"""m_MaxError : int""") + m_SolderMaskMargin = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_SolderMaskMargin_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_SolderMaskMargin_set, doc=r"""m_SolderMaskMargin : int""") + m_SolderMaskMinWidth = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_SolderMaskMinWidth_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_SolderMaskMinWidth_set, doc=r"""m_SolderMaskMinWidth : int""") + m_SolderPasteMargin = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_SolderPasteMargin_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_SolderPasteMargin_set, doc=r"""m_SolderPasteMargin : int""") + m_SolderPasteMarginRatio = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_SolderPasteMarginRatio_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_SolderPasteMarginRatio_set, doc=r"""m_SolderPasteMarginRatio : double""") + m_HoleToHoleMin = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_HoleToHoleMin_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_HoleToHoleMin_set, doc=r"""m_HoleToHoleMin : int""") + m_LineThickness = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_LineThickness_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_LineThickness_set, doc=r"""m_LineThickness : a(LAYER_CLASS_COUNT).int""") + m_TextSize = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_TextSize_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_TextSize_set, doc=r"""m_TextSize : a(LAYER_CLASS_COUNT).wxSize""") + m_TextThickness = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_TextThickness_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_TextThickness_set, doc=r"""m_TextThickness : a(LAYER_CLASS_COUNT).int""") + m_TextItalic = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_TextItalic_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_TextItalic_set, doc=r"""m_TextItalic : a(LAYER_CLASS_COUNT).bool""") + m_TextUpright = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_TextUpright_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_TextUpright_set, doc=r"""m_TextUpright : a(LAYER_CLASS_COUNT).bool""") + m_RefDefaultText = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_RefDefaultText_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_RefDefaultText_set, doc=r"""m_RefDefaultText : wxString""") + m_RefDefaultVisibility = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_RefDefaultVisibility_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_RefDefaultVisibility_set, doc=r"""m_RefDefaultVisibility : bool""") + m_RefDefaultlayer = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_RefDefaultlayer_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_RefDefaultlayer_set, doc=r"""m_RefDefaultlayer : int""") + m_ValueDefaultText = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ValueDefaultText_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ValueDefaultText_set, doc=r"""m_ValueDefaultText : wxString""") + m_ValueDefaultVisibility = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ValueDefaultVisibility_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ValueDefaultVisibility_set, doc=r"""m_ValueDefaultVisibility : bool""") + m_ValueDefaultlayer = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_ValueDefaultlayer_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_ValueDefaultlayer_set, doc=r"""m_ValueDefaultlayer : int""") + m_AuxOrigin = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_AuxOrigin_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_AuxOrigin_set, doc=r"""m_AuxOrigin : wxPoint""") + m_GridOrigin = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_GridOrigin_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_GridOrigin_set, doc=r"""m_GridOrigin : wxPoint""") + m_Pad_Master = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_Pad_Master_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_Pad_Master_set, doc=r"""m_Pad_Master : D_PAD""") + m_HasStackup = property(_pcbnew.BOARD_DESIGN_SETTINGS_m_HasStackup_get, _pcbnew.BOARD_DESIGN_SETTINGS_m_HasStackup_set, doc=r"""m_HasStackup : bool""") + + def __init__(self): + r"""__init__(BOARD_DESIGN_SETTINGS self) -> BOARD_DESIGN_SETTINGS""" + _pcbnew.BOARD_DESIGN_SETTINGS_swiginit(self, _pcbnew.new_BOARD_DESIGN_SETTINGS()) + + def GetStackupDescriptor(self): + r"""GetStackupDescriptor(BOARD_DESIGN_SETTINGS self) -> BOARD_STACKUP &""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetStackupDescriptor(self) + + def GetDefault(self): + r"""GetDefault(BOARD_DESIGN_SETTINGS self) -> NETCLASSPTR""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetDefault(self) + + def GetCurrentNetClassName(self): + r"""GetCurrentNetClassName(BOARD_DESIGN_SETTINGS self) -> wxString""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentNetClassName(self) + + def UseNetClassTrack(self): + r"""UseNetClassTrack(BOARD_DESIGN_SETTINGS self) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_UseNetClassTrack(self) + + def UseNetClassVia(self): + r"""UseNetClassVia(BOARD_DESIGN_SETTINGS self) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_UseNetClassVia(self) + + def UseNetClassDiffPair(self): + r"""UseNetClassDiffPair(BOARD_DESIGN_SETTINGS self) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_UseNetClassDiffPair(self) + + def SetCurrentNetClass(self, aNetClassName): + r"""SetCurrentNetClass(BOARD_DESIGN_SETTINGS self, wxString aNetClassName) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCurrentNetClass(self, aNetClassName) + + def GetBiggestClearanceValue(self): + r"""GetBiggestClearanceValue(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetBiggestClearanceValue(self) + + def GetSmallestClearanceValue(self): + r"""GetSmallestClearanceValue(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetSmallestClearanceValue(self) + + def GetCurrentMicroViaSize(self): + r"""GetCurrentMicroViaSize(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentMicroViaSize(self) + + def GetCurrentMicroViaDrill(self): + r"""GetCurrentMicroViaDrill(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentMicroViaDrill(self) + + def GetTrackWidthIndex(self): + r"""GetTrackWidthIndex(BOARD_DESIGN_SETTINGS self) -> unsigned int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetTrackWidthIndex(self) + + def SetTrackWidthIndex(self, aIndex): + r"""SetTrackWidthIndex(BOARD_DESIGN_SETTINGS self, unsigned int aIndex)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetTrackWidthIndex(self, aIndex) + + def GetCurrentTrackWidth(self): + r"""GetCurrentTrackWidth(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentTrackWidth(self) + + def SetCustomTrackWidth(self, aWidth): + r"""SetCustomTrackWidth(BOARD_DESIGN_SETTINGS self, int aWidth)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCustomTrackWidth(self, aWidth) + + def GetCustomTrackWidth(self): + r"""GetCustomTrackWidth(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCustomTrackWidth(self) + + def GetViaSizeIndex(self): + r"""GetViaSizeIndex(BOARD_DESIGN_SETTINGS self) -> unsigned int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetViaSizeIndex(self) + + def SetViaSizeIndex(self, aIndex): + r"""SetViaSizeIndex(BOARD_DESIGN_SETTINGS self, unsigned int aIndex)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetViaSizeIndex(self, aIndex) + + def GetCurrentViaSize(self): + r"""GetCurrentViaSize(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentViaSize(self) + + def SetCustomViaSize(self, aSize): + r"""SetCustomViaSize(BOARD_DESIGN_SETTINGS self, int aSize)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCustomViaSize(self, aSize) + + def GetCustomViaSize(self): + r"""GetCustomViaSize(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCustomViaSize(self) + + def GetCurrentViaDrill(self): + r"""GetCurrentViaDrill(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentViaDrill(self) + + def SetCustomViaDrill(self, aDrill): + r"""SetCustomViaDrill(BOARD_DESIGN_SETTINGS self, int aDrill)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCustomViaDrill(self, aDrill) + + def GetCustomViaDrill(self): + r"""GetCustomViaDrill(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCustomViaDrill(self) + + def UseCustomTrackViaSize(self, *args): + r""" + UseCustomTrackViaSize(BOARD_DESIGN_SETTINGS self, bool aEnabled) + UseCustomTrackViaSize(BOARD_DESIGN_SETTINGS self) -> bool + """ + return _pcbnew.BOARD_DESIGN_SETTINGS_UseCustomTrackViaSize(self, *args) + + def GetDiffPairIndex(self): + r"""GetDiffPairIndex(BOARD_DESIGN_SETTINGS self) -> unsigned int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetDiffPairIndex(self) + + def SetDiffPairIndex(self, aIndex): + r"""SetDiffPairIndex(BOARD_DESIGN_SETTINGS self, unsigned int aIndex)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetDiffPairIndex(self, aIndex) + + def SetCustomDiffPairWidth(self, aWidth): + r"""SetCustomDiffPairWidth(BOARD_DESIGN_SETTINGS self, int aWidth)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCustomDiffPairWidth(self, aWidth) + + def GetCustomDiffPairWidth(self): + r"""GetCustomDiffPairWidth(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCustomDiffPairWidth(self) + + def SetCustomDiffPairGap(self, aGap): + r"""SetCustomDiffPairGap(BOARD_DESIGN_SETTINGS self, int aGap)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCustomDiffPairGap(self, aGap) + + def GetCustomDiffPairGap(self): + r"""GetCustomDiffPairGap(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCustomDiffPairGap(self) + + def SetCustomDiffPairViaGap(self, aGap): + r"""SetCustomDiffPairViaGap(BOARD_DESIGN_SETTINGS self, int aGap)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCustomDiffPairViaGap(self, aGap) + + def GetCustomDiffPairViaGap(self): + r"""GetCustomDiffPairViaGap(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCustomDiffPairViaGap(self) + + def UseCustomDiffPairDimensions(self, *args): + r""" + UseCustomDiffPairDimensions(BOARD_DESIGN_SETTINGS self, bool aEnabled) + UseCustomDiffPairDimensions(BOARD_DESIGN_SETTINGS self) -> bool + """ + return _pcbnew.BOARD_DESIGN_SETTINGS_UseCustomDiffPairDimensions(self, *args) + + def GetCurrentDiffPairWidth(self): + r"""GetCurrentDiffPairWidth(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentDiffPairWidth(self) + + def GetCurrentDiffPairGap(self): + r"""GetCurrentDiffPairGap(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentDiffPairGap(self) + + def GetCurrentDiffPairViaGap(self): + r"""GetCurrentDiffPairViaGap(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCurrentDiffPairViaGap(self) + + def SetMinHoleSeparation(self, aDistance): + r"""SetMinHoleSeparation(BOARD_DESIGN_SETTINGS self, int aDistance)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetMinHoleSeparation(self, aDistance) + + def SetCopperEdgeClearance(self, aDistance): + r"""SetCopperEdgeClearance(BOARD_DESIGN_SETTINGS self, int aDistance)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCopperEdgeClearance(self, aDistance) + + def SetRequireCourtyardDefinitions(self, aRequire): + r"""SetRequireCourtyardDefinitions(BOARD_DESIGN_SETTINGS self, bool aRequire)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetRequireCourtyardDefinitions(self, aRequire) + + def SetProhibitOverlappingCourtyards(self, aProhibit): + r"""SetProhibitOverlappingCourtyards(BOARD_DESIGN_SETTINGS self, bool aProhibit)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetProhibitOverlappingCourtyards(self, aProhibit) + + def GetVisibleLayers(self): + r"""GetVisibleLayers(BOARD_DESIGN_SETTINGS self) -> LSET""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetVisibleLayers(self) + + def SetVisibleAlls(self): + r"""SetVisibleAlls(BOARD_DESIGN_SETTINGS self)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetVisibleAlls(self) + + def SetVisibleLayers(self, aMask): + r"""SetVisibleLayers(BOARD_DESIGN_SETTINGS self, LSET aMask)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetVisibleLayers(self, aMask) + + def IsLayerVisible(self, aLayerId): + r"""IsLayerVisible(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayerId) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_IsLayerVisible(self, aLayerId) + + def SetLayerVisibility(self, aLayerId, aNewState): + r"""SetLayerVisibility(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayerId, bool aNewState)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetLayerVisibility(self, aLayerId, aNewState) + + def GetVisibleElements(self): + r"""GetVisibleElements(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetVisibleElements(self) + + def SetVisibleElements(self, aMask): + r"""SetVisibleElements(BOARD_DESIGN_SETTINGS self, int aMask)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetVisibleElements(self, aMask) + + def IsElementVisible(self, aElementCategory): + r"""IsElementVisible(BOARD_DESIGN_SETTINGS self, GAL_LAYER_ID aElementCategory) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_IsElementVisible(self, aElementCategory) + + def SetElementVisibility(self, aElementCategory, aNewState): + r"""SetElementVisibility(BOARD_DESIGN_SETTINGS self, GAL_LAYER_ID aElementCategory, bool aNewState)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetElementVisibility(self, aElementCategory, aNewState) + + def GetEnabledLayers(self): + r"""GetEnabledLayers(BOARD_DESIGN_SETTINGS self) -> LSET""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetEnabledLayers(self) + + def SetEnabledLayers(self, aMask): + r"""SetEnabledLayers(BOARD_DESIGN_SETTINGS self, LSET aMask)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetEnabledLayers(self, aMask) + + def IsLayerEnabled(self, aLayerId): + r"""IsLayerEnabled(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayerId) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_IsLayerEnabled(self, aLayerId) + + def GetCopperLayerCount(self): + r"""GetCopperLayerCount(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetCopperLayerCount(self) + + def SetCopperLayerCount(self, aNewLayerCount): + r"""SetCopperLayerCount(BOARD_DESIGN_SETTINGS self, int aNewLayerCount)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetCopperLayerCount(self, aNewLayerCount) + + def AppendConfigs(self, aBoard, aResult): + r"""AppendConfigs(BOARD_DESIGN_SETTINGS self, BOARD aBoard, PARAM_CFG_ARRAY * aResult)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_AppendConfigs(self, aBoard, aResult) + + def GetBoardThickness(self): + r"""GetBoardThickness(BOARD_DESIGN_SETTINGS self) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetBoardThickness(self) + + def SetBoardThickness(self, aThickness): + r"""SetBoardThickness(BOARD_DESIGN_SETTINGS self, int aThickness)""" + return _pcbnew.BOARD_DESIGN_SETTINGS_SetBoardThickness(self, aThickness) + + def GetLineThickness(self, aLayer): + r"""GetLineThickness(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayer) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetLineThickness(self, aLayer) + + def GetTextSize(self, aLayer): + r"""GetTextSize(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayer) -> wxSize""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetTextSize(self, aLayer) + + def GetTextThickness(self, aLayer): + r"""GetTextThickness(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayer) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetTextThickness(self, aLayer) + + def GetTextItalic(self, aLayer): + r"""GetTextItalic(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetTextItalic(self, aLayer) + + def GetTextUpright(self, aLayer): + r"""GetTextUpright(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetTextUpright(self, aLayer) + + def GetLayerClass(self, aLayer): + r"""GetLayerClass(BOARD_DESIGN_SETTINGS self, PCB_LAYER_ID aLayer) -> int""" + return _pcbnew.BOARD_DESIGN_SETTINGS_GetLayerClass(self, aLayer) + __swig_destroy__ = _pcbnew.delete_BOARD_DESIGN_SETTINGS + +# Register BOARD_DESIGN_SETTINGS in _pcbnew: +_pcbnew.BOARD_DESIGN_SETTINGS_swigregister(BOARD_DESIGN_SETTINGS) + +class CN_DISJOINT_NET_ENTRY(object): + r"""Proxy of C++ CN_DISJOINT_NET_ENTRY class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + net = property(_pcbnew.CN_DISJOINT_NET_ENTRY_net_get, _pcbnew.CN_DISJOINT_NET_ENTRY_net_set, doc=r"""net : int""") + a = property(_pcbnew.CN_DISJOINT_NET_ENTRY_a_get, _pcbnew.CN_DISJOINT_NET_ENTRY_a_set, doc=r"""a : p.BOARD_CONNECTED_ITEM""") + b = property(_pcbnew.CN_DISJOINT_NET_ENTRY_b_get, _pcbnew.CN_DISJOINT_NET_ENTRY_b_set, doc=r"""b : p.BOARD_CONNECTED_ITEM""") + anchorA = property(_pcbnew.CN_DISJOINT_NET_ENTRY_anchorA_get, _pcbnew.CN_DISJOINT_NET_ENTRY_anchorA_set, doc=r"""anchorA : VECTOR2I""") + anchorB = property(_pcbnew.CN_DISJOINT_NET_ENTRY_anchorB_get, _pcbnew.CN_DISJOINT_NET_ENTRY_anchorB_set, doc=r"""anchorB : VECTOR2I""") + + def __init__(self): + r"""__init__(CN_DISJOINT_NET_ENTRY self) -> CN_DISJOINT_NET_ENTRY""" + _pcbnew.CN_DISJOINT_NET_ENTRY_swiginit(self, _pcbnew.new_CN_DISJOINT_NET_ENTRY()) + __swig_destroy__ = _pcbnew.delete_CN_DISJOINT_NET_ENTRY + +# Register CN_DISJOINT_NET_ENTRY in _pcbnew: +_pcbnew.CN_DISJOINT_NET_ENTRY_swigregister(CN_DISJOINT_NET_ENTRY) + +class CN_ZONE_ISOLATED_ISLAND_LIST(object): + r"""Proxy of C++ CN_ZONE_ISOLATED_ISLAND_LIST class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aZone): + r"""__init__(CN_ZONE_ISOLATED_ISLAND_LIST self, ZONE_CONTAINER aZone) -> CN_ZONE_ISOLATED_ISLAND_LIST""" + _pcbnew.CN_ZONE_ISOLATED_ISLAND_LIST_swiginit(self, _pcbnew.new_CN_ZONE_ISOLATED_ISLAND_LIST(aZone)) + m_zone = property(_pcbnew.CN_ZONE_ISOLATED_ISLAND_LIST_m_zone_get, _pcbnew.CN_ZONE_ISOLATED_ISLAND_LIST_m_zone_set, doc=r"""m_zone : p.ZONE_CONTAINER""") + m_islands = property(_pcbnew.CN_ZONE_ISOLATED_ISLAND_LIST_m_islands_get, _pcbnew.CN_ZONE_ISOLATED_ISLAND_LIST_m_islands_set, doc=r"""m_islands : std::vector<(int,std::allocator<(int)>)>""") + __swig_destroy__ = _pcbnew.delete_CN_ZONE_ISOLATED_ISLAND_LIST + +# Register CN_ZONE_ISOLATED_ISLAND_LIST in _pcbnew: +_pcbnew.CN_ZONE_ISOLATED_ISLAND_LIST_swigregister(CN_ZONE_ISOLATED_ISLAND_LIST) + +class RN_DYNAMIC_LINE(object): + r"""Proxy of C++ RN_DYNAMIC_LINE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + netCode = property(_pcbnew.RN_DYNAMIC_LINE_netCode_get, _pcbnew.RN_DYNAMIC_LINE_netCode_set, doc=r"""netCode : int""") + a = property(_pcbnew.RN_DYNAMIC_LINE_a_get, _pcbnew.RN_DYNAMIC_LINE_a_set, doc=r"""a : VECTOR2I""") + b = property(_pcbnew.RN_DYNAMIC_LINE_b_get, _pcbnew.RN_DYNAMIC_LINE_b_set, doc=r"""b : VECTOR2I""") + + def __init__(self): + r"""__init__(RN_DYNAMIC_LINE self) -> RN_DYNAMIC_LINE""" + _pcbnew.RN_DYNAMIC_LINE_swiginit(self, _pcbnew.new_RN_DYNAMIC_LINE()) + __swig_destroy__ = _pcbnew.delete_RN_DYNAMIC_LINE + +# Register RN_DYNAMIC_LINE in _pcbnew: +_pcbnew.RN_DYNAMIC_LINE_swigregister(RN_DYNAMIC_LINE) + +class CONNECTIVITY_DATA(object): + r"""Proxy of C++ CONNECTIVITY_DATA class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_CONNECTIVITY_DATA + + def __init__(self, *args): + r""" + __init__(CONNECTIVITY_DATA self) -> CONNECTIVITY_DATA + __init__(CONNECTIVITY_DATA self, std::vector< BOARD_ITEM *,std::allocator< BOARD_ITEM * > > const & aItems) -> CONNECTIVITY_DATA + """ + _pcbnew.CONNECTIVITY_DATA_swiginit(self, _pcbnew.new_CONNECTIVITY_DATA(*args)) + + def Build(self, *args): + r""" + Build(CONNECTIVITY_DATA self, BOARD aBoard) + Build(CONNECTIVITY_DATA self, std::vector< BOARD_ITEM *,std::allocator< BOARD_ITEM * > > const & aItems) + """ + return _pcbnew.CONNECTIVITY_DATA_Build(self, *args) + + def Add(self, aItem): + r"""Add(CONNECTIVITY_DATA self, BOARD_ITEM aItem) -> bool""" + return _pcbnew.CONNECTIVITY_DATA_Add(self, aItem) + + def Remove(self, aItem): + r"""Remove(CONNECTIVITY_DATA self, BOARD_ITEM aItem) -> bool""" + return _pcbnew.CONNECTIVITY_DATA_Remove(self, aItem) + + def Update(self, aItem): + r"""Update(CONNECTIVITY_DATA self, BOARD_ITEM aItem) -> bool""" + return _pcbnew.CONNECTIVITY_DATA_Update(self, aItem) + + def Clear(self): + r"""Clear(CONNECTIVITY_DATA self)""" + return _pcbnew.CONNECTIVITY_DATA_Clear(self) + + def GetNetCount(self): + r"""GetNetCount(CONNECTIVITY_DATA self) -> int""" + return _pcbnew.CONNECTIVITY_DATA_GetNetCount(self) + + def GetRatsnestForNet(self, aNet): + r"""GetRatsnestForNet(CONNECTIVITY_DATA self, int aNet) -> RN_NET *""" + return _pcbnew.CONNECTIVITY_DATA_GetRatsnestForNet(self, aNet) + + def PropagateNets(self): + r"""PropagateNets(CONNECTIVITY_DATA self)""" + return _pcbnew.CONNECTIVITY_DATA_PropagateNets(self) + + def CheckConnectivity(self, aReport): + r"""CheckConnectivity(CONNECTIVITY_DATA self, std::vector< CN_DISJOINT_NET_ENTRY,std::allocator< CN_DISJOINT_NET_ENTRY > > & aReport) -> bool""" + return _pcbnew.CONNECTIVITY_DATA_CheckConnectivity(self, aReport) + + def FindIsolatedCopperIslands(self, *args): + r""" + FindIsolatedCopperIslands(CONNECTIVITY_DATA self, ZONE_CONTAINER aZone, intVector aIslands) + FindIsolatedCopperIslands(CONNECTIVITY_DATA self, std::vector< CN_ZONE_ISOLATED_ISLAND_LIST,std::allocator< CN_ZONE_ISOLATED_ISLAND_LIST > > & aZones) + """ + return _pcbnew.CONNECTIVITY_DATA_FindIsolatedCopperIslands(self, *args) + + def RecalculateRatsnest(self, aCommit=None): + r"""RecalculateRatsnest(CONNECTIVITY_DATA self, BOARD_COMMIT * aCommit=None)""" + return _pcbnew.CONNECTIVITY_DATA_RecalculateRatsnest(self, aCommit) + + def GetUnconnectedCount(self): + r"""GetUnconnectedCount(CONNECTIVITY_DATA self) -> unsigned int""" + return _pcbnew.CONNECTIVITY_DATA_GetUnconnectedCount(self) + + def GetNodeCount(self, aNet=-1): + r"""GetNodeCount(CONNECTIVITY_DATA self, int aNet=-1) -> unsigned int""" + return _pcbnew.CONNECTIVITY_DATA_GetNodeCount(self, aNet) + + def GetPadCount(self, aNet=-1): + r"""GetPadCount(CONNECTIVITY_DATA self, int aNet=-1) -> unsigned int""" + return _pcbnew.CONNECTIVITY_DATA_GetPadCount(self, aNet) + + def GetConnectedTracks(self, aItem): + r"""GetConnectedTracks(CONNECTIVITY_DATA self, BOARD_CONNECTED_ITEM aItem) -> std::vector< TRACK *,std::allocator< TRACK * > > const""" + return _pcbnew.CONNECTIVITY_DATA_GetConnectedTracks(self, aItem) + + def GetConnectedPads(self, *args): + r""" + GetConnectedPads(CONNECTIVITY_DATA self, BOARD_CONNECTED_ITEM aItem) -> D_PADS + GetConnectedPads(CONNECTIVITY_DATA self, BOARD_CONNECTED_ITEM aItem, std::set< D_PAD *,std::less< D_PAD * >,std::allocator< D_PAD * > > * pads) -> void const + """ + return _pcbnew.CONNECTIVITY_DATA_GetConnectedPads(self, *args) + + def GetUnconnectedEdges(self, aEdges): + r"""GetUnconnectedEdges(CONNECTIVITY_DATA self, std::vector< CN_EDGE,std::allocator< CN_EDGE > > & aEdges)""" + return _pcbnew.CONNECTIVITY_DATA_GetUnconnectedEdges(self, aEdges) + + def ClearDynamicRatsnest(self): + r"""ClearDynamicRatsnest(CONNECTIVITY_DATA self)""" + return _pcbnew.CONNECTIVITY_DATA_ClearDynamicRatsnest(self) + + def HideDynamicRatsnest(self): + r"""HideDynamicRatsnest(CONNECTIVITY_DATA self)""" + return _pcbnew.CONNECTIVITY_DATA_HideDynamicRatsnest(self) + + def ComputeDynamicRatsnest(self, aItems): + r"""ComputeDynamicRatsnest(CONNECTIVITY_DATA self, std::vector< BOARD_ITEM *,std::allocator< BOARD_ITEM * > > const & aItems)""" + return _pcbnew.CONNECTIVITY_DATA_ComputeDynamicRatsnest(self, aItems) + + def GetDynamicRatsnest(self): + r"""GetDynamicRatsnest(CONNECTIVITY_DATA self) -> std::vector< RN_DYNAMIC_LINE,std::allocator< RN_DYNAMIC_LINE > > const &""" + return _pcbnew.CONNECTIVITY_DATA_GetDynamicRatsnest(self) + + def GetConnectedItems(self, *args): + r""" + GetConnectedItems(CONNECTIVITY_DATA self, BOARD_CONNECTED_ITEM aItem, VECTOR2I aAnchor, KICAD_T [] aTypes) -> std::vector< BOARD_CONNECTED_ITEM *,std::allocator< BOARD_CONNECTED_ITEM * > > const + GetConnectedItems(CONNECTIVITY_DATA self, BOARD_CONNECTED_ITEM aItem, KICAD_T const [] aTypes, bool aIgnoreNetcodes=False) -> std::vector< BOARD_CONNECTED_ITEM *,std::allocator< BOARD_CONNECTED_ITEM * > > const + """ + return _pcbnew.CONNECTIVITY_DATA_GetConnectedItems(self, *args) + + def GetNetItems(self, aNetCode, aTypes): + r"""GetNetItems(CONNECTIVITY_DATA self, int aNetCode, KICAD_T const [] aTypes) -> std::vector< BOARD_CONNECTED_ITEM *,std::allocator< BOARD_CONNECTED_ITEM * > > const""" + return _pcbnew.CONNECTIVITY_DATA_GetNetItems(self, aNetCode, aTypes) + + def NearestUnconnectedTargets(self, aRef, aPos, aMaxCount=-1): + r"""NearestUnconnectedTargets(CONNECTIVITY_DATA self, BOARD_CONNECTED_ITEM aRef, VECTOR2I aPos, int aMaxCount=-1) -> std::vector< VECTOR2I,std::allocator< VECTOR2I > > const""" + return _pcbnew.CONNECTIVITY_DATA_NearestUnconnectedTargets(self, aRef, aPos, aMaxCount) + + def BlockRatsnestItems(self, aItems): + r"""BlockRatsnestItems(CONNECTIVITY_DATA self, std::vector< BOARD_ITEM *,std::allocator< BOARD_ITEM * > > const & aItems)""" + return _pcbnew.CONNECTIVITY_DATA_BlockRatsnestItems(self, aItems) + + def GetConnectivityAlgo(self): + r"""GetConnectivityAlgo(CONNECTIVITY_DATA self) -> std::shared_ptr< CN_CONNECTIVITY_ALGO >""" + return _pcbnew.CONNECTIVITY_DATA_GetConnectivityAlgo(self) + + def GetLock(self): + r"""GetLock(CONNECTIVITY_DATA self) -> std::mutex &""" + return _pcbnew.CONNECTIVITY_DATA_GetLock(self) + + def MarkItemNetAsDirty(self, aItem): + r"""MarkItemNetAsDirty(CONNECTIVITY_DATA self, BOARD_ITEM aItem)""" + return _pcbnew.CONNECTIVITY_DATA_MarkItemNetAsDirty(self, aItem) + + def SetProgressReporter(self, aReporter): + r"""SetProgressReporter(CONNECTIVITY_DATA self, PROGRESS_REPORTER * aReporter)""" + return _pcbnew.CONNECTIVITY_DATA_SetProgressReporter(self, aReporter) + +# Register CONNECTIVITY_DATA in _pcbnew: +_pcbnew.CONNECTIVITY_DATA_swigregister(CONNECTIVITY_DATA) + +PAD_SHAPE_CIRCLE = _pcbnew.PAD_SHAPE_CIRCLE + +PAD_SHAPE_RECT = _pcbnew.PAD_SHAPE_RECT + +PAD_SHAPE_OVAL = _pcbnew.PAD_SHAPE_OVAL + +PAD_SHAPE_TRAPEZOID = _pcbnew.PAD_SHAPE_TRAPEZOID + +PAD_SHAPE_ROUNDRECT = _pcbnew.PAD_SHAPE_ROUNDRECT + +PAD_SHAPE_CHAMFERED_RECT = _pcbnew.PAD_SHAPE_CHAMFERED_RECT + +PAD_SHAPE_CUSTOM = _pcbnew.PAD_SHAPE_CUSTOM + +PAD_DRILL_SHAPE_CIRCLE = _pcbnew.PAD_DRILL_SHAPE_CIRCLE + +PAD_DRILL_SHAPE_OBLONG = _pcbnew.PAD_DRILL_SHAPE_OBLONG + +PAD_ATTRIB_STANDARD = _pcbnew.PAD_ATTRIB_STANDARD + +PAD_ATTRIB_SMD = _pcbnew.PAD_ATTRIB_SMD + +PAD_ATTRIB_CONN = _pcbnew.PAD_ATTRIB_CONN + +PAD_ATTRIB_HOLE_NOT_PLATED = _pcbnew.PAD_ATTRIB_HOLE_NOT_PLATED + +CUST_PAD_SHAPE_IN_ZONE_OUTLINE = _pcbnew.CUST_PAD_SHAPE_IN_ZONE_OUTLINE + +CUST_PAD_SHAPE_IN_ZONE_CONVEXHULL = _pcbnew.CUST_PAD_SHAPE_IN_ZONE_CONVEXHULL + +class PAD_DRAWINFO(object): + r"""Proxy of C++ PAD_DRAWINFO class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_Color = property(_pcbnew.PAD_DRAWINFO_m_Color_get, _pcbnew.PAD_DRAWINFO_m_Color_set, doc=r"""m_Color : COLOR4D""") + m_HoleColor = property(_pcbnew.PAD_DRAWINFO_m_HoleColor_get, _pcbnew.PAD_DRAWINFO_m_HoleColor_set, doc=r"""m_HoleColor : COLOR4D""") + m_NPHoleColor = property(_pcbnew.PAD_DRAWINFO_m_NPHoleColor_get, _pcbnew.PAD_DRAWINFO_m_NPHoleColor_set, doc=r"""m_NPHoleColor : COLOR4D""") + m_NoNetMarkColor = property(_pcbnew.PAD_DRAWINFO_m_NoNetMarkColor_get, _pcbnew.PAD_DRAWINFO_m_NoNetMarkColor_set, doc=r"""m_NoNetMarkColor : COLOR4D""") + m_PadClearance = property(_pcbnew.PAD_DRAWINFO_m_PadClearance_get, _pcbnew.PAD_DRAWINFO_m_PadClearance_set, doc=r"""m_PadClearance : int""") + m_Mask_margin = property(_pcbnew.PAD_DRAWINFO_m_Mask_margin_get, _pcbnew.PAD_DRAWINFO_m_Mask_margin_set, doc=r"""m_Mask_margin : wxSize""") + m_Display_padnum = property(_pcbnew.PAD_DRAWINFO_m_Display_padnum_get, _pcbnew.PAD_DRAWINFO_m_Display_padnum_set, doc=r"""m_Display_padnum : bool""") + m_Display_netname = property(_pcbnew.PAD_DRAWINFO_m_Display_netname_get, _pcbnew.PAD_DRAWINFO_m_Display_netname_set, doc=r"""m_Display_netname : bool""") + m_ShowPadFilled = property(_pcbnew.PAD_DRAWINFO_m_ShowPadFilled_get, _pcbnew.PAD_DRAWINFO_m_ShowPadFilled_set, doc=r"""m_ShowPadFilled : bool""") + m_ShowNCMark = property(_pcbnew.PAD_DRAWINFO_m_ShowNCMark_get, _pcbnew.PAD_DRAWINFO_m_ShowNCMark_set, doc=r"""m_ShowNCMark : bool""") + m_ShowNotPlatedHole = property(_pcbnew.PAD_DRAWINFO_m_ShowNotPlatedHole_get, _pcbnew.PAD_DRAWINFO_m_ShowNotPlatedHole_set, doc=r"""m_ShowNotPlatedHole : bool""") + m_IsPrinting = property(_pcbnew.PAD_DRAWINFO_m_IsPrinting_get, _pcbnew.PAD_DRAWINFO_m_IsPrinting_set, doc=r"""m_IsPrinting : bool""") + m_Offset = property(_pcbnew.PAD_DRAWINFO_m_Offset_get, _pcbnew.PAD_DRAWINFO_m_Offset_set, doc=r"""m_Offset : wxPoint""") + + def __init__(self): + r"""__init__(PAD_DRAWINFO self) -> PAD_DRAWINFO""" + _pcbnew.PAD_DRAWINFO_swiginit(self, _pcbnew.new_PAD_DRAWINFO()) + __swig_destroy__ = _pcbnew.delete_PAD_DRAWINFO + +# Register PAD_DRAWINFO in _pcbnew: +_pcbnew.PAD_DRAWINFO_swigregister(PAD_DRAWINFO) + +class PAD_CS_PRIMITIVE(object): + r"""Proxy of C++ PAD_CS_PRIMITIVE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_Shape = property(_pcbnew.PAD_CS_PRIMITIVE_m_Shape_get, _pcbnew.PAD_CS_PRIMITIVE_m_Shape_set, doc=r"""m_Shape : STROKE_T""") + m_Thickness = property(_pcbnew.PAD_CS_PRIMITIVE_m_Thickness_get, _pcbnew.PAD_CS_PRIMITIVE_m_Thickness_set, doc=r"""m_Thickness : int""") + m_Radius = property(_pcbnew.PAD_CS_PRIMITIVE_m_Radius_get, _pcbnew.PAD_CS_PRIMITIVE_m_Radius_set, doc=r"""m_Radius : int""") + m_ArcAngle = property(_pcbnew.PAD_CS_PRIMITIVE_m_ArcAngle_get, _pcbnew.PAD_CS_PRIMITIVE_m_ArcAngle_set, doc=r"""m_ArcAngle : double""") + m_Start = property(_pcbnew.PAD_CS_PRIMITIVE_m_Start_get, _pcbnew.PAD_CS_PRIMITIVE_m_Start_set, doc=r"""m_Start : wxPoint""") + m_End = property(_pcbnew.PAD_CS_PRIMITIVE_m_End_get, _pcbnew.PAD_CS_PRIMITIVE_m_End_set, doc=r"""m_End : wxPoint""") + m_Ctrl1 = property(_pcbnew.PAD_CS_PRIMITIVE_m_Ctrl1_get, _pcbnew.PAD_CS_PRIMITIVE_m_Ctrl1_set, doc=r"""m_Ctrl1 : wxPoint""") + m_Ctrl2 = property(_pcbnew.PAD_CS_PRIMITIVE_m_Ctrl2_get, _pcbnew.PAD_CS_PRIMITIVE_m_Ctrl2_set, doc=r"""m_Ctrl2 : wxPoint""") + m_Poly = property(_pcbnew.PAD_CS_PRIMITIVE_m_Poly_get, _pcbnew.PAD_CS_PRIMITIVE_m_Poly_set, doc=r"""m_Poly : std::vector<(wxPoint,std::allocator<(wxPoint)>)>""") + + def __init__(self, aShape): + r"""__init__(PAD_CS_PRIMITIVE self, STROKE_T aShape) -> PAD_CS_PRIMITIVE""" + _pcbnew.PAD_CS_PRIMITIVE_swiginit(self, _pcbnew.new_PAD_CS_PRIMITIVE(aShape)) + + def GetCenter(self): + r"""GetCenter(PAD_CS_PRIMITIVE self) -> wxPoint""" + return _pcbnew.PAD_CS_PRIMITIVE_GetCenter(self) + + def GetArcStart(self): + r"""GetArcStart(PAD_CS_PRIMITIVE self) -> wxPoint""" + return _pcbnew.PAD_CS_PRIMITIVE_GetArcStart(self) + + def Move(self, aMoveVector): + r"""Move(PAD_CS_PRIMITIVE self, wxPoint aMoveVector)""" + return _pcbnew.PAD_CS_PRIMITIVE_Move(self, aMoveVector) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(PAD_CS_PRIMITIVE self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.PAD_CS_PRIMITIVE_Rotate(self, aRotCentre, aAngle) + + def ExportTo(self, *args): + r""" + ExportTo(PAD_CS_PRIMITIVE self, DRAWSEGMENT aTarget) + ExportTo(PAD_CS_PRIMITIVE self, EDGE_MODULE aTarget) + """ + return _pcbnew.PAD_CS_PRIMITIVE_ExportTo(self, *args) + __swig_destroy__ = _pcbnew.delete_PAD_CS_PRIMITIVE + +# Register PAD_CS_PRIMITIVE in _pcbnew: +_pcbnew.PAD_CS_PRIMITIVE_swigregister(PAD_CS_PRIMITIVE) + +class D_PAD(BOARD_CONNECTED_ITEM): + r"""Proxy of C++ D_PAD class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, parent): + r"""__init__(D_PAD self, MODULE parent) -> D_PAD""" + _pcbnew.D_PAD_swiginit(self, _pcbnew.new_D_PAD(parent)) + + @staticmethod + def StandardMask(): + r"""StandardMask() -> LSET""" + return _pcbnew.D_PAD_StandardMask() + + @staticmethod + def SMDMask(): + r"""SMDMask() -> LSET""" + return _pcbnew.D_PAD_SMDMask() + + @staticmethod + def ConnSMDMask(): + r"""ConnSMDMask() -> LSET""" + return _pcbnew.D_PAD_ConnSMDMask() + + @staticmethod + def UnplatedHoleMask(): + r"""UnplatedHoleMask() -> LSET""" + return _pcbnew.D_PAD_UnplatedHoleMask() + + @staticmethod + def ApertureMask(): + r"""ApertureMask() -> LSET""" + return _pcbnew.D_PAD_ApertureMask() + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.D_PAD_ClassOf(aItem) + + def GetParent(self): + r"""GetParent(D_PAD self) -> MODULE""" + return _pcbnew.D_PAD_GetParent(self) + + def ImportSettingsFrom(self, aMasterPad): + r"""ImportSettingsFrom(D_PAD self, D_PAD aMasterPad)""" + return _pcbnew.D_PAD_ImportSettingsFrom(self, aMasterPad) + + def IsFlipped(self): + r"""IsFlipped(D_PAD self) -> bool""" + return _pcbnew.D_PAD_IsFlipped(self) + + def SetName(self, aName): + r"""SetName(D_PAD self, wxString aName)""" + return _pcbnew.D_PAD_SetName(self, aName) + + def GetName(self): + r"""GetName(D_PAD self) -> wxString""" + return _pcbnew.D_PAD_GetName(self) + + def IncrementPadName(self, aSkipUnconnectable, aFillSequenceGaps): + r"""IncrementPadName(D_PAD self, bool aSkipUnconnectable, bool aFillSequenceGaps) -> bool""" + return _pcbnew.D_PAD_IncrementPadName(self, aSkipUnconnectable, aFillSequenceGaps) + + def PadNameEqual(self, other): + r"""PadNameEqual(D_PAD self, D_PAD other) -> bool""" + return _pcbnew.D_PAD_PadNameEqual(self, other) + + def GetShape(self): + r"""GetShape(D_PAD self) -> PAD_SHAPE_T""" + return _pcbnew.D_PAD_GetShape(self) + + def SetShape(self, aShape): + r"""SetShape(D_PAD self, PAD_SHAPE_T aShape)""" + return _pcbnew.D_PAD_SetShape(self, aShape) + + def SetPosition(self, aPos): + r"""SetPosition(D_PAD self, wxPoint aPos)""" + return _pcbnew.D_PAD_SetPosition(self, aPos) + + def GetPosition(self): + r"""GetPosition(D_PAD self) -> wxPoint""" + return _pcbnew.D_PAD_GetPosition(self) + + def GetAnchorPadShape(self): + r"""GetAnchorPadShape(D_PAD self) -> PAD_SHAPE_T""" + return _pcbnew.D_PAD_GetAnchorPadShape(self) + + def GetCustomShapeInZoneOpt(self): + r"""GetCustomShapeInZoneOpt(D_PAD self) -> CUST_PAD_SHAPE_IN_ZONE""" + return _pcbnew.D_PAD_GetCustomShapeInZoneOpt(self) + + def SetCustomShapeInZoneOpt(self, aOption): + r"""SetCustomShapeInZoneOpt(D_PAD self, CUST_PAD_SHAPE_IN_ZONE aOption)""" + return _pcbnew.D_PAD_SetCustomShapeInZoneOpt(self, aOption) + + def SetAnchorPadShape(self, aShape): + r"""SetAnchorPadShape(D_PAD self, PAD_SHAPE_T aShape)""" + return _pcbnew.D_PAD_SetAnchorPadShape(self, aShape) + + def SetY(self, y): + r"""SetY(D_PAD self, int y)""" + return _pcbnew.D_PAD_SetY(self, y) + + def SetX(self, x): + r"""SetX(D_PAD self, int x)""" + return _pcbnew.D_PAD_SetX(self, x) + + def SetPos0(self, aPos): + r"""SetPos0(D_PAD self, wxPoint aPos)""" + return _pcbnew.D_PAD_SetPos0(self, aPos) + + def GetPos0(self): + r"""GetPos0(D_PAD self) -> wxPoint""" + return _pcbnew.D_PAD_GetPos0(self) + + def SetY0(self, y): + r"""SetY0(D_PAD self, int y)""" + return _pcbnew.D_PAD_SetY0(self, y) + + def SetX0(self, x): + r"""SetX0(D_PAD self, int x)""" + return _pcbnew.D_PAD_SetX0(self, x) + + def SetSize(self, aSize): + r"""SetSize(D_PAD self, wxSize aSize)""" + return _pcbnew.D_PAD_SetSize(self, aSize) + + def GetSize(self): + r"""GetSize(D_PAD self) -> wxSize""" + return _pcbnew.D_PAD_GetSize(self) + + def SetDelta(self, aSize): + r"""SetDelta(D_PAD self, wxSize aSize)""" + return _pcbnew.D_PAD_SetDelta(self, aSize) + + def GetDelta(self): + r"""GetDelta(D_PAD self) -> wxSize""" + return _pcbnew.D_PAD_GetDelta(self) + + def SetDrillSize(self, aSize): + r"""SetDrillSize(D_PAD self, wxSize aSize)""" + return _pcbnew.D_PAD_SetDrillSize(self, aSize) + + def GetDrillSize(self): + r"""GetDrillSize(D_PAD self) -> wxSize""" + return _pcbnew.D_PAD_GetDrillSize(self) + + def SetOffset(self, aOffset): + r"""SetOffset(D_PAD self, wxPoint aOffset)""" + return _pcbnew.D_PAD_SetOffset(self, aOffset) + + def GetOffset(self): + r"""GetOffset(D_PAD self) -> wxPoint""" + return _pcbnew.D_PAD_GetOffset(self) + + def AddPrimitive(self, *args): + r""" + AddPrimitive(D_PAD self, SHAPE_POLY_SET aPoly, int aThickness) + AddPrimitive(D_PAD self, wxPoint_Vector aPoly, int aThickness) + AddPrimitive(D_PAD self, wxPoint aStart, wxPoint aEnd, int aThickness) + AddPrimitive(D_PAD self, wxPoint aCenter, int aRadius, int aThickness) + AddPrimitive(D_PAD self, wxPoint aCenter, wxPoint aStart, int aArcAngle, int aThickness) + AddPrimitive(D_PAD self, wxPoint aStart, wxPoint aEnd, wxPoint aCtrl1, wxPoint aCtrl2, int aThickness) + """ + return _pcbnew.D_PAD_AddPrimitive(self, *args) + + def GetBestAnchorPosition(self, aPos): + r"""GetBestAnchorPosition(D_PAD self, VECTOR2I aPos) -> bool""" + return _pcbnew.D_PAD_GetBestAnchorPosition(self, aPos) + + def MergePrimitivesAsPolygon(self, aMergedPolygon=None): + r"""MergePrimitivesAsPolygon(D_PAD self, SHAPE_POLY_SET aMergedPolygon=None) -> bool""" + return _pcbnew.D_PAD_MergePrimitivesAsPolygon(self, aMergedPolygon) + + def DeletePrimitivesList(self): + r"""DeletePrimitivesList(D_PAD self)""" + return _pcbnew.D_PAD_DeletePrimitivesList(self) + + def CustomShapeAsPolygonToBoardPosition(self, aMergedPolygon, aPosition, aRotation): + r"""CustomShapeAsPolygonToBoardPosition(D_PAD self, SHAPE_POLY_SET aMergedPolygon, wxPoint aPosition, double aRotation)""" + return _pcbnew.D_PAD_CustomShapeAsPolygonToBoardPosition(self, aMergedPolygon, aPosition, aRotation) + + def GetPrimitives(self): + r"""GetPrimitives(D_PAD self) -> std::vector< PAD_CS_PRIMITIVE,std::allocator< PAD_CS_PRIMITIVE > > const &""" + return _pcbnew.D_PAD_GetPrimitives(self) + + def GetCustomShapeAsPolygon(self): + r"""GetCustomShapeAsPolygon(D_PAD self) -> SHAPE_POLY_SET""" + return _pcbnew.D_PAD_GetCustomShapeAsPolygon(self) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(D_PAD self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.D_PAD_Flip(self, aCentre, aFlipLeftRight) + + def FlipPrimitives(self): + r"""FlipPrimitives(D_PAD self)""" + return _pcbnew.D_PAD_FlipPrimitives(self) + + def MirrorXPrimitives(self, aX): + r"""MirrorXPrimitives(D_PAD self, int aX)""" + return _pcbnew.D_PAD_MirrorXPrimitives(self, aX) + + def SetPrimitives(self, aPrimitivesList): + r"""SetPrimitives(D_PAD self, std::vector< PAD_CS_PRIMITIVE,std::allocator< PAD_CS_PRIMITIVE > > const & aPrimitivesList) -> bool""" + return _pcbnew.D_PAD_SetPrimitives(self, aPrimitivesList) + + def AddPrimitives(self, aPrimitivesList): + r"""AddPrimitives(D_PAD self, std::vector< PAD_CS_PRIMITIVE,std::allocator< PAD_CS_PRIMITIVE > > const & aPrimitivesList) -> bool""" + return _pcbnew.D_PAD_AddPrimitives(self, aPrimitivesList) + + def SetOrientation(self, aAngle): + r"""SetOrientation(D_PAD self, double aAngle)""" + return _pcbnew.D_PAD_SetOrientation(self, aAngle) + + def SetOrientationDegrees(self, aOrientation): + r"""SetOrientationDegrees(D_PAD self, double aOrientation)""" + return _pcbnew.D_PAD_SetOrientationDegrees(self, aOrientation) + + def GetOrientation(self): + r"""GetOrientation(D_PAD self) -> double""" + return _pcbnew.D_PAD_GetOrientation(self) + + def GetOrientationDegrees(self): + r"""GetOrientationDegrees(D_PAD self) -> double""" + return _pcbnew.D_PAD_GetOrientationDegrees(self) + + def GetOrientationRadians(self): + r"""GetOrientationRadians(D_PAD self) -> double""" + return _pcbnew.D_PAD_GetOrientationRadians(self) + + def SetDrillShape(self, aDrillShape): + r"""SetDrillShape(D_PAD self, PAD_DRILL_SHAPE_T aDrillShape)""" + return _pcbnew.D_PAD_SetDrillShape(self, aDrillShape) + + def GetDrillShape(self): + r"""GetDrillShape(D_PAD self) -> PAD_DRILL_SHAPE_T""" + return _pcbnew.D_PAD_GetDrillShape(self) + + def GetOblongDrillGeometry(self, aStartPoint, aEndPoint, aWidth): + r"""GetOblongDrillGeometry(D_PAD self, wxPoint aStartPoint, wxPoint aEndPoint, int & aWidth)""" + return _pcbnew.D_PAD_GetOblongDrillGeometry(self, aStartPoint, aEndPoint, aWidth) + + def SetLayerSet(self, aLayerMask): + r"""SetLayerSet(D_PAD self, LSET aLayerMask)""" + return _pcbnew.D_PAD_SetLayerSet(self, aLayerMask) + + def GetLayerSet(self): + r"""GetLayerSet(D_PAD self) -> LSET""" + return _pcbnew.D_PAD_GetLayerSet(self) + + def SetAttribute(self, aAttribute): + r"""SetAttribute(D_PAD self, PAD_ATTR_T aAttribute)""" + return _pcbnew.D_PAD_SetAttribute(self, aAttribute) + + def GetAttribute(self): + r"""GetAttribute(D_PAD self) -> PAD_ATTR_T""" + return _pcbnew.D_PAD_GetAttribute(self) + + def IsAperturePad(self): + r"""IsAperturePad(D_PAD self) -> bool""" + return _pcbnew.D_PAD_IsAperturePad(self) + + def SetPadToDieLength(self, aLength): + r"""SetPadToDieLength(D_PAD self, int aLength)""" + return _pcbnew.D_PAD_SetPadToDieLength(self, aLength) + + def GetPadToDieLength(self): + r"""GetPadToDieLength(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetPadToDieLength(self) + + def GetLocalSolderMaskMargin(self): + r"""GetLocalSolderMaskMargin(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetLocalSolderMaskMargin(self) + + def SetLocalSolderMaskMargin(self, aMargin): + r"""SetLocalSolderMaskMargin(D_PAD self, int aMargin)""" + return _pcbnew.D_PAD_SetLocalSolderMaskMargin(self, aMargin) + + def GetLocalClearance(self): + r"""GetLocalClearance(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetLocalClearance(self) + + def SetLocalClearance(self, aClearance): + r"""SetLocalClearance(D_PAD self, int aClearance)""" + return _pcbnew.D_PAD_SetLocalClearance(self, aClearance) + + def GetLocalSolderPasteMargin(self): + r"""GetLocalSolderPasteMargin(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetLocalSolderPasteMargin(self) + + def SetLocalSolderPasteMargin(self, aMargin): + r"""SetLocalSolderPasteMargin(D_PAD self, int aMargin)""" + return _pcbnew.D_PAD_SetLocalSolderPasteMargin(self, aMargin) + + def GetLocalSolderPasteMarginRatio(self): + r"""GetLocalSolderPasteMarginRatio(D_PAD self) -> double""" + return _pcbnew.D_PAD_GetLocalSolderPasteMarginRatio(self) + + def SetLocalSolderPasteMarginRatio(self, aRatio): + r"""SetLocalSolderPasteMarginRatio(D_PAD self, double aRatio)""" + return _pcbnew.D_PAD_SetLocalSolderPasteMarginRatio(self, aRatio) + + def TransformShapeWithClearanceToPolygon(self, *args): + r"""TransformShapeWithClearanceToPolygon(D_PAD self, SHAPE_POLY_SET aCornerBuffer, int aClearanceValue, int aMaxError=ARC_HIGH_DEF, bool ignoreLineWidth=False)""" + return _pcbnew.D_PAD_TransformShapeWithClearanceToPolygon(self, *args) + + def GetClearance(self, aItem=None): + r"""GetClearance(D_PAD self, BOARD_CONNECTED_ITEM aItem=None) -> int""" + return _pcbnew.D_PAD_GetClearance(self, aItem) + + def GetSolderMaskMargin(self): + r"""GetSolderMaskMargin(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetSolderMaskMargin(self) + + def GetSolderPasteMargin(self): + r"""GetSolderPasteMargin(D_PAD self) -> wxSize""" + return _pcbnew.D_PAD_GetSolderPasteMargin(self) + + def SetZoneConnection(self, aType): + r"""SetZoneConnection(D_PAD self, ZoneConnection aType)""" + return _pcbnew.D_PAD_SetZoneConnection(self, aType) + + def GetZoneConnection(self): + r"""GetZoneConnection(D_PAD self) -> ZoneConnection""" + return _pcbnew.D_PAD_GetZoneConnection(self) + + def SetThermalWidth(self, aWidth): + r"""SetThermalWidth(D_PAD self, int aWidth)""" + return _pcbnew.D_PAD_SetThermalWidth(self, aWidth) + + def GetThermalWidth(self): + r"""GetThermalWidth(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetThermalWidth(self) + + def SetThermalGap(self, aGap): + r"""SetThermalGap(D_PAD self, int aGap)""" + return _pcbnew.D_PAD_SetThermalGap(self, aGap) + + def GetThermalGap(self): + r"""GetThermalGap(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetThermalGap(self) + + def Print(self, *args): + r"""Print(D_PAD self, PCB_BASE_FRAME * aFrame, wxDC * aDC, wxPoint aOffset=)""" + return _pcbnew.D_PAD_Print(self, *args) + + def PrintShape(self, aDC, aDrawInfo): + r"""PrintShape(D_PAD self, wxDC * aDC, PAD_DRAWINFO aDrawInfo)""" + return _pcbnew.D_PAD_PrintShape(self, aDC, aDrawInfo) + + def BuildPadPolygon(self, aCoord, aInflateValue, aRotation): + r"""BuildPadPolygon(D_PAD self, wxPoint aCoord, wxSize aInflateValue, double aRotation)""" + return _pcbnew.D_PAD_BuildPadPolygon(self, aCoord, aInflateValue, aRotation) + + def GetRoundRectCornerRadius(self, *args): + r""" + GetRoundRectCornerRadius(D_PAD self) -> int + GetRoundRectCornerRadius(D_PAD self, wxSize aSize) -> int + """ + return _pcbnew.D_PAD_GetRoundRectCornerRadius(self, *args) + + def SetRoundRectCornerRadius(self, aRadius): + r"""SetRoundRectCornerRadius(D_PAD self, double aRadius)""" + return _pcbnew.D_PAD_SetRoundRectCornerRadius(self, aRadius) + + def BuildPadShapePolygon(self, *args): + r"""BuildPadShapePolygon(D_PAD self, SHAPE_POLY_SET aCornerBuffer, wxSize aInflateValue, int aError=ARC_HIGH_DEF)""" + return _pcbnew.D_PAD_BuildPadShapePolygon(self, *args) + + def BuildPadDrillShapePolygon(self, *args): + r"""BuildPadDrillShapePolygon(D_PAD self, SHAPE_POLY_SET aCornerBuffer, int aInflateValue, int aError=ARC_HIGH_DEF) -> bool""" + return _pcbnew.D_PAD_BuildPadDrillShapePolygon(self, *args) + + def BuildSegmentFromOvalShape(self, aSegStart, aSegEnd, aRotation, aMargin): + r"""BuildSegmentFromOvalShape(D_PAD self, wxPoint aSegStart, wxPoint aSegEnd, double aRotation, wxSize aMargin) -> int""" + return _pcbnew.D_PAD_BuildSegmentFromOvalShape(self, aSegStart, aSegEnd, aRotation, aMargin) + + def GetBoundingRadius(self): + r"""GetBoundingRadius(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetBoundingRadius(self) + + def ShapePos(self): + r"""ShapePos(D_PAD self) -> wxPoint""" + return _pcbnew.D_PAD_ShapePos(self) + + def GetRoundRectRadiusRatio(self): + r"""GetRoundRectRadiusRatio(D_PAD self) -> double""" + return _pcbnew.D_PAD_GetRoundRectRadiusRatio(self) + + def SetRoundRectRadiusRatio(self, aRadiusScale): + r"""SetRoundRectRadiusRatio(D_PAD self, double aRadiusScale)""" + return _pcbnew.D_PAD_SetRoundRectRadiusRatio(self, aRadiusScale) + + def GetChamferRectRatio(self): + r"""GetChamferRectRatio(D_PAD self) -> double""" + return _pcbnew.D_PAD_GetChamferRectRatio(self) + + def SetChamferRectRatio(self, aChamferScale): + r"""SetChamferRectRatio(D_PAD self, double aChamferScale)""" + return _pcbnew.D_PAD_SetChamferRectRatio(self, aChamferScale) + + def GetChamferPositions(self): + r"""GetChamferPositions(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetChamferPositions(self) + + def SetChamferPositions(self, aChamferPositions): + r"""SetChamferPositions(D_PAD self, int aChamferPositions)""" + return _pcbnew.D_PAD_SetChamferPositions(self, aChamferPositions) + + def GetSubRatsnest(self): + r"""GetSubRatsnest(D_PAD self) -> int""" + return _pcbnew.D_PAD_GetSubRatsnest(self) + + def SetSubRatsnest(self, aSubRatsnest): + r"""SetSubRatsnest(D_PAD self, int aSubRatsnest)""" + return _pcbnew.D_PAD_SetSubRatsnest(self, aSubRatsnest) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(D_PAD self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.D_PAD_GetMsgPanelInfo(self, aUnits, aList) + + def IsOnLayer(self, aLayer): + r"""IsOnLayer(D_PAD self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.D_PAD_IsOnLayer(self, aLayer) + + def HitTest(self, *args): + r""" + HitTest(D_PAD self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(D_PAD self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.D_PAD_HitTest(self, *args) + + def GetClass(self): + r"""GetClass(D_PAD self) -> wxString""" + return _pcbnew.D_PAD_GetClass(self) + + def GetBoundingBox(self): + r"""GetBoundingBox(D_PAD self) -> EDA_RECT""" + return _pcbnew.D_PAD_GetBoundingBox(self) + + def SetDrawCoord(self): + r"""SetDrawCoord(D_PAD self)""" + return _pcbnew.D_PAD_SetDrawCoord(self) + + def SetLocalCoord(self): + r"""SetLocalCoord(D_PAD self)""" + return _pcbnew.D_PAD_SetLocalCoord(self) + + @staticmethod + def Compare(padref, padcmp): + r"""Compare(D_PAD padref, D_PAD padcmp) -> int""" + return _pcbnew.D_PAD_Compare(padref, padcmp) + + def Move(self, aMoveVector): + r"""Move(D_PAD self, wxPoint aMoveVector)""" + return _pcbnew.D_PAD_Move(self, aMoveVector) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(D_PAD self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.D_PAD_Rotate(self, aRotCentre, aAngle) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(D_PAD self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.D_PAD_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(D_PAD self) -> BITMAP_DEF""" + return _pcbnew.D_PAD_GetMenuImage(self) + + def ShowPadShape(self): + r"""ShowPadShape(D_PAD self) -> wxString""" + return _pcbnew.D_PAD_ShowPadShape(self) + + def ShowPadAttr(self): + r"""ShowPadAttr(D_PAD self) -> wxString""" + return _pcbnew.D_PAD_ShowPadAttr(self) + + def AppendConfigs(self, aResult): + r"""AppendConfigs(D_PAD self, PARAM_CFG_ARRAY * aResult)""" + return _pcbnew.D_PAD_AppendConfigs(self, aResult) + + def Clone(self): + r"""Clone(D_PAD self) -> EDA_ITEM""" + return _pcbnew.D_PAD_Clone(self) + + def Duplicate(self): + r"""Duplicate(D_PAD self) -> D_PAD""" + return _pcbnew.D_PAD_Duplicate(self) + + def PadShouldBeNPTH(self): + r"""PadShouldBeNPTH(D_PAD self) -> bool""" + return _pcbnew.D_PAD_PadShouldBeNPTH(self) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(D_PAD self, int [] aLayers, int & aCount)""" + return _pcbnew.D_PAD_ViewGetLayers(self, aLayers, aCount) + + def ViewGetLOD(self, aLayer, aView): + r"""ViewGetLOD(D_PAD self, int aLayer, KIGFX::VIEW * aView) -> unsigned int""" + return _pcbnew.D_PAD_ViewGetLOD(self, aLayer, aView) + + def ViewBBox(self): + r"""ViewBBox(D_PAD self) -> BOX2I const""" + return _pcbnew.D_PAD_ViewBBox(self) + + def SwapData(self, aImage): + r"""SwapData(D_PAD self, BOARD_ITEM aImage)""" + return _pcbnew.D_PAD_SwapData(self, aImage) + + + # SetPadName() is the old name for D_PAD::SetName() + # define it for compatibility + def SetPadName(self, aName): + return self.SetName(aName) + + # GetPadName() is the old name for D_PAD::GetName() + # define it for compatibility + def GetPadName(self): + return self.GetName() + + + __swig_destroy__ = _pcbnew.delete_D_PAD + +# Register D_PAD in _pcbnew: +_pcbnew.D_PAD_swigregister(D_PAD) + +def D_PAD_StandardMask(): + r"""D_PAD_StandardMask() -> LSET""" + return _pcbnew.D_PAD_StandardMask() + +def D_PAD_SMDMask(): + r"""D_PAD_SMDMask() -> LSET""" + return _pcbnew.D_PAD_SMDMask() + +def D_PAD_ConnSMDMask(): + r"""D_PAD_ConnSMDMask() -> LSET""" + return _pcbnew.D_PAD_ConnSMDMask() + +def D_PAD_UnplatedHoleMask(): + r"""D_PAD_UnplatedHoleMask() -> LSET""" + return _pcbnew.D_PAD_UnplatedHoleMask() + +def D_PAD_ApertureMask(): + r"""D_PAD_ApertureMask() -> LSET""" + return _pcbnew.D_PAD_ApertureMask() + +def D_PAD_ClassOf(aItem): + r"""D_PAD_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.D_PAD_ClassOf(aItem) + +def D_PAD_Compare(padref, padcmp): + r"""D_PAD_Compare(D_PAD padref, D_PAD padcmp) -> int""" + return _pcbnew.D_PAD_Compare(padref, padcmp) + +ENDPOINT_START = _pcbnew.ENDPOINT_START + +ENDPOINT_END = _pcbnew.ENDPOINT_END + +VIA_THROUGH = _pcbnew.VIA_THROUGH + +VIA_BLIND_BURIED = _pcbnew.VIA_BLIND_BURIED + +VIA_MICROVIA = _pcbnew.VIA_MICROVIA + +VIA_NOT_DEFINED = _pcbnew.VIA_NOT_DEFINED + +UNDEFINED_DRILL_DIAMETER = _pcbnew.UNDEFINED_DRILL_DIAMETER + +MIN_VIA_DRAW_SIZE = _pcbnew.MIN_VIA_DRAW_SIZE + +class TRACK(BOARD_CONNECTED_ITEM): + r"""Proxy of C++ TRACK class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.TRACK_ClassOf(aItem) + + def __init__(self, aParent, idtype=PCB_TRACE_T): + r"""__init__(TRACK self, BOARD_ITEM aParent, KICAD_T idtype=PCB_TRACE_T) -> TRACK""" + _pcbnew.TRACK_swiginit(self, _pcbnew.new_TRACK(aParent, idtype)) + + def Move(self, aMoveVector): + r"""Move(TRACK self, wxPoint aMoveVector)""" + return _pcbnew.TRACK_Move(self, aMoveVector) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(TRACK self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.TRACK_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(TRACK self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.TRACK_Flip(self, aCentre, aFlipLeftRight) + + def SetPosition(self, aPos): + r"""SetPosition(TRACK self, wxPoint aPos)""" + return _pcbnew.TRACK_SetPosition(self, aPos) + + def GetPosition(self): + r"""GetPosition(TRACK self) -> wxPoint""" + return _pcbnew.TRACK_GetPosition(self) + + def SetWidth(self, aWidth): + r"""SetWidth(TRACK self, int aWidth)""" + return _pcbnew.TRACK_SetWidth(self, aWidth) + + def GetWidth(self): + r"""GetWidth(TRACK self) -> int""" + return _pcbnew.TRACK_GetWidth(self) + + def SetEnd(self, aEnd): + r"""SetEnd(TRACK self, wxPoint aEnd)""" + return _pcbnew.TRACK_SetEnd(self, aEnd) + + def GetEnd(self): + r"""GetEnd(TRACK self) -> wxPoint""" + return _pcbnew.TRACK_GetEnd(self) + + def SetStart(self, aStart): + r"""SetStart(TRACK self, wxPoint aStart)""" + return _pcbnew.TRACK_SetStart(self, aStart) + + def GetStart(self): + r"""GetStart(TRACK self) -> wxPoint""" + return _pcbnew.TRACK_GetStart(self) + + def GetEndPoint(self, aEndPoint): + r"""GetEndPoint(TRACK self, ENDPOINT_T aEndPoint) -> wxPoint""" + return _pcbnew.TRACK_GetEndPoint(self, aEndPoint) + + def GetBoundingBox(self): + r"""GetBoundingBox(TRACK self) -> EDA_RECT""" + return _pcbnew.TRACK_GetBoundingBox(self) + + def IsLocked(self): + r"""IsLocked(TRACK self) -> bool""" + return _pcbnew.TRACK_IsLocked(self) + + def SetLocked(self, aLocked): + r"""SetLocked(TRACK self, bool aLocked)""" + return _pcbnew.TRACK_SetLocked(self, aLocked) + + def GetStartNetCode(self, NetCode): + r"""GetStartNetCode(TRACK self, int NetCode) -> TRACK""" + return _pcbnew.TRACK_GetStartNetCode(self, NetCode) + + def GetEndNetCode(self, NetCode): + r"""GetEndNetCode(TRACK self, int NetCode) -> TRACK""" + return _pcbnew.TRACK_GetEndNetCode(self, NetCode) + + def GetLength(self): + r"""GetLength(TRACK self) -> double""" + return _pcbnew.TRACK_GetLength(self) + + def Print(self, *args): + r"""Print(TRACK self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint aOffset=)""" + return _pcbnew.TRACK_Print(self, *args) + + def TransformShapeWithClearanceToPolygon(self, *args): + r"""TransformShapeWithClearanceToPolygon(TRACK self, SHAPE_POLY_SET aCornerBuffer, int aClearanceValue, int aError=ARC_HIGH_DEF, bool ignoreLineWidth=False)""" + return _pcbnew.TRACK_TransformShapeWithClearanceToPolygon(self, *args) + + def IsPointOnEnds(self, point, min_dist=0): + r"""IsPointOnEnds(TRACK self, wxPoint point, int min_dist=0) -> STATUS_FLAGS""" + return _pcbnew.TRACK_IsPointOnEnds(self, point, min_dist) + + def IsNull(self): + r"""IsNull(TRACK self) -> bool""" + return _pcbnew.TRACK_IsNull(self) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(TRACK self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.TRACK_GetMsgPanelInfo(self, aUnits, aList) + + def Visit(self, inspector, testData, scanTypes): + r"""Visit(TRACK self, INSPECTOR inspector, void * testData, KICAD_T const [] scanTypes) -> SEARCH_RESULT""" + return _pcbnew.TRACK_Visit(self, inspector, testData, scanTypes) + + def HitTest(self, *args): + r""" + HitTest(TRACK self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(TRACK self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.TRACK_HitTest(self, *args) + + def ApproxCollinear(self, aTrack): + r"""ApproxCollinear(TRACK self, TRACK aTrack) -> bool""" + return _pcbnew.TRACK_ApproxCollinear(self, aTrack) + + def GetClass(self): + r"""GetClass(TRACK self) -> wxString""" + return _pcbnew.TRACK_GetClass(self) + + def GetClearance(self, aItem=None): + r"""GetClearance(TRACK self, BOARD_CONNECTED_ITEM aItem=None) -> int""" + return _pcbnew.TRACK_GetClearance(self, aItem) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(TRACK self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.TRACK_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(TRACK self) -> BITMAP_DEF""" + return _pcbnew.TRACK_GetMenuImage(self) + + def Clone(self): + r"""Clone(TRACK self) -> EDA_ITEM""" + return _pcbnew.TRACK_Clone(self) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(TRACK self, int [] aLayers, int & aCount)""" + return _pcbnew.TRACK_ViewGetLayers(self, aLayers, aCount) + + def ViewGetLOD(self, aLayer, aView): + r"""ViewGetLOD(TRACK self, int aLayer, KIGFX::VIEW * aView) -> unsigned int""" + return _pcbnew.TRACK_ViewGetLOD(self, aLayer, aView) + + def ViewBBox(self): + r"""ViewBBox(TRACK self) -> BOX2I const""" + return _pcbnew.TRACK_ViewBBox(self) + + def SwapData(self, aImage): + r"""SwapData(TRACK self, BOARD_ITEM aImage)""" + return _pcbnew.TRACK_SwapData(self, aImage) + __swig_destroy__ = _pcbnew.delete_TRACK + +# Register TRACK in _pcbnew: +_pcbnew.TRACK_swigregister(TRACK) + +def TRACK_ClassOf(aItem): + r"""TRACK_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.TRACK_ClassOf(aItem) + +class VIA(TRACK): + r"""Proxy of C++ VIA class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aParent): + r"""__init__(VIA self, BOARD_ITEM aParent) -> VIA""" + _pcbnew.VIA_swiginit(self, _pcbnew.new_VIA(aParent)) + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.VIA_ClassOf(aItem) + + def Print(self, *args): + r"""Print(VIA self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint aOffset=)""" + return _pcbnew.VIA_Print(self, *args) + + def IsOnLayer(self, aLayer): + r"""IsOnLayer(VIA self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.VIA_IsOnLayer(self, aLayer) + + def GetLayerSet(self): + r"""GetLayerSet(VIA self) -> LSET""" + return _pcbnew.VIA_GetLayerSet(self) + + def SetLayerPair(self, aTopLayer, aBottomLayer): + r"""SetLayerPair(VIA self, PCB_LAYER_ID aTopLayer, PCB_LAYER_ID aBottomLayer)""" + return _pcbnew.VIA_SetLayerPair(self, aTopLayer, aBottomLayer) + + def SetBottomLayer(self, aLayer): + r"""SetBottomLayer(VIA self, PCB_LAYER_ID aLayer)""" + return _pcbnew.VIA_SetBottomLayer(self, aLayer) + + def SetTopLayer(self, aLayer): + r"""SetTopLayer(VIA self, PCB_LAYER_ID aLayer)""" + return _pcbnew.VIA_SetTopLayer(self, aLayer) + + def LayerPair(self, top_layer, bottom_layer): + r"""LayerPair(VIA self, PCB_LAYER_ID * top_layer, PCB_LAYER_ID * bottom_layer)""" + return _pcbnew.VIA_LayerPair(self, top_layer, bottom_layer) + + def TopLayer(self): + r"""TopLayer(VIA self) -> PCB_LAYER_ID""" + return _pcbnew.VIA_TopLayer(self) + + def BottomLayer(self): + r"""BottomLayer(VIA self) -> PCB_LAYER_ID""" + return _pcbnew.VIA_BottomLayer(self) + + def SanitizeLayers(self): + r"""SanitizeLayers(VIA self)""" + return _pcbnew.VIA_SanitizeLayers(self) + + def GetPosition(self): + r"""GetPosition(VIA self) -> wxPoint""" + return _pcbnew.VIA_GetPosition(self) + + def SetPosition(self, aPoint): + r"""SetPosition(VIA self, wxPoint aPoint)""" + return _pcbnew.VIA_SetPosition(self, aPoint) + + def HitTest(self, *args): + r""" + HitTest(VIA self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(VIA self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.VIA_HitTest(self, *args) + + def GetClass(self): + r"""GetClass(VIA self) -> wxString""" + return _pcbnew.VIA_GetClass(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(VIA self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.VIA_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(VIA self) -> BITMAP_DEF""" + return _pcbnew.VIA_GetMenuImage(self) + + def Clone(self): + r"""Clone(VIA self) -> EDA_ITEM""" + return _pcbnew.VIA_Clone(self) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(VIA self, int [] aLayers, int & aCount)""" + return _pcbnew.VIA_ViewGetLayers(self, aLayers, aCount) + + def ViewGetLOD(self, aLayer, aView): + r"""ViewGetLOD(VIA self, int aLayer, KIGFX::VIEW * aView) -> unsigned int""" + return _pcbnew.VIA_ViewGetLOD(self, aLayer, aView) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(VIA self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.VIA_Flip(self, aCentre, aFlipLeftRight) + + def GetViaType(self): + r"""GetViaType(VIA self) -> VIATYPE_T""" + return _pcbnew.VIA_GetViaType(self) + + def SetViaType(self, aViaType): + r"""SetViaType(VIA self, VIATYPE_T aViaType)""" + return _pcbnew.VIA_SetViaType(self, aViaType) + + def SetDrill(self, aDrill): + r"""SetDrill(VIA self, int aDrill)""" + return _pcbnew.VIA_SetDrill(self, aDrill) + + def GetDrill(self): + r"""GetDrill(VIA self) -> int""" + return _pcbnew.VIA_GetDrill(self) + + def GetDrillValue(self): + r"""GetDrillValue(VIA self) -> int""" + return _pcbnew.VIA_GetDrillValue(self) + + def SetDrillDefault(self): + r"""SetDrillDefault(VIA self)""" + return _pcbnew.VIA_SetDrillDefault(self) + + def IsDrillDefault(self): + r"""IsDrillDefault(VIA self) -> bool""" + return _pcbnew.VIA_IsDrillDefault(self) + + def SwapData(self, aImage): + r"""SwapData(VIA self, BOARD_ITEM aImage)""" + return _pcbnew.VIA_SwapData(self, aImage) + __swig_destroy__ = _pcbnew.delete_VIA + +# Register VIA in _pcbnew: +_pcbnew.VIA_swigregister(VIA) + +def VIA_ClassOf(aItem): + r"""VIA_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.VIA_ClassOf(aItem) + +class ZONE_CONTAINER(BOARD_CONNECTED_ITEM): + r"""Proxy of C++ ZONE_CONTAINER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + NO_HATCH = _pcbnew.ZONE_CONTAINER_NO_HATCH + + DIAGONAL_FULL = _pcbnew.ZONE_CONTAINER_DIAGONAL_FULL + + DIAGONAL_EDGE = _pcbnew.ZONE_CONTAINER_DIAGONAL_EDGE + + + def __init__(self, *args): + r""" + __init__(ZONE_CONTAINER self, BOARD parent) -> ZONE_CONTAINER + __init__(ZONE_CONTAINER self, ZONE_CONTAINER aZone) -> ZONE_CONTAINER + """ + _pcbnew.ZONE_CONTAINER_swiginit(self, _pcbnew.new_ZONE_CONTAINER(*args)) + __swig_destroy__ = _pcbnew.delete_ZONE_CONTAINER + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.ZONE_CONTAINER_ClassOf(aItem) + + def GetPosition(self): + r"""GetPosition(ZONE_CONTAINER self) -> wxPoint""" + return _pcbnew.ZONE_CONTAINER_GetPosition(self) + + def SetPosition(self, aPos): + r"""SetPosition(ZONE_CONTAINER self, wxPoint aPos)""" + return _pcbnew.ZONE_CONTAINER_SetPosition(self, aPos) + + def SetPriority(self, aPriority): + r"""SetPriority(ZONE_CONTAINER self, unsigned int aPriority)""" + return _pcbnew.ZONE_CONTAINER_SetPriority(self, aPriority) + + def GetPriority(self): + r"""GetPriority(ZONE_CONTAINER self) -> unsigned int""" + return _pcbnew.ZONE_CONTAINER_GetPriority(self) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(ZONE_CONTAINER self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.ZONE_CONTAINER_GetMsgPanelInfo(self, aUnits, aList) + + def SetLayerSet(self, aLayerSet): + r"""SetLayerSet(ZONE_CONTAINER self, LSET aLayerSet)""" + return _pcbnew.ZONE_CONTAINER_SetLayerSet(self, aLayerSet) + + def GetLayerSet(self): + r"""GetLayerSet(ZONE_CONTAINER self) -> LSET""" + return _pcbnew.ZONE_CONTAINER_GetLayerSet(self) + + def Print(self, *args): + r"""Print(ZONE_CONTAINER self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset=)""" + return _pcbnew.ZONE_CONTAINER_Print(self, *args) + + def PrintFilledArea(self, *args): + r"""PrintFilledArea(ZONE_CONTAINER self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset=)""" + return _pcbnew.ZONE_CONTAINER_PrintFilledArea(self, *args) + + def GetBoundingBox(self): + r"""GetBoundingBox(ZONE_CONTAINER self) -> EDA_RECT""" + return _pcbnew.ZONE_CONTAINER_GetBoundingBox(self) + + def GetClearance(self, aItem=None): + r"""GetClearance(ZONE_CONTAINER self, BOARD_CONNECTED_ITEM aItem=None) -> int""" + return _pcbnew.ZONE_CONTAINER_GetClearance(self, aItem) + + def IsOnCopperLayer(self): + r"""IsOnCopperLayer(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_IsOnCopperLayer(self) + + def CommonLayerExists(self, aLayerSet): + r"""CommonLayerExists(ZONE_CONTAINER self, LSET aLayerSet) -> bool""" + return _pcbnew.ZONE_CONTAINER_CommonLayerExists(self, aLayerSet) + + def SetLayer(self, aLayer): + r"""SetLayer(ZONE_CONTAINER self, PCB_LAYER_ID aLayer)""" + return _pcbnew.ZONE_CONTAINER_SetLayer(self, aLayer) + + def GetLayer(self): + r"""GetLayer(ZONE_CONTAINER self) -> PCB_LAYER_ID""" + return _pcbnew.ZONE_CONTAINER_GetLayer(self) + + def IsOnLayer(self, arg2): + r"""IsOnLayer(ZONE_CONTAINER self, PCB_LAYER_ID arg2) -> bool""" + return _pcbnew.ZONE_CONTAINER_IsOnLayer(self, arg2) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(ZONE_CONTAINER self, int [] aLayers, int & aCount)""" + return _pcbnew.ZONE_CONTAINER_ViewGetLayers(self, aLayers, aCount) + + def SetFillMode(self, aFillMode): + r"""SetFillMode(ZONE_CONTAINER self, ZONE_FILL_MODE aFillMode)""" + return _pcbnew.ZONE_CONTAINER_SetFillMode(self, aFillMode) + + def GetFillMode(self): + r"""GetFillMode(ZONE_CONTAINER self) -> ZONE_FILL_MODE""" + return _pcbnew.ZONE_CONTAINER_GetFillMode(self) + + def SetThermalReliefGap(self, aThermalReliefGap): + r"""SetThermalReliefGap(ZONE_CONTAINER self, int aThermalReliefGap)""" + return _pcbnew.ZONE_CONTAINER_SetThermalReliefGap(self, aThermalReliefGap) + + def GetThermalReliefGap(self, aPad=None): + r"""GetThermalReliefGap(ZONE_CONTAINER self, D_PAD aPad=None) -> int""" + return _pcbnew.ZONE_CONTAINER_GetThermalReliefGap(self, aPad) + + def SetThermalReliefCopperBridge(self, aThermalReliefCopperBridge): + r"""SetThermalReliefCopperBridge(ZONE_CONTAINER self, int aThermalReliefCopperBridge)""" + return _pcbnew.ZONE_CONTAINER_SetThermalReliefCopperBridge(self, aThermalReliefCopperBridge) + + def GetThermalReliefCopperBridge(self, aPad=None): + r"""GetThermalReliefCopperBridge(ZONE_CONTAINER self, D_PAD aPad=None) -> int""" + return _pcbnew.ZONE_CONTAINER_GetThermalReliefCopperBridge(self, aPad) + + def IsFilled(self): + r"""IsFilled(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_IsFilled(self) + + def SetIsFilled(self, isFilled): + r"""SetIsFilled(ZONE_CONTAINER self, bool isFilled)""" + return _pcbnew.ZONE_CONTAINER_SetIsFilled(self, isFilled) + + def NeedRefill(self): + r"""NeedRefill(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_NeedRefill(self) + + def SetNeedRefill(self, aNeedRefill): + r"""SetNeedRefill(ZONE_CONTAINER self, bool aNeedRefill)""" + return _pcbnew.ZONE_CONTAINER_SetNeedRefill(self, aNeedRefill) + + def GetZoneClearance(self): + r"""GetZoneClearance(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetZoneClearance(self) + + def SetZoneClearance(self, aZoneClearance): + r"""SetZoneClearance(ZONE_CONTAINER self, int aZoneClearance)""" + return _pcbnew.ZONE_CONTAINER_SetZoneClearance(self, aZoneClearance) + + def GetPadConnection(self, aPad=None): + r"""GetPadConnection(ZONE_CONTAINER self, D_PAD aPad=None) -> ZoneConnection""" + return _pcbnew.ZONE_CONTAINER_GetPadConnection(self, aPad) + + def SetPadConnection(self, aPadConnection): + r"""SetPadConnection(ZONE_CONTAINER self, ZoneConnection aPadConnection)""" + return _pcbnew.ZONE_CONTAINER_SetPadConnection(self, aPadConnection) + + def GetMinThickness(self): + r"""GetMinThickness(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetMinThickness(self) + + def SetMinThickness(self, aMinThickness): + r"""SetMinThickness(ZONE_CONTAINER self, int aMinThickness)""" + return _pcbnew.ZONE_CONTAINER_SetMinThickness(self, aMinThickness) + + def GetHatchFillTypeThickness(self): + r"""GetHatchFillTypeThickness(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetHatchFillTypeThickness(self) + + def SetHatchFillTypeThickness(self, aThickness): + r"""SetHatchFillTypeThickness(ZONE_CONTAINER self, int aThickness)""" + return _pcbnew.ZONE_CONTAINER_SetHatchFillTypeThickness(self, aThickness) + + def GetHatchFillTypeGap(self): + r"""GetHatchFillTypeGap(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetHatchFillTypeGap(self) + + def SetHatchFillTypeGap(self, aStep): + r"""SetHatchFillTypeGap(ZONE_CONTAINER self, int aStep)""" + return _pcbnew.ZONE_CONTAINER_SetHatchFillTypeGap(self, aStep) + + def GetHatchFillTypeOrientation(self): + r"""GetHatchFillTypeOrientation(ZONE_CONTAINER self) -> double""" + return _pcbnew.ZONE_CONTAINER_GetHatchFillTypeOrientation(self) + + def SetHatchFillTypeOrientation(self, aStep): + r"""SetHatchFillTypeOrientation(ZONE_CONTAINER self, double aStep)""" + return _pcbnew.ZONE_CONTAINER_SetHatchFillTypeOrientation(self, aStep) + + def GetHatchFillTypeSmoothingLevel(self): + r"""GetHatchFillTypeSmoothingLevel(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetHatchFillTypeSmoothingLevel(self) + + def SetHatchFillTypeSmoothingLevel(self, aLevel): + r"""SetHatchFillTypeSmoothingLevel(ZONE_CONTAINER self, int aLevel)""" + return _pcbnew.ZONE_CONTAINER_SetHatchFillTypeSmoothingLevel(self, aLevel) + + def GetHatchFillTypeSmoothingValue(self): + r"""GetHatchFillTypeSmoothingValue(ZONE_CONTAINER self) -> double""" + return _pcbnew.ZONE_CONTAINER_GetHatchFillTypeSmoothingValue(self) + + def SetHatchFillTypeSmoothingValue(self, aValue): + r"""SetHatchFillTypeSmoothingValue(ZONE_CONTAINER self, double aValue)""" + return _pcbnew.ZONE_CONTAINER_SetHatchFillTypeSmoothingValue(self, aValue) + + def GetSelectedCorner(self): + r"""GetSelectedCorner(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetSelectedCorner(self) + + def SetSelectedCorner(self, *args): + r""" + SetSelectedCorner(ZONE_CONTAINER self, int aCorner) + SetSelectedCorner(ZONE_CONTAINER self, wxPoint aPosition, int aAccuracy) + """ + return _pcbnew.ZONE_CONTAINER_SetSelectedCorner(self, *args) + + def GetLocalFlags(self): + r"""GetLocalFlags(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetLocalFlags(self) + + def SetLocalFlags(self, aFlags): + r"""SetLocalFlags(ZONE_CONTAINER self, int aFlags)""" + return _pcbnew.ZONE_CONTAINER_SetLocalFlags(self, aFlags) + + def FillSegments(self, *args): + r""" + FillSegments(ZONE_CONTAINER self) -> ZONE_SEGMENT_FILL + FillSegments(ZONE_CONTAINER self) -> ZONE_SEGMENT_FILL const & + """ + return _pcbnew.ZONE_CONTAINER_FillSegments(self, *args) + + def Outline(self, *args): + r""" + Outline(ZONE_CONTAINER self) -> SHAPE_POLY_SET + Outline(ZONE_CONTAINER self) -> SHAPE_POLY_SET + """ + return _pcbnew.ZONE_CONTAINER_Outline(self, *args) + + def SetOutline(self, aOutline): + r"""SetOutline(ZONE_CONTAINER self, SHAPE_POLY_SET aOutline)""" + return _pcbnew.ZONE_CONTAINER_SetOutline(self, aOutline) + + def HitTestFilledArea(self, aRefPos): + r"""HitTestFilledArea(ZONE_CONTAINER self, wxPoint aRefPos) -> bool""" + return _pcbnew.ZONE_CONTAINER_HitTestFilledArea(self, aRefPos) + + def GetColinearCorners(self, aBoard, aCorners): + r"""GetColinearCorners(ZONE_CONTAINER self, BOARD aBoard, std::set< VECTOR2I,std::less< VECTOR2I >,std::allocator< VECTOR2I > > & aCorners)""" + return _pcbnew.ZONE_CONTAINER_GetColinearCorners(self, aBoard, aCorners) + + def TransformSolidAreasShapesToPolygonSet(self, *args): + r"""TransformSolidAreasShapesToPolygonSet(ZONE_CONTAINER self, SHAPE_POLY_SET aCornerBuffer, int aError=ARC_HIGH_DEF)""" + return _pcbnew.ZONE_CONTAINER_TransformSolidAreasShapesToPolygonSet(self, *args) + + def TransformOutlinesShapeWithClearanceToPolygon(self, aCornerBuffer, aMinClearanceValue, aUseNetClearance, aPreserveCorners=None): + r"""TransformOutlinesShapeWithClearanceToPolygon(ZONE_CONTAINER self, SHAPE_POLY_SET aCornerBuffer, int aMinClearanceValue, bool aUseNetClearance, std::set< VECTOR2I,std::less< VECTOR2I >,std::allocator< VECTOR2I > > * aPreserveCorners=None)""" + return _pcbnew.ZONE_CONTAINER_TransformOutlinesShapeWithClearanceToPolygon(self, aCornerBuffer, aMinClearanceValue, aUseNetClearance, aPreserveCorners) + + def TransformShapeWithClearanceToPolygon(self, *args): + r"""TransformShapeWithClearanceToPolygon(ZONE_CONTAINER self, SHAPE_POLY_SET aCornerBuffer, int aClearanceValue, int aError=ARC_HIGH_DEF, bool ignoreLineWidth=False)""" + return _pcbnew.ZONE_CONTAINER_TransformShapeWithClearanceToPolygon(self, *args) + + def HitTestForCorner(self, *args): + r""" + HitTestForCorner(ZONE_CONTAINER self, wxPoint refPos, int aAccuracy, SHAPE_POLY_SET::VERTEX_INDEX & aCornerHit) -> bool + HitTestForCorner(ZONE_CONTAINER self, wxPoint refPos, int aAccuracy) -> bool + """ + return _pcbnew.ZONE_CONTAINER_HitTestForCorner(self, *args) + + def HitTestForEdge(self, *args): + r""" + HitTestForEdge(ZONE_CONTAINER self, wxPoint refPos, int aAccuracy, SHAPE_POLY_SET::VERTEX_INDEX & aCornerHit) -> bool + HitTestForEdge(ZONE_CONTAINER self, wxPoint refPos, int aAccuracy) -> bool + """ + return _pcbnew.ZONE_CONTAINER_HitTestForEdge(self, *args) + + def HitTest(self, *args): + r""" + HitTest(ZONE_CONTAINER self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(ZONE_CONTAINER self, EDA_RECT aRect, bool aContained=True, int aAccuracy=0) -> bool + """ + return _pcbnew.ZONE_CONTAINER_HitTest(self, *args) + + def UnFill(self): + r"""UnFill(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_UnFill(self) + + def Move(self, offset): + r"""Move(ZONE_CONTAINER self, wxPoint offset)""" + return _pcbnew.ZONE_CONTAINER_Move(self, offset) + + def MoveEdge(self, offset, aEdge): + r"""MoveEdge(ZONE_CONTAINER self, wxPoint offset, int aEdge)""" + return _pcbnew.ZONE_CONTAINER_MoveEdge(self, offset, aEdge) + + def Rotate(self, centre, angle): + r"""Rotate(ZONE_CONTAINER self, wxPoint centre, double angle)""" + return _pcbnew.ZONE_CONTAINER_Rotate(self, centre, angle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(ZONE_CONTAINER self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.ZONE_CONTAINER_Flip(self, aCentre, aFlipLeftRight) + + def Mirror(self, aMirrorRef, aMirrorLeftRight): + r"""Mirror(ZONE_CONTAINER self, wxPoint aMirrorRef, bool aMirrorLeftRight)""" + return _pcbnew.ZONE_CONTAINER_Mirror(self, aMirrorRef, aMirrorLeftRight) + + def GetClass(self): + r"""GetClass(ZONE_CONTAINER self) -> wxString""" + return _pcbnew.ZONE_CONTAINER_GetClass(self) + + def GetNumCorners(self): + r"""GetNumCorners(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetNumCorners(self) + + def Iterate(self): + r"""Iterate(ZONE_CONTAINER self) -> SHAPE_POLY_SET::ITERATOR""" + return _pcbnew.ZONE_CONTAINER_Iterate(self) + + def IterateWithHoles(self): + r"""IterateWithHoles(ZONE_CONTAINER self) -> SHAPE_POLY_SET::ITERATOR""" + return _pcbnew.ZONE_CONTAINER_IterateWithHoles(self) + + def CIterateWithHoles(self): + r"""CIterateWithHoles(ZONE_CONTAINER self) -> SHAPE_POLY_SET::CONST_ITERATOR""" + return _pcbnew.ZONE_CONTAINER_CIterateWithHoles(self) + + def RemoveAllContours(self): + r"""RemoveAllContours(ZONE_CONTAINER self)""" + return _pcbnew.ZONE_CONTAINER_RemoveAllContours(self) + + def GetCornerPosition(self, aCornerIndex): + r"""GetCornerPosition(ZONE_CONTAINER self, int aCornerIndex) -> VECTOR2I""" + return _pcbnew.ZONE_CONTAINER_GetCornerPosition(self, aCornerIndex) + + def SetCornerPosition(self, aCornerIndex, new_pos): + r"""SetCornerPosition(ZONE_CONTAINER self, int aCornerIndex, wxPoint new_pos)""" + return _pcbnew.ZONE_CONTAINER_SetCornerPosition(self, aCornerIndex, new_pos) + + def NewHole(self): + r"""NewHole(ZONE_CONTAINER self)""" + return _pcbnew.ZONE_CONTAINER_NewHole(self) + + def AppendCorner(self, aPosition, aHoleIdx, aAllowDuplication=False): + r"""AppendCorner(ZONE_CONTAINER self, wxPoint aPosition, int aHoleIdx, bool aAllowDuplication=False) -> bool""" + return _pcbnew.ZONE_CONTAINER_AppendCorner(self, aPosition, aHoleIdx, aAllowDuplication) + + def GetHatchStyle(self): + r"""GetHatchStyle(ZONE_CONTAINER self) -> ZONE_CONTAINER::HATCH_STYLE""" + return _pcbnew.ZONE_CONTAINER_GetHatchStyle(self) + + def SetHatchStyle(self, aStyle): + r"""SetHatchStyle(ZONE_CONTAINER self, ZONE_CONTAINER::HATCH_STYLE aStyle)""" + return _pcbnew.ZONE_CONTAINER_SetHatchStyle(self, aStyle) + + def IsSame(self, aZoneToCompare): + r"""IsSame(ZONE_CONTAINER self, ZONE_CONTAINER aZoneToCompare) -> bool""" + return _pcbnew.ZONE_CONTAINER_IsSame(self, aZoneToCompare) + + def ClearFilledPolysList(self): + r"""ClearFilledPolysList(ZONE_CONTAINER self)""" + return _pcbnew.ZONE_CONTAINER_ClearFilledPolysList(self) + + def GetFilledPolysList(self): + r"""GetFilledPolysList(ZONE_CONTAINER self) -> SHAPE_POLY_SET""" + return _pcbnew.ZONE_CONTAINER_GetFilledPolysList(self) + + def CacheTriangulation(self): + r"""CacheTriangulation(ZONE_CONTAINER self)""" + return _pcbnew.ZONE_CONTAINER_CacheTriangulation(self) + + def SetFilledPolysList(self, aPolysList): + r"""SetFilledPolysList(ZONE_CONTAINER self, SHAPE_POLY_SET aPolysList)""" + return _pcbnew.ZONE_CONTAINER_SetFilledPolysList(self, aPolysList) + + def SetRawPolysList(self, aPolysList): + r"""SetRawPolysList(ZONE_CONTAINER self, SHAPE_POLY_SET aPolysList)""" + return _pcbnew.ZONE_CONTAINER_SetRawPolysList(self, aPolysList) + + def BuildSmoothedPoly(self, aSmoothedPoly, aPreserveCorners): + r"""BuildSmoothedPoly(ZONE_CONTAINER self, SHAPE_POLY_SET aSmoothedPoly, std::set< VECTOR2I,std::less< VECTOR2I >,std::allocator< VECTOR2I > > * aPreserveCorners) -> bool""" + return _pcbnew.ZONE_CONTAINER_BuildSmoothedPoly(self, aSmoothedPoly, aPreserveCorners) + + def SetCornerSmoothingType(self, aType): + r"""SetCornerSmoothingType(ZONE_CONTAINER self, int aType)""" + return _pcbnew.ZONE_CONTAINER_SetCornerSmoothingType(self, aType) + + def GetCornerSmoothingType(self): + r"""GetCornerSmoothingType(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetCornerSmoothingType(self) + + def SetCornerRadius(self, aRadius): + r"""SetCornerRadius(ZONE_CONTAINER self, unsigned int aRadius)""" + return _pcbnew.ZONE_CONTAINER_SetCornerRadius(self, aRadius) + + def GetCornerRadius(self): + r"""GetCornerRadius(ZONE_CONTAINER self) -> unsigned int""" + return _pcbnew.ZONE_CONTAINER_GetCornerRadius(self) + + def GetFilledPolysUseThickness(self): + r"""GetFilledPolysUseThickness(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_GetFilledPolysUseThickness(self) + + def SetFilledPolysUseThickness(self, aOption): + r"""SetFilledPolysUseThickness(ZONE_CONTAINER self, bool aOption)""" + return _pcbnew.ZONE_CONTAINER_SetFilledPolysUseThickness(self, aOption) + + def AddPolygon(self, *args): + r""" + AddPolygon(ZONE_CONTAINER self, wxPoint_Vector aPolygon) + AddPolygon(ZONE_CONTAINER self, SHAPE_LINE_CHAIN aPolygon) + """ + return _pcbnew.ZONE_CONTAINER_AddPolygon(self, *args) + + def SetFillSegments(self, aSegments): + r"""SetFillSegments(ZONE_CONTAINER self, ZONE_SEGMENT_FILL const & aSegments)""" + return _pcbnew.ZONE_CONTAINER_SetFillSegments(self, aSegments) + + def RawPolysList(self): + r"""RawPolysList(ZONE_CONTAINER self) -> SHAPE_POLY_SET""" + return _pcbnew.ZONE_CONTAINER_RawPolysList(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(ZONE_CONTAINER self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.ZONE_CONTAINER_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(ZONE_CONTAINER self) -> BITMAP_DEF""" + return _pcbnew.ZONE_CONTAINER_GetMenuImage(self) + + def Clone(self): + r"""Clone(ZONE_CONTAINER self) -> EDA_ITEM""" + return _pcbnew.ZONE_CONTAINER_Clone(self) + + def GetIsKeepout(self): + r"""GetIsKeepout(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_GetIsKeepout(self) + + def GetDoNotAllowCopperPour(self): + r"""GetDoNotAllowCopperPour(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_GetDoNotAllowCopperPour(self) + + def GetDoNotAllowVias(self): + r"""GetDoNotAllowVias(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_GetDoNotAllowVias(self) + + def GetDoNotAllowTracks(self): + r"""GetDoNotAllowTracks(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_GetDoNotAllowTracks(self) + + def SetIsKeepout(self, aEnable): + r"""SetIsKeepout(ZONE_CONTAINER self, bool aEnable)""" + return _pcbnew.ZONE_CONTAINER_SetIsKeepout(self, aEnable) + + def SetDoNotAllowCopperPour(self, aEnable): + r"""SetDoNotAllowCopperPour(ZONE_CONTAINER self, bool aEnable)""" + return _pcbnew.ZONE_CONTAINER_SetDoNotAllowCopperPour(self, aEnable) + + def SetDoNotAllowVias(self, aEnable): + r"""SetDoNotAllowVias(ZONE_CONTAINER self, bool aEnable)""" + return _pcbnew.ZONE_CONTAINER_SetDoNotAllowVias(self, aEnable) + + def SetDoNotAllowTracks(self, aEnable): + r"""SetDoNotAllowTracks(ZONE_CONTAINER self, bool aEnable)""" + return _pcbnew.ZONE_CONTAINER_SetDoNotAllowTracks(self, aEnable) + + def GetHatchPitch(self): + r"""GetHatchPitch(ZONE_CONTAINER self) -> int""" + return _pcbnew.ZONE_CONTAINER_GetHatchPitch(self) + + @staticmethod + def GetDefaultHatchPitch(): + r"""GetDefaultHatchPitch() -> int""" + return _pcbnew.ZONE_CONTAINER_GetDefaultHatchPitch() + + def SetHatch(self, aHatchStyle, aHatchPitch, aRebuildHatch): + r"""SetHatch(ZONE_CONTAINER self, int aHatchStyle, int aHatchPitch, bool aRebuildHatch)""" + return _pcbnew.ZONE_CONTAINER_SetHatch(self, aHatchStyle, aHatchPitch, aRebuildHatch) + + def SetHatchPitch(self, aPitch): + r"""SetHatchPitch(ZONE_CONTAINER self, int aPitch)""" + return _pcbnew.ZONE_CONTAINER_SetHatchPitch(self, aPitch) + + def UnHatch(self): + r"""UnHatch(ZONE_CONTAINER self)""" + return _pcbnew.ZONE_CONTAINER_UnHatch(self) + + def Hatch(self): + r"""Hatch(ZONE_CONTAINER self)""" + return _pcbnew.ZONE_CONTAINER_Hatch(self) + + def GetHatchLines(self): + r"""GetHatchLines(ZONE_CONTAINER self) -> std::vector< SEG,std::allocator< SEG > > const &""" + return _pcbnew.ZONE_CONTAINER_GetHatchLines(self) + + def GetHV45(self): + r"""GetHV45(ZONE_CONTAINER self) -> bool""" + return _pcbnew.ZONE_CONTAINER_GetHV45(self) + + def SetHV45(self, aConstrain): + r"""SetHV45(ZONE_CONTAINER self, bool aConstrain)""" + return _pcbnew.ZONE_CONTAINER_SetHV45(self, aConstrain) + + def GetHashValue(self): + r"""GetHashValue(ZONE_CONTAINER self) -> MD5_HASH""" + return _pcbnew.ZONE_CONTAINER_GetHashValue(self) + + def BuildHashValue(self): + r"""BuildHashValue(ZONE_CONTAINER self)""" + return _pcbnew.ZONE_CONTAINER_BuildHashValue(self) + + def SwapData(self, aImage): + r"""SwapData(ZONE_CONTAINER self, BOARD_ITEM aImage)""" + return _pcbnew.ZONE_CONTAINER_SwapData(self, aImage) + +# Register ZONE_CONTAINER in _pcbnew: +_pcbnew.ZONE_CONTAINER_swigregister(ZONE_CONTAINER) + +def ZONE_CONTAINER_ClassOf(aItem): + r"""ZONE_CONTAINER_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.ZONE_CONTAINER_ClassOf(aItem) + +def ZONE_CONTAINER_GetDefaultHatchPitch(): + r"""ZONE_CONTAINER_GetDefaultHatchPitch() -> int""" + return _pcbnew.ZONE_CONTAINER_GetDefaultHatchPitch() + +ZONE_THERMAL_RELIEF_GAP_MIL = _pcbnew.ZONE_THERMAL_RELIEF_GAP_MIL + +ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL = _pcbnew.ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL + +ZONE_THICKNESS_MIL = _pcbnew.ZONE_THICKNESS_MIL + +ZONE_THICKNESS_MIN_VALUE_MIL = _pcbnew.ZONE_THICKNESS_MIN_VALUE_MIL + +ZONE_CLEARANCE_MIL = _pcbnew.ZONE_CLEARANCE_MIL + +ZONE_CLEARANCE_MAX_VALUE_MIL = _pcbnew.ZONE_CLEARANCE_MAX_VALUE_MIL + +ZONE_EXPORT_VALUES = _pcbnew.ZONE_EXPORT_VALUES + +PAD_ZONE_CONN_INHERITED = _pcbnew.PAD_ZONE_CONN_INHERITED + +PAD_ZONE_CONN_NONE = _pcbnew.PAD_ZONE_CONN_NONE + +PAD_ZONE_CONN_THERMAL = _pcbnew.PAD_ZONE_CONN_THERMAL + +PAD_ZONE_CONN_FULL = _pcbnew.PAD_ZONE_CONN_FULL + +PAD_ZONE_CONN_THT_THERMAL = _pcbnew.PAD_ZONE_CONN_THT_THERMAL + + +def InvokeNonCopperZonesEditor(aParent, aSettings): + r"""InvokeNonCopperZonesEditor(PCB_BASE_FRAME * aParent, ZONE_SETTINGS aSettings) -> int""" + return _pcbnew.InvokeNonCopperZonesEditor(aParent, aSettings) + +def InvokeCopperZonesEditor(aCaller, aSettings): + r"""InvokeCopperZonesEditor(PCB_BASE_FRAME * aCaller, ZONE_SETTINGS aSettings) -> int""" + return _pcbnew.InvokeCopperZonesEditor(aCaller, aSettings) + +def InvokeKeepoutAreaEditor(aCaller, aSettings): + r"""InvokeKeepoutAreaEditor(PCB_BASE_FRAME * aCaller, ZONE_SETTINGS aSettings) -> int""" + return _pcbnew.InvokeKeepoutAreaEditor(aCaller, aSettings) +class ZONE_FILLER(object): + r"""Proxy of C++ ZONE_FILLER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aBoard, aCommit=None): + r"""__init__(ZONE_FILLER self, BOARD aBoard, COMMIT * aCommit=None) -> ZONE_FILLER""" + _pcbnew.ZONE_FILLER_swiginit(self, _pcbnew.new_ZONE_FILLER(aBoard, aCommit)) + __swig_destroy__ = _pcbnew.delete_ZONE_FILLER + + def InstallNewProgressReporter(self, aParent, aTitle, aNumPhases): + r"""InstallNewProgressReporter(ZONE_FILLER self, wxWindow * aParent, wxString aTitle, int aNumPhases)""" + return _pcbnew.ZONE_FILLER_InstallNewProgressReporter(self, aParent, aTitle, aNumPhases) + + def Fill(self, aZones, aCheck=False): + r"""Fill(ZONE_FILLER self, ZONE_CONTAINERS aZones, bool aCheck=False) -> bool""" + return _pcbnew.ZONE_FILLER_Fill(self, aZones, aCheck) + +# Register ZONE_FILLER in _pcbnew: +_pcbnew.ZONE_FILLER_swigregister(ZONE_FILLER) + +ZFM_POLYGONS = _pcbnew.ZFM_POLYGONS + +ZFM_HATCH_PATTERN = _pcbnew.ZFM_HATCH_PATTERN + +class ZONE_SETTINGS(object): + r"""Proxy of C++ ZONE_SETTINGS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + SMOOTHING_UNDEFINED = _pcbnew.ZONE_SETTINGS_SMOOTHING_UNDEFINED + + SMOOTHING_NONE = _pcbnew.ZONE_SETTINGS_SMOOTHING_NONE + + SMOOTHING_CHAMFER = _pcbnew.ZONE_SETTINGS_SMOOTHING_CHAMFER + + SMOOTHING_FILLET = _pcbnew.ZONE_SETTINGS_SMOOTHING_FILLET + + SMOOTHING_LAST = _pcbnew.ZONE_SETTINGS_SMOOTHING_LAST + + m_FillMode = property(_pcbnew.ZONE_SETTINGS_m_FillMode_get, _pcbnew.ZONE_SETTINGS_m_FillMode_set, doc=r"""m_FillMode : ZONE_FILL_MODE""") + m_ZonePriority = property(_pcbnew.ZONE_SETTINGS_m_ZonePriority_get, _pcbnew.ZONE_SETTINGS_m_ZonePriority_set, doc=r"""m_ZonePriority : int""") + m_ZoneClearance = property(_pcbnew.ZONE_SETTINGS_m_ZoneClearance_get, _pcbnew.ZONE_SETTINGS_m_ZoneClearance_set, doc=r"""m_ZoneClearance : int""") + m_ZoneMinThickness = property(_pcbnew.ZONE_SETTINGS_m_ZoneMinThickness_get, _pcbnew.ZONE_SETTINGS_m_ZoneMinThickness_set, doc=r"""m_ZoneMinThickness : int""") + m_HatchFillTypeThickness = property(_pcbnew.ZONE_SETTINGS_m_HatchFillTypeThickness_get, _pcbnew.ZONE_SETTINGS_m_HatchFillTypeThickness_set, doc=r"""m_HatchFillTypeThickness : int""") + m_HatchFillTypeGap = property(_pcbnew.ZONE_SETTINGS_m_HatchFillTypeGap_get, _pcbnew.ZONE_SETTINGS_m_HatchFillTypeGap_set, doc=r"""m_HatchFillTypeGap : int""") + m_HatchFillTypeOrientation = property(_pcbnew.ZONE_SETTINGS_m_HatchFillTypeOrientation_get, _pcbnew.ZONE_SETTINGS_m_HatchFillTypeOrientation_set, doc=r"""m_HatchFillTypeOrientation : double""") + m_HatchFillTypeSmoothingLevel = property(_pcbnew.ZONE_SETTINGS_m_HatchFillTypeSmoothingLevel_get, _pcbnew.ZONE_SETTINGS_m_HatchFillTypeSmoothingLevel_set, doc=r"""m_HatchFillTypeSmoothingLevel : int""") + m_HatchFillTypeSmoothingValue = property(_pcbnew.ZONE_SETTINGS_m_HatchFillTypeSmoothingValue_get, _pcbnew.ZONE_SETTINGS_m_HatchFillTypeSmoothingValue_set, doc=r"""m_HatchFillTypeSmoothingValue : double""") + m_NetcodeSelection = property(_pcbnew.ZONE_SETTINGS_m_NetcodeSelection_get, _pcbnew.ZONE_SETTINGS_m_NetcodeSelection_set, doc=r"""m_NetcodeSelection : int""") + m_Layers = property(_pcbnew.ZONE_SETTINGS_m_Layers_get, _pcbnew.ZONE_SETTINGS_m_Layers_set, doc=r"""m_Layers : LSET""") + m_CurrentZone_Layer = property(_pcbnew.ZONE_SETTINGS_m_CurrentZone_Layer_get, _pcbnew.ZONE_SETTINGS_m_CurrentZone_Layer_set, doc=r"""m_CurrentZone_Layer : PCB_LAYER_ID""") + m_Zone_HatchingStyle = property(_pcbnew.ZONE_SETTINGS_m_Zone_HatchingStyle_get, _pcbnew.ZONE_SETTINGS_m_Zone_HatchingStyle_set, doc=r"""m_Zone_HatchingStyle : int""") + m_ThermalReliefGap = property(_pcbnew.ZONE_SETTINGS_m_ThermalReliefGap_get, _pcbnew.ZONE_SETTINGS_m_ThermalReliefGap_set, doc=r"""m_ThermalReliefGap : long""") + m_ThermalReliefCopperBridge = property(_pcbnew.ZONE_SETTINGS_m_ThermalReliefCopperBridge_get, _pcbnew.ZONE_SETTINGS_m_ThermalReliefCopperBridge_set, doc=r"""m_ThermalReliefCopperBridge : long""") + m_Zone_45_Only = property(_pcbnew.ZONE_SETTINGS_m_Zone_45_Only_get, _pcbnew.ZONE_SETTINGS_m_Zone_45_Only_set, doc=r"""m_Zone_45_Only : bool""") + + def __init__(self): + r"""__init__(ZONE_SETTINGS self) -> ZONE_SETTINGS""" + _pcbnew.ZONE_SETTINGS_swiginit(self, _pcbnew.new_ZONE_SETTINGS()) + + def __lshift__(self, aSource): + r"""__lshift__(ZONE_SETTINGS self, ZONE_CONTAINER aSource) -> ZONE_SETTINGS""" + return _pcbnew.ZONE_SETTINGS___lshift__(self, aSource) + + def SetupLayersList(self, aList, aFrame, aShowCopper): + r"""SetupLayersList(ZONE_SETTINGS self, wxDataViewListCtrl * aList, PCB_BASE_FRAME * aFrame, bool aShowCopper)""" + return _pcbnew.ZONE_SETTINGS_SetupLayersList(self, aList, aFrame, aShowCopper) + + def ExportSetting(self, aTarget, aFullExport=True): + r"""ExportSetting(ZONE_SETTINGS self, ZONE_CONTAINER aTarget, bool aFullExport=True)""" + return _pcbnew.ZONE_SETTINGS_ExportSetting(self, aTarget, aFullExport) + + def SetCornerSmoothingType(self, aType): + r"""SetCornerSmoothingType(ZONE_SETTINGS self, int aType)""" + return _pcbnew.ZONE_SETTINGS_SetCornerSmoothingType(self, aType) + + def GetCornerSmoothingType(self): + r"""GetCornerSmoothingType(ZONE_SETTINGS self) -> int""" + return _pcbnew.ZONE_SETTINGS_GetCornerSmoothingType(self) + + def SetCornerRadius(self, aRadius): + r"""SetCornerRadius(ZONE_SETTINGS self, int aRadius)""" + return _pcbnew.ZONE_SETTINGS_SetCornerRadius(self, aRadius) + + def GetCornerRadius(self): + r"""GetCornerRadius(ZONE_SETTINGS self) -> unsigned int""" + return _pcbnew.ZONE_SETTINGS_GetCornerRadius(self) + + def GetPadConnection(self): + r"""GetPadConnection(ZONE_SETTINGS self) -> ZoneConnection""" + return _pcbnew.ZONE_SETTINGS_GetPadConnection(self) + + def SetPadConnection(self, aPadConnection): + r"""SetPadConnection(ZONE_SETTINGS self, ZoneConnection aPadConnection)""" + return _pcbnew.ZONE_SETTINGS_SetPadConnection(self, aPadConnection) + + def GetIsKeepout(self): + r"""GetIsKeepout(ZONE_SETTINGS self) -> bool const""" + return _pcbnew.ZONE_SETTINGS_GetIsKeepout(self) + + def GetDoNotAllowCopperPour(self): + r"""GetDoNotAllowCopperPour(ZONE_SETTINGS self) -> bool const""" + return _pcbnew.ZONE_SETTINGS_GetDoNotAllowCopperPour(self) + + def GetDoNotAllowVias(self): + r"""GetDoNotAllowVias(ZONE_SETTINGS self) -> bool const""" + return _pcbnew.ZONE_SETTINGS_GetDoNotAllowVias(self) + + def GetDoNotAllowTracks(self): + r"""GetDoNotAllowTracks(ZONE_SETTINGS self) -> bool const""" + return _pcbnew.ZONE_SETTINGS_GetDoNotAllowTracks(self) + + def SetIsKeepout(self, aEnable): + r"""SetIsKeepout(ZONE_SETTINGS self, bool aEnable)""" + return _pcbnew.ZONE_SETTINGS_SetIsKeepout(self, aEnable) + + def SetDoNotAllowCopperPour(self, aEnable): + r"""SetDoNotAllowCopperPour(ZONE_SETTINGS self, bool aEnable)""" + return _pcbnew.ZONE_SETTINGS_SetDoNotAllowCopperPour(self, aEnable) + + def SetDoNotAllowVias(self, aEnable): + r"""SetDoNotAllowVias(ZONE_SETTINGS self, bool aEnable)""" + return _pcbnew.ZONE_SETTINGS_SetDoNotAllowVias(self, aEnable) + + def SetDoNotAllowTracks(self, aEnable): + r"""SetDoNotAllowTracks(ZONE_SETTINGS self, bool aEnable)""" + return _pcbnew.ZONE_SETTINGS_SetDoNotAllowTracks(self, aEnable) + __swig_destroy__ = _pcbnew.delete_ZONE_SETTINGS + +# Register ZONE_SETTINGS in _pcbnew: +_pcbnew.ZONE_SETTINGS_swigregister(ZONE_SETTINGS) + +class TEXTE_PCB(BOARD_ITEM, EDA_TEXT): + r"""Proxy of C++ TEXTE_PCB class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, parent): + r"""__init__(TEXTE_PCB self, BOARD_ITEM parent) -> TEXTE_PCB""" + _pcbnew.TEXTE_PCB_swiginit(self, _pcbnew.new_TEXTE_PCB(parent)) + __swig_destroy__ = _pcbnew.delete_TEXTE_PCB + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.TEXTE_PCB_ClassOf(aItem) + + def GetPosition(self): + r"""GetPosition(TEXTE_PCB self) -> wxPoint""" + return _pcbnew.TEXTE_PCB_GetPosition(self) + + def SetPosition(self, aPos): + r"""SetPosition(TEXTE_PCB self, wxPoint aPos)""" + return _pcbnew.TEXTE_PCB_SetPosition(self, aPos) + + def Move(self, aMoveVector): + r"""Move(TEXTE_PCB self, wxPoint aMoveVector)""" + return _pcbnew.TEXTE_PCB_Move(self, aMoveVector) + + def SetTextAngle(self, aAngle): + r"""SetTextAngle(TEXTE_PCB self, double aAngle)""" + return _pcbnew.TEXTE_PCB_SetTextAngle(self, aAngle) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(TEXTE_PCB self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.TEXTE_PCB_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(TEXTE_PCB self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.TEXTE_PCB_Flip(self, aCentre, aFlipLeftRight) + + def Print(self, *args): + r"""Print(TEXTE_PCB self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset=)""" + return _pcbnew.TEXTE_PCB_Print(self, *args) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(TEXTE_PCB self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.TEXTE_PCB_GetMsgPanelInfo(self, aUnits, aList) + + def HitTest(self, *args): + r""" + HitTest(TEXTE_PCB self, wxPoint aPosition, int aAccuracy) -> bool + HitTest(TEXTE_PCB self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.TEXTE_PCB_HitTest(self, *args) + + def GetClass(self): + r"""GetClass(TEXTE_PCB self) -> wxString""" + return _pcbnew.TEXTE_PCB_GetClass(self) + + def TransformShapeWithClearanceToPolygonSet(self, *args): + r"""TransformShapeWithClearanceToPolygonSet(TEXTE_PCB self, SHAPE_POLY_SET aCornerBuffer, int aClearanceValue, int aError=ARC_HIGH_DEF)""" + return _pcbnew.TEXTE_PCB_TransformShapeWithClearanceToPolygonSet(self, *args) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(TEXTE_PCB self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.TEXTE_PCB_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(TEXTE_PCB self) -> BITMAP_DEF""" + return _pcbnew.TEXTE_PCB_GetMenuImage(self) + + def GetBoundingBox(self): + r"""GetBoundingBox(TEXTE_PCB self) -> EDA_RECT""" + return _pcbnew.TEXTE_PCB_GetBoundingBox(self) + + def Clone(self): + r"""Clone(TEXTE_PCB self) -> EDA_ITEM""" + return _pcbnew.TEXTE_PCB_Clone(self) + + def SwapData(self, aImage): + r"""SwapData(TEXTE_PCB self, BOARD_ITEM aImage)""" + return _pcbnew.TEXTE_PCB_SwapData(self, aImage) + +# Register TEXTE_PCB in _pcbnew: +_pcbnew.TEXTE_PCB_swigregister(TEXTE_PCB) + +def TEXTE_PCB_ClassOf(aItem): + r"""TEXTE_PCB_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.TEXTE_PCB_ClassOf(aItem) + +class DIMENSION(BOARD_ITEM): + r"""Proxy of C++ DIMENSION class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + m_crossBarO = property(_pcbnew.DIMENSION_m_crossBarO_get, _pcbnew.DIMENSION_m_crossBarO_set, doc=r"""m_crossBarO : wxPoint""") + m_crossBarF = property(_pcbnew.DIMENSION_m_crossBarF_get, _pcbnew.DIMENSION_m_crossBarF_set, doc=r"""m_crossBarF : wxPoint""") + m_featureLineGO = property(_pcbnew.DIMENSION_m_featureLineGO_get, _pcbnew.DIMENSION_m_featureLineGO_set, doc=r"""m_featureLineGO : wxPoint""") + m_featureLineGF = property(_pcbnew.DIMENSION_m_featureLineGF_get, _pcbnew.DIMENSION_m_featureLineGF_set, doc=r"""m_featureLineGF : wxPoint""") + m_featureLineDO = property(_pcbnew.DIMENSION_m_featureLineDO_get, _pcbnew.DIMENSION_m_featureLineDO_set, doc=r"""m_featureLineDO : wxPoint""") + m_featureLineDF = property(_pcbnew.DIMENSION_m_featureLineDF_get, _pcbnew.DIMENSION_m_featureLineDF_set, doc=r"""m_featureLineDF : wxPoint""") + m_arrowD1F = property(_pcbnew.DIMENSION_m_arrowD1F_get, _pcbnew.DIMENSION_m_arrowD1F_set, doc=r"""m_arrowD1F : wxPoint""") + m_arrowD2F = property(_pcbnew.DIMENSION_m_arrowD2F_get, _pcbnew.DIMENSION_m_arrowD2F_set, doc=r"""m_arrowD2F : wxPoint""") + m_arrowG1F = property(_pcbnew.DIMENSION_m_arrowG1F_get, _pcbnew.DIMENSION_m_arrowG1F_set, doc=r"""m_arrowG1F : wxPoint""") + m_arrowG2F = property(_pcbnew.DIMENSION_m_arrowG2F_get, _pcbnew.DIMENSION_m_arrowG2F_set, doc=r"""m_arrowG2F : wxPoint""") + + def __init__(self, aParent): + r"""__init__(DIMENSION self, BOARD_ITEM aParent) -> DIMENSION""" + _pcbnew.DIMENSION_swiginit(self, _pcbnew.new_DIMENSION(aParent)) + __swig_destroy__ = _pcbnew.delete_DIMENSION + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.DIMENSION_ClassOf(aItem) + + def SetValue(self, aValue): + r"""SetValue(DIMENSION self, int aValue)""" + return _pcbnew.DIMENSION_SetValue(self, aValue) + + def GetValue(self): + r"""GetValue(DIMENSION self) -> int""" + return _pcbnew.DIMENSION_GetValue(self) + + def GetPosition(self): + r"""GetPosition(DIMENSION self) -> wxPoint""" + return _pcbnew.DIMENSION_GetPosition(self) + + def SetPosition(self, aPos): + r"""SetPosition(DIMENSION self, wxPoint aPos)""" + return _pcbnew.DIMENSION_SetPosition(self, aPos) + + def SetTextSize(self, aTextSize): + r"""SetTextSize(DIMENSION self, wxSize aTextSize)""" + return _pcbnew.DIMENSION_SetTextSize(self, aTextSize) + + def SetLayer(self, aLayer): + r"""SetLayer(DIMENSION self, PCB_LAYER_ID aLayer)""" + return _pcbnew.DIMENSION_SetLayer(self, aLayer) + + def SetShape(self, aShape): + r"""SetShape(DIMENSION self, int aShape)""" + return _pcbnew.DIMENSION_SetShape(self, aShape) + + def GetShape(self): + r"""GetShape(DIMENSION self) -> int""" + return _pcbnew.DIMENSION_GetShape(self) + + def GetWidth(self): + r"""GetWidth(DIMENSION self) -> int""" + return _pcbnew.DIMENSION_GetWidth(self) + + def SetWidth(self, aWidth): + r"""SetWidth(DIMENSION self, int aWidth)""" + return _pcbnew.DIMENSION_SetWidth(self, aWidth) + + def SetOrigin(self, aOrigin): + r"""SetOrigin(DIMENSION self, wxPoint aOrigin)""" + return _pcbnew.DIMENSION_SetOrigin(self, aOrigin) + + def GetOrigin(self): + r"""GetOrigin(DIMENSION self) -> wxPoint""" + return _pcbnew.DIMENSION_GetOrigin(self) + + def SetEnd(self, aEnd): + r"""SetEnd(DIMENSION self, wxPoint aEnd)""" + return _pcbnew.DIMENSION_SetEnd(self, aEnd) + + def GetEnd(self): + r"""GetEnd(DIMENSION self) -> wxPoint""" + return _pcbnew.DIMENSION_GetEnd(self) + + def SetHeight(self, aHeight): + r"""SetHeight(DIMENSION self, int aHeight)""" + return _pcbnew.DIMENSION_SetHeight(self, aHeight) + + def GetHeight(self): + r"""GetHeight(DIMENSION self) -> int""" + return _pcbnew.DIMENSION_GetHeight(self) + + def UpdateHeight(self): + r"""UpdateHeight(DIMENSION self)""" + return _pcbnew.DIMENSION_UpdateHeight(self) + + def GetAngle(self): + r"""GetAngle(DIMENSION self) -> double""" + return _pcbnew.DIMENSION_GetAngle(self) + + def AdjustDimensionDetails(self): + r"""AdjustDimensionDetails(DIMENSION self)""" + return _pcbnew.DIMENSION_AdjustDimensionDetails(self) + + def GetUnits(self, aUnits, aUseMils): + r"""GetUnits(DIMENSION self, EDA_UNITS_T & aUnits, bool & aUseMils)""" + return _pcbnew.DIMENSION_GetUnits(self, aUnits, aUseMils) + + def SetUnits(self, aUnits, aUseMils): + r"""SetUnits(DIMENSION self, EDA_UNITS_T aUnits, bool aUseMils)""" + return _pcbnew.DIMENSION_SetUnits(self, aUnits, aUseMils) + + def SetText(self, NewText): + r"""SetText(DIMENSION self, wxString NewText)""" + return _pcbnew.DIMENSION_SetText(self, NewText) + + def GetText(self): + r"""GetText(DIMENSION self) -> wxString""" + return _pcbnew.DIMENSION_GetText(self) + + def Text(self, *args): + r""" + Text(DIMENSION self) -> TEXTE_PCB + Text(DIMENSION self) -> TEXTE_PCB + """ + return _pcbnew.DIMENSION_Text(self, *args) + + def Print(self, *args): + r"""Print(DIMENSION self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset=)""" + return _pcbnew.DIMENSION_Print(self, *args) + + def Move(self, offset): + r"""Move(DIMENSION self, wxPoint offset)""" + return _pcbnew.DIMENSION_Move(self, offset) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(DIMENSION self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.DIMENSION_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(DIMENSION self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.DIMENSION_Flip(self, aCentre, aFlipLeftRight) + + def Mirror(self, axis_pos, aMirrorLeftRight=False): + r"""Mirror(DIMENSION self, wxPoint axis_pos, bool aMirrorLeftRight=False)""" + return _pcbnew.DIMENSION_Mirror(self, axis_pos, aMirrorLeftRight) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(DIMENSION self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.DIMENSION_GetMsgPanelInfo(self, aUnits, aList) + + def HitTest(self, *args): + r""" + HitTest(DIMENSION self, wxPoint aPosition, int aAccuracy) -> bool + HitTest(DIMENSION self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.DIMENSION_HitTest(self, *args) + + def GetClass(self): + r"""GetClass(DIMENSION self) -> wxString""" + return _pcbnew.DIMENSION_GetClass(self) + + def GetBoundingBox(self): + r"""GetBoundingBox(DIMENSION self) -> EDA_RECT""" + return _pcbnew.DIMENSION_GetBoundingBox(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(DIMENSION self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.DIMENSION_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(DIMENSION self) -> BITMAP_DEF""" + return _pcbnew.DIMENSION_GetMenuImage(self) + + def Clone(self): + r"""Clone(DIMENSION self) -> EDA_ITEM""" + return _pcbnew.DIMENSION_Clone(self) + + def ViewBBox(self): + r"""ViewBBox(DIMENSION self) -> BOX2I const""" + return _pcbnew.DIMENSION_ViewBBox(self) + + def SwapData(self, aImage): + r"""SwapData(DIMENSION self, BOARD_ITEM aImage)""" + return _pcbnew.DIMENSION_SwapData(self, aImage) + +# Register DIMENSION in _pcbnew: +_pcbnew.DIMENSION_swigregister(DIMENSION) + +def DIMENSION_ClassOf(aItem): + r"""DIMENSION_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.DIMENSION_ClassOf(aItem) + +class DRAWSEGMENT(BOARD_ITEM): + r"""Proxy of C++ DRAWSEGMENT class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aParent=None, idtype=PCB_LINE_T): + r"""__init__(DRAWSEGMENT self, BOARD_ITEM aParent=None, KICAD_T idtype=PCB_LINE_T) -> DRAWSEGMENT""" + _pcbnew.DRAWSEGMENT_swiginit(self, _pcbnew.new_DRAWSEGMENT(aParent, idtype)) + __swig_destroy__ = _pcbnew.delete_DRAWSEGMENT + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.DRAWSEGMENT_ClassOf(aItem) + + def IsPolygonFilled(self): + r"""IsPolygonFilled(DRAWSEGMENT self) -> bool""" + return _pcbnew.DRAWSEGMENT_IsPolygonFilled(self) + + def SetWidth(self, aWidth): + r"""SetWidth(DRAWSEGMENT self, int aWidth)""" + return _pcbnew.DRAWSEGMENT_SetWidth(self, aWidth) + + def GetWidth(self): + r"""GetWidth(DRAWSEGMENT self) -> int""" + return _pcbnew.DRAWSEGMENT_GetWidth(self) + + def SetAngle(self, aAngle): + r"""SetAngle(DRAWSEGMENT self, double aAngle)""" + return _pcbnew.DRAWSEGMENT_SetAngle(self, aAngle) + + def GetAngle(self): + r"""GetAngle(DRAWSEGMENT self) -> double""" + return _pcbnew.DRAWSEGMENT_GetAngle(self) + + def SetType(self, aType): + r"""SetType(DRAWSEGMENT self, int aType)""" + return _pcbnew.DRAWSEGMENT_SetType(self, aType) + + def GetType(self): + r"""GetType(DRAWSEGMENT self) -> int""" + return _pcbnew.DRAWSEGMENT_GetType(self) + + def SetShape(self, aShape): + r"""SetShape(DRAWSEGMENT self, STROKE_T aShape)""" + return _pcbnew.DRAWSEGMENT_SetShape(self, aShape) + + def GetShape(self): + r"""GetShape(DRAWSEGMENT self) -> STROKE_T""" + return _pcbnew.DRAWSEGMENT_GetShape(self) + + def SetBezControl1(self, aPoint): + r"""SetBezControl1(DRAWSEGMENT self, wxPoint aPoint)""" + return _pcbnew.DRAWSEGMENT_SetBezControl1(self, aPoint) + + def GetBezControl1(self): + r"""GetBezControl1(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetBezControl1(self) + + def SetBezControl2(self, aPoint): + r"""SetBezControl2(DRAWSEGMENT self, wxPoint aPoint)""" + return _pcbnew.DRAWSEGMENT_SetBezControl2(self, aPoint) + + def GetBezControl2(self): + r"""GetBezControl2(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetBezControl2(self) + + def SetPosition(self, aPos): + r"""SetPosition(DRAWSEGMENT self, wxPoint aPos)""" + return _pcbnew.DRAWSEGMENT_SetPosition(self, aPos) + + def GetPosition(self): + r"""GetPosition(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetPosition(self) + + def GetStart(self): + r"""GetStart(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetStart(self) + + def SetStart(self, aStart): + r"""SetStart(DRAWSEGMENT self, wxPoint aStart)""" + return _pcbnew.DRAWSEGMENT_SetStart(self, aStart) + + def SetStartY(self, y): + r"""SetStartY(DRAWSEGMENT self, int y)""" + return _pcbnew.DRAWSEGMENT_SetStartY(self, y) + + def SetStartX(self, x): + r"""SetStartX(DRAWSEGMENT self, int x)""" + return _pcbnew.DRAWSEGMENT_SetStartX(self, x) + + def GetEnd(self): + r"""GetEnd(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetEnd(self) + + def SetEnd(self, aEnd): + r"""SetEnd(DRAWSEGMENT self, wxPoint aEnd)""" + return _pcbnew.DRAWSEGMENT_SetEnd(self, aEnd) + + def SetEndY(self, y): + r"""SetEndY(DRAWSEGMENT self, int y)""" + return _pcbnew.DRAWSEGMENT_SetEndY(self, y) + + def SetEndX(self, x): + r"""SetEndX(DRAWSEGMENT self, int x)""" + return _pcbnew.DRAWSEGMENT_SetEndX(self, x) + + def GetCenter(self): + r"""GetCenter(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetCenter(self) + + def GetArcStart(self): + r"""GetArcStart(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetArcStart(self) + + def GetArcEnd(self): + r"""GetArcEnd(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetArcEnd(self) + + def GetArcMid(self): + r"""GetArcMid(DRAWSEGMENT self) -> wxPoint""" + return _pcbnew.DRAWSEGMENT_GetArcMid(self) + + def GetArcAngleStart(self): + r"""GetArcAngleStart(DRAWSEGMENT self) -> double""" + return _pcbnew.DRAWSEGMENT_GetArcAngleStart(self) + + def GetRadius(self): + r"""GetRadius(DRAWSEGMENT self) -> int""" + return _pcbnew.DRAWSEGMENT_GetRadius(self) + + def SetArcStart(self, aArcStartPoint): + r"""SetArcStart(DRAWSEGMENT self, wxPoint aArcStartPoint)""" + return _pcbnew.DRAWSEGMENT_SetArcStart(self, aArcStartPoint) + + def SetCenter(self, aCenterPoint): + r"""SetCenter(DRAWSEGMENT self, wxPoint aCenterPoint)""" + return _pcbnew.DRAWSEGMENT_SetCenter(self, aCenterPoint) + + def GetParentModule(self): + r"""GetParentModule(DRAWSEGMENT self) -> MODULE""" + return _pcbnew.DRAWSEGMENT_GetParentModule(self) + + def GetBezierPoints(self): + r"""GetBezierPoints(DRAWSEGMENT self) -> wxPoint_Vector""" + return _pcbnew.DRAWSEGMENT_GetBezierPoints(self) + + def BuildPolyPointsList(self): + r"""BuildPolyPointsList(DRAWSEGMENT self) -> wxPoint_Vector""" + return _pcbnew.DRAWSEGMENT_BuildPolyPointsList(self) + + def GetPointCount(self): + r"""GetPointCount(DRAWSEGMENT self) -> int""" + return _pcbnew.DRAWSEGMENT_GetPointCount(self) + + def GetPolyShape(self, *args): + r""" + GetPolyShape(DRAWSEGMENT self) -> SHAPE_POLY_SET + GetPolyShape(DRAWSEGMENT self) -> SHAPE_POLY_SET + """ + return _pcbnew.DRAWSEGMENT_GetPolyShape(self, *args) + + def IsPolyShapeValid(self): + r"""IsPolyShapeValid(DRAWSEGMENT self) -> bool""" + return _pcbnew.DRAWSEGMENT_IsPolyShapeValid(self) + + def SetPolyShape(self, aShape): + r"""SetPolyShape(DRAWSEGMENT self, SHAPE_POLY_SET aShape)""" + return _pcbnew.DRAWSEGMENT_SetPolyShape(self, aShape) + + def SetBezierPoints(self, aPoints): + r"""SetBezierPoints(DRAWSEGMENT self, wxPoint_Vector aPoints)""" + return _pcbnew.DRAWSEGMENT_SetBezierPoints(self, aPoints) + + def RebuildBezierToSegmentsPointsList(self, aMinSegLen): + r"""RebuildBezierToSegmentsPointsList(DRAWSEGMENT self, int aMinSegLen)""" + return _pcbnew.DRAWSEGMENT_RebuildBezierToSegmentsPointsList(self, aMinSegLen) + + def SetPolyPoints(self, aPoints): + r"""SetPolyPoints(DRAWSEGMENT self, wxPoint_Vector aPoints)""" + return _pcbnew.DRAWSEGMENT_SetPolyPoints(self, aPoints) + + def Print(self, *args): + r"""Print(DRAWSEGMENT self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint aOffset=)""" + return _pcbnew.DRAWSEGMENT_Print(self, *args) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(DRAWSEGMENT self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.DRAWSEGMENT_GetMsgPanelInfo(self, aUnits, aList) + + def GetBoundingBox(self): + r"""GetBoundingBox(DRAWSEGMENT self) -> EDA_RECT""" + return _pcbnew.DRAWSEGMENT_GetBoundingBox(self) + + def HitTest(self, *args): + r""" + HitTest(DRAWSEGMENT self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(DRAWSEGMENT self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.DRAWSEGMENT_HitTest(self, *args) + + def GetClass(self): + r"""GetClass(DRAWSEGMENT self) -> wxString""" + return _pcbnew.DRAWSEGMENT_GetClass(self) + + def GetLength(self): + r"""GetLength(DRAWSEGMENT self) -> double""" + return _pcbnew.DRAWSEGMENT_GetLength(self) + + def Move(self, aMoveVector): + r"""Move(DRAWSEGMENT self, wxPoint aMoveVector)""" + return _pcbnew.DRAWSEGMENT_Move(self, aMoveVector) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(DRAWSEGMENT self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.DRAWSEGMENT_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(DRAWSEGMENT self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.DRAWSEGMENT_Flip(self, aCentre, aFlipLeftRight) + + def TransformShapeWithClearanceToPolygon(self, *args): + r"""TransformShapeWithClearanceToPolygon(DRAWSEGMENT self, SHAPE_POLY_SET aCornerBuffer, int aClearanceValue, int aError=ARC_HIGH_DEF, bool ignoreLineWidth=False)""" + return _pcbnew.DRAWSEGMENT_TransformShapeWithClearanceToPolygon(self, *args) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(DRAWSEGMENT self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.DRAWSEGMENT_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(DRAWSEGMENT self) -> BITMAP_DEF""" + return _pcbnew.DRAWSEGMENT_GetMenuImage(self) + + def Clone(self): + r"""Clone(DRAWSEGMENT self) -> EDA_ITEM""" + return _pcbnew.DRAWSEGMENT_Clone(self) + + def ViewBBox(self): + r"""ViewBBox(DRAWSEGMENT self) -> BOX2I const""" + return _pcbnew.DRAWSEGMENT_ViewBBox(self) + + def SwapData(self, aImage): + r"""SwapData(DRAWSEGMENT self, BOARD_ITEM aImage)""" + return _pcbnew.DRAWSEGMENT_SwapData(self, aImage) + + def GetShapeStr(self): + return self.ShowShape(self.GetShape()) + + +# Register DRAWSEGMENT in _pcbnew: +_pcbnew.DRAWSEGMENT_swigregister(DRAWSEGMENT) + +def DRAWSEGMENT_ClassOf(aItem): + r"""DRAWSEGMENT_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.DRAWSEGMENT_ClassOf(aItem) + +MARKER_SHAPE_POINT_COUNT = _pcbnew.MARKER_SHAPE_POINT_COUNT + +class MARKER_PCB(BOARD_ITEM, MARKER_BASE): + r"""Proxy of C++ MARKER_PCB class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(MARKER_PCB self, BOARD_ITEM aParent) -> MARKER_PCB + __init__(MARKER_PCB self, EDA_UNITS_T aUnits, int aErrorCode, wxPoint aMarkerPos, BOARD_ITEM aItem, wxPoint aPos, BOARD_ITEM bItem=None, wxPoint bPos=wxPoint()) -> MARKER_PCB + __init__(MARKER_PCB self, int aErrorCode, wxPoint aMarkerPos, wxString aText, wxPoint aPos, wxString bText=wxEmptyString, wxPoint bPos=wxPoint()) -> MARKER_PCB + """ + _pcbnew.MARKER_PCB_swiginit(self, _pcbnew.new_MARKER_PCB(*args)) + __swig_destroy__ = _pcbnew.delete_MARKER_PCB + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.MARKER_PCB_ClassOf(aItem) + + def Move(self, aMoveVector): + r"""Move(MARKER_PCB self, wxPoint aMoveVector)""" + return _pcbnew.MARKER_PCB_Move(self, aMoveVector) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(MARKER_PCB self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.MARKER_PCB_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(MARKER_PCB self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.MARKER_PCB_Flip(self, aCentre, aFlipLeftRight) + + def Print(self, *args): + r"""Print(MARKER_PCB self, PCB_BASE_FRAME * aFrame, wxDC * aDC, wxPoint aOffset=)""" + return _pcbnew.MARKER_PCB_Print(self, *args) + + def GetPosition(self): + r"""GetPosition(MARKER_PCB self) -> wxPoint""" + return _pcbnew.MARKER_PCB_GetPosition(self) + + def SetPosition(self, aPos): + r"""SetPosition(MARKER_PCB self, wxPoint aPos)""" + return _pcbnew.MARKER_PCB_SetPosition(self, aPos) + + def HitTest(self, aPosition, aAccuracy=0): + r"""HitTest(MARKER_PCB self, wxPoint aPosition, int aAccuracy=0) -> bool""" + return _pcbnew.MARKER_PCB_HitTest(self, aPosition, aAccuracy) + + def IsOnLayer(self, aLayer): + r"""IsOnLayer(MARKER_PCB self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.MARKER_PCB_IsOnLayer(self, aLayer) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(MARKER_PCB self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.MARKER_PCB_GetMsgPanelInfo(self, aUnits, aList) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(MARKER_PCB self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.MARKER_PCB_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(MARKER_PCB self) -> BITMAP_DEF""" + return _pcbnew.MARKER_PCB_GetMenuImage(self) + + def ViewBBox(self): + r"""ViewBBox(MARKER_PCB self) -> BOX2I const""" + return _pcbnew.MARKER_PCB_ViewBBox(self) + + def GetBoundingBox(self): + r"""GetBoundingBox(MARKER_PCB self) -> EDA_RECT""" + return _pcbnew.MARKER_PCB_GetBoundingBox(self) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(MARKER_PCB self, int [] aLayers, int & aCount)""" + return _pcbnew.MARKER_PCB_ViewGetLayers(self, aLayers, aCount) + + def GetClass(self): + r"""GetClass(MARKER_PCB self) -> wxString""" + return _pcbnew.MARKER_PCB_GetClass(self) + +# Register MARKER_PCB in _pcbnew: +_pcbnew.MARKER_PCB_swigregister(MARKER_PCB) + +def MARKER_PCB_ClassOf(aItem): + r"""MARKER_PCB_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.MARKER_PCB_ClassOf(aItem) + +class PCB_TARGET(BOARD_ITEM): + r"""Proxy of C++ PCB_TARGET class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(PCB_TARGET self, BOARD_ITEM aParent) -> PCB_TARGET + __init__(PCB_TARGET self, BOARD_ITEM aParent, int aShape, PCB_LAYER_ID aLayer, wxPoint aPos, int aSize, int aWidth) -> PCB_TARGET + """ + _pcbnew.PCB_TARGET_swiginit(self, _pcbnew.new_PCB_TARGET(*args)) + __swig_destroy__ = _pcbnew.delete_PCB_TARGET + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.PCB_TARGET_ClassOf(aItem) + + def SetPosition(self, aPos): + r"""SetPosition(PCB_TARGET self, wxPoint aPos)""" + return _pcbnew.PCB_TARGET_SetPosition(self, aPos) + + def GetPosition(self): + r"""GetPosition(PCB_TARGET self) -> wxPoint""" + return _pcbnew.PCB_TARGET_GetPosition(self) + + def SetShape(self, aShape): + r"""SetShape(PCB_TARGET self, int aShape)""" + return _pcbnew.PCB_TARGET_SetShape(self, aShape) + + def GetShape(self): + r"""GetShape(PCB_TARGET self) -> int""" + return _pcbnew.PCB_TARGET_GetShape(self) + + def SetSize(self, aSize): + r"""SetSize(PCB_TARGET self, int aSize)""" + return _pcbnew.PCB_TARGET_SetSize(self, aSize) + + def GetSize(self): + r"""GetSize(PCB_TARGET self) -> int""" + return _pcbnew.PCB_TARGET_GetSize(self) + + def SetWidth(self, aWidth): + r"""SetWidth(PCB_TARGET self, int aWidth)""" + return _pcbnew.PCB_TARGET_SetWidth(self, aWidth) + + def GetWidth(self): + r"""GetWidth(PCB_TARGET self) -> int""" + return _pcbnew.PCB_TARGET_GetWidth(self) + + def Move(self, aMoveVector): + r"""Move(PCB_TARGET self, wxPoint aMoveVector)""" + return _pcbnew.PCB_TARGET_Move(self, aMoveVector) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(PCB_TARGET self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.PCB_TARGET_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(PCB_TARGET self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.PCB_TARGET_Flip(self, aCentre, aFlipLeftRight) + + def Print(self, *args): + r"""Print(PCB_TARGET self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset=)""" + return _pcbnew.PCB_TARGET_Print(self, *args) + + def GetClass(self): + r"""GetClass(PCB_TARGET self) -> wxString""" + return _pcbnew.PCB_TARGET_GetClass(self) + + def HitTest(self, *args): + r""" + HitTest(PCB_TARGET self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(PCB_TARGET self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.PCB_TARGET_HitTest(self, *args) + + def GetBoundingBox(self): + r"""GetBoundingBox(PCB_TARGET self) -> EDA_RECT""" + return _pcbnew.PCB_TARGET_GetBoundingBox(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(PCB_TARGET self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.PCB_TARGET_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(PCB_TARGET self) -> BITMAP_DEF""" + return _pcbnew.PCB_TARGET_GetMenuImage(self) + + def Clone(self): + r"""Clone(PCB_TARGET self) -> EDA_ITEM""" + return _pcbnew.PCB_TARGET_Clone(self) + + def SwapData(self, aImage): + r"""SwapData(PCB_TARGET self, BOARD_ITEM aImage)""" + return _pcbnew.PCB_TARGET_SwapData(self, aImage) + +# Register PCB_TARGET in _pcbnew: +_pcbnew.PCB_TARGET_swigregister(PCB_TARGET) + +def PCB_TARGET_ClassOf(aItem): + r"""PCB_TARGET_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.PCB_TARGET_ClassOf(aItem) + +class TEXTE_MODULE(BOARD_ITEM, EDA_TEXT): + r"""Proxy of C++ TEXTE_MODULE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + TEXT_is_REFERENCE = _pcbnew.TEXTE_MODULE_TEXT_is_REFERENCE + + TEXT_is_VALUE = _pcbnew.TEXTE_MODULE_TEXT_is_VALUE + + TEXT_is_DIVERS = _pcbnew.TEXTE_MODULE_TEXT_is_DIVERS + + + def __init__(self, *args): + r"""__init__(TEXTE_MODULE self, MODULE parent, TEXTE_MODULE::TEXT_TYPE text_type=TEXT_is_DIVERS) -> TEXTE_MODULE""" + _pcbnew.TEXTE_MODULE_swiginit(self, _pcbnew.new_TEXTE_MODULE(*args)) + __swig_destroy__ = _pcbnew.delete_TEXTE_MODULE + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.TEXTE_MODULE_ClassOf(aItem) + + def GetPosition(self): + r"""GetPosition(TEXTE_MODULE self) -> wxPoint""" + return _pcbnew.TEXTE_MODULE_GetPosition(self) + + def SetPosition(self, aPos): + r"""SetPosition(TEXTE_MODULE self, wxPoint aPos)""" + return _pcbnew.TEXTE_MODULE_SetPosition(self, aPos) + + def SetTextAngle(self, aAngle): + r"""SetTextAngle(TEXTE_MODULE self, double aAngle)""" + return _pcbnew.TEXTE_MODULE_SetTextAngle(self, aAngle) + + def KeepUpright(self, aOldOrientation, aNewOrientation): + r"""KeepUpright(TEXTE_MODULE self, double aOldOrientation, double aNewOrientation)""" + return _pcbnew.TEXTE_MODULE_KeepUpright(self, aOldOrientation, aNewOrientation) + + def IsKeepUpright(self): + r"""IsKeepUpright(TEXTE_MODULE self) -> bool""" + return _pcbnew.TEXTE_MODULE_IsKeepUpright(self) + + def SetKeepUpright(self, aKeepUpright): + r"""SetKeepUpright(TEXTE_MODULE self, bool aKeepUpright)""" + return _pcbnew.TEXTE_MODULE_SetKeepUpright(self, aKeepUpright) + + def Rotate(self, aOffset, aAngle): + r"""Rotate(TEXTE_MODULE self, wxPoint aOffset, double aAngle)""" + return _pcbnew.TEXTE_MODULE_Rotate(self, aOffset, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(TEXTE_MODULE self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.TEXTE_MODULE_Flip(self, aCentre, aFlipLeftRight) + + def IsParentFlipped(self): + r"""IsParentFlipped(TEXTE_MODULE self) -> bool""" + return _pcbnew.TEXTE_MODULE_IsParentFlipped(self) + + def Mirror(self, aCentre, aMirrorAroundXAxis): + r"""Mirror(TEXTE_MODULE self, wxPoint aCentre, bool aMirrorAroundXAxis)""" + return _pcbnew.TEXTE_MODULE_Mirror(self, aCentre, aMirrorAroundXAxis) + + def Move(self, aMoveVector): + r"""Move(TEXTE_MODULE self, wxPoint aMoveVector)""" + return _pcbnew.TEXTE_MODULE_Move(self, aMoveVector) + + def SetType(self, aType): + r"""SetType(TEXTE_MODULE self, TEXTE_MODULE::TEXT_TYPE aType)""" + return _pcbnew.TEXTE_MODULE_SetType(self, aType) + + def GetType(self): + r"""GetType(TEXTE_MODULE self) -> TEXTE_MODULE::TEXT_TYPE""" + return _pcbnew.TEXTE_MODULE_GetType(self) + + def SetEffects(self, aSrc): + r"""SetEffects(TEXTE_MODULE self, TEXTE_MODULE aSrc)""" + return _pcbnew.TEXTE_MODULE_SetEffects(self, aSrc) + + def SwapEffects(self, aTradingPartner): + r"""SwapEffects(TEXTE_MODULE self, TEXTE_MODULE aTradingPartner)""" + return _pcbnew.TEXTE_MODULE_SwapEffects(self, aTradingPartner) + + def SetPos0(self, aPos): + r"""SetPos0(TEXTE_MODULE self, wxPoint aPos)""" + return _pcbnew.TEXTE_MODULE_SetPos0(self, aPos) + + def GetPos0(self): + r"""GetPos0(TEXTE_MODULE self) -> wxPoint""" + return _pcbnew.TEXTE_MODULE_GetPos0(self) + + def GetLength(self): + r"""GetLength(TEXTE_MODULE self) -> int""" + return _pcbnew.TEXTE_MODULE_GetLength(self) + + def GetDrawRotation(self): + r"""GetDrawRotation(TEXTE_MODULE self) -> double""" + return _pcbnew.TEXTE_MODULE_GetDrawRotation(self) + + def GetDrawRotationRadians(self): + r"""GetDrawRotationRadians(TEXTE_MODULE self) -> double""" + return _pcbnew.TEXTE_MODULE_GetDrawRotationRadians(self) + + def GetBoundingBox(self): + r"""GetBoundingBox(TEXTE_MODULE self) -> EDA_RECT""" + return _pcbnew.TEXTE_MODULE_GetBoundingBox(self) + + def SetDrawCoord(self): + r"""SetDrawCoord(TEXTE_MODULE self)""" + return _pcbnew.TEXTE_MODULE_SetDrawCoord(self) + + def SetLocalCoord(self): + r"""SetLocalCoord(TEXTE_MODULE self)""" + return _pcbnew.TEXTE_MODULE_SetLocalCoord(self) + + def Print(self, *args): + r"""Print(TEXTE_MODULE self, PCB_BASE_FRAME * aFrame, wxDC * aDC, wxPoint aOffset=)""" + return _pcbnew.TEXTE_MODULE_Print(self, *args) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(TEXTE_MODULE self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.TEXTE_MODULE_GetMsgPanelInfo(self, aUnits, aList) + + def TextHitTest(self, *args): + r""" + TextHitTest(TEXTE_MODULE self, wxPoint aPoint, int aAccuracy=0) -> bool + TextHitTest(TEXTE_MODULE self, EDA_RECT aRect, bool aContains, int aAccuracy=0) -> bool + """ + return _pcbnew.TEXTE_MODULE_TextHitTest(self, *args) + + def HitTest(self, *args): + r""" + HitTest(TEXTE_MODULE self, wxPoint aPosition, int aAccuracy) -> bool + HitTest(TEXTE_MODULE self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.TEXTE_MODULE_HitTest(self, *args) + + def GetClass(self): + r"""GetClass(TEXTE_MODULE self) -> wxString""" + return _pcbnew.TEXTE_MODULE_GetClass(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(TEXTE_MODULE self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.TEXTE_MODULE_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(TEXTE_MODULE self) -> BITMAP_DEF""" + return _pcbnew.TEXTE_MODULE_GetMenuImage(self) + + def Clone(self): + r"""Clone(TEXTE_MODULE self) -> EDA_ITEM""" + return _pcbnew.TEXTE_MODULE_Clone(self) + + def GetShownText(self): + r"""GetShownText(TEXTE_MODULE self) -> wxString""" + return _pcbnew.TEXTE_MODULE_GetShownText(self) + + def ViewBBox(self): + r"""ViewBBox(TEXTE_MODULE self) -> BOX2I const""" + return _pcbnew.TEXTE_MODULE_ViewBBox(self) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(TEXTE_MODULE self, int [] aLayers, int & aCount)""" + return _pcbnew.TEXTE_MODULE_ViewGetLayers(self, aLayers, aCount) + + def ViewGetLOD(self, aLayer, aView): + r"""ViewGetLOD(TEXTE_MODULE self, int aLayer, KIGFX::VIEW * aView) -> unsigned int""" + return _pcbnew.TEXTE_MODULE_ViewGetLOD(self, aLayer, aView) + +# Register TEXTE_MODULE in _pcbnew: +_pcbnew.TEXTE_MODULE_swigregister(TEXTE_MODULE) + +def TEXTE_MODULE_ClassOf(aItem): + r"""TEXTE_MODULE_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.TEXTE_MODULE_ClassOf(aItem) + +class EDGE_MODULE(DRAWSEGMENT): + r"""Proxy of C++ EDGE_MODULE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, parent, aShape=S_SEGMENT): + r"""__init__(EDGE_MODULE self, MODULE parent, STROKE_T aShape=S_SEGMENT) -> EDGE_MODULE""" + _pcbnew.EDGE_MODULE_swiginit(self, _pcbnew.new_EDGE_MODULE(parent, aShape)) + __swig_destroy__ = _pcbnew.delete_EDGE_MODULE + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.EDGE_MODULE_ClassOf(aItem) + + def Move(self, aMoveVector): + r"""Move(EDGE_MODULE self, wxPoint aMoveVector)""" + return _pcbnew.EDGE_MODULE_Move(self, aMoveVector) + + def Mirror(self, aCentre, aMirrorAroundXAxis): + r"""Mirror(EDGE_MODULE self, wxPoint aCentre, bool aMirrorAroundXAxis)""" + return _pcbnew.EDGE_MODULE_Mirror(self, aCentre, aMirrorAroundXAxis) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(EDGE_MODULE self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.EDGE_MODULE_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(EDGE_MODULE self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.EDGE_MODULE_Flip(self, aCentre, aFlipLeftRight) + + def IsParentFlipped(self): + r"""IsParentFlipped(EDGE_MODULE self) -> bool""" + return _pcbnew.EDGE_MODULE_IsParentFlipped(self) + + def SetStart0(self, aPoint): + r"""SetStart0(EDGE_MODULE self, wxPoint aPoint)""" + return _pcbnew.EDGE_MODULE_SetStart0(self, aPoint) + + def GetStart0(self): + r"""GetStart0(EDGE_MODULE self) -> wxPoint""" + return _pcbnew.EDGE_MODULE_GetStart0(self) + + def SetEnd0(self, aPoint): + r"""SetEnd0(EDGE_MODULE self, wxPoint aPoint)""" + return _pcbnew.EDGE_MODULE_SetEnd0(self, aPoint) + + def GetEnd0(self): + r"""GetEnd0(EDGE_MODULE self) -> wxPoint""" + return _pcbnew.EDGE_MODULE_GetEnd0(self) + + def SetBezier0_C1(self, aPoint): + r"""SetBezier0_C1(EDGE_MODULE self, wxPoint aPoint)""" + return _pcbnew.EDGE_MODULE_SetBezier0_C1(self, aPoint) + + def GetBezier0_C1(self): + r"""GetBezier0_C1(EDGE_MODULE self) -> wxPoint""" + return _pcbnew.EDGE_MODULE_GetBezier0_C1(self) + + def SetBezier0_C2(self, aPoint): + r"""SetBezier0_C2(EDGE_MODULE self, wxPoint aPoint)""" + return _pcbnew.EDGE_MODULE_SetBezier0_C2(self, aPoint) + + def GetBezier0_C2(self): + r"""GetBezier0_C2(EDGE_MODULE self) -> wxPoint""" + return _pcbnew.EDGE_MODULE_GetBezier0_C2(self) + + def SetLocalCoord(self): + r"""SetLocalCoord(EDGE_MODULE self)""" + return _pcbnew.EDGE_MODULE_SetLocalCoord(self) + + def SetDrawCoord(self): + r"""SetDrawCoord(EDGE_MODULE self)""" + return _pcbnew.EDGE_MODULE_SetDrawCoord(self) + + def Print(self, *args): + r"""Print(EDGE_MODULE self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset=)""" + return _pcbnew.EDGE_MODULE_Print(self, *args) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(EDGE_MODULE self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.EDGE_MODULE_GetMsgPanelInfo(self, aUnits, aList) + + def GetClass(self): + r"""GetClass(EDGE_MODULE self) -> wxString""" + return _pcbnew.EDGE_MODULE_GetClass(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(EDGE_MODULE self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.EDGE_MODULE_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(EDGE_MODULE self) -> BITMAP_DEF""" + return _pcbnew.EDGE_MODULE_GetMenuImage(self) + + def Clone(self): + r"""Clone(EDGE_MODULE self) -> EDA_ITEM""" + return _pcbnew.EDGE_MODULE_Clone(self) + + def ViewGetLOD(self, aLayer, aView): + r"""ViewGetLOD(EDGE_MODULE self, int aLayer, KIGFX::VIEW * aView) -> unsigned int""" + return _pcbnew.EDGE_MODULE_ViewGetLOD(self, aLayer, aView) + m_Start0 = property(_pcbnew.EDGE_MODULE_m_Start0_get, _pcbnew.EDGE_MODULE_m_Start0_set, doc=r"""m_Start0 : wxPoint""") + m_End0 = property(_pcbnew.EDGE_MODULE_m_End0_get, _pcbnew.EDGE_MODULE_m_End0_set, doc=r"""m_End0 : wxPoint""") + m_Bezier0_C1 = property(_pcbnew.EDGE_MODULE_m_Bezier0_C1_get, _pcbnew.EDGE_MODULE_m_Bezier0_C1_set, doc=r"""m_Bezier0_C1 : wxPoint""") + m_Bezier0_C2 = property(_pcbnew.EDGE_MODULE_m_Bezier0_C2_get, _pcbnew.EDGE_MODULE_m_Bezier0_C2_set, doc=r"""m_Bezier0_C2 : wxPoint""") + +# Register EDGE_MODULE in _pcbnew: +_pcbnew.EDGE_MODULE_swigregister(EDGE_MODULE) + +def EDGE_MODULE_ClassOf(aItem): + r"""EDGE_MODULE_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.EDGE_MODULE_ClassOf(aItem) + +CH_VISIBLE = _pcbnew.CH_VISIBLE + +CH_UNROUTABLE = _pcbnew.CH_UNROUTABLE + +CH_ROUTE_REQ = _pcbnew.CH_ROUTE_REQ + +CH_ACTIF = _pcbnew.CH_ACTIF + +LOCAL_RATSNEST_ITEM = _pcbnew.LOCAL_RATSNEST_ITEM + +class D_PADS(object): + r"""Proxy of C++ std::vector< D_PAD * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(D_PADS self) -> SwigPyIterator""" + return _pcbnew.D_PADS_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(D_PADS self) -> bool""" + return _pcbnew.D_PADS___nonzero__(self) + + def __bool__(self): + r"""__bool__(D_PADS self) -> bool""" + return _pcbnew.D_PADS___bool__(self) + + def __len__(self): + r"""__len__(D_PADS self) -> std::vector< D_PAD * >::size_type""" + return _pcbnew.D_PADS___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(D_PADS self, std::vector< D_PAD * >::difference_type i, std::vector< D_PAD * >::difference_type j) -> D_PADS""" + return _pcbnew.D_PADS___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(D_PADS self, std::vector< D_PAD * >::difference_type i, std::vector< D_PAD * >::difference_type j) + __setslice__(D_PADS self, std::vector< D_PAD * >::difference_type i, std::vector< D_PAD * >::difference_type j, D_PADS v) + """ + return _pcbnew.D_PADS___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(D_PADS self, std::vector< D_PAD * >::difference_type i, std::vector< D_PAD * >::difference_type j)""" + return _pcbnew.D_PADS___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(D_PADS self, std::vector< D_PAD * >::difference_type i) + __delitem__(D_PADS self, PySliceObject * slice) + """ + return _pcbnew.D_PADS___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(D_PADS self, PySliceObject * slice) -> D_PADS + __getitem__(D_PADS self, std::vector< D_PAD * >::difference_type i) -> D_PAD + """ + return _pcbnew.D_PADS___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(D_PADS self, PySliceObject * slice, D_PADS v) + __setitem__(D_PADS self, PySliceObject * slice) + __setitem__(D_PADS self, std::vector< D_PAD * >::difference_type i, D_PAD x) + """ + return _pcbnew.D_PADS___setitem__(self, *args) + + def pop(self): + r"""pop(D_PADS self) -> D_PAD""" + return _pcbnew.D_PADS_pop(self) + + def append(self, x): + r"""append(D_PADS self, D_PAD x)""" + return _pcbnew.D_PADS_append(self, x) + + def empty(self): + r"""empty(D_PADS self) -> bool""" + return _pcbnew.D_PADS_empty(self) + + def size(self): + r"""size(D_PADS self) -> std::vector< D_PAD * >::size_type""" + return _pcbnew.D_PADS_size(self) + + def swap(self, v): + r"""swap(D_PADS self, D_PADS v)""" + return _pcbnew.D_PADS_swap(self, v) + + def begin(self): + r"""begin(D_PADS self) -> std::vector< D_PAD * >::iterator""" + return _pcbnew.D_PADS_begin(self) + + def end(self): + r"""end(D_PADS self) -> std::vector< D_PAD * >::iterator""" + return _pcbnew.D_PADS_end(self) + + def rbegin(self): + r"""rbegin(D_PADS self) -> std::vector< D_PAD * >::reverse_iterator""" + return _pcbnew.D_PADS_rbegin(self) + + def rend(self): + r"""rend(D_PADS self) -> std::vector< D_PAD * >::reverse_iterator""" + return _pcbnew.D_PADS_rend(self) + + def clear(self): + r"""clear(D_PADS self)""" + return _pcbnew.D_PADS_clear(self) + + def get_allocator(self): + r"""get_allocator(D_PADS self) -> std::vector< D_PAD * >::allocator_type""" + return _pcbnew.D_PADS_get_allocator(self) + + def pop_back(self): + r"""pop_back(D_PADS self)""" + return _pcbnew.D_PADS_pop_back(self) + + def erase(self, *args): + r""" + erase(D_PADS self, std::vector< D_PAD * >::iterator pos) -> std::vector< D_PAD * >::iterator + erase(D_PADS self, std::vector< D_PAD * >::iterator first, std::vector< D_PAD * >::iterator last) -> std::vector< D_PAD * >::iterator + """ + return _pcbnew.D_PADS_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(D_PADS self) -> D_PADS + __init__(D_PADS self, D_PADS other) -> D_PADS + __init__(D_PADS self, std::vector< D_PAD * >::size_type size) -> D_PADS + __init__(D_PADS self, std::vector< D_PAD * >::size_type size, D_PAD value) -> D_PADS + """ + _pcbnew.D_PADS_swiginit(self, _pcbnew.new_D_PADS(*args)) + + def push_back(self, x): + r"""push_back(D_PADS self, D_PAD x)""" + return _pcbnew.D_PADS_push_back(self, x) + + def front(self): + r"""front(D_PADS self) -> D_PAD""" + return _pcbnew.D_PADS_front(self) + + def back(self): + r"""back(D_PADS self) -> D_PAD""" + return _pcbnew.D_PADS_back(self) + + def assign(self, n, x): + r"""assign(D_PADS self, std::vector< D_PAD * >::size_type n, D_PAD x)""" + return _pcbnew.D_PADS_assign(self, n, x) + + def resize(self, *args): + r""" + resize(D_PADS self, std::vector< D_PAD * >::size_type new_size) + resize(D_PADS self, std::vector< D_PAD * >::size_type new_size, D_PAD x) + """ + return _pcbnew.D_PADS_resize(self, *args) + + def insert(self, *args): + r""" + insert(D_PADS self, std::vector< D_PAD * >::iterator pos, D_PAD x) -> std::vector< D_PAD * >::iterator + insert(D_PADS self, std::vector< D_PAD * >::iterator pos, std::vector< D_PAD * >::size_type n, D_PAD x) + """ + return _pcbnew.D_PADS_insert(self, *args) + + def reserve(self, n): + r"""reserve(D_PADS self, std::vector< D_PAD * >::size_type n)""" + return _pcbnew.D_PADS_reserve(self, n) + + def capacity(self): + r"""capacity(D_PADS self) -> std::vector< D_PAD * >::size_type""" + return _pcbnew.D_PADS_capacity(self) + __swig_destroy__ = _pcbnew.delete_D_PADS + +# Register D_PADS in _pcbnew: +_pcbnew.D_PADS_swigregister(D_PADS) + +class NETINFO_ITEM(BOARD_ITEM): + r"""Proxy of C++ NETINFO_ITEM class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r"""__init__(NETINFO_ITEM self, BOARD aParent, wxString aNetName=wxEmptyString, int aNetCode=-1) -> NETINFO_ITEM""" + _pcbnew.NETINFO_ITEM_swiginit(self, _pcbnew.new_NETINFO_ITEM(*args)) + __swig_destroy__ = _pcbnew.delete_NETINFO_ITEM + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.NETINFO_ITEM_ClassOf(aItem) + + def GetClass(self): + r"""GetClass(NETINFO_ITEM self) -> wxString""" + return _pcbnew.NETINFO_ITEM_GetClass(self) + + def GetPosition(self): + r"""GetPosition(NETINFO_ITEM self) -> wxPoint""" + return _pcbnew.NETINFO_ITEM_GetPosition(self) + + def SetPosition(self, aPos): + r"""SetPosition(NETINFO_ITEM self, wxPoint aPos)""" + return _pcbnew.NETINFO_ITEM_SetPosition(self, aPos) + + def SetClass(self, aNetClass): + r"""SetClass(NETINFO_ITEM self, NETCLASSPTR const & aNetClass)""" + return _pcbnew.NETINFO_ITEM_SetClass(self, aNetClass) + + def GetNetClass(self): + r"""GetNetClass(NETINFO_ITEM self) -> NETCLASSPTR""" + return _pcbnew.NETINFO_ITEM_GetNetClass(self) + + def GetClassName(self): + r"""GetClassName(NETINFO_ITEM self) -> wxString""" + return _pcbnew.NETINFO_ITEM_GetClassName(self) + + def GetTrackWidth(self): + r"""GetTrackWidth(NETINFO_ITEM self) -> int""" + return _pcbnew.NETINFO_ITEM_GetTrackWidth(self) + + def GetViaSize(self): + r"""GetViaSize(NETINFO_ITEM self) -> int""" + return _pcbnew.NETINFO_ITEM_GetViaSize(self) + + def GetMicroViaSize(self): + r"""GetMicroViaSize(NETINFO_ITEM self) -> int""" + return _pcbnew.NETINFO_ITEM_GetMicroViaSize(self) + + def GetViaDrillSize(self): + r"""GetViaDrillSize(NETINFO_ITEM self) -> int""" + return _pcbnew.NETINFO_ITEM_GetViaDrillSize(self) + + def GetMicroViaDrillSize(self): + r"""GetMicroViaDrillSize(NETINFO_ITEM self) -> int""" + return _pcbnew.NETINFO_ITEM_GetMicroViaDrillSize(self) + + def GetClearance(self): + r"""GetClearance(NETINFO_ITEM self) -> int""" + return _pcbnew.NETINFO_ITEM_GetClearance(self) + + def Print(self, aFrame, DC, offset): + r"""Print(NETINFO_ITEM self, PCB_BASE_FRAME * aFrame, wxDC * DC, wxPoint offset)""" + return _pcbnew.NETINFO_ITEM_Print(self, aFrame, DC, offset) + + def GetNet(self): + r"""GetNet(NETINFO_ITEM self) -> int""" + return _pcbnew.NETINFO_ITEM_GetNet(self) + + def SetNetCode(self, aNetCode): + r"""SetNetCode(NETINFO_ITEM self, int aNetCode)""" + return _pcbnew.NETINFO_ITEM_SetNetCode(self, aNetCode) + + def GetNetname(self): + r"""GetNetname(NETINFO_ITEM self) -> wxString""" + return _pcbnew.NETINFO_ITEM_GetNetname(self) + + def GetShortNetname(self): + r"""GetShortNetname(NETINFO_ITEM self) -> wxString""" + return _pcbnew.NETINFO_ITEM_GetShortNetname(self) + + def IsCurrent(self): + r"""IsCurrent(NETINFO_ITEM self) -> bool""" + return _pcbnew.NETINFO_ITEM_IsCurrent(self) + + def SetIsCurrent(self, isCurrent): + r"""SetIsCurrent(NETINFO_ITEM self, bool isCurrent)""" + return _pcbnew.NETINFO_ITEM_SetIsCurrent(self, isCurrent) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(NETINFO_ITEM self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.NETINFO_ITEM_GetMsgPanelInfo(self, aUnits, aList) + + def Clear(self): + r"""Clear(NETINFO_ITEM self)""" + return _pcbnew.NETINFO_ITEM_Clear(self) + + def GetParent(self): + r"""GetParent(NETINFO_ITEM self) -> BOARD""" + return _pcbnew.NETINFO_ITEM_GetParent(self) + +# Register NETINFO_ITEM in _pcbnew: +_pcbnew.NETINFO_ITEM_swigregister(NETINFO_ITEM) + +def NETINFO_ITEM_ClassOf(aItem): + r"""NETINFO_ITEM_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.NETINFO_ITEM_ClassOf(aItem) + +class NETNAMES_MAP(object): + r"""Proxy of C++ std::map< wxString,NETINFO_ITEM * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(NETNAMES_MAP self) -> SwigPyIterator""" + return _pcbnew.NETNAMES_MAP_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(NETNAMES_MAP self) -> bool""" + return _pcbnew.NETNAMES_MAP___nonzero__(self) + + def __bool__(self): + r"""__bool__(NETNAMES_MAP self) -> bool""" + return _pcbnew.NETNAMES_MAP___bool__(self) + + def __len__(self): + r"""__len__(NETNAMES_MAP self) -> std::map< wxString,NETINFO_ITEM * >::size_type""" + return _pcbnew.NETNAMES_MAP___len__(self) + def __iter__(self): + return self.key_iterator() + def iterkeys(self): + return self.key_iterator() + def itervalues(self): + return self.value_iterator() + def iteritems(self): + return self.iterator() + + def __getitem__(self, key): + r"""__getitem__(NETNAMES_MAP self, wxString key) -> NETINFO_ITEM""" + return _pcbnew.NETNAMES_MAP___getitem__(self, key) + + def __delitem__(self, key): + r"""__delitem__(NETNAMES_MAP self, wxString key)""" + return _pcbnew.NETNAMES_MAP___delitem__(self, key) + + def has_key(self, key): + r"""has_key(NETNAMES_MAP self, wxString key) -> bool""" + return _pcbnew.NETNAMES_MAP_has_key(self, key) + + def keys(self): + r"""keys(NETNAMES_MAP self) -> PyObject *""" + return _pcbnew.NETNAMES_MAP_keys(self) + + def values(self): + r"""values(NETNAMES_MAP self) -> PyObject *""" + return _pcbnew.NETNAMES_MAP_values(self) + + def items(self): + r"""items(NETNAMES_MAP self) -> PyObject *""" + return _pcbnew.NETNAMES_MAP_items(self) + + def __contains__(self, key): + r"""__contains__(NETNAMES_MAP self, wxString key) -> bool""" + return _pcbnew.NETNAMES_MAP___contains__(self, key) + + def key_iterator(self): + r"""key_iterator(NETNAMES_MAP self) -> SwigPyIterator""" + return _pcbnew.NETNAMES_MAP_key_iterator(self) + + def value_iterator(self): + r"""value_iterator(NETNAMES_MAP self) -> SwigPyIterator""" + return _pcbnew.NETNAMES_MAP_value_iterator(self) + + def __setitem__(self, *args): + r""" + __setitem__(NETNAMES_MAP self, wxString key) + __setitem__(NETNAMES_MAP self, wxString key, NETINFO_ITEM x) + """ + return _pcbnew.NETNAMES_MAP___setitem__(self, *args) + + def asdict(self): + r"""asdict(NETNAMES_MAP self) -> PyObject *""" + return _pcbnew.NETNAMES_MAP_asdict(self) + + def __init__(self, *args): + r""" + __init__(NETNAMES_MAP self, std::less< wxString > const & other) -> NETNAMES_MAP + __init__(NETNAMES_MAP self) -> NETNAMES_MAP + __init__(NETNAMES_MAP self, NETNAMES_MAP other) -> NETNAMES_MAP + """ + _pcbnew.NETNAMES_MAP_swiginit(self, _pcbnew.new_NETNAMES_MAP(*args)) + + def empty(self): + r"""empty(NETNAMES_MAP self) -> bool""" + return _pcbnew.NETNAMES_MAP_empty(self) + + def size(self): + r"""size(NETNAMES_MAP self) -> std::map< wxString,NETINFO_ITEM * >::size_type""" + return _pcbnew.NETNAMES_MAP_size(self) + + def swap(self, v): + r"""swap(NETNAMES_MAP self, NETNAMES_MAP v)""" + return _pcbnew.NETNAMES_MAP_swap(self, v) + + def begin(self): + r"""begin(NETNAMES_MAP self) -> std::map< wxString,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETNAMES_MAP_begin(self) + + def end(self): + r"""end(NETNAMES_MAP self) -> std::map< wxString,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETNAMES_MAP_end(self) + + def rbegin(self): + r"""rbegin(NETNAMES_MAP self) -> std::map< wxString,NETINFO_ITEM * >::reverse_iterator""" + return _pcbnew.NETNAMES_MAP_rbegin(self) + + def rend(self): + r"""rend(NETNAMES_MAP self) -> std::map< wxString,NETINFO_ITEM * >::reverse_iterator""" + return _pcbnew.NETNAMES_MAP_rend(self) + + def clear(self): + r"""clear(NETNAMES_MAP self)""" + return _pcbnew.NETNAMES_MAP_clear(self) + + def get_allocator(self): + r"""get_allocator(NETNAMES_MAP self) -> std::map< wxString,NETINFO_ITEM * >::allocator_type""" + return _pcbnew.NETNAMES_MAP_get_allocator(self) + + def count(self, x): + r"""count(NETNAMES_MAP self, wxString x) -> std::map< wxString,NETINFO_ITEM * >::size_type""" + return _pcbnew.NETNAMES_MAP_count(self, x) + + def erase(self, *args): + r""" + erase(NETNAMES_MAP self, wxString x) -> std::map< wxString,NETINFO_ITEM * >::size_type + erase(NETNAMES_MAP self, std::map< wxString,NETINFO_ITEM * >::iterator position) + erase(NETNAMES_MAP self, std::map< wxString,NETINFO_ITEM * >::iterator first, std::map< wxString,NETINFO_ITEM * >::iterator last) + """ + return _pcbnew.NETNAMES_MAP_erase(self, *args) + + def find(self, x): + r"""find(NETNAMES_MAP self, wxString x) -> std::map< wxString,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETNAMES_MAP_find(self, x) + + def lower_bound(self, x): + r"""lower_bound(NETNAMES_MAP self, wxString x) -> std::map< wxString,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETNAMES_MAP_lower_bound(self, x) + + def upper_bound(self, x): + r"""upper_bound(NETNAMES_MAP self, wxString x) -> std::map< wxString,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETNAMES_MAP_upper_bound(self, x) + __swig_destroy__ = _pcbnew.delete_NETNAMES_MAP + +# Register NETNAMES_MAP in _pcbnew: +_pcbnew.NETNAMES_MAP_swigregister(NETNAMES_MAP) + +class NETCODES_MAP(object): + r"""Proxy of C++ std::map< int,NETINFO_ITEM * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(NETCODES_MAP self) -> SwigPyIterator""" + return _pcbnew.NETCODES_MAP_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(NETCODES_MAP self) -> bool""" + return _pcbnew.NETCODES_MAP___nonzero__(self) + + def __bool__(self): + r"""__bool__(NETCODES_MAP self) -> bool""" + return _pcbnew.NETCODES_MAP___bool__(self) + + def __len__(self): + r"""__len__(NETCODES_MAP self) -> std::map< int,NETINFO_ITEM * >::size_type""" + return _pcbnew.NETCODES_MAP___len__(self) + def __iter__(self): + return self.key_iterator() + def iterkeys(self): + return self.key_iterator() + def itervalues(self): + return self.value_iterator() + def iteritems(self): + return self.iterator() + + def __getitem__(self, key): + r"""__getitem__(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & key) -> NETINFO_ITEM""" + return _pcbnew.NETCODES_MAP___getitem__(self, key) + + def __delitem__(self, key): + r"""__delitem__(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & key)""" + return _pcbnew.NETCODES_MAP___delitem__(self, key) + + def has_key(self, key): + r"""has_key(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & key) -> bool""" + return _pcbnew.NETCODES_MAP_has_key(self, key) + + def keys(self): + r"""keys(NETCODES_MAP self) -> PyObject *""" + return _pcbnew.NETCODES_MAP_keys(self) + + def values(self): + r"""values(NETCODES_MAP self) -> PyObject *""" + return _pcbnew.NETCODES_MAP_values(self) + + def items(self): + r"""items(NETCODES_MAP self) -> PyObject *""" + return _pcbnew.NETCODES_MAP_items(self) + + def __contains__(self, key): + r"""__contains__(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & key) -> bool""" + return _pcbnew.NETCODES_MAP___contains__(self, key) + + def key_iterator(self): + r"""key_iterator(NETCODES_MAP self) -> SwigPyIterator""" + return _pcbnew.NETCODES_MAP_key_iterator(self) + + def value_iterator(self): + r"""value_iterator(NETCODES_MAP self) -> SwigPyIterator""" + return _pcbnew.NETCODES_MAP_value_iterator(self) + + def __setitem__(self, *args): + r""" + __setitem__(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & key) + __setitem__(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & key, NETINFO_ITEM x) + """ + return _pcbnew.NETCODES_MAP___setitem__(self, *args) + + def asdict(self): + r"""asdict(NETCODES_MAP self) -> PyObject *""" + return _pcbnew.NETCODES_MAP_asdict(self) + + def __init__(self, *args): + r""" + __init__(NETCODES_MAP self, std::less< int > const & other) -> NETCODES_MAP + __init__(NETCODES_MAP self) -> NETCODES_MAP + __init__(NETCODES_MAP self, NETCODES_MAP other) -> NETCODES_MAP + """ + _pcbnew.NETCODES_MAP_swiginit(self, _pcbnew.new_NETCODES_MAP(*args)) + + def empty(self): + r"""empty(NETCODES_MAP self) -> bool""" + return _pcbnew.NETCODES_MAP_empty(self) + + def size(self): + r"""size(NETCODES_MAP self) -> std::map< int,NETINFO_ITEM * >::size_type""" + return _pcbnew.NETCODES_MAP_size(self) + + def swap(self, v): + r"""swap(NETCODES_MAP self, NETCODES_MAP v)""" + return _pcbnew.NETCODES_MAP_swap(self, v) + + def begin(self): + r"""begin(NETCODES_MAP self) -> std::map< int,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETCODES_MAP_begin(self) + + def end(self): + r"""end(NETCODES_MAP self) -> std::map< int,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETCODES_MAP_end(self) + + def rbegin(self): + r"""rbegin(NETCODES_MAP self) -> std::map< int,NETINFO_ITEM * >::reverse_iterator""" + return _pcbnew.NETCODES_MAP_rbegin(self) + + def rend(self): + r"""rend(NETCODES_MAP self) -> std::map< int,NETINFO_ITEM * >::reverse_iterator""" + return _pcbnew.NETCODES_MAP_rend(self) + + def clear(self): + r"""clear(NETCODES_MAP self)""" + return _pcbnew.NETCODES_MAP_clear(self) + + def get_allocator(self): + r"""get_allocator(NETCODES_MAP self) -> std::map< int,NETINFO_ITEM * >::allocator_type""" + return _pcbnew.NETCODES_MAP_get_allocator(self) + + def count(self, x): + r"""count(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & x) -> std::map< int,NETINFO_ITEM * >::size_type""" + return _pcbnew.NETCODES_MAP_count(self, x) + + def erase(self, *args): + r""" + erase(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & x) -> std::map< int,NETINFO_ITEM * >::size_type + erase(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::iterator position) + erase(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::iterator first, std::map< int,NETINFO_ITEM * >::iterator last) + """ + return _pcbnew.NETCODES_MAP_erase(self, *args) + + def find(self, x): + r"""find(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & x) -> std::map< int,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETCODES_MAP_find(self, x) + + def lower_bound(self, x): + r"""lower_bound(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & x) -> std::map< int,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETCODES_MAP_lower_bound(self, x) + + def upper_bound(self, x): + r"""upper_bound(NETCODES_MAP self, std::map< int,NETINFO_ITEM * >::key_type const & x) -> std::map< int,NETINFO_ITEM * >::iterator""" + return _pcbnew.NETCODES_MAP_upper_bound(self, x) + __swig_destroy__ = _pcbnew.delete_NETCODES_MAP + +# Register NETCODES_MAP in _pcbnew: +_pcbnew.NETCODES_MAP_swigregister(NETCODES_MAP) + +class NETINFO_LIST(object): + r"""Proxy of C++ NETINFO_LIST class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, aParent): + r"""__init__(NETINFO_LIST self, BOARD aParent) -> NETINFO_LIST""" + _pcbnew.NETINFO_LIST_swiginit(self, _pcbnew.new_NETINFO_LIST(aParent)) + __swig_destroy__ = _pcbnew.delete_NETINFO_LIST + + def GetNetItem(self, *args): + r""" + GetNetItem(NETINFO_LIST self, int aNetCode) -> NETINFO_ITEM + GetNetItem(NETINFO_LIST self, wxString aNetName) -> NETINFO_ITEM + """ + return _pcbnew.NETINFO_LIST_GetNetItem(self, *args) + + def GetNetCount(self): + r"""GetNetCount(NETINFO_LIST self) -> unsigned int""" + return _pcbnew.NETINFO_LIST_GetNetCount(self) + + def AppendNet(self, aNewElement): + r"""AppendNet(NETINFO_LIST self, NETINFO_ITEM aNewElement)""" + return _pcbnew.NETINFO_LIST_AppendNet(self, aNewElement) + + def RemoveNet(self, aNet): + r"""RemoveNet(NETINFO_LIST self, NETINFO_ITEM aNet)""" + return _pcbnew.NETINFO_LIST_RemoveNet(self, aNet) + + def NetsByName(self): + r"""NetsByName(NETINFO_LIST self) -> NETNAMES_MAP""" + return _pcbnew.NETINFO_LIST_NetsByName(self) + + def NetsByNetcode(self): + r"""NetsByNetcode(NETINFO_LIST self) -> NETCODES_MAP""" + return _pcbnew.NETINFO_LIST_NetsByNetcode(self) + ORPHANED_ITEM = property(_pcbnew.NETINFO_LIST_ORPHANED_ITEM_get, _pcbnew.NETINFO_LIST_ORPHANED_ITEM_set, doc=r"""ORPHANED_ITEM : NETINFO_ITEM""") + + def GetParent(self): + r"""GetParent(NETINFO_LIST self) -> BOARD""" + return _pcbnew.NETINFO_LIST_GetParent(self) + +# Register NETINFO_LIST in _pcbnew: +_pcbnew.NETINFO_LIST_swigregister(NETINFO_LIST) +NETINFO_LIST.UNCONNECTED = _pcbnew.cvar.NETINFO_LIST_UNCONNECTED +NETINFO_LIST.ORPHANED = _pcbnew.cvar.NETINFO_LIST_ORPHANED + +class STRINGSET(object): + r"""Proxy of C++ std::set< wxString > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(STRINGSET self) -> SwigPyIterator""" + return _pcbnew.STRINGSET_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(STRINGSET self) -> bool""" + return _pcbnew.STRINGSET___nonzero__(self) + + def __bool__(self): + r"""__bool__(STRINGSET self) -> bool""" + return _pcbnew.STRINGSET___bool__(self) + + def __len__(self): + r"""__len__(STRINGSET self) -> std::set< wxString >::size_type""" + return _pcbnew.STRINGSET___len__(self) + + def append(self, x): + r"""append(STRINGSET self, wxString x)""" + return _pcbnew.STRINGSET_append(self, x) + + def __contains__(self, x): + r"""__contains__(STRINGSET self, wxString x) -> bool""" + return _pcbnew.STRINGSET___contains__(self, x) + + def __getitem__(self, i): + r"""__getitem__(STRINGSET self, std::set< wxString >::difference_type i) -> wxString""" + return _pcbnew.STRINGSET___getitem__(self, i) + + def add(self, x): + r"""add(STRINGSET self, wxString x)""" + return _pcbnew.STRINGSET_add(self, x) + + def discard(self, x): + r"""discard(STRINGSET self, wxString x)""" + return _pcbnew.STRINGSET_discard(self, x) + + def __init__(self, *args): + r""" + __init__(STRINGSET self, std::less< wxString > const & other) -> STRINGSET + __init__(STRINGSET self) -> STRINGSET + __init__(STRINGSET self, STRINGSET other) -> STRINGSET + """ + _pcbnew.STRINGSET_swiginit(self, _pcbnew.new_STRINGSET(*args)) + + def empty(self): + r"""empty(STRINGSET self) -> bool""" + return _pcbnew.STRINGSET_empty(self) + + def size(self): + r"""size(STRINGSET self) -> std::set< wxString >::size_type""" + return _pcbnew.STRINGSET_size(self) + + def clear(self): + r"""clear(STRINGSET self)""" + return _pcbnew.STRINGSET_clear(self) + + def swap(self, v): + r"""swap(STRINGSET self, STRINGSET v)""" + return _pcbnew.STRINGSET_swap(self, v) + + def count(self, x): + r"""count(STRINGSET self, wxString x) -> std::set< wxString >::size_type""" + return _pcbnew.STRINGSET_count(self, x) + + def begin(self): + r"""begin(STRINGSET self) -> std::set< wxString >::iterator""" + return _pcbnew.STRINGSET_begin(self) + + def end(self): + r"""end(STRINGSET self) -> std::set< wxString >::iterator""" + return _pcbnew.STRINGSET_end(self) + + def rbegin(self): + r"""rbegin(STRINGSET self) -> std::set< wxString >::reverse_iterator""" + return _pcbnew.STRINGSET_rbegin(self) + + def rend(self): + r"""rend(STRINGSET self) -> std::set< wxString >::reverse_iterator""" + return _pcbnew.STRINGSET_rend(self) + + def erase(self, *args): + r""" + erase(STRINGSET self, wxString x) -> std::set< wxString >::size_type + erase(STRINGSET self, std::set< wxString >::iterator pos) + erase(STRINGSET self, std::set< wxString >::iterator first, std::set< wxString >::iterator last) + """ + return _pcbnew.STRINGSET_erase(self, *args) + + def find(self, x): + r"""find(STRINGSET self, wxString x) -> std::set< wxString >::iterator""" + return _pcbnew.STRINGSET_find(self, x) + + def lower_bound(self, x): + r"""lower_bound(STRINGSET self, wxString x) -> std::set< wxString >::iterator""" + return _pcbnew.STRINGSET_lower_bound(self, x) + + def upper_bound(self, x): + r"""upper_bound(STRINGSET self, wxString x) -> std::set< wxString >::iterator""" + return _pcbnew.STRINGSET_upper_bound(self, x) + + def equal_range(self, x): + r"""equal_range(STRINGSET self, wxString x) -> std::pair< std::set< wxString >::iterator,std::set< wxString >::iterator >""" + return _pcbnew.STRINGSET_equal_range(self, x) + + def insert(self, __x): + r"""insert(STRINGSET self, wxString __x) -> std::pair< std::set< wxString >::iterator,bool >""" + return _pcbnew.STRINGSET_insert(self, __x) + __swig_destroy__ = _pcbnew.delete_STRINGSET + +# Register STRINGSET in _pcbnew: +_pcbnew.STRINGSET_swigregister(STRINGSET) + +class NETCLASSPTR(object): + r"""Proxy of C++ std::shared_ptr< NETCLASS > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, name): + r"""__init__(NETCLASSPTR self, string name) -> NETCLASSPTR""" + _pcbnew.NETCLASSPTR_swiginit(self, _pcbnew.new_NETCLASSPTR(name)) + + def NetNames(self): + r"""NetNames(NETCLASSPTR self) -> STRINGSET""" + return _pcbnew.NETCLASSPTR_NetNames(self) + + def GetName(self): + r"""GetName(NETCLASSPTR self) -> wxString""" + return _pcbnew.NETCLASSPTR_GetName(self) + + def GetCount(self): + r"""GetCount(NETCLASSPTR self) -> unsigned int""" + return _pcbnew.NETCLASSPTR_GetCount(self) + + def GetDescription(self): + r"""GetDescription(NETCLASSPTR self) -> wxString""" + return _pcbnew.NETCLASSPTR_GetDescription(self) + + def SetDescription(self, aDesc): + r"""SetDescription(NETCLASSPTR self, wxString aDesc)""" + return _pcbnew.NETCLASSPTR_SetDescription(self, aDesc) + + def GetClearance(self): + r"""GetClearance(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetClearance(self) + + def SetClearance(self, aClearance): + r"""SetClearance(NETCLASSPTR self, int aClearance)""" + return _pcbnew.NETCLASSPTR_SetClearance(self, aClearance) + + def GetTrackWidth(self): + r"""GetTrackWidth(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetTrackWidth(self) + + def SetTrackWidth(self, aWidth): + r"""SetTrackWidth(NETCLASSPTR self, int aWidth)""" + return _pcbnew.NETCLASSPTR_SetTrackWidth(self, aWidth) + + def GetViaDiameter(self): + r"""GetViaDiameter(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetViaDiameter(self) + + def SetViaDiameter(self, aDia): + r"""SetViaDiameter(NETCLASSPTR self, int aDia)""" + return _pcbnew.NETCLASSPTR_SetViaDiameter(self, aDia) + + def GetViaDrill(self): + r"""GetViaDrill(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetViaDrill(self) + + def SetViaDrill(self, aSize): + r"""SetViaDrill(NETCLASSPTR self, int aSize)""" + return _pcbnew.NETCLASSPTR_SetViaDrill(self, aSize) + + def GetuViaDiameter(self): + r"""GetuViaDiameter(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetuViaDiameter(self) + + def SetuViaDiameter(self, aSize): + r"""SetuViaDiameter(NETCLASSPTR self, int aSize)""" + return _pcbnew.NETCLASSPTR_SetuViaDiameter(self, aSize) + + def GetuViaDrill(self): + r"""GetuViaDrill(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetuViaDrill(self) + + def SetuViaDrill(self, aSize): + r"""SetuViaDrill(NETCLASSPTR self, int aSize)""" + return _pcbnew.NETCLASSPTR_SetuViaDrill(self, aSize) + + def GetDiffPairWidth(self): + r"""GetDiffPairWidth(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetDiffPairWidth(self) + + def SetDiffPairWidth(self, aSize): + r"""SetDiffPairWidth(NETCLASSPTR self, int aSize)""" + return _pcbnew.NETCLASSPTR_SetDiffPairWidth(self, aSize) + + def GetDiffPairGap(self): + r"""GetDiffPairGap(NETCLASSPTR self) -> int""" + return _pcbnew.NETCLASSPTR_GetDiffPairGap(self) + + def SetDiffPairGap(self, aSize): + r"""SetDiffPairGap(NETCLASSPTR self, int aSize)""" + return _pcbnew.NETCLASSPTR_SetDiffPairGap(self, aSize) + __swig_destroy__ = _pcbnew.delete_NETCLASSPTR + +# Register NETCLASSPTR in _pcbnew: +_pcbnew.NETCLASSPTR_swigregister(NETCLASSPTR) + +class NETCLASS_MAP(object): + r"""Proxy of C++ std::map< wxString,NETCLASSPTR > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(NETCLASS_MAP self) -> SwigPyIterator""" + return _pcbnew.NETCLASS_MAP_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(NETCLASS_MAP self) -> bool""" + return _pcbnew.NETCLASS_MAP___nonzero__(self) + + def __bool__(self): + r"""__bool__(NETCLASS_MAP self) -> bool""" + return _pcbnew.NETCLASS_MAP___bool__(self) + + def __len__(self): + r"""__len__(NETCLASS_MAP self) -> std::map< wxString,std::shared_ptr< NETCLASS > >::size_type""" + return _pcbnew.NETCLASS_MAP___len__(self) + def __iter__(self): + return self.key_iterator() + def iterkeys(self): + return self.key_iterator() + def itervalues(self): + return self.value_iterator() + def iteritems(self): + return self.iterator() + + def __getitem__(self, key): + r"""__getitem__(NETCLASS_MAP self, wxString key) -> std::map< wxString,std::shared_ptr< NETCLASS > >::mapped_type const &""" + return _pcbnew.NETCLASS_MAP___getitem__(self, key) + + def __delitem__(self, key): + r"""__delitem__(NETCLASS_MAP self, wxString key)""" + return _pcbnew.NETCLASS_MAP___delitem__(self, key) + + def has_key(self, key): + r"""has_key(NETCLASS_MAP self, wxString key) -> bool""" + return _pcbnew.NETCLASS_MAP_has_key(self, key) + + def keys(self): + r"""keys(NETCLASS_MAP self) -> PyObject *""" + return _pcbnew.NETCLASS_MAP_keys(self) + + def values(self): + r"""values(NETCLASS_MAP self) -> PyObject *""" + return _pcbnew.NETCLASS_MAP_values(self) + + def items(self): + r"""items(NETCLASS_MAP self) -> PyObject *""" + return _pcbnew.NETCLASS_MAP_items(self) + + def __contains__(self, key): + r"""__contains__(NETCLASS_MAP self, wxString key) -> bool""" + return _pcbnew.NETCLASS_MAP___contains__(self, key) + + def key_iterator(self): + r"""key_iterator(NETCLASS_MAP self) -> SwigPyIterator""" + return _pcbnew.NETCLASS_MAP_key_iterator(self) + + def value_iterator(self): + r"""value_iterator(NETCLASS_MAP self) -> SwigPyIterator""" + return _pcbnew.NETCLASS_MAP_value_iterator(self) + + def __setitem__(self, *args): + r""" + __setitem__(NETCLASS_MAP self, wxString key) + __setitem__(NETCLASS_MAP self, wxString key, std::map< wxString,std::shared_ptr< NETCLASS > >::mapped_type const & x) + """ + return _pcbnew.NETCLASS_MAP___setitem__(self, *args) + + def asdict(self): + r"""asdict(NETCLASS_MAP self) -> PyObject *""" + return _pcbnew.NETCLASS_MAP_asdict(self) + + def __init__(self, *args): + r""" + __init__(NETCLASS_MAP self, std::less< wxString > const & other) -> NETCLASS_MAP + __init__(NETCLASS_MAP self) -> NETCLASS_MAP + __init__(NETCLASS_MAP self, NETCLASS_MAP other) -> NETCLASS_MAP + """ + _pcbnew.NETCLASS_MAP_swiginit(self, _pcbnew.new_NETCLASS_MAP(*args)) + + def empty(self): + r"""empty(NETCLASS_MAP self) -> bool""" + return _pcbnew.NETCLASS_MAP_empty(self) + + def size(self): + r"""size(NETCLASS_MAP self) -> std::map< wxString,std::shared_ptr< NETCLASS > >::size_type""" + return _pcbnew.NETCLASS_MAP_size(self) + + def swap(self, v): + r"""swap(NETCLASS_MAP self, NETCLASS_MAP v)""" + return _pcbnew.NETCLASS_MAP_swap(self, v) + + def begin(self): + r"""begin(NETCLASS_MAP self) -> std::map< wxString,std::shared_ptr< NETCLASS > >::iterator""" + return _pcbnew.NETCLASS_MAP_begin(self) + + def end(self): + r"""end(NETCLASS_MAP self) -> std::map< wxString,std::shared_ptr< NETCLASS > >::iterator""" + return _pcbnew.NETCLASS_MAP_end(self) + + def rbegin(self): + r"""rbegin(NETCLASS_MAP self) -> std::map< wxString,std::shared_ptr< NETCLASS > >::reverse_iterator""" + return _pcbnew.NETCLASS_MAP_rbegin(self) + + def rend(self): + r"""rend(NETCLASS_MAP self) -> std::map< wxString,std::shared_ptr< NETCLASS > >::reverse_iterator""" + return _pcbnew.NETCLASS_MAP_rend(self) + + def clear(self): + r"""clear(NETCLASS_MAP self)""" + return _pcbnew.NETCLASS_MAP_clear(self) + + def get_allocator(self): + r"""get_allocator(NETCLASS_MAP self) -> std::map< wxString,std::shared_ptr< NETCLASS > >::allocator_type""" + return _pcbnew.NETCLASS_MAP_get_allocator(self) + + def count(self, x): + r"""count(NETCLASS_MAP self, wxString x) -> std::map< wxString,std::shared_ptr< NETCLASS > >::size_type""" + return _pcbnew.NETCLASS_MAP_count(self, x) + + def erase(self, *args): + r""" + erase(NETCLASS_MAP self, wxString x) -> std::map< wxString,std::shared_ptr< NETCLASS > >::size_type + erase(NETCLASS_MAP self, std::map< wxString,std::shared_ptr< NETCLASS > >::iterator position) + erase(NETCLASS_MAP self, std::map< wxString,std::shared_ptr< NETCLASS > >::iterator first, std::map< wxString,std::shared_ptr< NETCLASS > >::iterator last) + """ + return _pcbnew.NETCLASS_MAP_erase(self, *args) + + def find(self, x): + r"""find(NETCLASS_MAP self, wxString x) -> std::map< wxString,std::shared_ptr< NETCLASS > >::iterator""" + return _pcbnew.NETCLASS_MAP_find(self, x) + + def lower_bound(self, x): + r"""lower_bound(NETCLASS_MAP self, wxString x) -> std::map< wxString,std::shared_ptr< NETCLASS > >::iterator""" + return _pcbnew.NETCLASS_MAP_lower_bound(self, x) + + def upper_bound(self, x): + r"""upper_bound(NETCLASS_MAP self, wxString x) -> std::map< wxString,std::shared_ptr< NETCLASS > >::iterator""" + return _pcbnew.NETCLASS_MAP_upper_bound(self, x) + __swig_destroy__ = _pcbnew.delete_NETCLASS_MAP + +# Register NETCLASS_MAP in _pcbnew: +_pcbnew.NETCLASS_MAP_swigregister(NETCLASS_MAP) + +class NETCLASSES(object): + r"""Proxy of C++ NETCLASSES class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(NETCLASSES self) -> NETCLASSES""" + _pcbnew.NETCLASSES_swiginit(self, _pcbnew.new_NETCLASSES()) + __swig_destroy__ = _pcbnew.delete_NETCLASSES + + def Clear(self): + r"""Clear(NETCLASSES self)""" + return _pcbnew.NETCLASSES_Clear(self) + + def begin(self, *args): + r""" + begin(NETCLASSES self) -> NETCLASSES::iterator + begin(NETCLASSES self) -> NETCLASSES::const_iterator + """ + return _pcbnew.NETCLASSES_begin(self, *args) + + def end(self, *args): + r""" + end(NETCLASSES self) -> NETCLASSES::iterator + end(NETCLASSES self) -> NETCLASSES::const_iterator + """ + return _pcbnew.NETCLASSES_end(self, *args) + + def GetCount(self): + r"""GetCount(NETCLASSES self) -> unsigned int""" + return _pcbnew.NETCLASSES_GetCount(self) + + def GetDefault(self): + r"""GetDefault(NETCLASSES self) -> NETCLASSPTR""" + return _pcbnew.NETCLASSES_GetDefault(self) + + def Add(self, aNetclass): + r"""Add(NETCLASSES self, NETCLASSPTR const & aNetclass) -> bool""" + return _pcbnew.NETCLASSES_Add(self, aNetclass) + + def Remove(self, aNetName): + r"""Remove(NETCLASSES self, wxString aNetName) -> NETCLASSPTR""" + return _pcbnew.NETCLASSES_Remove(self, aNetName) + + def Find(self, aName): + r"""Find(NETCLASSES self, wxString aName) -> NETCLASSPTR""" + return _pcbnew.NETCLASSES_Find(self, aName) + + def NetClasses(self): + r"""NetClasses(NETCLASSES self) -> NETCLASS_MAP""" + return _pcbnew.NETCLASSES_NetClasses(self) + +# Register NETCLASSES in _pcbnew: +_pcbnew.NETCLASSES_swigregister(NETCLASSES) + +UNDEFINED_LAYER = _pcbnew.UNDEFINED_LAYER + +UNSELECTED_LAYER = _pcbnew.UNSELECTED_LAYER + +PCBNEW_LAYER_ID_START = _pcbnew.PCBNEW_LAYER_ID_START + +F_Cu = _pcbnew.F_Cu + +In1_Cu = _pcbnew.In1_Cu + +In2_Cu = _pcbnew.In2_Cu + +In3_Cu = _pcbnew.In3_Cu + +In4_Cu = _pcbnew.In4_Cu + +In5_Cu = _pcbnew.In5_Cu + +In6_Cu = _pcbnew.In6_Cu + +In7_Cu = _pcbnew.In7_Cu + +In8_Cu = _pcbnew.In8_Cu + +In9_Cu = _pcbnew.In9_Cu + +In10_Cu = _pcbnew.In10_Cu + +In11_Cu = _pcbnew.In11_Cu + +In12_Cu = _pcbnew.In12_Cu + +In13_Cu = _pcbnew.In13_Cu + +In14_Cu = _pcbnew.In14_Cu + +In15_Cu = _pcbnew.In15_Cu + +In16_Cu = _pcbnew.In16_Cu + +In17_Cu = _pcbnew.In17_Cu + +In18_Cu = _pcbnew.In18_Cu + +In19_Cu = _pcbnew.In19_Cu + +In20_Cu = _pcbnew.In20_Cu + +In21_Cu = _pcbnew.In21_Cu + +In22_Cu = _pcbnew.In22_Cu + +In23_Cu = _pcbnew.In23_Cu + +In24_Cu = _pcbnew.In24_Cu + +In25_Cu = _pcbnew.In25_Cu + +In26_Cu = _pcbnew.In26_Cu + +In27_Cu = _pcbnew.In27_Cu + +In28_Cu = _pcbnew.In28_Cu + +In29_Cu = _pcbnew.In29_Cu + +In30_Cu = _pcbnew.In30_Cu + +B_Cu = _pcbnew.B_Cu + +B_Adhes = _pcbnew.B_Adhes + +F_Adhes = _pcbnew.F_Adhes + +B_Paste = _pcbnew.B_Paste + +F_Paste = _pcbnew.F_Paste + +B_SilkS = _pcbnew.B_SilkS + +F_SilkS = _pcbnew.F_SilkS + +B_Mask = _pcbnew.B_Mask + +F_Mask = _pcbnew.F_Mask + +Dwgs_User = _pcbnew.Dwgs_User + +Cmts_User = _pcbnew.Cmts_User + +Eco1_User = _pcbnew.Eco1_User + +Eco2_User = _pcbnew.Eco2_User + +Edge_Cuts = _pcbnew.Edge_Cuts + +Margin = _pcbnew.Margin + +B_CrtYd = _pcbnew.B_CrtYd + +F_CrtYd = _pcbnew.F_CrtYd + +B_Fab = _pcbnew.B_Fab + +F_Fab = _pcbnew.F_Fab + +Rescue = _pcbnew.Rescue + +PCB_LAYER_ID_COUNT = _pcbnew.PCB_LAYER_ID_COUNT + +NETNAMES_LAYER_ID_START = _pcbnew.NETNAMES_LAYER_ID_START + +NETNAMES_LAYER_ID_RESERVED = _pcbnew.NETNAMES_LAYER_ID_RESERVED + +LAYER_PAD_FR_NETNAMES = _pcbnew.LAYER_PAD_FR_NETNAMES + +LAYER_PAD_BK_NETNAMES = _pcbnew.LAYER_PAD_BK_NETNAMES + +LAYER_PADS_NETNAMES = _pcbnew.LAYER_PADS_NETNAMES + +LAYER_VIAS_NETNAMES = _pcbnew.LAYER_VIAS_NETNAMES + +NETNAMES_LAYER_ID_END = _pcbnew.NETNAMES_LAYER_ID_END + +GAL_LAYER_ID_START = _pcbnew.GAL_LAYER_ID_START + +LAYER_VIAS = _pcbnew.LAYER_VIAS + +LAYER_VIA_MICROVIA = _pcbnew.LAYER_VIA_MICROVIA + +LAYER_VIA_BBLIND = _pcbnew.LAYER_VIA_BBLIND + +LAYER_VIA_THROUGH = _pcbnew.LAYER_VIA_THROUGH + +LAYER_NON_PLATEDHOLES = _pcbnew.LAYER_NON_PLATEDHOLES + +LAYER_MOD_TEXT_FR = _pcbnew.LAYER_MOD_TEXT_FR + +LAYER_MOD_TEXT_BK = _pcbnew.LAYER_MOD_TEXT_BK + +LAYER_MOD_TEXT_INVISIBLE = _pcbnew.LAYER_MOD_TEXT_INVISIBLE + +LAYER_ANCHOR = _pcbnew.LAYER_ANCHOR + +LAYER_PAD_FR = _pcbnew.LAYER_PAD_FR + +LAYER_PAD_BK = _pcbnew.LAYER_PAD_BK + +LAYER_RATSNEST = _pcbnew.LAYER_RATSNEST + +LAYER_GRID = _pcbnew.LAYER_GRID + +LAYER_GRID_AXES = _pcbnew.LAYER_GRID_AXES + +LAYER_NO_CONNECTS = _pcbnew.LAYER_NO_CONNECTS + +LAYER_MOD_FR = _pcbnew.LAYER_MOD_FR + +LAYER_MOD_BK = _pcbnew.LAYER_MOD_BK + +LAYER_MOD_VALUES = _pcbnew.LAYER_MOD_VALUES + +LAYER_MOD_REFERENCES = _pcbnew.LAYER_MOD_REFERENCES + +LAYER_TRACKS = _pcbnew.LAYER_TRACKS + +LAYER_PADS_TH = _pcbnew.LAYER_PADS_TH + +LAYER_PADS_PLATEDHOLES = _pcbnew.LAYER_PADS_PLATEDHOLES + +LAYER_VIAS_HOLES = _pcbnew.LAYER_VIAS_HOLES + +LAYER_DRC = _pcbnew.LAYER_DRC + +LAYER_WORKSHEET = _pcbnew.LAYER_WORKSHEET + +LAYER_GP_OVERLAY = _pcbnew.LAYER_GP_OVERLAY + +LAYER_SELECT_OVERLAY = _pcbnew.LAYER_SELECT_OVERLAY + +LAYER_PCB_BACKGROUND = _pcbnew.LAYER_PCB_BACKGROUND + +LAYER_CURSOR = _pcbnew.LAYER_CURSOR + +LAYER_AUX_ITEMS = _pcbnew.LAYER_AUX_ITEMS + +LAYER_DRAW_BITMAPS = _pcbnew.LAYER_DRAW_BITMAPS + +GAL_LAYER_ID_BITMASK_END = _pcbnew.GAL_LAYER_ID_BITMASK_END + +LAYER_WORKSHEET_PAGE1 = _pcbnew.LAYER_WORKSHEET_PAGE1 + +LAYER_WORKSHEET_PAGEn = _pcbnew.LAYER_WORKSHEET_PAGEn + +GAL_LAYER_ID_END = _pcbnew.GAL_LAYER_ID_END + +SCH_LAYER_ID_START = _pcbnew.SCH_LAYER_ID_START + +LAYER_WIRE = _pcbnew.LAYER_WIRE + +LAYER_BUS = _pcbnew.LAYER_BUS + +LAYER_JUNCTION = _pcbnew.LAYER_JUNCTION + +LAYER_LOCLABEL = _pcbnew.LAYER_LOCLABEL + +LAYER_GLOBLABEL = _pcbnew.LAYER_GLOBLABEL + +LAYER_HIERLABEL = _pcbnew.LAYER_HIERLABEL + +LAYER_PINNUM = _pcbnew.LAYER_PINNUM + +LAYER_PINNAM = _pcbnew.LAYER_PINNAM + +LAYER_REFERENCEPART = _pcbnew.LAYER_REFERENCEPART + +LAYER_VALUEPART = _pcbnew.LAYER_VALUEPART + +LAYER_FIELDS = _pcbnew.LAYER_FIELDS + +LAYER_DEVICE = _pcbnew.LAYER_DEVICE + +LAYER_NOTES = _pcbnew.LAYER_NOTES + +LAYER_NETNAM = _pcbnew.LAYER_NETNAM + +LAYER_PIN = _pcbnew.LAYER_PIN + +LAYER_SHEET = _pcbnew.LAYER_SHEET + +LAYER_SHEETNAME = _pcbnew.LAYER_SHEETNAME + +LAYER_SHEETFILENAME = _pcbnew.LAYER_SHEETFILENAME + +LAYER_SHEETLABEL = _pcbnew.LAYER_SHEETLABEL + +LAYER_NOCONNECT = _pcbnew.LAYER_NOCONNECT + +LAYER_ERC_WARN = _pcbnew.LAYER_ERC_WARN + +LAYER_ERC_ERR = _pcbnew.LAYER_ERC_ERR + +LAYER_DEVICE_BACKGROUND = _pcbnew.LAYER_DEVICE_BACKGROUND + +LAYER_SHEET_BACKGROUND = _pcbnew.LAYER_SHEET_BACKGROUND + +LAYER_SCHEMATIC_GRID = _pcbnew.LAYER_SCHEMATIC_GRID + +LAYER_SCHEMATIC_BACKGROUND = _pcbnew.LAYER_SCHEMATIC_BACKGROUND + +LAYER_SCHEMATIC_CURSOR = _pcbnew.LAYER_SCHEMATIC_CURSOR + +LAYER_BRIGHTENED = _pcbnew.LAYER_BRIGHTENED + +LAYER_HIDDEN = _pcbnew.LAYER_HIDDEN + +SCH_LAYER_ID_END = _pcbnew.SCH_LAYER_ID_END + +GERBVIEW_LAYER_ID_START = _pcbnew.GERBVIEW_LAYER_ID_START + +GERBVIEW_LAYER_ID_RESERVED = _pcbnew.GERBVIEW_LAYER_ID_RESERVED + +LAYER_DCODES = _pcbnew.LAYER_DCODES + +LAYER_NEGATIVE_OBJECTS = _pcbnew.LAYER_NEGATIVE_OBJECTS + +LAYER_GERBVIEW_GRID = _pcbnew.LAYER_GERBVIEW_GRID + +LAYER_GERBVIEW_AXES = _pcbnew.LAYER_GERBVIEW_AXES + +LAYER_GERBVIEW_BACKGROUND = _pcbnew.LAYER_GERBVIEW_BACKGROUND + +GERBVIEW_LAYER_ID_END = _pcbnew.GERBVIEW_LAYER_ID_END + +class LSEQ(base_seqVect): + r"""Proxy of C++ LSEQ class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(LSEQ self) -> LSEQ""" + _pcbnew.LSEQ_swiginit(self, _pcbnew.new_LSEQ()) + + def Rewind(self): + r"""Rewind(LSEQ self)""" + return _pcbnew.LSEQ_Rewind(self) + + def __nonzero__(self): + return _pcbnew.LSEQ___nonzero__(self) + __bool__ = __nonzero__ + + + + def __ref__(self): + r"""__ref__(LSEQ self) -> PCB_LAYER_ID""" + return _pcbnew.LSEQ___ref__(self) + __swig_destroy__ = _pcbnew.delete_LSEQ + +# Register LSEQ in _pcbnew: +_pcbnew.LSEQ_swigregister(LSEQ) + +class LSET(BASE_SET): + r"""Proxy of C++ LSET class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(LSET self) -> LSET + __init__(LSET self, BASE_SET aOther) -> LSET + __init__(LSET self, PCB_LAYER_ID aLayer) -> LSET + __init__(LSET self, PCB_LAYER_ID const * aArray, unsigned int aCount) -> LSET + __init__(LSET self, unsigned int aIdCount, int aFirst) -> LSET + """ + _pcbnew.LSET_swiginit(self, _pcbnew.new_LSET(*args)) + + @staticmethod + def Name(aLayerId): + r"""Name(PCB_LAYER_ID aLayerId) -> wxChar const *""" + return _pcbnew.LSET_Name(aLayerId) + + @staticmethod + def InternalCuMask(): + r"""InternalCuMask() -> LSET""" + return _pcbnew.LSET_InternalCuMask() + + @staticmethod + def AllCuMask(*args): + r"""AllCuMask(int aCuLayerCount=(B_Cu-F_Cu+1)) -> LSET""" + return _pcbnew.LSET_AllCuMask(*args) + + @staticmethod + def ExternalCuMask(): + r"""ExternalCuMask() -> LSET""" + return _pcbnew.LSET_ExternalCuMask() + + @staticmethod + def AllNonCuMask(): + r"""AllNonCuMask() -> LSET""" + return _pcbnew.LSET_AllNonCuMask() + + @staticmethod + def AllLayersMask(): + r"""AllLayersMask() -> LSET""" + return _pcbnew.LSET_AllLayersMask() + + @staticmethod + def FrontTechMask(): + r"""FrontTechMask() -> LSET""" + return _pcbnew.LSET_FrontTechMask() + + @staticmethod + def FrontBoardTechMask(): + r"""FrontBoardTechMask() -> LSET""" + return _pcbnew.LSET_FrontBoardTechMask() + + @staticmethod + def BackTechMask(): + r"""BackTechMask() -> LSET""" + return _pcbnew.LSET_BackTechMask() + + @staticmethod + def BackBoardTechMask(): + r"""BackBoardTechMask() -> LSET""" + return _pcbnew.LSET_BackBoardTechMask() + + @staticmethod + def AllTechMask(): + r"""AllTechMask() -> LSET""" + return _pcbnew.LSET_AllTechMask() + + @staticmethod + def AllBoardTechMask(): + r"""AllBoardTechMask() -> LSET""" + return _pcbnew.LSET_AllBoardTechMask() + + @staticmethod + def FrontMask(): + r"""FrontMask() -> LSET""" + return _pcbnew.LSET_FrontMask() + + @staticmethod + def BackMask(): + r"""BackMask() -> LSET""" + return _pcbnew.LSET_BackMask() + + @staticmethod + def UserMask(): + r"""UserMask() -> LSET""" + return _pcbnew.LSET_UserMask() + + @staticmethod + def ForbiddenFootprintLayers(): + r"""ForbiddenFootprintLayers() -> LSET""" + return _pcbnew.LSET_ForbiddenFootprintLayers() + + @staticmethod + def ForbiddenTextLayers(): + r"""ForbiddenTextLayers() -> LSET""" + return _pcbnew.LSET_ForbiddenTextLayers() + + def CuStack(self): + r"""CuStack(LSET self) -> LSEQ""" + return _pcbnew.LSET_CuStack(self) + + def Technicals(self, *args): + r"""Technicals(LSET self, LSET aSubToOmit=LSET()) -> LSEQ""" + return _pcbnew.LSET_Technicals(self, *args) + + def Users(self): + r"""Users(LSET self) -> LSEQ""" + return _pcbnew.LSET_Users(self) + + def TechAndUserUIOrder(self): + r"""TechAndUserUIOrder(LSET self) -> LSEQ""" + return _pcbnew.LSET_TechAndUserUIOrder(self) + + def UIOrder(self): + r"""UIOrder(LSET self) -> LSEQ""" + return _pcbnew.LSET_UIOrder(self) + + def Seq(self, *args): + r""" + Seq(LSET self, PCB_LAYER_ID const * aWishListSequence, unsigned int aCount) -> LSEQ + Seq(LSET self) -> LSEQ + """ + return _pcbnew.LSET_Seq(self, *args) + + def SeqStackupBottom2Top(self): + r"""SeqStackupBottom2Top(LSET self) -> LSEQ""" + return _pcbnew.LSET_SeqStackupBottom2Top(self) + + def FmtHex(self): + r"""FmtHex(LSET self) -> string""" + return _pcbnew.LSET_FmtHex(self) + + def ParseHex(self, aStart, aCount): + r"""ParseHex(LSET self, char const * aStart, int aCount) -> int""" + return _pcbnew.LSET_ParseHex(self, aStart, aCount) + + def FmtBin(self): + r"""FmtBin(LSET self) -> string""" + return _pcbnew.LSET_FmtBin(self) + + def ExtractLayer(self): + r"""ExtractLayer(LSET self) -> PCB_LAYER_ID""" + return _pcbnew.LSET_ExtractLayer(self) + + def addLayer(self, aLayer): + r"""addLayer(LSET self, PCB_LAYER_ID aLayer) -> LSET""" + return _pcbnew.LSET_addLayer(self, aLayer) + + def removeLayer(self, aLayer): + r"""removeLayer(LSET self, PCB_LAYER_ID aLayer) -> LSET""" + return _pcbnew.LSET_removeLayer(self, aLayer) + + def addLayerSet(self, aLayerSet): + r"""addLayerSet(LSET self, LSET aLayerSet) -> LSET""" + return _pcbnew.LSET_addLayerSet(self, aLayerSet) + + def removeLayerSet(self, aLayerSet): + r"""removeLayerSet(LSET self, LSET aLayerSet) -> LSET""" + return _pcbnew.LSET_removeLayerSet(self, aLayerSet) + + def AddLayer(self, layer): + return self.addLayer( layer ) + + def AddLayerSet(self, layers): + return self.addLayerSet( layers ) + + def RemoveLayer(self, layer): + return self.removeLayer( layer ) + + def RemoveLayerSet(self, layers): + return self.removeLayerSet( layers ) + + __swig_destroy__ = _pcbnew.delete_LSET + +# Register LSET in _pcbnew: +_pcbnew.LSET_swigregister(LSET) + +def LSET_Name(aLayerId): + r"""LSET_Name(PCB_LAYER_ID aLayerId) -> wxChar const *""" + return _pcbnew.LSET_Name(aLayerId) + +def LSET_InternalCuMask(): + r"""LSET_InternalCuMask() -> LSET""" + return _pcbnew.LSET_InternalCuMask() + +def LSET_AllCuMask(*args): + r"""LSET_AllCuMask(int aCuLayerCount=(B_Cu-F_Cu+1)) -> LSET""" + return _pcbnew.LSET_AllCuMask(*args) + +def LSET_ExternalCuMask(): + r"""LSET_ExternalCuMask() -> LSET""" + return _pcbnew.LSET_ExternalCuMask() + +def LSET_AllNonCuMask(): + r"""LSET_AllNonCuMask() -> LSET""" + return _pcbnew.LSET_AllNonCuMask() + +def LSET_AllLayersMask(): + r"""LSET_AllLayersMask() -> LSET""" + return _pcbnew.LSET_AllLayersMask() + +def LSET_FrontTechMask(): + r"""LSET_FrontTechMask() -> LSET""" + return _pcbnew.LSET_FrontTechMask() + +def LSET_FrontBoardTechMask(): + r"""LSET_FrontBoardTechMask() -> LSET""" + return _pcbnew.LSET_FrontBoardTechMask() + +def LSET_BackTechMask(): + r"""LSET_BackTechMask() -> LSET""" + return _pcbnew.LSET_BackTechMask() + +def LSET_BackBoardTechMask(): + r"""LSET_BackBoardTechMask() -> LSET""" + return _pcbnew.LSET_BackBoardTechMask() + +def LSET_AllTechMask(): + r"""LSET_AllTechMask() -> LSET""" + return _pcbnew.LSET_AllTechMask() + +def LSET_AllBoardTechMask(): + r"""LSET_AllBoardTechMask() -> LSET""" + return _pcbnew.LSET_AllBoardTechMask() + +def LSET_FrontMask(): + r"""LSET_FrontMask() -> LSET""" + return _pcbnew.LSET_FrontMask() + +def LSET_BackMask(): + r"""LSET_BackMask() -> LSET""" + return _pcbnew.LSET_BackMask() + +def LSET_UserMask(): + r"""LSET_UserMask() -> LSET""" + return _pcbnew.LSET_UserMask() + +def LSET_ForbiddenFootprintLayers(): + r"""LSET_ForbiddenFootprintLayers() -> LSET""" + return _pcbnew.LSET_ForbiddenFootprintLayers() + +def LSET_ForbiddenTextLayers(): + r"""LSET_ForbiddenTextLayers() -> LSET""" + return _pcbnew.LSET_ForbiddenTextLayers() + + +def IsValidLayer(aLayerId): + r"""IsValidLayer(LAYER_NUM aLayerId) -> bool""" + return _pcbnew.IsValidLayer(aLayerId) + +def IsPcbLayer(aLayer): + r"""IsPcbLayer(LAYER_NUM aLayer) -> bool""" + return _pcbnew.IsPcbLayer(aLayer) + +def IsCopperLayer(aLayerId): + r"""IsCopperLayer(LAYER_NUM aLayerId) -> bool""" + return _pcbnew.IsCopperLayer(aLayerId) + +def IsNonCopperLayer(aLayerId): + r"""IsNonCopperLayer(LAYER_NUM aLayerId) -> bool""" + return _pcbnew.IsNonCopperLayer(aLayerId) + +def IsUserLayer(aLayerId): + r"""IsUserLayer(PCB_LAYER_ID aLayerId) -> bool""" + return _pcbnew.IsUserLayer(aLayerId) + +def IsFrontLayer(aLayerId): + r"""IsFrontLayer(PCB_LAYER_ID aLayerId) -> bool""" + return _pcbnew.IsFrontLayer(aLayerId) + +def IsBackLayer(aLayerId): + r"""IsBackLayer(PCB_LAYER_ID aLayerId) -> bool""" + return _pcbnew.IsBackLayer(aLayerId) + +def FlipLayer(aLayerId, aCopperLayersCount=0): + r"""FlipLayer(PCB_LAYER_ID aLayerId, int aCopperLayersCount=0) -> PCB_LAYER_ID""" + return _pcbnew.FlipLayer(aLayerId, aCopperLayersCount) + +def FlipLayerMask(aMask, aCopperLayersCount=0): + r"""FlipLayerMask(LSET aMask, int aCopperLayersCount=0) -> LSET""" + return _pcbnew.FlipLayerMask(aMask, aCopperLayersCount) + +def GetNetnameLayer(aLayer): + r"""GetNetnameLayer(int aLayer) -> int""" + return _pcbnew.GetNetnameLayer(aLayer) + +def IsNetnameLayer(aLayer): + r"""IsNetnameLayer(LAYER_NUM aLayer) -> bool""" + return _pcbnew.IsNetnameLayer(aLayer) + +def IsDCodeLayer(aLayer): + r"""IsDCodeLayer(int aLayer) -> bool""" + return _pcbnew.IsDCodeLayer(aLayer) + +def ToLAYER_ID(aLayer): + r"""ToLAYER_ID(int aLayer) -> PCB_LAYER_ID""" + return _pcbnew.ToLAYER_ID(aLayer) +class VIA_DIMENSION_Vector(object): + r"""Proxy of C++ std::vector< VIA_DIMENSION > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(VIA_DIMENSION_Vector self) -> SwigPyIterator""" + return _pcbnew.VIA_DIMENSION_Vector_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(VIA_DIMENSION_Vector self) -> bool""" + return _pcbnew.VIA_DIMENSION_Vector___nonzero__(self) + + def __bool__(self): + r"""__bool__(VIA_DIMENSION_Vector self) -> bool""" + return _pcbnew.VIA_DIMENSION_Vector___bool__(self) + + def __len__(self): + r"""__len__(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::size_type""" + return _pcbnew.VIA_DIMENSION_Vector___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::difference_type i, std::vector< VIA_DIMENSION >::difference_type j) -> VIA_DIMENSION_Vector""" + return _pcbnew.VIA_DIMENSION_Vector___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::difference_type i, std::vector< VIA_DIMENSION >::difference_type j) + __setslice__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::difference_type i, std::vector< VIA_DIMENSION >::difference_type j, VIA_DIMENSION_Vector v) + """ + return _pcbnew.VIA_DIMENSION_Vector___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::difference_type i, std::vector< VIA_DIMENSION >::difference_type j)""" + return _pcbnew.VIA_DIMENSION_Vector___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::difference_type i) + __delitem__(VIA_DIMENSION_Vector self, PySliceObject * slice) + """ + return _pcbnew.VIA_DIMENSION_Vector___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(VIA_DIMENSION_Vector self, PySliceObject * slice) -> VIA_DIMENSION_Vector + __getitem__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::difference_type i) -> VIA_DIMENSION + """ + return _pcbnew.VIA_DIMENSION_Vector___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(VIA_DIMENSION_Vector self, PySliceObject * slice, VIA_DIMENSION_Vector v) + __setitem__(VIA_DIMENSION_Vector self, PySliceObject * slice) + __setitem__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::difference_type i, VIA_DIMENSION x) + """ + return _pcbnew.VIA_DIMENSION_Vector___setitem__(self, *args) + + def pop(self): + r"""pop(VIA_DIMENSION_Vector self) -> VIA_DIMENSION""" + return _pcbnew.VIA_DIMENSION_Vector_pop(self) + + def append(self, x): + r"""append(VIA_DIMENSION_Vector self, VIA_DIMENSION x)""" + return _pcbnew.VIA_DIMENSION_Vector_append(self, x) + + def empty(self): + r"""empty(VIA_DIMENSION_Vector self) -> bool""" + return _pcbnew.VIA_DIMENSION_Vector_empty(self) + + def size(self): + r"""size(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::size_type""" + return _pcbnew.VIA_DIMENSION_Vector_size(self) + + def swap(self, v): + r"""swap(VIA_DIMENSION_Vector self, VIA_DIMENSION_Vector v)""" + return _pcbnew.VIA_DIMENSION_Vector_swap(self, v) + + def begin(self): + r"""begin(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::iterator""" + return _pcbnew.VIA_DIMENSION_Vector_begin(self) + + def end(self): + r"""end(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::iterator""" + return _pcbnew.VIA_DIMENSION_Vector_end(self) + + def rbegin(self): + r"""rbegin(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::reverse_iterator""" + return _pcbnew.VIA_DIMENSION_Vector_rbegin(self) + + def rend(self): + r"""rend(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::reverse_iterator""" + return _pcbnew.VIA_DIMENSION_Vector_rend(self) + + def clear(self): + r"""clear(VIA_DIMENSION_Vector self)""" + return _pcbnew.VIA_DIMENSION_Vector_clear(self) + + def get_allocator(self): + r"""get_allocator(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::allocator_type""" + return _pcbnew.VIA_DIMENSION_Vector_get_allocator(self) + + def pop_back(self): + r"""pop_back(VIA_DIMENSION_Vector self)""" + return _pcbnew.VIA_DIMENSION_Vector_pop_back(self) + + def erase(self, *args): + r""" + erase(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::iterator pos) -> std::vector< VIA_DIMENSION >::iterator + erase(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::iterator first, std::vector< VIA_DIMENSION >::iterator last) -> std::vector< VIA_DIMENSION >::iterator + """ + return _pcbnew.VIA_DIMENSION_Vector_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(VIA_DIMENSION_Vector self) -> VIA_DIMENSION_Vector + __init__(VIA_DIMENSION_Vector self, VIA_DIMENSION_Vector other) -> VIA_DIMENSION_Vector + __init__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::size_type size) -> VIA_DIMENSION_Vector + __init__(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::size_type size, VIA_DIMENSION value) -> VIA_DIMENSION_Vector + """ + _pcbnew.VIA_DIMENSION_Vector_swiginit(self, _pcbnew.new_VIA_DIMENSION_Vector(*args)) + + def push_back(self, x): + r"""push_back(VIA_DIMENSION_Vector self, VIA_DIMENSION x)""" + return _pcbnew.VIA_DIMENSION_Vector_push_back(self, x) + + def front(self): + r"""front(VIA_DIMENSION_Vector self) -> VIA_DIMENSION""" + return _pcbnew.VIA_DIMENSION_Vector_front(self) + + def back(self): + r"""back(VIA_DIMENSION_Vector self) -> VIA_DIMENSION""" + return _pcbnew.VIA_DIMENSION_Vector_back(self) + + def assign(self, n, x): + r"""assign(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::size_type n, VIA_DIMENSION x)""" + return _pcbnew.VIA_DIMENSION_Vector_assign(self, n, x) + + def resize(self, *args): + r""" + resize(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::size_type new_size) + resize(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::size_type new_size, VIA_DIMENSION x) + """ + return _pcbnew.VIA_DIMENSION_Vector_resize(self, *args) + + def insert(self, *args): + r""" + insert(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::iterator pos, VIA_DIMENSION x) -> std::vector< VIA_DIMENSION >::iterator + insert(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::iterator pos, std::vector< VIA_DIMENSION >::size_type n, VIA_DIMENSION x) + """ + return _pcbnew.VIA_DIMENSION_Vector_insert(self, *args) + + def reserve(self, n): + r"""reserve(VIA_DIMENSION_Vector self, std::vector< VIA_DIMENSION >::size_type n)""" + return _pcbnew.VIA_DIMENSION_Vector_reserve(self, n) + + def capacity(self): + r"""capacity(VIA_DIMENSION_Vector self) -> std::vector< VIA_DIMENSION >::size_type""" + return _pcbnew.VIA_DIMENSION_Vector_capacity(self) + __swig_destroy__ = _pcbnew.delete_VIA_DIMENSION_Vector + +# Register VIA_DIMENSION_Vector in _pcbnew: +_pcbnew.VIA_DIMENSION_Vector_swigregister(VIA_DIMENSION_Vector) + +LT_UNDEFINED = _pcbnew.LT_UNDEFINED + +LT_SIGNAL = _pcbnew.LT_SIGNAL + +LT_POWER = _pcbnew.LT_POWER + +LT_MIXED = _pcbnew.LT_MIXED + +LT_JUMPER = _pcbnew.LT_JUMPER + +class LAYER(object): + r"""Proxy of C++ LAYER class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(LAYER self) -> LAYER""" + _pcbnew.LAYER_swiginit(self, _pcbnew.new_LAYER()) + + def clear(self): + r"""clear(LAYER self)""" + return _pcbnew.LAYER_clear(self) + m_name = property(_pcbnew.LAYER_m_name_get, _pcbnew.LAYER_m_name_set, doc=r"""m_name : wxString""") + m_type = property(_pcbnew.LAYER_m_type_get, _pcbnew.LAYER_m_type_set, doc=r"""m_type : LAYER_T""") + m_visible = property(_pcbnew.LAYER_m_visible_get, _pcbnew.LAYER_m_visible_set, doc=r"""m_visible : bool""") + m_number = property(_pcbnew.LAYER_m_number_get, _pcbnew.LAYER_m_number_set, doc=r"""m_number : int""") + + @staticmethod + def ShowType(aType): + r"""ShowType(LAYER_T aType) -> char const *""" + return _pcbnew.LAYER_ShowType(aType) + + @staticmethod + def ParseType(aType): + r"""ParseType(char const * aType) -> LAYER_T""" + return _pcbnew.LAYER_ParseType(aType) + __swig_destroy__ = _pcbnew.delete_LAYER + +# Register LAYER in _pcbnew: +_pcbnew.LAYER_swigregister(LAYER) + +def LAYER_ShowType(aType): + r"""LAYER_ShowType(LAYER_T aType) -> char const *""" + return _pcbnew.LAYER_ShowType(aType) + +def LAYER_ParseType(aType): + r"""LAYER_ParseType(char const * aType) -> LAYER_T""" + return _pcbnew.LAYER_ParseType(aType) + +class HIGH_LIGHT_INFO(object): + r"""Proxy of C++ HIGH_LIGHT_INFO class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined") + __repr__ = _swig_repr + __swig_destroy__ = _pcbnew.delete_HIGH_LIGHT_INFO + +# Register HIGH_LIGHT_INFO in _pcbnew: +_pcbnew.HIGH_LIGHT_INFO_swigregister(HIGH_LIGHT_INFO) + +class MARKERS(object): + r"""Proxy of C++ std::vector< MARKER_PCB * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(MARKERS self) -> SwigPyIterator""" + return _pcbnew.MARKERS_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(MARKERS self) -> bool""" + return _pcbnew.MARKERS___nonzero__(self) + + def __bool__(self): + r"""__bool__(MARKERS self) -> bool""" + return _pcbnew.MARKERS___bool__(self) + + def __len__(self): + r"""__len__(MARKERS self) -> std::vector< MARKER_PCB * >::size_type""" + return _pcbnew.MARKERS___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(MARKERS self, std::vector< MARKER_PCB * >::difference_type i, std::vector< MARKER_PCB * >::difference_type j) -> MARKERS""" + return _pcbnew.MARKERS___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(MARKERS self, std::vector< MARKER_PCB * >::difference_type i, std::vector< MARKER_PCB * >::difference_type j) + __setslice__(MARKERS self, std::vector< MARKER_PCB * >::difference_type i, std::vector< MARKER_PCB * >::difference_type j, MARKERS v) + """ + return _pcbnew.MARKERS___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(MARKERS self, std::vector< MARKER_PCB * >::difference_type i, std::vector< MARKER_PCB * >::difference_type j)""" + return _pcbnew.MARKERS___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(MARKERS self, std::vector< MARKER_PCB * >::difference_type i) + __delitem__(MARKERS self, PySliceObject * slice) + """ + return _pcbnew.MARKERS___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(MARKERS self, PySliceObject * slice) -> MARKERS + __getitem__(MARKERS self, std::vector< MARKER_PCB * >::difference_type i) -> MARKER_PCB + """ + return _pcbnew.MARKERS___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(MARKERS self, PySliceObject * slice, MARKERS v) + __setitem__(MARKERS self, PySliceObject * slice) + __setitem__(MARKERS self, std::vector< MARKER_PCB * >::difference_type i, MARKER_PCB x) + """ + return _pcbnew.MARKERS___setitem__(self, *args) + + def pop(self): + r"""pop(MARKERS self) -> MARKER_PCB""" + return _pcbnew.MARKERS_pop(self) + + def append(self, x): + r"""append(MARKERS self, MARKER_PCB x)""" + return _pcbnew.MARKERS_append(self, x) + + def empty(self): + r"""empty(MARKERS self) -> bool""" + return _pcbnew.MARKERS_empty(self) + + def size(self): + r"""size(MARKERS self) -> std::vector< MARKER_PCB * >::size_type""" + return _pcbnew.MARKERS_size(self) + + def swap(self, v): + r"""swap(MARKERS self, MARKERS v)""" + return _pcbnew.MARKERS_swap(self, v) + + def begin(self): + r"""begin(MARKERS self) -> std::vector< MARKER_PCB * >::iterator""" + return _pcbnew.MARKERS_begin(self) + + def end(self): + r"""end(MARKERS self) -> std::vector< MARKER_PCB * >::iterator""" + return _pcbnew.MARKERS_end(self) + + def rbegin(self): + r"""rbegin(MARKERS self) -> std::vector< MARKER_PCB * >::reverse_iterator""" + return _pcbnew.MARKERS_rbegin(self) + + def rend(self): + r"""rend(MARKERS self) -> std::vector< MARKER_PCB * >::reverse_iterator""" + return _pcbnew.MARKERS_rend(self) + + def clear(self): + r"""clear(MARKERS self)""" + return _pcbnew.MARKERS_clear(self) + + def get_allocator(self): + r"""get_allocator(MARKERS self) -> std::vector< MARKER_PCB * >::allocator_type""" + return _pcbnew.MARKERS_get_allocator(self) + + def pop_back(self): + r"""pop_back(MARKERS self)""" + return _pcbnew.MARKERS_pop_back(self) + + def erase(self, *args): + r""" + erase(MARKERS self, std::vector< MARKER_PCB * >::iterator pos) -> std::vector< MARKER_PCB * >::iterator + erase(MARKERS self, std::vector< MARKER_PCB * >::iterator first, std::vector< MARKER_PCB * >::iterator last) -> std::vector< MARKER_PCB * >::iterator + """ + return _pcbnew.MARKERS_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(MARKERS self) -> MARKERS + __init__(MARKERS self, MARKERS other) -> MARKERS + __init__(MARKERS self, std::vector< MARKER_PCB * >::size_type size) -> MARKERS + __init__(MARKERS self, std::vector< MARKER_PCB * >::size_type size, MARKER_PCB value) -> MARKERS + """ + _pcbnew.MARKERS_swiginit(self, _pcbnew.new_MARKERS(*args)) + + def push_back(self, x): + r"""push_back(MARKERS self, MARKER_PCB x)""" + return _pcbnew.MARKERS_push_back(self, x) + + def front(self): + r"""front(MARKERS self) -> MARKER_PCB""" + return _pcbnew.MARKERS_front(self) + + def back(self): + r"""back(MARKERS self) -> MARKER_PCB""" + return _pcbnew.MARKERS_back(self) + + def assign(self, n, x): + r"""assign(MARKERS self, std::vector< MARKER_PCB * >::size_type n, MARKER_PCB x)""" + return _pcbnew.MARKERS_assign(self, n, x) + + def resize(self, *args): + r""" + resize(MARKERS self, std::vector< MARKER_PCB * >::size_type new_size) + resize(MARKERS self, std::vector< MARKER_PCB * >::size_type new_size, MARKER_PCB x) + """ + return _pcbnew.MARKERS_resize(self, *args) + + def insert(self, *args): + r""" + insert(MARKERS self, std::vector< MARKER_PCB * >::iterator pos, MARKER_PCB x) -> std::vector< MARKER_PCB * >::iterator + insert(MARKERS self, std::vector< MARKER_PCB * >::iterator pos, std::vector< MARKER_PCB * >::size_type n, MARKER_PCB x) + """ + return _pcbnew.MARKERS_insert(self, *args) + + def reserve(self, n): + r"""reserve(MARKERS self, std::vector< MARKER_PCB * >::size_type n)""" + return _pcbnew.MARKERS_reserve(self, n) + + def capacity(self): + r"""capacity(MARKERS self) -> std::vector< MARKER_PCB * >::size_type""" + return _pcbnew.MARKERS_capacity(self) + __swig_destroy__ = _pcbnew.delete_MARKERS + +# Register MARKERS in _pcbnew: +_pcbnew.MARKERS_swigregister(MARKERS) + +class ZONE_CONTAINERS(object): + r"""Proxy of C++ std::vector< ZONE_CONTAINER * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(ZONE_CONTAINERS self) -> SwigPyIterator""" + return _pcbnew.ZONE_CONTAINERS_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(ZONE_CONTAINERS self) -> bool""" + return _pcbnew.ZONE_CONTAINERS___nonzero__(self) + + def __bool__(self): + r"""__bool__(ZONE_CONTAINERS self) -> bool""" + return _pcbnew.ZONE_CONTAINERS___bool__(self) + + def __len__(self): + r"""__len__(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::size_type""" + return _pcbnew.ZONE_CONTAINERS___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::difference_type i, std::vector< ZONE_CONTAINER * >::difference_type j) -> ZONE_CONTAINERS""" + return _pcbnew.ZONE_CONTAINERS___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::difference_type i, std::vector< ZONE_CONTAINER * >::difference_type j) + __setslice__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::difference_type i, std::vector< ZONE_CONTAINER * >::difference_type j, ZONE_CONTAINERS v) + """ + return _pcbnew.ZONE_CONTAINERS___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::difference_type i, std::vector< ZONE_CONTAINER * >::difference_type j)""" + return _pcbnew.ZONE_CONTAINERS___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::difference_type i) + __delitem__(ZONE_CONTAINERS self, PySliceObject * slice) + """ + return _pcbnew.ZONE_CONTAINERS___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(ZONE_CONTAINERS self, PySliceObject * slice) -> ZONE_CONTAINERS + __getitem__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::difference_type i) -> ZONE_CONTAINER + """ + return _pcbnew.ZONE_CONTAINERS___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(ZONE_CONTAINERS self, PySliceObject * slice, ZONE_CONTAINERS v) + __setitem__(ZONE_CONTAINERS self, PySliceObject * slice) + __setitem__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::difference_type i, ZONE_CONTAINER x) + """ + return _pcbnew.ZONE_CONTAINERS___setitem__(self, *args) + + def pop(self): + r"""pop(ZONE_CONTAINERS self) -> ZONE_CONTAINER""" + return _pcbnew.ZONE_CONTAINERS_pop(self) + + def append(self, x): + r"""append(ZONE_CONTAINERS self, ZONE_CONTAINER x)""" + return _pcbnew.ZONE_CONTAINERS_append(self, x) + + def empty(self): + r"""empty(ZONE_CONTAINERS self) -> bool""" + return _pcbnew.ZONE_CONTAINERS_empty(self) + + def size(self): + r"""size(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::size_type""" + return _pcbnew.ZONE_CONTAINERS_size(self) + + def swap(self, v): + r"""swap(ZONE_CONTAINERS self, ZONE_CONTAINERS v)""" + return _pcbnew.ZONE_CONTAINERS_swap(self, v) + + def begin(self): + r"""begin(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::iterator""" + return _pcbnew.ZONE_CONTAINERS_begin(self) + + def end(self): + r"""end(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::iterator""" + return _pcbnew.ZONE_CONTAINERS_end(self) + + def rbegin(self): + r"""rbegin(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::reverse_iterator""" + return _pcbnew.ZONE_CONTAINERS_rbegin(self) + + def rend(self): + r"""rend(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::reverse_iterator""" + return _pcbnew.ZONE_CONTAINERS_rend(self) + + def clear(self): + r"""clear(ZONE_CONTAINERS self)""" + return _pcbnew.ZONE_CONTAINERS_clear(self) + + def get_allocator(self): + r"""get_allocator(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::allocator_type""" + return _pcbnew.ZONE_CONTAINERS_get_allocator(self) + + def pop_back(self): + r"""pop_back(ZONE_CONTAINERS self)""" + return _pcbnew.ZONE_CONTAINERS_pop_back(self) + + def erase(self, *args): + r""" + erase(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::iterator pos) -> std::vector< ZONE_CONTAINER * >::iterator + erase(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::iterator first, std::vector< ZONE_CONTAINER * >::iterator last) -> std::vector< ZONE_CONTAINER * >::iterator + """ + return _pcbnew.ZONE_CONTAINERS_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(ZONE_CONTAINERS self) -> ZONE_CONTAINERS + __init__(ZONE_CONTAINERS self, ZONE_CONTAINERS other) -> ZONE_CONTAINERS + __init__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::size_type size) -> ZONE_CONTAINERS + __init__(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::size_type size, ZONE_CONTAINER value) -> ZONE_CONTAINERS + """ + _pcbnew.ZONE_CONTAINERS_swiginit(self, _pcbnew.new_ZONE_CONTAINERS(*args)) + + def push_back(self, x): + r"""push_back(ZONE_CONTAINERS self, ZONE_CONTAINER x)""" + return _pcbnew.ZONE_CONTAINERS_push_back(self, x) + + def front(self): + r"""front(ZONE_CONTAINERS self) -> ZONE_CONTAINER""" + return _pcbnew.ZONE_CONTAINERS_front(self) + + def back(self): + r"""back(ZONE_CONTAINERS self) -> ZONE_CONTAINER""" + return _pcbnew.ZONE_CONTAINERS_back(self) + + def assign(self, n, x): + r"""assign(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::size_type n, ZONE_CONTAINER x)""" + return _pcbnew.ZONE_CONTAINERS_assign(self, n, x) + + def resize(self, *args): + r""" + resize(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::size_type new_size) + resize(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::size_type new_size, ZONE_CONTAINER x) + """ + return _pcbnew.ZONE_CONTAINERS_resize(self, *args) + + def insert(self, *args): + r""" + insert(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::iterator pos, ZONE_CONTAINER x) -> std::vector< ZONE_CONTAINER * >::iterator + insert(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::iterator pos, std::vector< ZONE_CONTAINER * >::size_type n, ZONE_CONTAINER x) + """ + return _pcbnew.ZONE_CONTAINERS_insert(self, *args) + + def reserve(self, n): + r"""reserve(ZONE_CONTAINERS self, std::vector< ZONE_CONTAINER * >::size_type n)""" + return _pcbnew.ZONE_CONTAINERS_reserve(self, n) + + def capacity(self): + r"""capacity(ZONE_CONTAINERS self) -> std::vector< ZONE_CONTAINER * >::size_type""" + return _pcbnew.ZONE_CONTAINERS_capacity(self) + __swig_destroy__ = _pcbnew.delete_ZONE_CONTAINERS + +# Register ZONE_CONTAINERS in _pcbnew: +_pcbnew.ZONE_CONTAINERS_swigregister(ZONE_CONTAINERS) + +class TRACKS(object): + r"""Proxy of C++ std::deque< TRACK * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(TRACKS self) -> SwigPyIterator""" + return _pcbnew.TRACKS_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(TRACKS self) -> bool""" + return _pcbnew.TRACKS___nonzero__(self) + + def __bool__(self): + r"""__bool__(TRACKS self) -> bool""" + return _pcbnew.TRACKS___bool__(self) + + def __len__(self): + r"""__len__(TRACKS self) -> std::deque< TRACK * >::size_type""" + return _pcbnew.TRACKS___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(TRACKS self, std::deque< TRACK * >::difference_type i, std::deque< TRACK * >::difference_type j) -> TRACKS""" + return _pcbnew.TRACKS___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(TRACKS self, std::deque< TRACK * >::difference_type i, std::deque< TRACK * >::difference_type j) + __setslice__(TRACKS self, std::deque< TRACK * >::difference_type i, std::deque< TRACK * >::difference_type j, TRACKS v) + """ + return _pcbnew.TRACKS___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(TRACKS self, std::deque< TRACK * >::difference_type i, std::deque< TRACK * >::difference_type j)""" + return _pcbnew.TRACKS___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(TRACKS self, std::deque< TRACK * >::difference_type i) + __delitem__(TRACKS self, PySliceObject * slice) + """ + return _pcbnew.TRACKS___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(TRACKS self, PySliceObject * slice) -> TRACKS + __getitem__(TRACKS self, std::deque< TRACK * >::difference_type i) -> TRACK + """ + return _pcbnew.TRACKS___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(TRACKS self, PySliceObject * slice, TRACKS v) + __setitem__(TRACKS self, PySliceObject * slice) + __setitem__(TRACKS self, std::deque< TRACK * >::difference_type i, TRACK x) + """ + return _pcbnew.TRACKS___setitem__(self, *args) + + def pop(self): + r"""pop(TRACKS self) -> TRACK""" + return _pcbnew.TRACKS_pop(self) + + def append(self, x): + r"""append(TRACKS self, TRACK x)""" + return _pcbnew.TRACKS_append(self, x) + + def empty(self): + r"""empty(TRACKS self) -> bool""" + return _pcbnew.TRACKS_empty(self) + + def size(self): + r"""size(TRACKS self) -> std::deque< TRACK * >::size_type""" + return _pcbnew.TRACKS_size(self) + + def swap(self, v): + r"""swap(TRACKS self, TRACKS v)""" + return _pcbnew.TRACKS_swap(self, v) + + def begin(self): + r"""begin(TRACKS self) -> std::deque< TRACK * >::iterator""" + return _pcbnew.TRACKS_begin(self) + + def end(self): + r"""end(TRACKS self) -> std::deque< TRACK * >::iterator""" + return _pcbnew.TRACKS_end(self) + + def rbegin(self): + r"""rbegin(TRACKS self) -> std::deque< TRACK * >::reverse_iterator""" + return _pcbnew.TRACKS_rbegin(self) + + def rend(self): + r"""rend(TRACKS self) -> std::deque< TRACK * >::reverse_iterator""" + return _pcbnew.TRACKS_rend(self) + + def clear(self): + r"""clear(TRACKS self)""" + return _pcbnew.TRACKS_clear(self) + + def get_allocator(self): + r"""get_allocator(TRACKS self) -> std::deque< TRACK * >::allocator_type""" + return _pcbnew.TRACKS_get_allocator(self) + + def pop_back(self): + r"""pop_back(TRACKS self)""" + return _pcbnew.TRACKS_pop_back(self) + + def erase(self, *args): + r""" + erase(TRACKS self, std::deque< TRACK * >::iterator pos) -> std::deque< TRACK * >::iterator + erase(TRACKS self, std::deque< TRACK * >::iterator first, std::deque< TRACK * >::iterator last) -> std::deque< TRACK * >::iterator + """ + return _pcbnew.TRACKS_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(TRACKS self) -> TRACKS + __init__(TRACKS self, TRACKS other) -> TRACKS + __init__(TRACKS self, std::deque< TRACK * >::size_type size) -> TRACKS + __init__(TRACKS self, std::deque< TRACK * >::size_type size, TRACK value) -> TRACKS + """ + _pcbnew.TRACKS_swiginit(self, _pcbnew.new_TRACKS(*args)) + + def push_back(self, x): + r"""push_back(TRACKS self, TRACK x)""" + return _pcbnew.TRACKS_push_back(self, x) + + def front(self): + r"""front(TRACKS self) -> TRACK""" + return _pcbnew.TRACKS_front(self) + + def back(self): + r"""back(TRACKS self) -> TRACK""" + return _pcbnew.TRACKS_back(self) + + def assign(self, n, x): + r"""assign(TRACKS self, std::deque< TRACK * >::size_type n, TRACK x)""" + return _pcbnew.TRACKS_assign(self, n, x) + + def resize(self, *args): + r""" + resize(TRACKS self, std::deque< TRACK * >::size_type new_size) + resize(TRACKS self, std::deque< TRACK * >::size_type new_size, TRACK x) + """ + return _pcbnew.TRACKS_resize(self, *args) + + def insert(self, *args): + r""" + insert(TRACKS self, std::deque< TRACK * >::iterator pos, TRACK x) -> std::deque< TRACK * >::iterator + insert(TRACKS self, std::deque< TRACK * >::iterator pos, std::deque< TRACK * >::size_type n, TRACK x) + """ + return _pcbnew.TRACKS_insert(self, *args) + + def pop_front(self): + r"""pop_front(TRACKS self)""" + return _pcbnew.TRACKS_pop_front(self) + + def push_front(self, x): + r"""push_front(TRACKS self, TRACK x)""" + return _pcbnew.TRACKS_push_front(self, x) + __swig_destroy__ = _pcbnew.delete_TRACKS + +# Register TRACKS in _pcbnew: +_pcbnew.TRACKS_swigregister(TRACKS) + +class BOARD(BOARD_ITEM_CONTAINER): + r"""Proxy of C++ BOARD class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.BOARD_ClassOf(aItem) + + def SetFileName(self, aFileName): + r"""SetFileName(BOARD self, wxString aFileName)""" + return _pcbnew.BOARD_SetFileName(self, aFileName) + + def GetFileName(self): + r"""GetFileName(BOARD self) -> wxString""" + return _pcbnew.BOARD_GetFileName(self) + + def Tracks(self, *args): + r""" + Tracks(BOARD self) -> TRACKS + Tracks(BOARD self) -> TRACKS + """ + return _pcbnew.BOARD_Tracks(self, *args) + + def Modules(self, *args): + r""" + Modules(BOARD self) -> MODULES + Modules(BOARD self) -> MODULES + """ + return _pcbnew.BOARD_Modules(self, *args) + + def Drawings(self): + r"""Drawings(BOARD self) -> DRAWINGS""" + return _pcbnew.BOARD_Drawings(self) + + def Zones(self): + r"""Zones(BOARD self) -> ZONE_CONTAINERS""" + return _pcbnew.BOARD_Zones(self) + + def AllConnectedItems(self): + r"""AllConnectedItems(BOARD self) -> std::vector< BOARD_CONNECTED_ITEM *,std::allocator< BOARD_CONNECTED_ITEM * > > const""" + return _pcbnew.BOARD_AllConnectedItems(self) + m_CurrentZoneContour = property(_pcbnew.BOARD_m_CurrentZoneContour_get, _pcbnew.BOARD_m_CurrentZoneContour_set, doc=r"""m_CurrentZoneContour : p.ZONE_CONTAINER""") + + def __init__(self): + r"""__init__(BOARD self) -> BOARD""" + _pcbnew.BOARD_swiginit(self, _pcbnew.new_BOARD()) + __swig_destroy__ = _pcbnew.delete_BOARD + + def GetPosition(self): + r"""GetPosition(BOARD self) -> wxPoint""" + return _pcbnew.BOARD_GetPosition(self) + + def SetPosition(self, aPos): + r"""SetPosition(BOARD self, wxPoint aPos)""" + return _pcbnew.BOARD_SetPosition(self, aPos) + + def IsEmpty(self): + r"""IsEmpty(BOARD self) -> bool""" + return _pcbnew.BOARD_IsEmpty(self) + + def Move(self, aMoveVector): + r"""Move(BOARD self, wxPoint aMoveVector)""" + return _pcbnew.BOARD_Move(self, aMoveVector) + + def SetFileFormatVersionAtLoad(self, aVersion): + r"""SetFileFormatVersionAtLoad(BOARD self, int aVersion)""" + return _pcbnew.BOARD_SetFileFormatVersionAtLoad(self, aVersion) + + def GetFileFormatVersionAtLoad(self): + r"""GetFileFormatVersionAtLoad(BOARD self) -> int""" + return _pcbnew.BOARD_GetFileFormatVersionAtLoad(self) + + def AddNative(self, aItem, aMode=ADD_INSERT): + r"""AddNative(BOARD self, BOARD_ITEM aItem, ADD_MODE aMode=ADD_INSERT)""" + return _pcbnew.BOARD_AddNative(self, aItem, aMode) + + def RemoveNative(self, aBoardItem): + r"""RemoveNative(BOARD self, BOARD_ITEM aBoardItem)""" + return _pcbnew.BOARD_RemoveNative(self, aBoardItem) + + def GetFirstModule(self): + r"""GetFirstModule(BOARD self) -> MODULE""" + return _pcbnew.BOARD_GetFirstModule(self) + + def DeleteAllModules(self): + r"""DeleteAllModules(BOARD self)""" + return _pcbnew.BOARD_DeleteAllModules(self) + + def GetItem(self, aWeakReference): + r"""GetItem(BOARD self, void * aWeakReference) -> BOARD_ITEM""" + return _pcbnew.BOARD_GetItem(self, aWeakReference) + + def Duplicate(self, aItem, aAddToBoard=False): + r"""Duplicate(BOARD self, BOARD_ITEM aItem, bool aAddToBoard=False) -> BOARD_ITEM""" + return _pcbnew.BOARD_Duplicate(self, aItem, aAddToBoard) + + def GetConnectivity(self): + r"""GetConnectivity(BOARD self) -> std::shared_ptr< CONNECTIVITY_DATA >""" + return _pcbnew.BOARD_GetConnectivity(self) + + def BuildConnectivity(self): + r"""BuildConnectivity(BOARD self)""" + return _pcbnew.BOARD_BuildConnectivity(self) + + def DeleteMARKERs(self): + r"""DeleteMARKERs(BOARD self)""" + return _pcbnew.BOARD_DeleteMARKERs(self) + + def DeleteZONEOutlines(self): + r"""DeleteZONEOutlines(BOARD self)""" + return _pcbnew.BOARD_DeleteZONEOutlines(self) + + def GetMARKER(self, index): + r"""GetMARKER(BOARD self, int index) -> MARKER_PCB""" + return _pcbnew.BOARD_GetMARKER(self, index) + + def GetMARKERCount(self): + r"""GetMARKERCount(BOARD self) -> int""" + return _pcbnew.BOARD_GetMARKERCount(self) + + def SetAuxOrigin(self, aPoint): + r"""SetAuxOrigin(BOARD self, wxPoint aPoint)""" + return _pcbnew.BOARD_SetAuxOrigin(self, aPoint) + + def GetAuxOrigin(self): + r"""GetAuxOrigin(BOARD self) -> wxPoint""" + return _pcbnew.BOARD_GetAuxOrigin(self) + + def SetGridOrigin(self, aPoint): + r"""SetGridOrigin(BOARD self, wxPoint aPoint)""" + return _pcbnew.BOARD_SetGridOrigin(self, aPoint) + + def GetGridOrigin(self): + r"""GetGridOrigin(BOARD self) -> wxPoint""" + return _pcbnew.BOARD_GetGridOrigin(self) + + def ResetNetHighLight(self): + r"""ResetNetHighLight(BOARD self)""" + return _pcbnew.BOARD_ResetNetHighLight(self) + + def GetHighLightNetCode(self): + r"""GetHighLightNetCode(BOARD self) -> int""" + return _pcbnew.BOARD_GetHighLightNetCode(self) + + def SetHighLightNet(self, aNetCode): + r"""SetHighLightNet(BOARD self, int aNetCode)""" + return _pcbnew.BOARD_SetHighLightNet(self, aNetCode) + + def IsHighLightNetON(self): + r"""IsHighLightNetON(BOARD self) -> bool""" + return _pcbnew.BOARD_IsHighLightNetON(self) + + def HighLightOFF(self): + r"""HighLightOFF(BOARD self)""" + return _pcbnew.BOARD_HighLightOFF(self) + + def HighLightON(self): + r"""HighLightON(BOARD self)""" + return _pcbnew.BOARD_HighLightON(self) + + def GetCopperLayerCount(self): + r"""GetCopperLayerCount(BOARD self) -> int""" + return _pcbnew.BOARD_GetCopperLayerCount(self) + + def SetCopperLayerCount(self, aCount): + r"""SetCopperLayerCount(BOARD self, int aCount)""" + return _pcbnew.BOARD_SetCopperLayerCount(self, aCount) + + def GetEnabledLayers(self): + r"""GetEnabledLayers(BOARD self) -> LSET""" + return _pcbnew.BOARD_GetEnabledLayers(self) + + def SetEnabledLayers(self, aLayerMask): + r"""SetEnabledLayers(BOARD self, LSET aLayerMask)""" + return _pcbnew.BOARD_SetEnabledLayers(self, aLayerMask) + + def IsLayerEnabled(self, aLayer): + r"""IsLayerEnabled(BOARD self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.BOARD_IsLayerEnabled(self, aLayer) + + def IsLayerVisible(self, aLayer): + r"""IsLayerVisible(BOARD self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.BOARD_IsLayerVisible(self, aLayer) + + def GetVisibleLayers(self): + r"""GetVisibleLayers(BOARD self) -> LSET""" + return _pcbnew.BOARD_GetVisibleLayers(self) + + def SetVisibleLayers(self, aLayerMask): + r"""SetVisibleLayers(BOARD self, LSET aLayerMask)""" + return _pcbnew.BOARD_SetVisibleLayers(self, aLayerMask) + + def GetVisibleElements(self): + r"""GetVisibleElements(BOARD self) -> int""" + return _pcbnew.BOARD_GetVisibleElements(self) + + def SetVisibleElements(self, aMask): + r"""SetVisibleElements(BOARD self, int aMask)""" + return _pcbnew.BOARD_SetVisibleElements(self, aMask) + + def SetVisibleAlls(self): + r"""SetVisibleAlls(BOARD self)""" + return _pcbnew.BOARD_SetVisibleAlls(self) + + def IsElementVisible(self, aLayer): + r"""IsElementVisible(BOARD self, GAL_LAYER_ID aLayer) -> bool""" + return _pcbnew.BOARD_IsElementVisible(self, aLayer) + + def SetElementVisibility(self, aLayer, aNewState): + r"""SetElementVisibility(BOARD self, GAL_LAYER_ID aLayer, bool aNewState)""" + return _pcbnew.BOARD_SetElementVisibility(self, aLayer, aNewState) + + def IsModuleLayerVisible(self, aLayer): + r"""IsModuleLayerVisible(BOARD self, PCB_LAYER_ID aLayer) -> bool""" + return _pcbnew.BOARD_IsModuleLayerVisible(self, aLayer) + + def GetDesignSettings(self): + r"""GetDesignSettings(BOARD self) -> BOARD_DESIGN_SETTINGS""" + return _pcbnew.BOARD_GetDesignSettings(self) + + def SetDesignSettings(self, aDesignSettings): + r"""SetDesignSettings(BOARD self, BOARD_DESIGN_SETTINGS aDesignSettings)""" + return _pcbnew.BOARD_SetDesignSettings(self, aDesignSettings) + + def GetPageSettings(self): + r"""GetPageSettings(BOARD self) -> PAGE_INFO const &""" + return _pcbnew.BOARD_GetPageSettings(self) + + def SetPageSettings(self, aPageSettings): + r"""SetPageSettings(BOARD self, PAGE_INFO const & aPageSettings)""" + return _pcbnew.BOARD_SetPageSettings(self, aPageSettings) + + def GetPlotOptions(self): + r"""GetPlotOptions(BOARD self) -> PCB_PLOT_PARAMS""" + return _pcbnew.BOARD_GetPlotOptions(self) + + def SetPlotOptions(self, aOptions): + r"""SetPlotOptions(BOARD self, PCB_PLOT_PARAMS aOptions)""" + return _pcbnew.BOARD_SetPlotOptions(self, aOptions) + + def GetTitleBlock(self): + r"""GetTitleBlock(BOARD self) -> TITLE_BLOCK""" + return _pcbnew.BOARD_GetTitleBlock(self) + + def SetTitleBlock(self, aTitleBlock): + r"""SetTitleBlock(BOARD self, TITLE_BLOCK aTitleBlock)""" + return _pcbnew.BOARD_SetTitleBlock(self, aTitleBlock) + + def GetZoneSettings(self): + r"""GetZoneSettings(BOARD self) -> ZONE_SETTINGS""" + return _pcbnew.BOARD_GetZoneSettings(self) + + def SetZoneSettings(self, aSettings): + r"""SetZoneSettings(BOARD self, ZONE_SETTINGS aSettings)""" + return _pcbnew.BOARD_SetZoneSettings(self, aSettings) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(BOARD self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.BOARD_GetSelectMenuText(self, aUnits) + + def Colors(self): + r"""Colors(BOARD self) -> COLORS_DESIGN_SETTINGS""" + return _pcbnew.BOARD_Colors(self) + + def GeneralSettings(self): + r"""GeneralSettings(BOARD self) -> PCB_GENERAL_SETTINGS const &""" + return _pcbnew.BOARD_GeneralSettings(self) + + def SetGeneralSettings(self, aGeneralSettings): + r"""SetGeneralSettings(BOARD self, PCB_GENERAL_SETTINGS * aGeneralSettings)""" + return _pcbnew.BOARD_SetGeneralSettings(self, aGeneralSettings) + + def GetBoardPolygonOutlines(self, aOutlines, aErrorText=None, aErrorLocation=None): + r"""GetBoardPolygonOutlines(BOARD self, SHAPE_POLY_SET aOutlines, wxString aErrorText=None, wxPoint aErrorLocation=None) -> bool""" + return _pcbnew.BOARD_GetBoardPolygonOutlines(self, aOutlines, aErrorText, aErrorLocation) + + def ConvertBrdLayerToPolygonalContours(self, aLayer, aOutlines): + r"""ConvertBrdLayerToPolygonalContours(BOARD self, PCB_LAYER_ID aLayer, SHAPE_POLY_SET aOutlines)""" + return _pcbnew.BOARD_ConvertBrdLayerToPolygonalContours(self, aLayer, aOutlines) + + def GetLayerID(self, aLayerName): + r"""GetLayerID(BOARD self, wxString aLayerName) -> PCB_LAYER_ID const""" + return _pcbnew.BOARD_GetLayerID(self, aLayerName) + + def GetLayerName(self, aLayer): + r"""GetLayerName(BOARD self, PCB_LAYER_ID aLayer) -> wxString""" + return _pcbnew.BOARD_GetLayerName(self, aLayer) + + def SetLayerName(self, aLayer, aLayerName): + r"""SetLayerName(BOARD self, PCB_LAYER_ID aLayer, wxString aLayerName) -> bool""" + return _pcbnew.BOARD_SetLayerName(self, aLayer, aLayerName) + + @staticmethod + def GetStandardLayerName(aLayerId): + r"""GetStandardLayerName(PCB_LAYER_ID aLayerId) -> wxString""" + return _pcbnew.BOARD_GetStandardLayerName(aLayerId) + + def SetLayerDescr(self, aIndex, aLayer): + r"""SetLayerDescr(BOARD self, PCB_LAYER_ID aIndex, LAYER aLayer) -> bool""" + return _pcbnew.BOARD_SetLayerDescr(self, aIndex, aLayer) + + def GetLayerType(self, aLayer): + r"""GetLayerType(BOARD self, PCB_LAYER_ID aLayer) -> LAYER_T""" + return _pcbnew.BOARD_GetLayerType(self, aLayer) + + def SetLayerType(self, aLayer, aLayerType): + r"""SetLayerType(BOARD self, PCB_LAYER_ID aLayer, LAYER_T aLayerType) -> bool""" + return _pcbnew.BOARD_SetLayerType(self, aLayer, aLayerType) + + def GetNodesCount(self, aNet=-1): + r"""GetNodesCount(BOARD self, int aNet=-1) -> unsigned int""" + return _pcbnew.BOARD_GetNodesCount(self, aNet) + + def GetUnconnectedNetCount(self): + r"""GetUnconnectedNetCount(BOARD self) -> unsigned int""" + return _pcbnew.BOARD_GetUnconnectedNetCount(self) + + def GetPadCount(self): + r"""GetPadCount(BOARD self) -> unsigned int""" + return _pcbnew.BOARD_GetPadCount(self) + + def GetPads(self): + r"""GetPads(BOARD self) -> D_PADS""" + return _pcbnew.BOARD_GetPads(self) + + def BuildListOfNets(self): + r"""BuildListOfNets(BOARD self)""" + return _pcbnew.BOARD_BuildListOfNets(self) + + def FindNet(self, *args): + r""" + FindNet(BOARD self, int aNetcode) -> NETINFO_ITEM + FindNet(BOARD self, wxString aNetname) -> NETINFO_ITEM + """ + return _pcbnew.BOARD_FindNet(self, *args) + + def GetNetInfo(self): + r"""GetNetInfo(BOARD self) -> NETINFO_LIST""" + return _pcbnew.BOARD_GetNetInfo(self) + + def GetNetCount(self): + r"""GetNetCount(BOARD self) -> unsigned int""" + return _pcbnew.BOARD_GetNetCount(self) + + def ComputeBoundingBox(self, aBoardEdgesOnly=False): + r"""ComputeBoundingBox(BOARD self, bool aBoardEdgesOnly=False) -> EDA_RECT""" + return _pcbnew.BOARD_ComputeBoundingBox(self, aBoardEdgesOnly) + + def GetBoundingBox(self): + r"""GetBoundingBox(BOARD self) -> EDA_RECT""" + return _pcbnew.BOARD_GetBoundingBox(self) + + def GetBoardEdgesBoundingBox(self): + r"""GetBoardEdgesBoundingBox(BOARD self) -> EDA_RECT""" + return _pcbnew.BOARD_GetBoardEdgesBoundingBox(self) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(BOARD self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.BOARD_GetMsgPanelInfo(self, aUnits, aList) + + def Print(self, *args): + r"""Print(BOARD self, PCB_BASE_FRAME * aFrame, wxDC * aDC, wxPoint aOffset=)""" + return _pcbnew.BOARD_Print(self, *args) + + def Visit(self, inspector, testData, scanTypes): + r"""Visit(BOARD self, INSPECTOR inspector, void * testData, KICAD_T const [] scanTypes) -> SEARCH_RESULT""" + return _pcbnew.BOARD_Visit(self, inspector, testData, scanTypes) + + def FindModuleByReference(self, aReference): + r"""FindModuleByReference(BOARD self, wxString aReference) -> MODULE""" + return _pcbnew.BOARD_FindModuleByReference(self, aReference) + + def FindModule(self, aRefOrTimeStamp, aSearchByTimeStamp=False): + r"""FindModule(BOARD self, wxString aRefOrTimeStamp, bool aSearchByTimeStamp=False) -> MODULE""" + return _pcbnew.BOARD_FindModule(self, aRefOrTimeStamp, aSearchByTimeStamp) + + def SortedNetnamesList(self, aNames, aSortbyPadsCount): + r"""SortedNetnamesList(BOARD self, wxArrayString & aNames, bool aSortbyPadsCount) -> int""" + return _pcbnew.BOARD_SortedNetnamesList(self, aNames, aSortbyPadsCount) + + def SynchronizeNetsAndNetClasses(self): + r"""SynchronizeNetsAndNetClasses(BOARD self)""" + return _pcbnew.BOARD_SynchronizeNetsAndNetClasses(self) + + def GetClass(self): + r"""GetClass(BOARD self) -> wxString""" + return _pcbnew.BOARD_GetClass(self) + + def HitTestForAnyFilledArea(self, aRefPos, aStartLayer, aEndLayer, aNetCode): + r"""HitTestForAnyFilledArea(BOARD self, wxPoint aRefPos, PCB_LAYER_ID aStartLayer, PCB_LAYER_ID aEndLayer, int aNetCode) -> ZONE_CONTAINER""" + return _pcbnew.BOARD_HitTestForAnyFilledArea(self, aRefPos, aStartLayer, aEndLayer, aNetCode) + + def SetAreasNetCodesFromNetNames(self): + r"""SetAreasNetCodesFromNetNames(BOARD self) -> int""" + return _pcbnew.BOARD_SetAreasNetCodesFromNetNames(self) + + def GetArea(self, index): + r"""GetArea(BOARD self, int index) -> ZONE_CONTAINER""" + return _pcbnew.BOARD_GetArea(self, index) + + def GetAreaIndex(self, aArea): + r"""GetAreaIndex(BOARD self, ZONE_CONTAINER aArea) -> int""" + return _pcbnew.BOARD_GetAreaIndex(self, aArea) + + def GetAreaCount(self): + r"""GetAreaCount(BOARD self) -> int""" + return _pcbnew.BOARD_GetAreaCount(self) + + def AddArea(self, aNewZonesList, aNetcode, aLayer, aStartPointPosition, aHatch): + r"""AddArea(BOARD self, PICKED_ITEMS_LIST * aNewZonesList, int aNetcode, PCB_LAYER_ID aLayer, wxPoint aStartPointPosition, int aHatch) -> ZONE_CONTAINER""" + return _pcbnew.BOARD_AddArea(self, aNewZonesList, aNetcode, aLayer, aStartPointPosition, aHatch) + + def InsertArea(self, aNetcode, aAreaIdx, aLayer, aCornerX, aCornerY, aHatch): + r"""InsertArea(BOARD self, int aNetcode, int aAreaIdx, PCB_LAYER_ID aLayer, int aCornerX, int aCornerY, int aHatch) -> ZONE_CONTAINER""" + return _pcbnew.BOARD_InsertArea(self, aNetcode, aAreaIdx, aLayer, aCornerX, aCornerY, aHatch) + + def NormalizeAreaPolygon(self, aNewZonesList, aCurrArea): + r"""NormalizeAreaPolygon(BOARD self, PICKED_ITEMS_LIST * aNewZonesList, ZONE_CONTAINER aCurrArea) -> bool""" + return _pcbnew.BOARD_NormalizeAreaPolygon(self, aNewZonesList, aCurrArea) + + def OnAreaPolygonModified(self, aModifiedZonesList, modified_area): + r"""OnAreaPolygonModified(BOARD self, PICKED_ITEMS_LIST * aModifiedZonesList, ZONE_CONTAINER modified_area) -> bool""" + return _pcbnew.BOARD_OnAreaPolygonModified(self, aModifiedZonesList, modified_area) + + def CombineAllAreasInNet(self, aDeletedList, aNetCode, aUseLocalFlags): + r"""CombineAllAreasInNet(BOARD self, PICKED_ITEMS_LIST * aDeletedList, int aNetCode, bool aUseLocalFlags) -> bool""" + return _pcbnew.BOARD_CombineAllAreasInNet(self, aDeletedList, aNetCode, aUseLocalFlags) + + def RemoveArea(self, aDeletedList, area_to_remove): + r"""RemoveArea(BOARD self, PICKED_ITEMS_LIST * aDeletedList, ZONE_CONTAINER area_to_remove)""" + return _pcbnew.BOARD_RemoveArea(self, aDeletedList, area_to_remove) + + def TestAreaIntersections(self, area_to_test): + r"""TestAreaIntersections(BOARD self, ZONE_CONTAINER area_to_test) -> bool""" + return _pcbnew.BOARD_TestAreaIntersections(self, area_to_test) + + def TestAreaIntersection(self, area_ref, area_to_test): + r"""TestAreaIntersection(BOARD self, ZONE_CONTAINER area_ref, ZONE_CONTAINER area_to_test) -> bool""" + return _pcbnew.BOARD_TestAreaIntersection(self, area_ref, area_to_test) + + def CombineAreas(self, aDeletedList, area_ref, area_to_combine): + r"""CombineAreas(BOARD self, PICKED_ITEMS_LIST * aDeletedList, ZONE_CONTAINER area_ref, ZONE_CONTAINER area_to_combine) -> bool""" + return _pcbnew.BOARD_CombineAreas(self, aDeletedList, area_ref, area_to_combine) + + def GetPadFast(self, aPosition, aLayerMask): + r"""GetPadFast(BOARD self, wxPoint aPosition, LSET aLayerMask) -> D_PAD""" + return _pcbnew.BOARD_GetPadFast(self, aPosition, aLayerMask) + + def GetPad(self, *args): + r""" + GetPad(BOARD self, unsigned int aIndex) -> D_PAD + GetPad(BOARD self, wxPoint aPosition, LSET aLayerMask) -> D_PAD + GetPad(BOARD self, wxPoint aPosition) -> D_PAD + GetPad(BOARD self, TRACK aTrace, ENDPOINT_T aEndPoint) -> D_PAD + GetPad(BOARD self, D_PADS aPadList, wxPoint aPosition, LSET aLayerMask) -> D_PAD + """ + return _pcbnew.BOARD_GetPad(self, *args) + + def PadDelete(self, aPad): + r"""PadDelete(BOARD self, D_PAD aPad)""" + return _pcbnew.BOARD_PadDelete(self, aPad) + + def GetSortedPadListByXthenYCoord(self, aVector, aNetCode=-1): + r"""GetSortedPadListByXthenYCoord(BOARD self, D_PADS aVector, int aNetCode=-1)""" + return _pcbnew.BOARD_GetSortedPadListByXthenYCoord(self, aVector, aNetCode) + + def GetTrackLength(self, aTrack): + r"""GetTrackLength(BOARD self, TRACK aTrack) -> std::tuple< int,double,double >""" + return _pcbnew.BOARD_GetTrackLength(self, aTrack) + + def TracksInNet(self, aNetCode): + r"""TracksInNet(BOARD self, int aNetCode) -> TRACKS""" + return _pcbnew.BOARD_TracksInNet(self, aNetCode) + + def GetFootprint(self, aPosition, aActiveLayer, aVisibleOnly, aIgnoreLocked=False): + r"""GetFootprint(BOARD self, wxPoint aPosition, PCB_LAYER_ID aActiveLayer, bool aVisibleOnly, bool aIgnoreLocked=False) -> MODULE""" + return _pcbnew.BOARD_GetFootprint(self, aPosition, aActiveLayer, aVisibleOnly, aIgnoreLocked) + + def ClearAllNetCodes(self): + r"""ClearAllNetCodes(BOARD self)""" + return _pcbnew.BOARD_ClearAllNetCodes(self) + + def SanitizeNetcodes(self): + r"""SanitizeNetcodes(BOARD self)""" + return _pcbnew.BOARD_SanitizeNetcodes(self) + + + def GetModules(self): return self.Modules() + def GetDrawings(self): return self.Drawings() + def GetTracks(self): return self.Tracks() + + def Save(self,filename): + return SaveBoard(filename,self) + + def GetNetClasses(self): + return self.GetDesignSettings().m_NetClasses + + def GetCurrentNetClassName(self): + return self.GetDesignSettings().m_CurrentNetClassName + + def GetViasDimensionsList(self): + return self.GetDesignSettings().m_ViasDimensionsList + + def GetTrackWidthList(self): + return self.GetDesignSettings().m_TrackWidthList + + def GetNetsByName(self): + """ + Return a dictionary like object with key:wxString netname and value:NETINFO_ITEM + """ + return self.GetNetInfo().NetsByName() + + def GetNetsByNetcode(self): + """ + Return a dictionary like object with key:int netcode and value:NETINFO_ITEM + """ + return self.GetNetInfo().NetsByNetcode() + + def GetNetcodeFromNetname(self,netname): + """ + Given a netname, return its netcode + """ + net = self.GetNetsByName()[netname] + return net.GetNet() + + def GetAllNetClasses(self): + """ + Return a dictionary like object with net_class_name as key and NETCLASSPTR as value + GetNetClasses(BOARD self) -> { wxString net_class_name : NETCLASSPTR } + Include the "Default" netclass also. + """ + + # Copy the NETCLASS_MAP so the one in the BOARD isn't modified + # when we add the Default net class. + netclassmap = {k:v for k,v in self.GetNetClasses().NetClasses().items()} + netclassmap['Default'] = self.GetNetClasses().GetDefault() + return netclassmap + + +# Register BOARD in _pcbnew: +_pcbnew.BOARD_swigregister(BOARD) + +def BOARD_ClassOf(aItem): + r"""BOARD_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.BOARD_ClassOf(aItem) + +def BOARD_GetStandardLayerName(aLayerId): + r"""BOARD_GetStandardLayerName(PCB_LAYER_ID aLayerId) -> wxString""" + return _pcbnew.BOARD_GetStandardLayerName(aLayerId) + +DO_NOT_INCLUDE_NPTH = _pcbnew.DO_NOT_INCLUDE_NPTH + +INCLUDE_NPTH = _pcbnew.INCLUDE_NPTH + +MOD_DEFAULT = _pcbnew.MOD_DEFAULT + +MOD_CMS = _pcbnew.MOD_CMS + +MOD_VIRTUAL = _pcbnew.MOD_VIRTUAL + +class MODULE_3D_SETTINGS(object): + r"""Proxy of C++ MODULE_3D_SETTINGS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self): + r"""__init__(MODULE_3D_SETTINGS self) -> MODULE_3D_SETTINGS""" + _pcbnew.MODULE_3D_SETTINGS_swiginit(self, _pcbnew.new_MODULE_3D_SETTINGS()) + m_Scale = property(_pcbnew.MODULE_3D_SETTINGS_m_Scale_get, _pcbnew.MODULE_3D_SETTINGS_m_Scale_set, doc=r"""m_Scale : MODULE_3D_SETTINGS::VECTOR3D""") + m_Rotation = property(_pcbnew.MODULE_3D_SETTINGS_m_Rotation_get, _pcbnew.MODULE_3D_SETTINGS_m_Rotation_set, doc=r"""m_Rotation : MODULE_3D_SETTINGS::VECTOR3D""") + m_Offset = property(_pcbnew.MODULE_3D_SETTINGS_m_Offset_get, _pcbnew.MODULE_3D_SETTINGS_m_Offset_set, doc=r"""m_Offset : MODULE_3D_SETTINGS::VECTOR3D""") + m_Filename = property(_pcbnew.MODULE_3D_SETTINGS_m_Filename_get, _pcbnew.MODULE_3D_SETTINGS_m_Filename_set, doc=r"""m_Filename : wxString""") + m_Preview = property(_pcbnew.MODULE_3D_SETTINGS_m_Preview_get, _pcbnew.MODULE_3D_SETTINGS_m_Preview_set, doc=r"""m_Preview : bool""") + __swig_destroy__ = _pcbnew.delete_MODULE_3D_SETTINGS + +# Register MODULE_3D_SETTINGS in _pcbnew: +_pcbnew.MODULE_3D_SETTINGS_swigregister(MODULE_3D_SETTINGS) + +class MODULE_3D_SETTINGS_VECTOR3D(object): + r"""Proxy of C++ MODULE_3D_SETTINGS::VECTOR3D class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + x = property(_pcbnew.MODULE_3D_SETTINGS_VECTOR3D_x_get, _pcbnew.MODULE_3D_SETTINGS_VECTOR3D_x_set, doc=r"""x : double""") + y = property(_pcbnew.MODULE_3D_SETTINGS_VECTOR3D_y_get, _pcbnew.MODULE_3D_SETTINGS_VECTOR3D_y_set, doc=r"""y : double""") + z = property(_pcbnew.MODULE_3D_SETTINGS_VECTOR3D_z_get, _pcbnew.MODULE_3D_SETTINGS_VECTOR3D_z_set, doc=r"""z : double""") + + def __init__(self): + r"""__init__(MODULE_3D_SETTINGS_VECTOR3D self) -> MODULE_3D_SETTINGS_VECTOR3D""" + _pcbnew.MODULE_3D_SETTINGS_VECTOR3D_swiginit(self, _pcbnew.new_MODULE_3D_SETTINGS_VECTOR3D()) + __swig_destroy__ = _pcbnew.delete_MODULE_3D_SETTINGS_VECTOR3D + +# Register MODULE_3D_SETTINGS_VECTOR3D in _pcbnew: +_pcbnew.MODULE_3D_SETTINGS_VECTOR3D_swigregister(MODULE_3D_SETTINGS_VECTOR3D) + +class PADS(object): + r"""Proxy of C++ std::deque< D_PAD * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(PADS self) -> SwigPyIterator""" + return _pcbnew.PADS_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(PADS self) -> bool""" + return _pcbnew.PADS___nonzero__(self) + + def __bool__(self): + r"""__bool__(PADS self) -> bool""" + return _pcbnew.PADS___bool__(self) + + def __len__(self): + r"""__len__(PADS self) -> std::deque< D_PAD * >::size_type""" + return _pcbnew.PADS___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(PADS self, std::deque< D_PAD * >::difference_type i, std::deque< D_PAD * >::difference_type j) -> PADS""" + return _pcbnew.PADS___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(PADS self, std::deque< D_PAD * >::difference_type i, std::deque< D_PAD * >::difference_type j) + __setslice__(PADS self, std::deque< D_PAD * >::difference_type i, std::deque< D_PAD * >::difference_type j, PADS v) + """ + return _pcbnew.PADS___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(PADS self, std::deque< D_PAD * >::difference_type i, std::deque< D_PAD * >::difference_type j)""" + return _pcbnew.PADS___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(PADS self, std::deque< D_PAD * >::difference_type i) + __delitem__(PADS self, PySliceObject * slice) + """ + return _pcbnew.PADS___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(PADS self, PySliceObject * slice) -> PADS + __getitem__(PADS self, std::deque< D_PAD * >::difference_type i) -> D_PAD + """ + return _pcbnew.PADS___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(PADS self, PySliceObject * slice, PADS v) + __setitem__(PADS self, PySliceObject * slice) + __setitem__(PADS self, std::deque< D_PAD * >::difference_type i, D_PAD x) + """ + return _pcbnew.PADS___setitem__(self, *args) + + def pop(self): + r"""pop(PADS self) -> D_PAD""" + return _pcbnew.PADS_pop(self) + + def append(self, x): + r"""append(PADS self, D_PAD x)""" + return _pcbnew.PADS_append(self, x) + + def empty(self): + r"""empty(PADS self) -> bool""" + return _pcbnew.PADS_empty(self) + + def size(self): + r"""size(PADS self) -> std::deque< D_PAD * >::size_type""" + return _pcbnew.PADS_size(self) + + def swap(self, v): + r"""swap(PADS self, PADS v)""" + return _pcbnew.PADS_swap(self, v) + + def begin(self): + r"""begin(PADS self) -> std::deque< D_PAD * >::iterator""" + return _pcbnew.PADS_begin(self) + + def end(self): + r"""end(PADS self) -> std::deque< D_PAD * >::iterator""" + return _pcbnew.PADS_end(self) + + def rbegin(self): + r"""rbegin(PADS self) -> std::deque< D_PAD * >::reverse_iterator""" + return _pcbnew.PADS_rbegin(self) + + def rend(self): + r"""rend(PADS self) -> std::deque< D_PAD * >::reverse_iterator""" + return _pcbnew.PADS_rend(self) + + def clear(self): + r"""clear(PADS self)""" + return _pcbnew.PADS_clear(self) + + def get_allocator(self): + r"""get_allocator(PADS self) -> std::deque< D_PAD * >::allocator_type""" + return _pcbnew.PADS_get_allocator(self) + + def pop_back(self): + r"""pop_back(PADS self)""" + return _pcbnew.PADS_pop_back(self) + + def erase(self, *args): + r""" + erase(PADS self, std::deque< D_PAD * >::iterator pos) -> std::deque< D_PAD * >::iterator + erase(PADS self, std::deque< D_PAD * >::iterator first, std::deque< D_PAD * >::iterator last) -> std::deque< D_PAD * >::iterator + """ + return _pcbnew.PADS_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(PADS self) -> PADS + __init__(PADS self, PADS other) -> PADS + __init__(PADS self, std::deque< D_PAD * >::size_type size) -> PADS + __init__(PADS self, std::deque< D_PAD * >::size_type size, D_PAD value) -> PADS + """ + _pcbnew.PADS_swiginit(self, _pcbnew.new_PADS(*args)) + + def push_back(self, x): + r"""push_back(PADS self, D_PAD x)""" + return _pcbnew.PADS_push_back(self, x) + + def front(self): + r"""front(PADS self) -> D_PAD""" + return _pcbnew.PADS_front(self) + + def back(self): + r"""back(PADS self) -> D_PAD""" + return _pcbnew.PADS_back(self) + + def assign(self, n, x): + r"""assign(PADS self, std::deque< D_PAD * >::size_type n, D_PAD x)""" + return _pcbnew.PADS_assign(self, n, x) + + def resize(self, *args): + r""" + resize(PADS self, std::deque< D_PAD * >::size_type new_size) + resize(PADS self, std::deque< D_PAD * >::size_type new_size, D_PAD x) + """ + return _pcbnew.PADS_resize(self, *args) + + def insert(self, *args): + r""" + insert(PADS self, std::deque< D_PAD * >::iterator pos, D_PAD x) -> std::deque< D_PAD * >::iterator + insert(PADS self, std::deque< D_PAD * >::iterator pos, std::deque< D_PAD * >::size_type n, D_PAD x) + """ + return _pcbnew.PADS_insert(self, *args) + + def pop_front(self): + r"""pop_front(PADS self)""" + return _pcbnew.PADS_pop_front(self) + + def push_front(self, x): + r"""push_front(PADS self, D_PAD x)""" + return _pcbnew.PADS_push_front(self, x) + __swig_destroy__ = _pcbnew.delete_PADS + +# Register PADS in _pcbnew: +_pcbnew.PADS_swigregister(PADS) + +class DRAWINGS(object): + r"""Proxy of C++ std::deque< BOARD_ITEM * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(DRAWINGS self) -> SwigPyIterator""" + return _pcbnew.DRAWINGS_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(DRAWINGS self) -> bool""" + return _pcbnew.DRAWINGS___nonzero__(self) + + def __bool__(self): + r"""__bool__(DRAWINGS self) -> bool""" + return _pcbnew.DRAWINGS___bool__(self) + + def __len__(self): + r"""__len__(DRAWINGS self) -> std::deque< BOARD_ITEM * >::size_type""" + return _pcbnew.DRAWINGS___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(DRAWINGS self, std::deque< BOARD_ITEM * >::difference_type i, std::deque< BOARD_ITEM * >::difference_type j) -> DRAWINGS""" + return _pcbnew.DRAWINGS___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(DRAWINGS self, std::deque< BOARD_ITEM * >::difference_type i, std::deque< BOARD_ITEM * >::difference_type j) + __setslice__(DRAWINGS self, std::deque< BOARD_ITEM * >::difference_type i, std::deque< BOARD_ITEM * >::difference_type j, DRAWINGS v) + """ + return _pcbnew.DRAWINGS___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(DRAWINGS self, std::deque< BOARD_ITEM * >::difference_type i, std::deque< BOARD_ITEM * >::difference_type j)""" + return _pcbnew.DRAWINGS___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(DRAWINGS self, std::deque< BOARD_ITEM * >::difference_type i) + __delitem__(DRAWINGS self, PySliceObject * slice) + """ + return _pcbnew.DRAWINGS___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(DRAWINGS self, PySliceObject * slice) -> DRAWINGS + __getitem__(DRAWINGS self, std::deque< BOARD_ITEM * >::difference_type i) -> BOARD_ITEM + """ + return _pcbnew.DRAWINGS___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(DRAWINGS self, PySliceObject * slice, DRAWINGS v) + __setitem__(DRAWINGS self, PySliceObject * slice) + __setitem__(DRAWINGS self, std::deque< BOARD_ITEM * >::difference_type i, BOARD_ITEM x) + """ + return _pcbnew.DRAWINGS___setitem__(self, *args) + + def pop(self): + r"""pop(DRAWINGS self) -> BOARD_ITEM""" + return _pcbnew.DRAWINGS_pop(self) + + def append(self, x): + r"""append(DRAWINGS self, BOARD_ITEM x)""" + return _pcbnew.DRAWINGS_append(self, x) + + def empty(self): + r"""empty(DRAWINGS self) -> bool""" + return _pcbnew.DRAWINGS_empty(self) + + def size(self): + r"""size(DRAWINGS self) -> std::deque< BOARD_ITEM * >::size_type""" + return _pcbnew.DRAWINGS_size(self) + + def swap(self, v): + r"""swap(DRAWINGS self, DRAWINGS v)""" + return _pcbnew.DRAWINGS_swap(self, v) + + def begin(self): + r"""begin(DRAWINGS self) -> std::deque< BOARD_ITEM * >::iterator""" + return _pcbnew.DRAWINGS_begin(self) + + def end(self): + r"""end(DRAWINGS self) -> std::deque< BOARD_ITEM * >::iterator""" + return _pcbnew.DRAWINGS_end(self) + + def rbegin(self): + r"""rbegin(DRAWINGS self) -> std::deque< BOARD_ITEM * >::reverse_iterator""" + return _pcbnew.DRAWINGS_rbegin(self) + + def rend(self): + r"""rend(DRAWINGS self) -> std::deque< BOARD_ITEM * >::reverse_iterator""" + return _pcbnew.DRAWINGS_rend(self) + + def clear(self): + r"""clear(DRAWINGS self)""" + return _pcbnew.DRAWINGS_clear(self) + + def get_allocator(self): + r"""get_allocator(DRAWINGS self) -> std::deque< BOARD_ITEM * >::allocator_type""" + return _pcbnew.DRAWINGS_get_allocator(self) + + def pop_back(self): + r"""pop_back(DRAWINGS self)""" + return _pcbnew.DRAWINGS_pop_back(self) + + def erase(self, *args): + r""" + erase(DRAWINGS self, std::deque< BOARD_ITEM * >::iterator pos) -> std::deque< BOARD_ITEM * >::iterator + erase(DRAWINGS self, std::deque< BOARD_ITEM * >::iterator first, std::deque< BOARD_ITEM * >::iterator last) -> std::deque< BOARD_ITEM * >::iterator + """ + return _pcbnew.DRAWINGS_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(DRAWINGS self) -> DRAWINGS + __init__(DRAWINGS self, DRAWINGS other) -> DRAWINGS + __init__(DRAWINGS self, std::deque< BOARD_ITEM * >::size_type size) -> DRAWINGS + __init__(DRAWINGS self, std::deque< BOARD_ITEM * >::size_type size, BOARD_ITEM value) -> DRAWINGS + """ + _pcbnew.DRAWINGS_swiginit(self, _pcbnew.new_DRAWINGS(*args)) + + def push_back(self, x): + r"""push_back(DRAWINGS self, BOARD_ITEM x)""" + return _pcbnew.DRAWINGS_push_back(self, x) + + def front(self): + r"""front(DRAWINGS self) -> BOARD_ITEM""" + return _pcbnew.DRAWINGS_front(self) + + def back(self): + r"""back(DRAWINGS self) -> BOARD_ITEM""" + return _pcbnew.DRAWINGS_back(self) + + def assign(self, n, x): + r"""assign(DRAWINGS self, std::deque< BOARD_ITEM * >::size_type n, BOARD_ITEM x)""" + return _pcbnew.DRAWINGS_assign(self, n, x) + + def resize(self, *args): + r""" + resize(DRAWINGS self, std::deque< BOARD_ITEM * >::size_type new_size) + resize(DRAWINGS self, std::deque< BOARD_ITEM * >::size_type new_size, BOARD_ITEM x) + """ + return _pcbnew.DRAWINGS_resize(self, *args) + + def insert(self, *args): + r""" + insert(DRAWINGS self, std::deque< BOARD_ITEM * >::iterator pos, BOARD_ITEM x) -> std::deque< BOARD_ITEM * >::iterator + insert(DRAWINGS self, std::deque< BOARD_ITEM * >::iterator pos, std::deque< BOARD_ITEM * >::size_type n, BOARD_ITEM x) + """ + return _pcbnew.DRAWINGS_insert(self, *args) + + def pop_front(self): + r"""pop_front(DRAWINGS self)""" + return _pcbnew.DRAWINGS_pop_front(self) + + def push_front(self, x): + r"""push_front(DRAWINGS self, BOARD_ITEM x)""" + return _pcbnew.DRAWINGS_push_front(self, x) + + def __iter__(self): + it = self.iterator() + try: + while True: + item = it.next() # throws StopIteration when iterator reached the end. + yield item.Cast() + except StopIteration: + return + + __swig_destroy__ = _pcbnew.delete_DRAWINGS + +# Register DRAWINGS in _pcbnew: +_pcbnew.DRAWINGS_swigregister(DRAWINGS) + +class MODULES(object): + r"""Proxy of C++ std::deque< MODULE * > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(MODULES self) -> SwigPyIterator""" + return _pcbnew.MODULES_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(MODULES self) -> bool""" + return _pcbnew.MODULES___nonzero__(self) + + def __bool__(self): + r"""__bool__(MODULES self) -> bool""" + return _pcbnew.MODULES___bool__(self) + + def __len__(self): + r"""__len__(MODULES self) -> std::deque< MODULE * >::size_type""" + return _pcbnew.MODULES___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(MODULES self, std::deque< MODULE * >::difference_type i, std::deque< MODULE * >::difference_type j) -> MODULES""" + return _pcbnew.MODULES___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(MODULES self, std::deque< MODULE * >::difference_type i, std::deque< MODULE * >::difference_type j) + __setslice__(MODULES self, std::deque< MODULE * >::difference_type i, std::deque< MODULE * >::difference_type j, MODULES v) + """ + return _pcbnew.MODULES___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(MODULES self, std::deque< MODULE * >::difference_type i, std::deque< MODULE * >::difference_type j)""" + return _pcbnew.MODULES___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(MODULES self, std::deque< MODULE * >::difference_type i) + __delitem__(MODULES self, PySliceObject * slice) + """ + return _pcbnew.MODULES___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(MODULES self, PySliceObject * slice) -> MODULES + __getitem__(MODULES self, std::deque< MODULE * >::difference_type i) -> MODULE + """ + return _pcbnew.MODULES___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(MODULES self, PySliceObject * slice, MODULES v) + __setitem__(MODULES self, PySliceObject * slice) + __setitem__(MODULES self, std::deque< MODULE * >::difference_type i, MODULE x) + """ + return _pcbnew.MODULES___setitem__(self, *args) + + def pop(self): + r"""pop(MODULES self) -> MODULE""" + return _pcbnew.MODULES_pop(self) + + def append(self, x): + r"""append(MODULES self, MODULE x)""" + return _pcbnew.MODULES_append(self, x) + + def empty(self): + r"""empty(MODULES self) -> bool""" + return _pcbnew.MODULES_empty(self) + + def size(self): + r"""size(MODULES self) -> std::deque< MODULE * >::size_type""" + return _pcbnew.MODULES_size(self) + + def swap(self, v): + r"""swap(MODULES self, MODULES v)""" + return _pcbnew.MODULES_swap(self, v) + + def begin(self): + r"""begin(MODULES self) -> std::deque< MODULE * >::iterator""" + return _pcbnew.MODULES_begin(self) + + def end(self): + r"""end(MODULES self) -> std::deque< MODULE * >::iterator""" + return _pcbnew.MODULES_end(self) + + def rbegin(self): + r"""rbegin(MODULES self) -> std::deque< MODULE * >::reverse_iterator""" + return _pcbnew.MODULES_rbegin(self) + + def rend(self): + r"""rend(MODULES self) -> std::deque< MODULE * >::reverse_iterator""" + return _pcbnew.MODULES_rend(self) + + def clear(self): + r"""clear(MODULES self)""" + return _pcbnew.MODULES_clear(self) + + def get_allocator(self): + r"""get_allocator(MODULES self) -> std::deque< MODULE * >::allocator_type""" + return _pcbnew.MODULES_get_allocator(self) + + def pop_back(self): + r"""pop_back(MODULES self)""" + return _pcbnew.MODULES_pop_back(self) + + def erase(self, *args): + r""" + erase(MODULES self, std::deque< MODULE * >::iterator pos) -> std::deque< MODULE * >::iterator + erase(MODULES self, std::deque< MODULE * >::iterator first, std::deque< MODULE * >::iterator last) -> std::deque< MODULE * >::iterator + """ + return _pcbnew.MODULES_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(MODULES self) -> MODULES + __init__(MODULES self, MODULES other) -> MODULES + __init__(MODULES self, std::deque< MODULE * >::size_type size) -> MODULES + __init__(MODULES self, std::deque< MODULE * >::size_type size, MODULE value) -> MODULES + """ + _pcbnew.MODULES_swiginit(self, _pcbnew.new_MODULES(*args)) + + def push_back(self, x): + r"""push_back(MODULES self, MODULE x)""" + return _pcbnew.MODULES_push_back(self, x) + + def front(self): + r"""front(MODULES self) -> MODULE""" + return _pcbnew.MODULES_front(self) + + def back(self): + r"""back(MODULES self) -> MODULE""" + return _pcbnew.MODULES_back(self) + + def assign(self, n, x): + r"""assign(MODULES self, std::deque< MODULE * >::size_type n, MODULE x)""" + return _pcbnew.MODULES_assign(self, n, x) + + def resize(self, *args): + r""" + resize(MODULES self, std::deque< MODULE * >::size_type new_size) + resize(MODULES self, std::deque< MODULE * >::size_type new_size, MODULE x) + """ + return _pcbnew.MODULES_resize(self, *args) + + def insert(self, *args): + r""" + insert(MODULES self, std::deque< MODULE * >::iterator pos, MODULE x) -> std::deque< MODULE * >::iterator + insert(MODULES self, std::deque< MODULE * >::iterator pos, std::deque< MODULE * >::size_type n, MODULE x) + """ + return _pcbnew.MODULES_insert(self, *args) + + def pop_front(self): + r"""pop_front(MODULES self)""" + return _pcbnew.MODULES_pop_front(self) + + def push_front(self, x): + r"""push_front(MODULES self, MODULE x)""" + return _pcbnew.MODULES_push_front(self, x) + __swig_destroy__ = _pcbnew.delete_MODULES + +# Register MODULES in _pcbnew: +_pcbnew.MODULES_swigregister(MODULES) + +class MODULE(BOARD_ITEM_CONTAINER): + r"""Proxy of C++ MODULE class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + r""" + __init__(MODULE self, BOARD parent) -> MODULE + __init__(MODULE self, MODULE aModule) -> MODULE + """ + _pcbnew.MODULE_swiginit(self, _pcbnew.new_MODULE(*args)) + __swig_destroy__ = _pcbnew.delete_MODULE + + @staticmethod + def ClassOf(aItem): + r"""ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.MODULE_ClassOf(aItem) + + def AddNative(self, aItem, aMode=ADD_INSERT): + r"""AddNative(MODULE self, BOARD_ITEM aItem, ADD_MODE aMode=ADD_INSERT)""" + return _pcbnew.MODULE_AddNative(self, aItem, aMode) + + def RemoveNative(self, aItem): + r"""RemoveNative(MODULE self, BOARD_ITEM aItem)""" + return _pcbnew.MODULE_RemoveNative(self, aItem) + + def ClearAllNets(self): + r"""ClearAllNets(MODULE self)""" + return _pcbnew.MODULE_ClearAllNets(self) + + def CalculateBoundingBox(self): + r"""CalculateBoundingBox(MODULE self)""" + return _pcbnew.MODULE_CalculateBoundingBox(self) + + def GetFootprintRect(self): + r"""GetFootprintRect(MODULE self) -> EDA_RECT""" + return _pcbnew.MODULE_GetFootprintRect(self) + + def GetBoundingPoly(self): + r"""GetBoundingPoly(MODULE self) -> SHAPE_POLY_SET""" + return _pcbnew.MODULE_GetBoundingPoly(self) + + def GetBoundingBox(self): + r"""GetBoundingBox(MODULE self) -> EDA_RECT""" + return _pcbnew.MODULE_GetBoundingBox(self) + + def Pads(self, *args): + r""" + Pads(MODULE self) -> PADS + Pads(MODULE self) -> PADS + """ + return _pcbnew.MODULE_Pads(self, *args) + + def GraphicalItems(self, *args): + r""" + GraphicalItems(MODULE self) -> DRAWINGS + GraphicalItems(MODULE self) -> DRAWINGS + """ + return _pcbnew.MODULE_GraphicalItems(self, *args) + + def Models(self, *args): + r""" + Models(MODULE self) -> MODULE_3D_SETTINGS_List + Models(MODULE self) -> MODULE_3D_SETTINGS_List + """ + return _pcbnew.MODULE_Models(self, *args) + + def SetPosition(self, aPos): + r"""SetPosition(MODULE self, wxPoint aPos)""" + return _pcbnew.MODULE_SetPosition(self, aPos) + + def GetPosition(self): + r"""GetPosition(MODULE self) -> wxPoint""" + return _pcbnew.MODULE_GetPosition(self) + + def SetOrientation(self, newangle): + r"""SetOrientation(MODULE self, double newangle)""" + return _pcbnew.MODULE_SetOrientation(self, newangle) + + def SetOrientationDegrees(self, aOrientation): + r"""SetOrientationDegrees(MODULE self, double aOrientation)""" + return _pcbnew.MODULE_SetOrientationDegrees(self, aOrientation) + + def GetOrientation(self): + r"""GetOrientation(MODULE self) -> double""" + return _pcbnew.MODULE_GetOrientation(self) + + def GetOrientationDegrees(self): + r"""GetOrientationDegrees(MODULE self) -> double""" + return _pcbnew.MODULE_GetOrientationDegrees(self) + + def GetOrientationRadians(self): + r"""GetOrientationRadians(MODULE self) -> double""" + return _pcbnew.MODULE_GetOrientationRadians(self) + + def GetFPID(self): + r"""GetFPID(MODULE self) -> LIB_ID""" + return _pcbnew.MODULE_GetFPID(self) + + def SetFPID(self, aFPID): + r"""SetFPID(MODULE self, LIB_ID aFPID)""" + return _pcbnew.MODULE_SetFPID(self, aFPID) + + def GetDescription(self): + r"""GetDescription(MODULE self) -> wxString""" + return _pcbnew.MODULE_GetDescription(self) + + def SetDescription(self, aDoc): + r"""SetDescription(MODULE self, wxString aDoc)""" + return _pcbnew.MODULE_SetDescription(self, aDoc) + + def GetKeywords(self): + r"""GetKeywords(MODULE self) -> wxString""" + return _pcbnew.MODULE_GetKeywords(self) + + def SetKeywords(self, aKeywords): + r"""SetKeywords(MODULE self, wxString aKeywords)""" + return _pcbnew.MODULE_SetKeywords(self, aKeywords) + + def GetPath(self): + r"""GetPath(MODULE self) -> wxString""" + return _pcbnew.MODULE_GetPath(self) + + def SetPath(self, aPath): + r"""SetPath(MODULE self, wxString aPath)""" + return _pcbnew.MODULE_SetPath(self, aPath) + + def GetLocalSolderMaskMargin(self): + r"""GetLocalSolderMaskMargin(MODULE self) -> int""" + return _pcbnew.MODULE_GetLocalSolderMaskMargin(self) + + def SetLocalSolderMaskMargin(self, aMargin): + r"""SetLocalSolderMaskMargin(MODULE self, int aMargin)""" + return _pcbnew.MODULE_SetLocalSolderMaskMargin(self, aMargin) + + def GetLocalClearance(self): + r"""GetLocalClearance(MODULE self) -> int""" + return _pcbnew.MODULE_GetLocalClearance(self) + + def SetLocalClearance(self, aClearance): + r"""SetLocalClearance(MODULE self, int aClearance)""" + return _pcbnew.MODULE_SetLocalClearance(self, aClearance) + + def GetLocalSolderPasteMargin(self): + r"""GetLocalSolderPasteMargin(MODULE self) -> int""" + return _pcbnew.MODULE_GetLocalSolderPasteMargin(self) + + def SetLocalSolderPasteMargin(self, aMargin): + r"""SetLocalSolderPasteMargin(MODULE self, int aMargin)""" + return _pcbnew.MODULE_SetLocalSolderPasteMargin(self, aMargin) + + def GetLocalSolderPasteMarginRatio(self): + r"""GetLocalSolderPasteMarginRatio(MODULE self) -> double""" + return _pcbnew.MODULE_GetLocalSolderPasteMarginRatio(self) + + def SetLocalSolderPasteMarginRatio(self, aRatio): + r"""SetLocalSolderPasteMarginRatio(MODULE self, double aRatio)""" + return _pcbnew.MODULE_SetLocalSolderPasteMarginRatio(self, aRatio) + + def SetZoneConnection(self, aType): + r"""SetZoneConnection(MODULE self, ZoneConnection aType)""" + return _pcbnew.MODULE_SetZoneConnection(self, aType) + + def GetZoneConnection(self): + r"""GetZoneConnection(MODULE self) -> ZoneConnection""" + return _pcbnew.MODULE_GetZoneConnection(self) + + def SetThermalWidth(self, aWidth): + r"""SetThermalWidth(MODULE self, int aWidth)""" + return _pcbnew.MODULE_SetThermalWidth(self, aWidth) + + def GetThermalWidth(self): + r"""GetThermalWidth(MODULE self) -> int""" + return _pcbnew.MODULE_GetThermalWidth(self) + + def SetThermalGap(self, aGap): + r"""SetThermalGap(MODULE self, int aGap)""" + return _pcbnew.MODULE_SetThermalGap(self, aGap) + + def GetThermalGap(self): + r"""GetThermalGap(MODULE self) -> int""" + return _pcbnew.MODULE_GetThermalGap(self) + + def GetAttributes(self): + r"""GetAttributes(MODULE self) -> int""" + return _pcbnew.MODULE_GetAttributes(self) + + def SetAttributes(self, aAttributes): + r"""SetAttributes(MODULE self, int aAttributes)""" + return _pcbnew.MODULE_SetAttributes(self, aAttributes) + + def SetFlag(self, aFlag): + r"""SetFlag(MODULE self, int aFlag)""" + return _pcbnew.MODULE_SetFlag(self, aFlag) + + def IncrementFlag(self): + r"""IncrementFlag(MODULE self)""" + return _pcbnew.MODULE_IncrementFlag(self) + + def GetFlag(self): + r"""GetFlag(MODULE self) -> int""" + return _pcbnew.MODULE_GetFlag(self) + + def IsNetTie(self): + r"""IsNetTie(MODULE self) -> bool""" + return _pcbnew.MODULE_IsNetTie(self) + + def Move(self, aMoveVector): + r"""Move(MODULE self, wxPoint aMoveVector)""" + return _pcbnew.MODULE_Move(self, aMoveVector) + + def Rotate(self, aRotCentre, aAngle): + r"""Rotate(MODULE self, wxPoint aRotCentre, double aAngle)""" + return _pcbnew.MODULE_Rotate(self, aRotCentre, aAngle) + + def Flip(self, aCentre, aFlipLeftRight): + r"""Flip(MODULE self, wxPoint aCentre, bool aFlipLeftRight)""" + return _pcbnew.MODULE_Flip(self, aCentre, aFlipLeftRight) + + def MoveAnchorPosition(self, aMoveVector): + r"""MoveAnchorPosition(MODULE self, wxPoint aMoveVector)""" + return _pcbnew.MODULE_MoveAnchorPosition(self, aMoveVector) + + def IsFlipped(self): + r"""IsFlipped(MODULE self) -> bool""" + return _pcbnew.MODULE_IsFlipped(self) + + def IsLocked(self): + r"""IsLocked(MODULE self) -> bool""" + return _pcbnew.MODULE_IsLocked(self) + + def SetLocked(self, isLocked): + r"""SetLocked(MODULE self, bool isLocked)""" + return _pcbnew.MODULE_SetLocked(self, isLocked) + + def IsPlaced(self): + r"""IsPlaced(MODULE self) -> bool""" + return _pcbnew.MODULE_IsPlaced(self) + + def SetIsPlaced(self, isPlaced): + r"""SetIsPlaced(MODULE self, bool isPlaced)""" + return _pcbnew.MODULE_SetIsPlaced(self, isPlaced) + + def NeedsPlaced(self): + r"""NeedsPlaced(MODULE self) -> bool""" + return _pcbnew.MODULE_NeedsPlaced(self) + + def SetNeedsPlaced(self, needsPlaced): + r"""SetNeedsPlaced(MODULE self, bool needsPlaced)""" + return _pcbnew.MODULE_SetNeedsPlaced(self, needsPlaced) + + def PadsLocked(self): + r"""PadsLocked(MODULE self) -> bool""" + return _pcbnew.MODULE_PadsLocked(self) + + def SetPadsLocked(self, aPadsLocked): + r"""SetPadsLocked(MODULE self, bool aPadsLocked)""" + return _pcbnew.MODULE_SetPadsLocked(self, aPadsLocked) + + def SetLastEditTime(self, *args): + r""" + SetLastEditTime(MODULE self, timestamp_t aTime) + SetLastEditTime(MODULE self) + """ + return _pcbnew.MODULE_SetLastEditTime(self, *args) + + def GetLastEditTime(self): + r"""GetLastEditTime(MODULE self) -> timestamp_t""" + return _pcbnew.MODULE_GetLastEditTime(self) + + def Print(self, *args): + r"""Print(MODULE self, PCB_BASE_FRAME * aFrame, wxDC * aDC, wxPoint aOffset=)""" + return _pcbnew.MODULE_Print(self, *args) + + def TransformPadsShapesWithClearanceToPolygon(self, *args): + r"""TransformPadsShapesWithClearanceToPolygon(MODULE self, PCB_LAYER_ID aLayer, SHAPE_POLY_SET aCornerBuffer, int aInflateValue, int aMaxError=ARC_HIGH_DEF, bool aSkipNPTHPadsWihNoCopper=False)""" + return _pcbnew.MODULE_TransformPadsShapesWithClearanceToPolygon(self, *args) + + def TransformGraphicShapesWithClearanceToPolygonSet(self, *args): + r"""TransformGraphicShapesWithClearanceToPolygonSet(MODULE self, PCB_LAYER_ID aLayer, SHAPE_POLY_SET aCornerBuffer, int aInflateValue, int aError=ARC_HIGH_DEF, bool aIncludeText=True)""" + return _pcbnew.MODULE_TransformGraphicShapesWithClearanceToPolygonSet(self, *args) + + def TransformGraphicTextWithClearanceToPolygonSet(self, *args): + r"""TransformGraphicTextWithClearanceToPolygonSet(MODULE self, PCB_LAYER_ID aLayer, SHAPE_POLY_SET aCornerBuffer, int aInflateValue, int aError=ARC_HIGH_DEF)""" + return _pcbnew.MODULE_TransformGraphicTextWithClearanceToPolygonSet(self, *args) + + def GetMsgPanelInfo(self, aUnits, aList): + r"""GetMsgPanelInfo(MODULE self, EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM,std::allocator< MSG_PANEL_ITEM > > & aList)""" + return _pcbnew.MODULE_GetMsgPanelInfo(self, aUnits, aList) + + def HitTestAccurate(self, aPosition, aAccuracy=0): + r"""HitTestAccurate(MODULE self, wxPoint aPosition, int aAccuracy=0) -> bool""" + return _pcbnew.MODULE_HitTestAccurate(self, aPosition, aAccuracy) + + def HitTest(self, *args): + r""" + HitTest(MODULE self, wxPoint aPosition, int aAccuracy=0) -> bool + HitTest(MODULE self, EDA_RECT aRect, bool aContained, int aAccuracy=0) -> bool + """ + return _pcbnew.MODULE_HitTest(self, *args) + + def GetReference(self): + r"""GetReference(MODULE self) -> wxString""" + return _pcbnew.MODULE_GetReference(self) + + def SetReference(self, aReference): + r"""SetReference(MODULE self, wxString aReference)""" + return _pcbnew.MODULE_SetReference(self, aReference) + + def IncrementReference(self, aDelta): + r"""IncrementReference(MODULE self, int aDelta)""" + return _pcbnew.MODULE_IncrementReference(self, aDelta) + + def GetValue(self): + r"""GetValue(MODULE self) -> wxString""" + return _pcbnew.MODULE_GetValue(self) + + def SetValue(self, aValue): + r"""SetValue(MODULE self, wxString aValue)""" + return _pcbnew.MODULE_SetValue(self, aValue) + + def Value(self, *args): + r""" + Value(MODULE self) -> TEXTE_MODULE + Value(MODULE self) -> TEXTE_MODULE + """ + return _pcbnew.MODULE_Value(self, *args) + + def Reference(self, *args): + r""" + Reference(MODULE self) -> TEXTE_MODULE + Reference(MODULE self) -> TEXTE_MODULE + """ + return _pcbnew.MODULE_Reference(self, *args) + + def FindPadByName(self, aPadName): + r"""FindPadByName(MODULE self, wxString aPadName) -> D_PAD""" + return _pcbnew.MODULE_FindPadByName(self, aPadName) + + def GetPad(self, *args): + r"""GetPad(MODULE self, wxPoint aPosition, LSET aLayerMask=LSET::AllLayersMask()) -> D_PAD""" + return _pcbnew.MODULE_GetPad(self, *args) + + def GetTopLeftPad(self): + r"""GetTopLeftPad(MODULE self) -> D_PAD""" + return _pcbnew.MODULE_GetTopLeftPad(self) + + def GetFirstPad(self): + r"""GetFirstPad(MODULE self) -> D_PAD""" + return _pcbnew.MODULE_GetFirstPad(self) + + def GetPadCount(self, *args): + r"""GetPadCount(MODULE self, INCLUDE_NPTH_T aIncludeNPTH=INCLUDE_NPTH_T(INCLUDE_NPTH)) -> unsigned int""" + return _pcbnew.MODULE_GetPadCount(self, *args) + + def GetUniquePadCount(self, *args): + r"""GetUniquePadCount(MODULE self, INCLUDE_NPTH_T aIncludeNPTH=INCLUDE_NPTH_T(INCLUDE_NPTH)) -> unsigned int""" + return _pcbnew.MODULE_GetUniquePadCount(self, *args) + + def GetNextPadName(self, aFillSequenceGaps): + r"""GetNextPadName(MODULE self, bool aFillSequenceGaps) -> wxString""" + return _pcbnew.MODULE_GetNextPadName(self, aFillSequenceGaps) + + def GetArea(self, aPadding=0): + r"""GetArea(MODULE self, int aPadding=0) -> double""" + return _pcbnew.MODULE_GetArea(self, aPadding) + + def GetLink(self): + r"""GetLink(MODULE self) -> timestamp_t""" + return _pcbnew.MODULE_GetLink(self) + + def SetLink(self, aLink): + r"""SetLink(MODULE self, timestamp_t aLink)""" + return _pcbnew.MODULE_SetLink(self, aLink) + + def GetPlacementCost180(self): + r"""GetPlacementCost180(MODULE self) -> int""" + return _pcbnew.MODULE_GetPlacementCost180(self) + + def SetPlacementCost180(self, aCost): + r"""SetPlacementCost180(MODULE self, int aCost)""" + return _pcbnew.MODULE_SetPlacementCost180(self, aCost) + + def GetPlacementCost90(self): + r"""GetPlacementCost90(MODULE self) -> int""" + return _pcbnew.MODULE_GetPlacementCost90(self) + + def SetPlacementCost90(self, aCost): + r"""SetPlacementCost90(MODULE self, int aCost)""" + return _pcbnew.MODULE_SetPlacementCost90(self, aCost) + + def Duplicate(self, aItem, aIncrementPadNumbers, aAddToModule=False): + r"""Duplicate(MODULE self, BOARD_ITEM aItem, bool aIncrementPadNumbers, bool aAddToModule=False) -> BOARD_ITEM""" + return _pcbnew.MODULE_Duplicate(self, aItem, aIncrementPadNumbers, aAddToModule) + + def Add3DModel(self, a3DModel): + r"""Add3DModel(MODULE self, MODULE_3D_SETTINGS a3DModel)""" + return _pcbnew.MODULE_Add3DModel(self, a3DModel) + + def Visit(self, inspector, testData, scanTypes): + r"""Visit(MODULE self, INSPECTOR inspector, void * testData, KICAD_T const [] scanTypes) -> SEARCH_RESULT""" + return _pcbnew.MODULE_Visit(self, inspector, testData, scanTypes) + + def GetClass(self): + r"""GetClass(MODULE self) -> wxString""" + return _pcbnew.MODULE_GetClass(self) + + def GetSelectMenuText(self, aUnits): + r"""GetSelectMenuText(MODULE self, EDA_UNITS_T aUnits) -> wxString""" + return _pcbnew.MODULE_GetSelectMenuText(self, aUnits) + + def GetMenuImage(self): + r"""GetMenuImage(MODULE self) -> BITMAP_DEF""" + return _pcbnew.MODULE_GetMenuImage(self) + + def Clone(self): + r"""Clone(MODULE self) -> EDA_ITEM""" + return _pcbnew.MODULE_Clone(self) + + def RunOnChildren(self, aFunction): + r"""RunOnChildren(MODULE self, std::function< void (BOARD_ITEM *) > const & aFunction)""" + return _pcbnew.MODULE_RunOnChildren(self, aFunction) + + def GetAllDrawingLayers(self, aLayers, aCount, aIncludePads=True): + r"""GetAllDrawingLayers(MODULE self, int [] aLayers, int & aCount, bool aIncludePads=True)""" + return _pcbnew.MODULE_GetAllDrawingLayers(self, aLayers, aCount, aIncludePads) + + def ViewGetLayers(self, aLayers, aCount): + r"""ViewGetLayers(MODULE self, int [] aLayers, int & aCount)""" + return _pcbnew.MODULE_ViewGetLayers(self, aLayers, aCount) + + def ViewGetLOD(self, aLayer, aView): + r"""ViewGetLOD(MODULE self, int aLayer, KIGFX::VIEW * aView) -> unsigned int""" + return _pcbnew.MODULE_ViewGetLOD(self, aLayer, aView) + + def ViewBBox(self): + r"""ViewBBox(MODULE self) -> BOX2I const""" + return _pcbnew.MODULE_ViewBBox(self) + + @staticmethod + def IsLibNameValid(aName): + r"""IsLibNameValid(wxString aName) -> bool""" + return _pcbnew.MODULE_IsLibNameValid(aName) + + @staticmethod + def StringLibNameInvalidChars(aUserReadable): + r"""StringLibNameInvalidChars(bool aUserReadable) -> wxChar const *""" + return _pcbnew.MODULE_StringLibNameInvalidChars(aUserReadable) + + def SetInitialComments(self, aInitialComments): + r"""SetInitialComments(MODULE self, wxArrayString * aInitialComments)""" + return _pcbnew.MODULE_SetInitialComments(self, aInitialComments) + + def CoverageRatio(self, aCollector): + r"""CoverageRatio(MODULE self, GENERAL_COLLECTOR const & aCollector) -> double""" + return _pcbnew.MODULE_CoverageRatio(self, aCollector) + + def GetInitialComments(self): + r"""GetInitialComments(MODULE self) -> wxArrayString const *""" + return _pcbnew.MODULE_GetInitialComments(self) + + def GetPolyCourtyardFront(self): + r"""GetPolyCourtyardFront(MODULE self) -> SHAPE_POLY_SET""" + return _pcbnew.MODULE_GetPolyCourtyardFront(self) + + def GetPolyCourtyardBack(self): + r"""GetPolyCourtyardBack(MODULE self) -> SHAPE_POLY_SET""" + return _pcbnew.MODULE_GetPolyCourtyardBack(self) + + def BuildPolyCourtyard(self): + r"""BuildPolyCourtyard(MODULE self) -> bool""" + return _pcbnew.MODULE_BuildPolyCourtyard(self) + + def SwapData(self, aImage): + r"""SwapData(MODULE self, BOARD_ITEM aImage)""" + return _pcbnew.MODULE_SwapData(self, aImage) + + + #def SaveToLibrary(self,filename): + # return SaveModuleToLibrary(filename,self) + + # + # add function, clears the thisown to avoid python from deleting + # the object in the garbage collector + # + + +# Register MODULE in _pcbnew: +_pcbnew.MODULE_swigregister(MODULE) + +def MODULE_ClassOf(aItem): + r"""MODULE_ClassOf(EDA_ITEM aItem) -> bool""" + return _pcbnew.MODULE_ClassOf(aItem) +MODULE_is_LOCKED = _pcbnew.MODULE_is_LOCKED + +MODULE_is_PLACED = _pcbnew.MODULE_is_PLACED + +MODULE_to_PLACE = _pcbnew.MODULE_to_PLACE + +MODULE_PADS_LOCKED = _pcbnew.MODULE_PADS_LOCKED + + +def MODULE_IsLibNameValid(aName): + r"""MODULE_IsLibNameValid(wxString aName) -> bool""" + return _pcbnew.MODULE_IsLibNameValid(aName) + +def MODULE_StringLibNameInvalidChars(aUserReadable): + r"""MODULE_StringLibNameInvalidChars(bool aUserReadable) -> wxChar const *""" + return _pcbnew.MODULE_StringLibNameInvalidChars(aUserReadable) + +class MODULE_3D_SETTINGS_List(object): + r"""Proxy of C++ std::list< MODULE_3D_SETTINGS > class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def iterator(self): + r"""iterator(MODULE_3D_SETTINGS_List self) -> SwigPyIterator""" + return _pcbnew.MODULE_3D_SETTINGS_List_iterator(self) + def __iter__(self): + return self.iterator() + + def __nonzero__(self): + r"""__nonzero__(MODULE_3D_SETTINGS_List self) -> bool""" + return _pcbnew.MODULE_3D_SETTINGS_List___nonzero__(self) + + def __bool__(self): + r"""__bool__(MODULE_3D_SETTINGS_List self) -> bool""" + return _pcbnew.MODULE_3D_SETTINGS_List___bool__(self) + + def __len__(self): + r"""__len__(MODULE_3D_SETTINGS_List self) -> std::list< MODULE_3D_SETTINGS >::size_type""" + return _pcbnew.MODULE_3D_SETTINGS_List___len__(self) + + def __getslice__(self, i, j): + r"""__getslice__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::difference_type i, std::list< MODULE_3D_SETTINGS >::difference_type j) -> MODULE_3D_SETTINGS_List""" + return _pcbnew.MODULE_3D_SETTINGS_List___getslice__(self, i, j) + + def __setslice__(self, *args): + r""" + __setslice__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::difference_type i, std::list< MODULE_3D_SETTINGS >::difference_type j) + __setslice__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::difference_type i, std::list< MODULE_3D_SETTINGS >::difference_type j, MODULE_3D_SETTINGS_List v) + """ + return _pcbnew.MODULE_3D_SETTINGS_List___setslice__(self, *args) + + def __delslice__(self, i, j): + r"""__delslice__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::difference_type i, std::list< MODULE_3D_SETTINGS >::difference_type j)""" + return _pcbnew.MODULE_3D_SETTINGS_List___delslice__(self, i, j) + + def __delitem__(self, *args): + r""" + __delitem__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::difference_type i) + __delitem__(MODULE_3D_SETTINGS_List self, PySliceObject * slice) + """ + return _pcbnew.MODULE_3D_SETTINGS_List___delitem__(self, *args) + + def __getitem__(self, *args): + r""" + __getitem__(MODULE_3D_SETTINGS_List self, PySliceObject * slice) -> MODULE_3D_SETTINGS_List + __getitem__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::difference_type i) -> MODULE_3D_SETTINGS + """ + return _pcbnew.MODULE_3D_SETTINGS_List___getitem__(self, *args) + + def __setitem__(self, *args): + r""" + __setitem__(MODULE_3D_SETTINGS_List self, PySliceObject * slice, MODULE_3D_SETTINGS_List v) + __setitem__(MODULE_3D_SETTINGS_List self, PySliceObject * slice) + __setitem__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::difference_type i, MODULE_3D_SETTINGS x) + """ + return _pcbnew.MODULE_3D_SETTINGS_List___setitem__(self, *args) + + def pop(self): + r"""pop(MODULE_3D_SETTINGS_List self) -> MODULE_3D_SETTINGS""" + return _pcbnew.MODULE_3D_SETTINGS_List_pop(self) + + def append(self, x): + r"""append(MODULE_3D_SETTINGS_List self, MODULE_3D_SETTINGS x)""" + return _pcbnew.MODULE_3D_SETTINGS_List_append(self, x) + + def empty(self): + r"""empty(MODULE_3D_SETTINGS_List self) -> bool""" + return _pcbnew.MODULE_3D_SETTINGS_List_empty(self) + + def size(self): + r"""size(MODULE_3D_SETTINGS_List self) -> std::list< MODULE_3D_SETTINGS >::size_type""" + return _pcbnew.MODULE_3D_SETTINGS_List_size(self) + + def swap(self, v): + r"""swap(MODULE_3D_SETTINGS_List self, MODULE_3D_SETTINGS_List v)""" + return _pcbnew.MODULE_3D_SETTINGS_List_swap(self, v) + + def begin(self): + r"""begin(MODULE_3D_SETTINGS_List self) -> std::list< MODULE_3D_SETTINGS >::iterator""" + return _pcbnew.MODULE_3D_SETTINGS_List_begin(self) + + def end(self): + r"""end(MODULE_3D_SETTINGS_List self) -> std::list< MODULE_3D_SETTINGS >::iterator""" + return _pcbnew.MODULE_3D_SETTINGS_List_end(self) + + def rbegin(self): + r"""rbegin(MODULE_3D_SETTINGS_List self) -> std::list< MODULE_3D_SETTINGS >::reverse_iterator""" + return _pcbnew.MODULE_3D_SETTINGS_List_rbegin(self) + + def rend(self): + r"""rend(MODULE_3D_SETTINGS_List self) -> std::list< MODULE_3D_SETTINGS >::reverse_iterator""" + return _pcbnew.MODULE_3D_SETTINGS_List_rend(self) + + def clear(self): + r"""clear(MODULE_3D_SETTINGS_List self)""" + return _pcbnew.MODULE_3D_SETTINGS_List_clear(self) + + def get_allocator(self): + r"""get_allocator(MODULE_3D_SETTINGS_List self) -> std::list< MODULE_3D_SETTINGS >::allocator_type""" + return _pcbnew.MODULE_3D_SETTINGS_List_get_allocator(self) + + def pop_back(self): + r"""pop_back(MODULE_3D_SETTINGS_List self)""" + return _pcbnew.MODULE_3D_SETTINGS_List_pop_back(self) + + def erase(self, *args): + r""" + erase(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::iterator pos) -> std::list< MODULE_3D_SETTINGS >::iterator + erase(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::iterator first, std::list< MODULE_3D_SETTINGS >::iterator last) -> std::list< MODULE_3D_SETTINGS >::iterator + """ + return _pcbnew.MODULE_3D_SETTINGS_List_erase(self, *args) + + def __init__(self, *args): + r""" + __init__(MODULE_3D_SETTINGS_List self) -> MODULE_3D_SETTINGS_List + __init__(MODULE_3D_SETTINGS_List self, MODULE_3D_SETTINGS_List other) -> MODULE_3D_SETTINGS_List + __init__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::size_type size) -> MODULE_3D_SETTINGS_List + __init__(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::size_type size, MODULE_3D_SETTINGS value) -> MODULE_3D_SETTINGS_List + """ + _pcbnew.MODULE_3D_SETTINGS_List_swiginit(self, _pcbnew.new_MODULE_3D_SETTINGS_List(*args)) + + def push_back(self, x): + r"""push_back(MODULE_3D_SETTINGS_List self, MODULE_3D_SETTINGS x)""" + return _pcbnew.MODULE_3D_SETTINGS_List_push_back(self, x) + + def front(self): + r"""front(MODULE_3D_SETTINGS_List self) -> MODULE_3D_SETTINGS""" + return _pcbnew.MODULE_3D_SETTINGS_List_front(self) + + def back(self): + r"""back(MODULE_3D_SETTINGS_List self) -> MODULE_3D_SETTINGS""" + return _pcbnew.MODULE_3D_SETTINGS_List_back(self) + + def assign(self, n, x): + r"""assign(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::size_type n, MODULE_3D_SETTINGS x)""" + return _pcbnew.MODULE_3D_SETTINGS_List_assign(self, n, x) + + def resize(self, *args): + r""" + resize(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::size_type new_size) + resize(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::size_type new_size, MODULE_3D_SETTINGS x) + """ + return _pcbnew.MODULE_3D_SETTINGS_List_resize(self, *args) + + def insert(self, *args): + r""" + insert(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::iterator pos, MODULE_3D_SETTINGS x) -> std::list< MODULE_3D_SETTINGS >::iterator + insert(MODULE_3D_SETTINGS_List self, std::list< MODULE_3D_SETTINGS >::iterator pos, std::list< MODULE_3D_SETTINGS >::size_type n, MODULE_3D_SETTINGS x) + """ + return _pcbnew.MODULE_3D_SETTINGS_List_insert(self, *args) + + def pop_front(self): + r"""pop_front(MODULE_3D_SETTINGS_List self)""" + return _pcbnew.MODULE_3D_SETTINGS_List_pop_front(self) + + def push_front(self, x): + r"""push_front(MODULE_3D_SETTINGS_List self, MODULE_3D_SETTINGS x)""" + return _pcbnew.MODULE_3D_SETTINGS_List_push_front(self, x) + + def reverse(self): + r"""reverse(MODULE_3D_SETTINGS_List self)""" + return _pcbnew.MODULE_3D_SETTINGS_List_reverse(self) + __swig_destroy__ = _pcbnew.delete_MODULE_3D_SETTINGS_List + +# Register MODULE_3D_SETTINGS_List in _pcbnew: +_pcbnew.MODULE_3D_SETTINGS_List_swigregister(MODULE_3D_SETTINGS_List) + + +def GetPluginForPath(libname): + plugin_type = IO_MGR.GuessPluginTypeFromLibPath( libname ); + return IO_MGR.PluginFind(plugin_type) + +def FootprintEnumerate(libname): + plug = GetPluginForPath(libname) + return plug.FootprintEnumerate(libname) + +def FootprintLoad(libname,name): + plug = GetPluginForPath(libname) + return plug.FootprintLoad(libname,name) + +def FootprintSave(libname,module): + plug = GetPluginForPath(libname) + return plug.FootprintSave(libname,module) + +def FootprintDelete(libname,name): + plug = GetPluginForPath(libname) + plug.FootprintDelete(libname,name) + +def FootprintLibCreate(libname): + plug = GetPluginForPath(libname) + plug.FootprintLibCreate(libname) + +def FootprintLibDelete(libname): + plug = GetPluginForPath(libname) + plug.FootprintLibDelete(libname) + +def FootprintIsWritable(libname): + plug = GetPluginForPath(libname) + plug.FootprintLibIsWritable(libname) + +class PYTHON_FOOTPRINT_WIZARD_LIST(object): + r"""Proxy of C++ PYTHON_FOOTPRINT_WIZARD_LIST class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + @staticmethod + def register_wizard(wizard): + r"""register_wizard(PyObject * wizard)""" + return _pcbnew.PYTHON_FOOTPRINT_WIZARD_LIST_register_wizard(wizard) + + @staticmethod + def deregister_wizard(wizard): + r"""deregister_wizard(PyObject * wizard)""" + return _pcbnew.PYTHON_FOOTPRINT_WIZARD_LIST_deregister_wizard(wizard) + + def __init__(self): + r"""__init__(PYTHON_FOOTPRINT_WIZARD_LIST self) -> PYTHON_FOOTPRINT_WIZARD_LIST""" + _pcbnew.PYTHON_FOOTPRINT_WIZARD_LIST_swiginit(self, _pcbnew.new_PYTHON_FOOTPRINT_WIZARD_LIST()) + __swig_destroy__ = _pcbnew.delete_PYTHON_FOOTPRINT_WIZARD_LIST + +# Register PYTHON_FOOTPRINT_WIZARD_LIST in _pcbnew: +_pcbnew.PYTHON_FOOTPRINT_WIZARD_LIST_swigregister(PYTHON_FOOTPRINT_WIZARD_LIST) + +def PYTHON_FOOTPRINT_WIZARD_LIST_register_wizard(wizard): + r"""PYTHON_FOOTPRINT_WIZARD_LIST_register_wizard(PyObject * wizard)""" + return _pcbnew.PYTHON_FOOTPRINT_WIZARD_LIST_register_wizard(wizard) + +def PYTHON_FOOTPRINT_WIZARD_LIST_deregister_wizard(wizard): + r"""PYTHON_FOOTPRINT_WIZARD_LIST_deregister_wizard(PyObject * wizard)""" + return _pcbnew.PYTHON_FOOTPRINT_WIZARD_LIST_deregister_wizard(wizard) + +class PYTHON_ACTION_PLUGINS(object): + r"""Proxy of C++ PYTHON_ACTION_PLUGINS class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + @staticmethod + def register_action(wizard): + r"""register_action(PyObject * wizard)""" + return _pcbnew.PYTHON_ACTION_PLUGINS_register_action(wizard) + + @staticmethod + def deregister_action(wizard): + r"""deregister_action(PyObject * wizard)""" + return _pcbnew.PYTHON_ACTION_PLUGINS_deregister_action(wizard) + + def __init__(self): + r"""__init__(PYTHON_ACTION_PLUGINS self) -> PYTHON_ACTION_PLUGINS""" + _pcbnew.PYTHON_ACTION_PLUGINS_swiginit(self, _pcbnew.new_PYTHON_ACTION_PLUGINS()) + __swig_destroy__ = _pcbnew.delete_PYTHON_ACTION_PLUGINS + +# Register PYTHON_ACTION_PLUGINS in _pcbnew: +_pcbnew.PYTHON_ACTION_PLUGINS_swigregister(PYTHON_ACTION_PLUGINS) + +def PYTHON_ACTION_PLUGINS_register_action(wizard): + r"""PYTHON_ACTION_PLUGINS_register_action(PyObject * wizard)""" + return _pcbnew.PYTHON_ACTION_PLUGINS_register_action(wizard) + +def PYTHON_ACTION_PLUGINS_deregister_action(wizard): + r"""PYTHON_ACTION_PLUGINS_deregister_action(PyObject * wizard)""" + return _pcbnew.PYTHON_ACTION_PLUGINS_deregister_action(wizard) + + +def ToMM(iu): + if type(iu) in [int,float]: + return float(iu) / float(IU_PER_MM) + elif type(iu) in [wxPoint,wxSize]: + return tuple(map(ToMM,iu)) + +def FromMM(mm): + if type(mm) in [int,float]: + return int(float(mm) * float(IU_PER_MM)) + elif type(mm) in [wxPoint,wxSize]: + return tuple(map(FromMM,mm)) + +def ToMils(iu): + if type(iu) in [int,float]: + return float(iu) / float(IU_PER_MILS) + elif type(iu) in [wxPoint,wxSize]: + return tuple(map(ToMils,iu)) + +def FromMils(mils): + if type(mils) in [int,float]: + return int(float(mils)*float(IU_PER_MILS)) + elif type(mils) in [wxPoint,wxSize]: + return tuple(map(FromMils,mils)) + +def PutOnGridMM(value, gridSizeMM): + thresh = FromMM(gridSizeMM) + return round(value/thresh)*thresh + +def PutOnGridMils(value, gridSizeMils): + thresh = FromMils(gridSizeMils) + return round(value/thresh)*thresh + +def wxSizeMM(mmx,mmy): + return wxSize(FromMM(mmx),FromMM(mmy)) + +def wxSizeMils(mmx,mmy): + return wxSize(FromMils(mmx),FromMils(mmy)) + +def wxPointMM(mmx,mmy): + return wxPoint(FromMM(mmx),FromMM(mmy)) + +def wxPointMils(mmx,mmy): + return wxPoint(FromMils(mmx),FromMils(mmy)) + +def wxRectMM(x,y,wx,wy): + x = int(FromMM(x)) + y = int(FromMM(y)) + wx = int(FromMM(wx)) + wy = int (FromMM(wy)) + return wxRect(x,y,wx,wy) + +def wxRectMils(x,y,wx,wy): + x = int(FromMils(x)) + y = int(FromMils(y)) + wx = int(FromMils(wx)) + wy = int(FromMils(wy)) + return wxRect(x,y,wx,wy) + + diff --git a/pcbnew_temp.pyc b/pcbnew_temp.pyc new file mode 100644 index 0000000000000000000000000000000000000000..78c218304b157133831ee26156b2a540ed25826a GIT binary patch literal 775252 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®V&Hd9lunR+>Sw8A!1 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 R|8uu(c7M#lnTLN{{vUHgvU30c literal 0 HcmV?d00001 diff --git a/project.kicad_pcb b/project.kicad_pcb new file mode 100644 index 0000000..5ad9243 --- /dev/null +++ b/project.kicad_pcb @@ -0,0 +1,695 @@ + +(kicad_pcb + (version 1) + (host pykicad x.x.x) + (general + (nets 5)) + (layers +( 8 F.Cu signal) +( 9 Inner1.Cu signal) +( 10 Inner2.Cu signal) +( 11 B.Cu signal) +( 54 Edge.Cuts user) +( 55 B.Mask user) +( 56 F.Mask user) +( 57 B.Paste user) +( 58 F.Paste user) +( 59 B.SilkS user) +( 60 F.SilkS user) +( 61 B.CrtYd user) +( 62 F.CrtYd user) +( 63 B.Fab user) +( 64 F.Fab user)) +(net 7 VI) +(net 8 VO) +(net 9 GND) +(net_class default "" + (trace_width 1) (add_net VI) (add_net VO) (add_net GND)) +(module ESP12F-Devkit-V3 + (layer F.Cu) + (tedit 5B8C418D) + (at 0 0) +(fp_text reference REF** + (at 0.6350000000 -1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text value ESP12F-Devkit-V3 + (at 0.0000000000 -6.3500000000) + (layer F.Fab) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user USB + (at 0.0000000000 21.5900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user "RF Antenna" + (at 0.0000000000 -21.5900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VIN + (at -9.5250000000 16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user RST + (at -9.5250000000 11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user EN + (at -9.5250000000 8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at -9.5250000000 6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SK + (at -9.5250000000 1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SO + (at -9.5250000000 -1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SC + (at -9.5250000000 -3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S1 + (at -9.5250000000 -6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S2 + (at -9.5250000000 -8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user S3 + (at -9.5250000000 -11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VU + (at -9.5250000000 -13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at -9.5250000000 -16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user A0 + (at -9.5250000000 -19.0500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at 8.8900000000 16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at 8.8900000000 13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user TX + (at 8.8900000000 11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user RX + (at 8.8900000000 8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D8 + (at 8.8900000000 6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D7 + (at 8.8900000000 3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D6 + (at 8.8900000000 1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D5 + (at 8.8900000000 -1.2700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user G + (at 8.8900000000 -3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user 3V + (at 8.8900000000 -6.3500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D4 + (at 8.8900000000 -8.8900000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D3 + (at 8.8900000000 -11.4300000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D2 + (at 8.8900000000 -13.9700000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D1 + (at 8.8900000000 -16.5100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user D0 + (at 8.8900000000 -19.0500000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_line + (start 11.4300000000 22.8600000000) + (end 3.8100000000 22.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 5.5000000000 -18.2700000000) + (end -5.5000000000 -18.2700000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 5.5000000000 -25.4000000000) + (end 5.5000000000 -18.2700000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -5.5000000000 -18.2700000000) + (end -5.5000000000 -25.4000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8000000000 23.8600000000) + (end -3.8000000000 18.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8000000000 18.1300000000) + (end 3.8000000000 18.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 3.8000000000 18.1300000000) + (end 3.8000000000 23.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 3.8000000000 23.8600000000) + (end -3.8000000000 23.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 12.7000000000 -24.1300000000) + (end 12.7000000000 21.5900000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -13.3350000000 -24.1300000000) + (end -13.3350000000 21.5900000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start -3.8100000000 22.8600000000) + (end -12.0650000000 22.8600000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_line + (start 11.4300000000 -25.4000000000) + (end -12.7000000000 -25.4000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center 10.1600000000 20.3200000000) + (end 11.4300000000 19.0500000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center -10.7950000000 20.3200000000) + (end -9.5250000000 19.0500000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center -10.7950000000 -22.8600000000) + (end -9.5250000000 -24.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_circle + (center 10.1600000000 -22.8600000000) + (end 11.4300000000 -24.1300000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start -12.0650000000 -24.1300000000) + (end -13.3350000000 -24.1300000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start 11.4300000000 -24.1300000000) + (end 11.4300000000 -25.4000000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start 11.4300000000 21.5900000000) + (end 12.7000000000 21.5900000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(fp_arc + (start -12.0650000000 21.5900000000) + (end -12.0650000000 22.8600000000) + (angle 90.0000000000) + (layer F.SilkS) + (width 0.1500000000)) +(pad 1 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -19.0500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762) +(net 7 VI)) +(pad 2 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762) +(net 8 VO)) +(pad 3 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 4 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 5 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 6 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 7 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 8 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 -1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 9 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 10 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 11 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 12 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 13 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 14 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 15 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -12.0650000000 16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 16 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 17 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 18 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 19 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 20 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 21 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 22 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 23 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -1.2700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 24 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -3.8100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 25 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -6.3500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 26 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -8.8900000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 27 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -11.4300000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 28 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -13.9700000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 29 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -16.5100000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762)) +(pad 30 thru_hole circle + (size 1.5240000000 1.5240000000) + (at 11.4300000000 -19.0500000000) + (layers *.Cu *.Mask F.SilkS) +(drill 0.762))) +(module mpu-9250 + (layer F.Cu) + (tedit 5D266054) + (at 15 15) +(fp_text reference REF** + (at 2.5400000000 -3.8100000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text value mpu-9250 + (at 2.5400000000 -7.6200000000) + (layer F.Fab) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user VCC + (at -3.8100000000 -10.1600000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user GND + (at -3.8100000000 -7.6200000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SCL + (at -3.8100000000 -5.0800000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user SDA + (at -3.8100000000 -2.5400000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user EDA + (at -3.8100000000 0.0000000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user ECL + (at -3.8100000000 2.5400000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user ADO + (at -3.8100000000 5.0800000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user INT + (at -3.8100000000 7.6200000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user NCS + (at -3.8100000000 10.1600000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_text user FSYNC + (at -2.5400000000 12.7000000000) + (layer F.SilkS) + (effects + (font + (size 1.0000000000 1.0000000000) + (thickness 0.1500000000)))) +(fp_line + (start -7.6200000000 -11.4300000000) + (end 7.5400000000 -11.4300000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start 7.6200000000 -11.4300000000) + (end 7.6200000000 13.5700000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start 7.6200000000 13.5700000000) + (end -7.6200000000 13.5700000000) + (layer F.SilkS) + (width 0.1200000000)) +(fp_line + (start -7.6200000000 13.5700000000) + (end -7.6200000000 -11.4300000000) + (layer F.SilkS) + (width 0.1200000000)) +(pad 1 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -10.1600000000) + (layers *.Cu *.Mask) +(drill 0.762) +(net 8 VO)) +(pad 2 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -7.6200000000) + (layers *.Cu *.Mask) +(drill 0.762) +(net 9 GND)) +(pad 3 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -5.0800000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 4 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 -2.5400000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 5 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 0.0000000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 6 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 2.5400000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 7 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 5.0800000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 8 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 7.6200000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 9 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 10.1600000000) + (layers *.Cu *.Mask) +(drill 0.762)) +(pad 10 thru_hole circle + (size 1.5240000000 1.5240000000) + (at -6.3500000000 12.7000000000) + (layers *.Cu *.Mask) +(drill 0.762))) +(segment + (start -12.0650000000 -16.5100000000) + (end -1.7075000000 -5.8350000000) + (layer F.Cu) + (net 8)) +(segment + (start -1.7075000000 -5.8350000000) + (end 8.6500000000 4.8400000000) + (layer F.Cu) + (net 8))) \ No newline at end of file diff --git a/project.pro b/project.pro new file mode 100644 index 0000000..152769c --- /dev/null +++ b/project.pro @@ -0,0 +1,33 @@ +update=22/05/2015 07:44:53 +version=1 +last_client=kicad +[general] +version=1 +RootSch= +BoardNm= +[pcbnew] +version=1 +LastNetListRead= +UseCmpFile=1 +PadDrill=0.600000000000 +PadDrillOvalY=0.600000000000 +PadSizeH=1.500000000000 +PadSizeV=1.500000000000 +PcbTextSizeV=1.500000000000 +PcbTextSizeH=1.500000000000 +PcbTextThickness=0.300000000000 +ModuleTextSizeV=1.000000000000 +ModuleTextSizeH=1.000000000000 +ModuleTextSizeThickness=0.150000000000 +SolderMaskClearance=0.000000000000 +SolderMaskMinWidth=0.000000000000 +DrawSegmentWidth=0.200000000000 +BoardOutlineThickness=0.100000000000 +ModuleOutlineThickness=0.150000000000 +[cvpcb] +version=1 +NetIExt=net +[eeschema] +version=1 +LibDir= +[eeschema/libraries] -- GitLab