diff --git a/README.md b/README.md index 16aa08fd5de33be2848f63459a75c32e96b973ff..ec13a1f4c4720405d05e46a7bf2913a7198217a9 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 0000000000000000000000000000000000000000..6a7bf02aa27cc9653a80048476cc3470456bd9a2 --- /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 Binary files /dev/null and b/__pycache__/kicad_panelize.cpython-36.pyc differ diff --git a/__pycache__/kicad_python.cpython-36.pyc b/__pycache__/kicad_python.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..064990815d1e5c827abd0cf62fa5ab5edc06bc26 Binary files /dev/null and b/__pycache__/kicad_python.cpython-36.pyc differ 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 Binary files /dev/null and b/__pycache__/pcb_dxf_importer.cpython-36.pyc differ diff --git a/__pycache__/pcbnew_temp.cpython-36.pyc b/__pycache__/pcbnew_temp.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..27cc065c01f051dd5ef58ccfc564984b1cca11d8 Binary files /dev/null and b/__pycache__/pcbnew_temp.cpython-36.pyc differ diff --git a/fp-info-cache b/fp-info-cache new file mode 100644 index 0000000000000000000000000000000000000000..28e77b532827c0b1488b3af7b7d7276867ed6e13 --- /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 Binary files /dev/null and b/journal_media/autorouter_ignore_cu_layer.png differ diff --git a/journal_media/cutoncopper_layer.png b/journal_media/cutoncopper_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bcb835b5b896c3a951791d7443af7f2e34fc9f Binary files /dev/null and b/journal_media/cutoncopper_layer.png differ diff --git a/journal_media/dxf_importer_code.png b/journal_media/dxf_importer_code.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a31a0f8a74847da5fba44a454ce0c6f4fa30a8 Binary files /dev/null and b/journal_media/dxf_importer_code.png differ diff --git a/journal_media/import_script.png b/journal_media/import_script.png new file mode 100644 index 0000000000000000000000000000000000000000..b82dab25207a79c216774bb3c1aaeeb306ba8666 Binary files /dev/null and b/journal_media/import_script.png differ diff --git a/journal_media/manual_dsn.png b/journal_media/manual_dsn.png new file mode 100644 index 0000000000000000000000000000000000000000..b81f19b872ddbd74157cd6a4efa9931c356b18f6 Binary files /dev/null and b/journal_media/manual_dsn.png differ diff --git a/kicad_board-front_copper.dxf b/kicad_board-front_copper.dxf new file mode 100644 index 0000000000000000000000000000000000000000..8e078c271d7b823710ef3df5cefd4d452b0d26f3 --- /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 0000000000000000000000000000000000000000..bf4e54d0ef852f78c40625f484795c6a10b6639c --- /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 0000000000000000000000000000000000000000..456c41e4529aeeafba51f31a2f0b8984f4490d98 --- /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 0000000000000000000000000000000000000000..50f3307c8662574c3b91c3a43e21ea90adb9a488 --- /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 0000000000000000000000000000000000000000..152769cb7209ca4e1fc17e8154dad5ded6b9d8e4 --- /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 0000000000000000000000000000000000000000..35b82c18c777a264f610496af453db96aba066ef --- /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 0000000000000000000000000000000000000000..3e4a4898d11ade583b8508dde580a370beb3bee5 --- /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 b3e6821a6bc3bda0dd1dfbf1a926804453facb3b..2f40bd56daa3fecfb3d2c3a11ad92efb275d9587 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 057fbff95a335b944e8a74f64de95569f1e2bc73..5b08dfeca64fc0d6d433f5ee5c7e99931281f8d1 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 0a44b77d2fffc4878cc20997c34f70c652b0d15c..7e672971a8ee5a3c101a32fd53483567b7f9ec1e 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 0000000000000000000000000000000000000000..09087d8305fb039d67140965dedec8ba26423cc3 --- /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 0000000000000000000000000000000000000000..b16a39642db3211b9bda6427d04f5d181ccdfcb2 --- /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 0000000000000000000000000000000000000000..30f3d9960e1303ddb835844b8c32db91d337ae80 --- /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 0000000000000000000000000000000000000000..9b445058cb3f52a35a7287c03df8b73efc1d73ea --- /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 Binary files /dev/null and b/pcbnew_temp.pyc differ diff --git a/project.kicad_pcb b/project.kicad_pcb new file mode 100644 index 0000000000000000000000000000000000000000..5ad9243efecdfc671c4cb2221187ea89026c2d33 --- /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 0000000000000000000000000000000000000000..152769cb7209ca4e1fc17e8154dad5ded6b9d8e4 --- /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]