Compare commits

...

243 Commits

Author SHA1 Message Date
Wayne Stambaugh b23b48b9a7 Tag version 5.0.1-dev. 2018-07-13 16:33:17 -04:00
Wayne Stambaugh 84427f463c Tag release 5.0.0. 2018-07-13 15:53:52 -04:00
Wayne Stambaugh bded0cfc19 KiCad: make initial minimum main frame width show all icons.
Fixes lp:1780300

https://bugs.launchpad.net/kicad/+bug/1780300
2018-07-13 15:53:03 -04:00
Wayne Stambaugh eaf938c7e9 Pcbnew: fix missing undo when deleting footprint text object.
Fixes lp:1781224

https://bugs.launchpad.net/kicad/+bug/1781224
2018-07-12 09:36:13 -04:00
Carsten Schoenert 3e22e5ccd3 fix misspelled 'an other' -> 'another' 2018-07-11 10:35:35 -04:00
Carsten Schoenert e81faa2d5f fix misspelled 'allow to' -> 'allow one to' 2018-07-11 10:35:14 -04:00
Carsten Schoenert 9f7109826d fix misspelled 'allows to' -> 'allows one to'
Fixup small grammar issues around used 'allows to ...' almost in
code comments.
2018-07-11 10:35:03 -04:00
Carsten Schoenert 9a13dd48af fix misspelled 'Toogle' -> 'Toggle'
A small typo fixup for misspelled word Toogle.
2018-07-11 10:34:53 -04:00
Maciej Suminski 14ce518208 Speed-up Spice model library loading
Thanks to Jeff Wheeler for determining the slow down cause.

Fixes: lp:1779566
* https://bugs.launchpad.net/kicad/+bug/1779566
2018-07-10 20:55:37 +02:00
Maciej Suminski 0013e0cad1 DRC: test for items located on disabled layers
Fixes: lp:1779281
* https://bugs.launchpad.net/kicad/+bug/1779281
2018-07-10 18:24:15 +02:00
jean-pierre charras 840a8b1d36 Eeschema, renumbering components: Fix multiparts IC supply renumber problem.
With "reset but keep order of multi-units parts" option on, these units were incorrectly grouped.

Fixes: lp:1780876
https://bugs.launchpad.net/kicad/+bug/1780876
2018-07-10 17:53:06 +02:00
Baranovskiy Konstantin 5e1605af19 Values of argc and argv transfers to python environment. 2018-07-08 08:10:44 +02:00
Seth Hillbrand 101b68b610 pcbnew: Keep dp placer on initial layer
Changing the layer after starting the differential pair placer should
not change the inital track layer.

Fixes: lp:1779800
* https://bugs.launchpad.net/kicad/+bug/1779800
2018-07-03 08:23:16 -07:00
jean-pierre charras 3df27430c7 Fix eeschema crash when updating fields from libraries, and when a symbol in schematic is not found in libs
Fixes: lp:1779722
https://bugs.launchpad.net/kicad/+bug/1779722
2018-07-02 21:02:27 +02:00
Wayne Stambaugh 520c6116f5 Version 5.0.0-rc3-dev commit. 2018-06-30 11:16:42 -04:00
Wayne Stambaugh 66a489f6b6 Version 5.0.0-rc3 commit. 2018-06-30 11:02:38 -04:00
Martin Aberg 9b1f2447b6 fp_lib_table: explicit assumption by assert
This commit makes an implicit assumption explicit by describing it with
an assert.

Fixes lp:1778426

https://bugs.launchpad.net/kicad/+bug/1778426
2018-06-29 19:36:58 -04:00
Seth Hillbrand b3db6572e8 pcbnew: diff pair filter bugfix
Added required action on the std::remove_if construct to erase elements
matching the filter
2018-06-29 13:05:44 -07:00
Seth Hillbrand 4af699e919 hotkeys: Don't import v4 hotkeys automatically
Hotkey options have shifted some options from context-specific to global
hotkeys.  This causes conflicts with old hotkey definitions.  Instead,
we keep the v5 eeschema/pcbnew hotkeys completely separate.  Users can
still import their custom hotkey files from v4.

Fixes: lp:1778408
* https://bugs.launchpad.net/kicad/+bug/1778408
2018-06-29 11:20:11 -07:00
Maciej Suminski a14b552d89 Eagle PCB import: handle DRC rules where min value > max value
Fixes: lp:1779126
* https://bugs.launchpad.net/kicad/+bug/1779126
2018-06-29 19:53:20 +02:00
Seth Hillbrand eb2857deab Removing pspice from CMakeLists.txt 2018-06-29 09:27:25 -07:00
Maciej Suminski 42d05e21a7 Updated demos
- moved pspice to simulation
- imported netlists in layout files
2018-06-29 14:04:29 +02:00
Simon Richter d3deaf5ff5 Rewrite test for valid characters in names
The ternary operator decays array arguments to pointers, so they can no
longer be assigned to array references.
2018-06-29 09:42:10 +02:00
Maciej Suminski 47c44b4d83 Unselect 'copy default sym-lib-table' when unavailable
It used to be selected as the primary choice even though the option was
disabled.
2018-06-29 09:19:41 +02:00
Maciej Suminski b43b78bdd2 pcbnew: Prevent double items recaching on start
Thanks to Seth Hillbrand for pointing out the issue.

Fixes: lp:1779002
* https://bugs.launchpad.net/kicad/+bug/1779002
2018-06-29 08:51:46 +02:00
Seth Hillbrand 33075e55a4 pcbnew: Draw the clearance outline first
In Cairo, we don't have z-ordering implemented, so we need to draw the
clearance outline first otherwise it will draw a large, grey overlay
that hides the actual track while routing.

Fixes: lp:1779228
* https://bugs.launchpad.net/kicad/+bug/1779228
2018-06-28 20:28:12 -07:00
Seth Hillbrand ce379f56af pcbnew: Remove extraneous OpenMP shared decl 2018-06-28 12:22:41 -07:00
Seth Hillbrand b0b5d91390 pcbnew: fix OpenMP synch issue
Fixes: lp:1778454
* https://bugs.launchpad.net/kicad/+bug/1778454
2018-06-28 09:28:52 -07:00
Seth Hillbrand 0748c118dd pcbnew: Synchronize zone removal
After refilling zones, we need to unconditionally remove the filled
polys from the map because their fills map have changed.  Left-over
filled polygons will not map to current polygons, creating "ghost"
islands in the connectivity.  Removing these can overflow the polygon
count.

Fixes: lp:1778454
* https://bugs.launchpad.net/kicad/+bug/1778454
2018-06-28 08:12:55 -07:00
Jeff Young 246a9286a9 Fix dialogs with wxID_CANCEL as the window ID.
Fixes: lp:1778990
* https://bugs.launchpad.net/kicad/+bug/1778990

Fixes: lp:1778991
* https://bugs.launchpad.net/kicad/+bug/1778991
2018-06-28 08:38:12 -06:00
John Beard 8181646794 Fix -Wshadow warning in sch_sheet_path.cpp
Three instances of variables named "reference" shadow a typedef
within std::vector producing:

warning: declaration of ‘reference’ shadows a previous local [-Wshadow]
 note: shadowed declaration is here
           typedef typename _Alloc_traits::reference  reference;

This patch works around by renaming "reference" to "schReference".
2018-06-28 10:04:43 -04:00
Seth Hillbrand 06ff56325c eeschema: Fix assignment from d30ac2967 2018-06-28 05:58:22 -07:00
Seth Hillbrand 76f151b4d8 Fix issue with prev d83cff63f
Corrected the new/delete idiom
2018-06-27 16:40:57 -07:00
Seth Hillbrand d83cff63f6 fix memory leak
When staging a commit for an object that has already been modified,
there is a Clone() made for the hypothetical entry.  We need to free it
if we are not storing a new entry.
2018-06-27 16:15:27 -07:00
Seth Hillbrand d30ac2967a eeschema: Rescue symbols with illegal chars
When parsing component names, we need to account for the possibility of
illegal characters (e.g. "/", ":") in the names from v4 libraries.  They
are fixed internally by the cache parser but if we don't fix them
in the rescue routine, the symbol won't match it's cache name.

This standardizes all schematic illegal character routines into LIB_ID

Fixes: lp:1774774
* https://bugs.launchpad.net/kicad/+bug/1774774
2018-06-27 14:15:30 -07:00
Wayne Stambaugh 7eea8f808d Minor Pcbnew dialog fixes.
Fix get footprint by name dialog button sizer padding.

Fix export gencad dialog file name, options, and button sizer padding.
2018-06-27 14:28:18 -04:00
Maciej Suminski 80fa480388 Disable the DRC dialog while the checks are running
Closing the DRC dialog while zones are refilled leads to a crash.
Disabling the dialog prevents the crash.
2018-06-27 19:05:06 +02:00
Maciej Suminski f10aa6c857 Use paths relative to the executable on Windows
Paths based on DEFAULT_INSTALL_PATH do not work on Windows,
as in fact there is no default install path, as in case of Unix-based
systems. In such case, the initial paths point to mingw subdirectories
that normally do not exist on user machines.

The patch changes the initial path values to make them relative to
the executable and follow the current Windows installer scheme.

Fixes: lp:1775796
* https://bugs.launchpad.net/kicad/+bug/1775796
2018-06-27 11:02:48 +02:00
Martin Aberg 9d1b5698e9 Standardize "assign footprints" terminology.
ref: 611d5a0dc4
2018-06-26 13:20:02 -06:00
Tomasz Wlostowski 01c2d93a81 pcbnew: don't rebuild dynamic ratsnest when moving items without a net (e.g. board outlines)
Fixes: lp:1778321
* https://bugs.launchpad.net/kicad/+bug/1778321
2018-06-25 16:30:16 +02:00
John Beard 847f4f50b1 Pcbnew python plugins: fix some pad arrays
Fixes some pad array init functions that were not calling the
class hierarchy's init functions correctly.
2018-06-25 09:34:32 -04:00
John Beard 930f3dd74f Documentation: add logo to Doxygen pages
This adds a small KiCad logo in the top left of the Doxygen pages.

54px used as 55px is maximum recommended height for Doxygen logos.

For the main docs and the dev docs, this is easily done in the Doxyfile,
for the Python docs, as that is run from the binary dir, the source dir
is passed as an Environment variable.
2018-06-25 08:23:17 -04:00
jean-pierre charras ef38a198d1 GerbView: incorrect handling of polygon primitive: broken parameters rotation and drill size.
Fixes: lp:1778459
https://bugs.launchpad.net/kicad/+bug/1778459
2018-06-25 11:00:53 +02:00
Andrzej Wolski 1f6f76beb9 Fix overbar drawing for non-italic text
Overbar was always indented inward, regardless if text was italic or not.
2018-06-24 12:01:10 -04:00
jean-pierre charras f785d27498 Eeschema, label editor dialog: fix a very minor cosmetic issue when resizing the dialog. 2018-06-23 17:53:29 +02:00
jean-pierre charras b8bbb15aa1 Eeschema: fix a bug in sheet properties dialog that break the annotation of the symbols inside this sheet (Windows only)
For the path separator in full filename, the sheet filename from the dialog uses the Unix notation,
and the "old" sheet filename uses the default notation (it is the actual filename).

Therefore, on Windows, after closing the dialog, the filename was always seen as modified,
and the hierarchy was incorrectly modified (annotation cleared).
2018-06-23 16:58:00 +02:00
Martin Aberg 47a4099e64 Disable logging at exit on FreeBSD.
This commit fixes a crash on KiCad exit for FreeBSD.

Usage of the wxLog functions in destructors on program generates an
infinite recursive call loop and segfault on this platform.

The workaround is inpired by:
  https://people.freebsd.org/~wpaul/kicad/kicad_instructions.txt

Fixes: lp:1778334
* https://bugs.launchpad.net/kicad/+bug/1778334
2018-06-23 15:11:32 +02:00
Maciej Suminski 73a8d2a9d5 OPENGL GAL: Fixed the iteration condition when drawing triangulated polyset
The loop used an incorrect variable size as the loop limit,
occasionally causing out of bounds accesses.

Fixes: lp:1778288
* https://bugs.launchpad.net/kicad/+bug/1778288
2018-06-23 02:05:21 +02:00
Maciej Suminski 1751e4631c Code formatting 2018-06-23 01:59:49 +02:00
Andrzej Wolski a7cd62ad12 Save through hole pads color to config file
TH Pads color is now user settable, so should be saved in config file.
2018-06-22 11:34:56 -04:00
Seth Hillbrand dd436b658a pcbnew: Thread safety for connections
Moving the mutex to the class from a local variable protects the
connectivity list against corruption from multiple threads computing the
ratsnest.
2018-06-21 09:34:56 -07:00
Seth Hillbrand e2122db587 pcbnew: Clear unused code 2018-06-21 09:20:48 -07:00
Seth Hillbrand cf04d341ec pcbnew: standardize itemlist/zonelist connectivity
The itemlist and zonelist in connectivity can both contain many items,
so both use the same OpenMP routine.  However, we can only clear the
dirty flag when we conduct a full search, including zones.  Otherwise we
missing connections to zones when propogating changed items that are
then marked as not dirty.

Fixes: lp:1777993
* https://bugs.launchpad.net/kicad/+bug/1777993
2018-06-21 09:19:26 -07:00
jean-pierre charras f634b75652 Pcbnew, plot parameters: fix an issue for the "outputdirectory" parameter.
When the outputdirectory string was similar to a number, the .kicad_pcb file was no longer loadable.

Fixes: lp:1777957
https://bugs.launchpad.net/kicad/+bug/1777957
2018-06-21 12:33:51 +02:00
Seth Hillbrand a552b4ccca box2: fix bug in SetMaximum()
When setting the maximum represented box, std::numerical_limits::min
returns the most negative number only for integers.  For floating point,
it returns the smallest positive number.  std::numerical_limits::lowest
is the same as min for integers but returns the most negative number for
floating point as well.
2018-06-20 20:21:03 -07:00
Seth Hillbrand a1ef441dd9 origin viewitem needs to account for size zoom
The origin item doesn't have a fixed size.  It is constant on the screen but
changes the effective BBox size based on the zoom level.
But we can't simply set it to the maximum size as this causes a splitting degeneracy
when compiling for Debian i386.  By modestly adjusting the bbox, we avoid the degeneracy
while keeping the origin visible at all zoom levels

Fixes: lp:1777379
* https://bugs.launchpad.net/kicad/+bug/1777379
2018-06-20 12:08:57 -07:00
Wayne Stambaugh 8394e2b71e Fix broken LIB_ID library nickname illegal character tests.
During the symbol library table implementation, the legal character
tests for the footprint library table were changed and the forward
slash '/' character became illegal.  This change broke editing some
users footprint library tables that already had '/' in library table
nicknames.  This change split the library nickname and library item
name illegal character tests.
2018-06-20 14:36:40 -04:00
Jeff Young 79e0bb08d0 Architecturally-simpler fix for grid context menu unit changes.
Fixes: lp:1777519
* https://bugs.launchpad.net/kicad/+bug/1777519
2018-06-20 16:54:24 +01:00
Wayne Stambaugh 77217b2089 Fix resizing issues of global track and via properties dialog. 2018-06-20 11:39:11 -04:00
Maciej Suminski 44337dec56 pcbnew GAL: Fix bouncing zoom on mouse wheel scroll in Windows
Handling wxEVT_SCROLLWIN_LINE{UP,DOWN} executes the scroll event handler
too many times causing zoom bounces.

Fixes: lp:1562173
* https://bugs.launchpad.net/kicad/+bug/1562173
2018-06-20 16:55:14 +02:00
Seth Hillbrand 147c1e6088 pcbnew: Allow clearing local ratsnest
The local ratsnest needs to be able to hide as well as show visibility.
Clicking a module will toggle the visibility while clicking off all
modules clears the local ratsnest display.

Fixes: lp:1531332
* https://bugs.launchpad.net/kicad/+bug/1531332
2018-06-19 15:12:20 -07:00
Seth Hillbrand 6990824597 pcbnew: Hide routing options that are not available
Options that do not have code implementing them are now hidden from the
user so that they are not searching for ways to enable the greyed out
options.  Similarly, when selecting a routing option that disables
free-mode, we show the effect of disabling the mode in the dialog.
2018-06-19 11:11:18 -07:00
jean-pierre charras f52763f22b Legacy canvas: fix issue when zooming in/out using mousewheel: slightly shifts screen up/down.
It happens only when the 'warp and center cursor on zoom' option is disabled.

Was created after modifying the code in EDA_DRAW_FRAME::AdjustScrollBars(),
making EDA_DRAW_FRAME::RedrawScreen2() not working very well.

(partial fix of bug 1562173)
2018-06-19 19:53:00 +02:00
Tomasz Wlostowski f6f726acab router: allow placing tracks/diff pairs without continuing routing by Shift+L-Click
Fixes: lp:1777688
* https://bugs.launchpad.net/kicad/+bug/1777688
2018-06-19 19:30:03 +02:00
Seth Hillbrand 462549fc84 modedit: Add hotkey to switch arc posture
Allows switching arc clockwise/counterclockwise orientation while
drawing in module editor.

Fixes: lp:1777524
* https://bugs.launchpad.net/kicad/+bug/1777524
2018-06-19 09:42:04 -07:00
Jeff Young 3c7b91b96a Always create grid menu so units are up-to-date.
Fixes: lp:1777519
* https://bugs.launchpad.net/kicad/+bug/1777519
2018-06-19 10:52:36 +01:00
Maciej Suminski 81a5c0e3bf GAL: Show ratsnest lines when dragging
GAL is strict regarding which layers are rendered, therefore to show
ratsnest lines when an item is dragged - the ratsnest layer must be kept
enabled. Ratsnest line visibility is enabled per item and this is the
way to show/hide the lines.

Fixes: lp:1666473
* https://bugs.launchpad.net/kicad/+bug/1666473
2018-06-19 11:29:36 +02:00
Maciej Suminski a08c0ac08c kicad2step: Added minimum distance parameter 2018-06-19 10:37:07 +02:00
Maciej Suminski 7ef97e0bca kicad2step: Simplified unit conversion
Instead of using 'm_inch' flag, dimensions are converted in place.
2018-06-19 10:37:07 +02:00
Maciej Suminski 04a462e48f kicad2step: Converted #defines to constexprs 2018-06-19 10:37:07 +02:00
Maciej Suminski f0b3cf8077 STEP export: Stricter contiguity check
Stricter contiguity check points the user to gaps in the outline.

Fixes: lp:1774351
* https://bugs.launchpad.net/kicad/+bug/1774351
2018-06-19 10:36:21 +02:00
Maciej Suminski 1541cbdf04 kicad2step: Add short segments to fix outline contiguity for arcs
STEP exporter keeps outline contiguous by storing the last point
coordinates and using them as the starting point for the next segment. It
might create a problem for arcs, as one of the arc end points may become
translated (changed to the last outline point), while the remaining
points (center and the other endpoint) are kept original. For large
deltas it renders an arc invalid, as it cannot pass through a modified
endpoint anymore.

To fix this, short segments are added to link the last outline point
with an arc endpoint, but only if the distance between the two is below
a certain threshold. This way the outline is kept contiguous and the arc
end point is unmodified, warranting its correctness.

Fixes: lp:1774351
* https://bugs.launchpad.net/kicad/+bug/1774351
2018-06-19 10:29:18 +02:00
Seth Hillbrand 44c1f5785b pcbnew: Set dp clearance based on netclass
Minimum differential pair clearance should be limited to the netclass
differential pair spacing.  This also cleans up some unused code that
was left over from previous work on differential pair clearances.

Fixes: lp:1673632
* https://bugs.launchpad.net/kicad/+bug/1673632
2018-06-18 14:23:25 -07:00
Jeff Young feebb3a36c Don't double-move module text when parent is also selected.
Fixes: lp:1776871
* https://bugs.launchpad.net/kicad/+bug/1776871
2018-06-18 22:03:39 +01:00
Wayne Stambaugh 11c248a463 Fix a typo made in commit 52734058. 2018-06-18 14:57:01 -04:00
Wayne Stambaugh 52734058a7 Remove string translation wrappers used in commit 94891b75.
Translating internal file name and path strings will almost certainly
result in a bug on MacOS.
2018-06-18 12:14:48 -04:00
Maciej Suminski ba3f2b30ee kicad2step: More diagnostic messages to determine export issues 2018-06-18 17:51:22 +02:00
jean-pierre charras 03fa645743 pic_programmer demo: fix a typo in a symbol name. 2018-06-18 08:12:17 +02:00
Adam Wolf 94891b75f9 Handle STEP export properly on MacOS when launched from standalone pcbnew. 2018-06-17 13:09:33 -04:00
Andrzej Wolski a99eeb44d3 Do not allow setting zero Y size for oval holes 2018-06-17 16:30:14 +02:00
Andrzej Wolski 834d9335dd Do not plot zero width oval holes in Gerber X2 drill files
In case there are zero width oval holes on the PCB,
it is safer to not plot them at all, rather than plotting
with width arbitrarily increased to 10 mils.
This also makes Gerber outputs consistent with Excellon outputs.
2018-06-17 16:26:23 +02:00
jean-pierre charras ae02039ed4 Update pic_programmer demo 2018-06-17 09:28:36 +02:00
Seth Hillbrand 4959f91dac pcbnew: Ensure Connectivity RTree gets updated
When removing items, we perform a two-pass removal, checking first
for the cached rectangle collision.  Then, if we do not find the item
being removed, we perform a second, more expensive pass over the full
tree.  This second pass is required as we cannot be certain that an
item's bbox has not been modified between insertion and deletion.  In
which case, keeping stale pointers in the tree will lead to segfaults.

Fixes: lp:1777246
* https://bugs.launchpad.net/kicad/+bug/1777246
2018-06-16 21:45:55 -07:00
Maciej Suminski 7b7355772e Do not display Interactive Routing Settings dialog twice
The dialog was displayed due to a global TOOL_ACTION and a hotkey
assigned to a top menubar entry. Removing the hotkey from the menubar entry
is not ideal, but less irritating than a dialog showing up twice.
2018-06-15 17:32:00 +02:00
Maciej Suminski 583a9c08c0 Remove duplicated PNS TOOL_ACTIONs to display routing settings 2018-06-15 17:12:15 +02:00
Maciej Suminski 94b6f848bb pcbnew_control.cpp: change C-style asserts to wxCHECK/wxFAIL 2018-06-15 17:11:32 +02:00
Maciej Suminski eb97634bdf Enable 'Delete Item' toolbar icon in the Footprint Editor when the tool is active 2018-06-15 17:10:12 +02:00
Maciej Suminski 7d66dc0cc3 Fixed an assert on pasting items in the Footprint Library Editor
The assert in the title line verifies that an item does not belong to
any DLIST when it is being added to one. Items in clipboard are already
owned by DLISTs, therefore they need to be removed from the original
DLISTs before being added to new ones.
2018-06-15 14:35:55 +02:00
Andrzej Wolski 316ff2898d Fix footprint selection
Commit 72b49acc changed behavior of MODULE::ViewBBox(),
which now includes text fields area. This caused problems
with selecting footprints with relatively large text fields.
This patch fixes this problem by using MODULE::GetBoundingBox instead.

Fixes: lp:1776942
* https://bugs.launchpad.net/kicad/+bug/1776942
2018-06-14 19:32:09 -07:00
Wayne Stambaugh b82bf7c449 Fix minor layout issue in keepout area properties dialog. 2018-06-14 11:12:34 -04:00
Jeff Young b37969f584 Reset tools before switching footprints.
Fixes: lp:1776777
* https://bugs.launchpad.net/kicad/+bug/1776777
2018-06-14 09:55:29 +01:00
jean-pierre charras 0d4d24ed22 Update demos. 2018-06-14 09:52:23 +02:00
Seth Hillbrand 11ab8f6dc1 pcbnew: Fix a couple of duplicate hotkeys 2018-06-13 22:53:06 -07:00
Alexis Lockwood 860a95ca30 Correct my name in AUTHORS.txt and About dialog 2018-06-13 23:10:27 -06:00
Seth Hillbrand f6bd6b1360 3d: Replace glFinish with glFlush
glFinish is meant to ensure every aspect of the screen is fully-drawn
before continuing.  This causes issues with certain chipsets (Intel
4-8k)

glFlush is more of a suggestion that CPU work is complete and the GPU
should complete its work in a "timely" fashion.

We add an additional glFinish call before getting a screenshot as this
will copy the actual data from the card buffer.

Fixes: lp:1775976
* https://bugs.launchpad.net/kicad/+bug/1775976
2018-06-13 15:32:18 -07:00
Seth Hillbrand 4dd2de9057 pcbnew: Prevent mouse capture after actions
After an action is completed that required the screen to pan when the
cursor reaches the edge of the screen, we should release the cursor to
allow the user to move their mouse without panning.

Fixes: lp:1763860
* https://bugs.launchpad.net/kicad/+bug/1763860
2018-06-13 14:05:32 -07:00
John Beard 34c6393b71 Pcbnew Python docs: remove obsolete Doxygen parameters
These two parameters were unused and were producing warings:

* XML_SCHEMA
* XML_DTD
2018-06-13 11:12:24 -04:00
John Beard 41d6fc648d Pcbnew Python: use python super for inherited classes 2018-06-13 11:12:15 -04:00
John Beard 1f04b5fc7d Pcbnew Python: Add PadArray module documentation 2018-06-13 11:12:08 -04:00
John Beard 468d26d9d1 Pcbnew Python: Add plugin documentation
This adds the Python plugin helper classes to the generated
documentation.
2018-06-13 11:12:02 -04:00
John Beard 939450856a Pcbnew FP wizard: add rounded and chamfered box aids
These functions are fairly common drawing operations that otherwise
require fairly complex calculations, which would be better not to
have to repeat.
2018-06-13 11:11:55 -04:00
John Beard 5001b056ac Pcbnew FP wizard: add docstring for parameters
Adds more verbose and complete explanations of the
FootprintWizardBase and FootprintWizardDrawingAids functions.
2018-06-13 11:11:49 -04:00
John Beard 137799165d Pcbnew FP wizard: minor style fixes
This contains only a few minor style fixes according to PEP8
for FootprintWizardBase.py, and some spelling fixes
2018-06-13 11:11:42 -04:00
jean-pierre charras 9302bbce59 Pcbnew: fix a duplicate hotkey (E for edit properties) 2018-06-13 09:46:22 +02:00
jean-pierre charras 5411b951ae Minor compil warning (signed/unsigned compare) fix 2018-06-13 08:05:10 +02:00
Seth Hillbrand bc7bd107d9 Fix a number of untranslated strings. 2018-06-12 17:05:25 -07:00
Seth Hillbrand fb1aa56b77 modedit: Don't activate measure tool without a footprint
There's no risk in measuring an empty footprint but there's no benefit
either.  This matches the measure tool to the other, deactivated
footprint tools.
2018-06-12 16:48:59 -07:00
Seth Hillbrand 04706d9d02 pcbnew: Add placement hotkeys
Assigns configurable hotkeys to the placement commands.

Fixes: lp:1712629
* https://bugs.launchpad.net/kicad/+bug/1712629

Fixes: lp:1167895
* https://bugs.launchpad.net/kicad/+bug/1167895
2018-06-12 16:08:06 -07:00
Seth Hillbrand 47106b6861 pcbnew: Adding meander hotkeys to assignment
Allows increase/decrease spacing/amplitude hotkeys to be
assigned/changed.

Fixes: lp:94fb13aec
* https://bugs.launchpad.net/kicad/+bug/94fb13aec
2018-06-12 16:08:01 -07:00
Seth Hillbrand aae30cc7c1 pcbnew: Hotkey minor fixes
- Ordering of Hotkey list by function
- Use Hotkey assignment instead of hard-coded hotkey for length tuning
- Adjust default Length Tuning settings hotkey to CTRL-L so that we
don't overlap with "Lock" (overlaps are not editable)
2018-06-12 14:22:46 -07:00
Seth Hillbrand 70506cc31d pcbnew: Standardize HK display in Routing
Routing menu should display assigned hotkeys for all items, not just
route track.
2018-06-12 14:22:32 -07:00
Seth Hillbrand e95d06e811 OCC: Fix issues for OpenCascade 7.3
OpenCascade 7.3 deprecates some TK libraries that were not required by
KiCad, therefore we should not include them in the compile.

Also correct missing compiles for STEP import/export induced by 584409b2e when using OCCT.  There is no effect on OCE to this change.
2018-06-12 10:03:13 -07:00
jean-pierre charras cee313da8c Pcbnew: legacy canvas: make trace len display working while creating the trace.
Previously, the full trace length was always displayed as 0 during track creation in the info canvas.
2018-06-12 18:21:46 +02:00
Seth Hillbrand 5de246c5be Add handlers for scrollbar events
Fixes: lp:1776120
* https://bugs.launchpad.net/kicad/+bug/1776120
2018-06-12 08:53:50 -07:00
Maciej Suminski 72b49acccf Commit supplementing 9605dd8e
Once SELECTION_TOOL has been changed to use EDA_ITEM::GetBoundingBox(),
selection area had to cover the footprint and its ref/value texts,
even hidden ones. To fix this, ref/val strings are taken into account
only in the ViewBBox().
2018-06-12 17:40:56 +02:00
jean-pierre charras e624bbae8a fix test_002_board_class.py according to changes (fixes) in bounding box track calculations 2018-06-12 17:21:03 +02:00
Wayne Stambaugh ade3c2b129 Minor Python scripting documentation fixes.
Change the Doxyfile project name from KiCAD to KiCad.  It doesn't look
very good when we don't get the project name capitalization correct.

Clean up trailing whitespace in some of the helper scripts and Doxyfile.
2018-06-12 10:24:59 -04:00
Jeff Young 660aed71b4 Make sure initially loaded footprint is rendered.
Also sets the initial footprint to the current footprint when
doing a Choose Footprint from the Eeschema Edit Property
dialog.

Fixes: lp:1776126
* https://bugs.launchpad.net/kicad/+bug/1776126
2018-06-12 13:41:53 +01:00
John Beard 16411c8c1e Fix -Wparentheses in track_cleaner.cpp
Changes "wxBusyCursor( dummy );" to just "wxBusyCursor dummy;"

Fixes warning: ../pcbnew/tracks_cleaner.cpp:155:17:
warning: unnecessary parentheses in declaration of ‘dummy’ [-Wparentheses]
     wxBusyCursor( dummy )
2018-06-12 14:23:59 +02:00
Maciej Suminski 9605dd8e1d Fix selection clearance for via and tracks
- fixed via bounding box calculation in TRACK::GetBoundingBox()
- moved clearance to TRACK::ViewBBox()
- modified the Selection Tool to use EDA_ITEM::GetBoundingBox() rather
than VIEW_ITEM::ViewBBox() to determine selection

Fixes: lp:1776314
* https://bugs.launchpad.net/kicad/+bug/1776314
2018-06-12 10:59:30 +02:00
jean-pierre charras 5d276a43f6 PCB_EDIT_FRAME::EraseRedundantTrack() Fix incorrect detection of the new trace boundaries in a specific case.
It happens if the first segment of the new trace is inside a pad: the other segments are not found.
And the erased trace is not the right trace.

However this fix is more a workaround than a fix: currently the detection of the trace boundaries (BOARD::MarkTrace())
does not work very well for segments inside a pad.

Fixes: lp:1776121
https://bugs.launchpad.net/kicad/+bug/1776121
2018-06-12 10:05:12 +02:00
Seth Hillbrand 4186626069 Fix overzealous checking in 2798035f8
Checking for NULL fields prevents a useful dialog from being displayed
now that the exception is handled.
2018-06-11 20:49:13 -07:00
Seth Hillbrand 2798035f85 eeschema: Catch parameter errors in SPICE sim
Any errors in the dialog should be handled and, at worst, allowed to
redo.  SPICE_VALUE throws KI_PARAM_ERROR, so we catch that explicitly.

Fixes: lp:1776051
* https://bugs.launchpad.net/kicad/+bug/1776051
2018-06-11 18:02:20 -07:00
Seth Hillbrand 61c3bc4af4 pcbnew: Don't stage undo commits on new items
New items just being placed on the board are still temporary.  Although
we can modify their orientations/positions, we can't stage these changes
for undo/redo without corrupting the undo stack.

Fixes: lp:1776312
* https://bugs.launchpad.net/kicad/+bug/1776312
2018-06-11 16:43:30 -07:00
John Beard 896ad3774d "Select Connection" menus enablement
Previously, the "Select Connection" sub-items were greyed out when the
selection contained both tracks and vias. This meant that you couldn't
access "Select Copper Connection" when the selection contained both
tracks and vias (though the keyboard shortcuts did work).

Change to use SELECTION_CONDITIONS::OnlyTypes( GENERAL_COLLECTOR::Tracks
) to allow any combination of track elements to be selected.

Fixes: lp:1772249
* https://bugs.launchpad.net/kicad/+bug/1772249
2018-06-11 10:58:26 -07:00
John Beard 0555bbc656 Pass PCB display settings to PNS router tool
This allows the tool to set display options like the clearance.

Fixes: lp:1766836
* https://bugs.launchpad.net/kicad/+bug/1766836
2018-06-11 10:48:05 -07:00
Jeff Young 8a2639325d Update footprint value when doing a Save As to library.
Fixes: lp:1570120
* https://bugs.launchpad.net/kicad/+bug/1570120
2018-06-11 14:43:32 +01:00
Jeff Young 5c65881fde Allow Global Fields Editor to Cancel with no changes. 2018-06-11 12:10:19 +01:00
Ben Gamari da61285a29 field editor: Save checkbox states
This refactors the symbol field editor's checkbox state-saving code to
deal with multiple projects with disjoint field sets more consistently.

For instance, imagine I have a two projects

 * Proj1 has fields A, B, C
 * Proj2 has fields A, B, D

Under the old scheme, when I switch from one project to the other the
state of fields C and D will be forgotten. With the new approach,
however, they are retained.

Not to mention, the implementation is considerably simpler.  Fixes
2018-06-11 12:08:59 +01:00
Jeff Young de7791cc8b Add context menu to footprint viewer for zoom & grid.
Fixes: lp:1776126
* https://bugs.launchpad.net/kicad/+bug/1776126
2018-06-11 11:37:48 +01:00
Maciej Suminski 813c1a2ba2 Dealing with inconsistent wxGLCanvas::IsDisplaySupported()
wxGLCanvas::IsDisplaySupported() handles wxGL_{MINOR,MAJOR}_VERSION
attributes only in 3.0.4. Since 3.1.0 the attributes are apparently not
supported, so instead wxGLContext::IsOK() is used (introduced in 3.1.0).

Fixes: lp:1775995
* https://bugs.launchpad.net/kicad/+bug/1775995
2018-06-11 12:26:59 +02:00
Ben Gamari 3f783d2318 field editor: Find components when reference field is clicked
This makes it significantly easier to find a particular component when
using the field editor, as I often do for part selection.

Fixes: lp:1772169
* https://bugs.launchpad.net/kicad/+bug/1772169
2018-06-11 10:27:49 +02:00
Maciej Suminski 850aac5ec5 Set OpenGL_GL_PREFERENCE for CMake 3.11+ 2018-06-11 10:27:49 +02:00
Jeff Young 9edfd25b95 Select best-matching component when filtering.
This also fixes the old bug of scrolling to the selected best
match.

Fixes: lp:1774110
* https://bugs.launchpad.net/kicad/+bug/1774110

Fixes: lp:1744703
* https://bugs.launchpad.net/kicad/+bug/1744703
2018-06-10 23:21:05 +01:00
Damien Espitallier 0e3be5776c Add library name pseudo-hash in fp_list_table GenerateTimestamp output 2018-06-09 16:18:40 +01:00
Simon Richter 8444b1b617 Add missing header 2018-06-08 17:15:17 -07:00
Jeff Young b9874da3a6 Remove background fp loading from Choose Symbol dlg.
There are a bunch of problems with event processing and closing
documents, etc., when enabled.  See the bug report for more
info.

Fixes: lp:1774777
* https://bugs.launchpad.net/kicad/+bug/1774777
2018-06-09 00:51:39 +01:00
Jeff Young 5098c5796a Prevent another case of "fall behind" dialogs. 2018-06-09 00:51:39 +01:00
Seth Hillbrand c5c52c3dfd pcbnew Check for valid nodes before drawing ratsnest
We can invalidate a node by rotating.  Make sure that our endpoints for
the ratsnest are valid before attempting to draw.

Fixes: lp:1775727
* https://bugs.launchpad.net/kicad/+bug/1775727
2018-06-08 16:34:37 -07:00
Seth Hillbrand fb9ccd855d eeschema: Check for dangling ends when switching sheets
When you search for an item that exists on a separate sheet in the
schematic, the newly loaded schematic sheet needs to have the dangling
flags set so that we don't have a mess of non-connected "o" markers.
2018-06-08 12:51:54 -07:00
Seth Hillbrand 72238e260a Fix overload compile warning 2018-06-08 11:25:27 -07:00
Seth Hillbrand 7558c71aca When clearing annotations, keep units
Clearing annotations should only clear the settings that can be set by
the matching annotate function.  Even in components where the units are
functionally the same, the unit choice should be retained as there are
often other considerations when chosing the unit.

Fixes: lp:1769457
* https://bugs.launchpad.net/kicad/+bug/1769457
2018-06-08 10:51:56 -07:00
Seth Hillbrand 68f6e3ad44 pcbnew: Differential pairs obey netclass settings
PNS routing options allow trace width to be chosen by the assigned
netclass.  This extends that to differential pair width/gap settings as
well.

Fixes: lp:1672126
* https://bugs.launchpad.net/kicad/+bug/1672126
2018-06-07 08:58:12 -07:00
jean-pierre charras 6d77e594b5 Python binding: fix pcbnew.Refresh() to make a better re-initialization.
Minor fixes in comments.

Fixes: lp:1775003
https://bugs.launchpad.net/kicad/+bug/1775003
2018-06-07 10:04:29 +02:00
Seth Hillbrand a5b92a1fe4 Constrain dimension tool while creating
The dimension tool is optionally constrained (MD_CTRL) while editing the
dimension.  This ensures same behavior for the creation step.
2018-06-06 17:04:28 -07:00
Seth Hillbrand 40d2535625 Recalculate ratsnest when moving footprint in legacy
Legacy shows the local ratsnest when moving a footprint.  Therefore we
need to recalculate it when the move ends.

Fixes: lp:1775473
* https://bugs.launchpad.net/kicad/+bug/1775473
2018-06-06 15:40:58 -07:00
Seth Hillbrand abd8927d71 Dimension Edit window passes default action
Processing enter from within the dimension editor window is only set to
the default action for top-level items.  Within the sizer, enter is
handled by the first registered button (Cancel) unless explicitly set.

Fixes: lp:1774035
* https://bugs.launchpad.net/kicad/+bug/1774035
2018-06-06 12:31:48 -07:00
Seth Hillbrand a5c213c23d Set footprint splitter window canvas to transient
The splitter window can not be the parent to any additional windows.
If it acquires a child that persists past the lifetime of the splitter
window, we get a segfault.
2018-06-06 10:03:00 -07:00
Maciej Suminski 64e98c8e54 Fixed Symbol Library editor crash on start
Added a null pointer check missing in 51c7381f

Fixes: lp:1775414
* https://bugs.launchpad.net/kicad/+bug/1775414
2018-06-06 17:01:06 +02:00
Maciej Suminski 228881f552 Eagle SCH import: validate package (footprint) names 2018-06-06 10:12:04 +02:00
Maciej Suminski 51c7381fd5 Fix Choose Symbol dialog freezes in eeschema
Scrollbars are always enabled to prevent an infinite event loop caused
by alternating CreateLayout() and OnSize event handler.
More details: http://trac.wxwidgets.org/ticket/18141

Fixes: lp:1767848
* https://bugs.launchpad.net/kicad/+bug/1767848
2018-06-06 09:11:15 +02:00
Jeff Young 9552e02727 Handle description when reading netlist. 2018-06-06 01:59:56 +01:00
Jeff Young 271826f8f3 Fix crash when deleting from library with nothing selected.
Fixes: lp:1775289
* https://bugs.launchpad.net/kicad/+bug/1775289
2018-06-06 00:01:47 +01:00
Damien Espitallier 5263558eaa Fix crash when delete button of footprint filter is clicked and no footprint is selected
Fixes: lp:1775296
* https://bugs.launchpad.net/kicad/+bug/1775296
2018-06-06 00:01:47 +01:00
Jeff Young a300006956 Fix dialog layout of Add 3D Shape.
Fixes: lp:1747652
* https://bugs.launchpad.net/kicad/+bug/1747652
2018-06-06 00:01:47 +01:00
Jeff Young e0c881b639 Output descriptions to components in generic netlist.
Also hooks up the Python netlist reader to the descriptions so
that they appear correctly in BOMs.  (The BOM generators used
to always get the root component's description rather than the
alias's description.)

Fixes: lp:1774358
* https://bugs.launchpad.net/kicad/+bug/1774358
2018-06-06 00:01:47 +01:00
Jeff Young aaf47bbe71 Replace "unsaved changes" dialog to Global Fields Editor. 2018-06-06 00:01:47 +01:00
Seth Hillbrand 7d62f14dd0 Set ViewBBox to viewitem size
Limit the bbox size of origin view item to item size.  This prevents
excessive redraw.

This also side-steps a degeneracy in the RTree calculation under certain
conditions in i386 where multiple, maximum-sized items are degenerate.

Fixes: lp:1774316
* https://bugs.launchpad.net/kicad/+bug/1774316
2018-06-05 15:35:58 -07:00
Seth Hillbrand 9e4511eb11 Update netclasses when loading footprint
When clearing the pcb in footprint editor, we need to transfer the
netclass settings to ensure we have the correct defaults for the new
footprint.

Fixes: lp:1751583
* https://bugs.launchpad.net/kicad/+bug/1751583
2018-06-05 12:44:43 -07:00
jean-pierre charras 9354372a0c Fix bug: Pcbnew crash on invoking footprint browser when already open (happens only in some distros)
Fixes: lp:1775178
https://bugs.launchpad.net/kicad/+bug/1775178
2018-06-05 20:05:56 +02:00
jean-pierre charras da392728d4 spice_value.cpp: replace std::invalid_argument by KI_PARAM_ERROR (replacement forgotten in commit a288d6199)
see commit a288d6199 for the reasons of this replacement.
2018-06-05 16:07:47 +02:00
jean-pierre charras a288d6199e Add KI_PARAM_ERROR, similar to std::invalid_argument but using wxString instead of std::string to throw errors.
std::invalid_argument does not work fine with translated strings as argument for message.
(the translated message is incorrectly or not displayed if it contains non ascii8 chars, at least on Windows).
KI_PARAM_ERROR can be throw-ed with a translatable/translated string (a wxString)
2018-06-05 13:29:51 +02:00
John Beard 58814e838d Common: Fix -Wcatch-value warnings (catching exceptions by value)
This fixes some warnings on GCC 8.1:

warning: catching polymorphic type ‘class std::out_of_range’ by value [-Wcatch-value=]
         catch( std::out_of_range )
                     ^~~~~~~~~~~~

This fix is along the same lines as:

* ff1802d7a "Fix Coverity "Big parameter passed by value" warnings"
2018-06-05 11:46:17 +02:00
Seth Hillbrand f95b77b61a Fix overflow on 32-bit machine
Bitmap hash incorrectly shifted by 60 bits on 32 bit machines while only
shifting 28 bits on 64 bit machines.
2018-06-04 16:41:16 -07:00
Seth Hillbrand ee34aab07a Async hardening
There are three related changes here to harden our handling of threads
in the footprint async loader.

1) Footprint async loader explicitly aborts any remaining loader threads
on exit.

2) We protect the thread join by a mutex

3) We do not pause during no-wait routines
2018-06-04 15:08:40 -07:00
Seth Hillbrand 39ac5e0af8 Pcbnew: List nets fix calculation speed
Similar to 6e5726613, we need to find net node count quickly without
iterating over all items in the board.
2018-06-04 11:08:54 -07:00
Wayne Stambaugh 7343e78347 Fix some Coverity uninitialized field warnings.
Fixes Coverity CIDs:

- 175824
- 169337
- 163191
- 175827
- 175440
- 175438
- 157136
2018-06-04 13:48:57 -04:00
Seth Hillbrand 5dbfa6a9c1 Correct node/pad count in pcbnew
Pads count all pads/pins on the board including unconnected and NPTH.
Nodes count only the pads that can connect to a net and are therefore
routable.  These were being calculated as the same number (displayed in
the info bar at the bottom of the screen)
2018-06-04 10:26:40 -07:00
Wayne Stambaugh ff1802d7a1 Fix Coverity "Big parameter passed by value" warnings.
Fixes Coverity CIDs:

- 175846
- 175841
- 175840
- 175837
- 175836
- 175834
- 102524
2018-06-04 12:30:00 -04:00
Seth Hillbrand 63a952d239 Adjust connectivity to use RTree
Connectivity searches were slow for large, complex boards.  This was
partly due to the need to search all lists for possible connections
between anchors.

We remove this requirement by creating an RTree based on items' bounding
boxes similar to the PNS router.  Then we get both the colliding items
and search forward/backward to see if there are connections between the
anchors and the other item.

Because we use RTree, we no longer need the maintenance overhead of multiple
item lists and an anchor list in the connectivity class.

Fixes: lp:1701791
* https://bugs.launchpad.net/kicad/+bug/1701791

Fixes: lp:1769408
* https://bugs.launchpad.net/kicad/+bug/1769408

Fixes: lp:1761989
* https://bugs.launchpad.net/kicad/+bug/1761989
2018-06-04 08:30:07 -07:00
Wayne Stambaugh 6f65f835f4 Fix assert in CvPcb when opening footprint equate file dialog.
Fixes lp:1774726

https://bugs.launchpad.net/kicad/+bug/1774726
2018-06-04 10:09:06 -04:00
Maciej Suminski e4a6f2e523 Switch canvas to Cairo if OpenGL is not supported on the first run 2018-06-04 12:17:58 +02:00
Maciej Suminski 6bd708621b Early check of supported OpenGL version 2018-06-04 12:17:58 +02:00
jean-pierre charras 0b8cf93888 Pcbnew, On line DRC in legacy canvas: Fix broken Drc test during track and zone creation or edition.
It was broken by commit c78171d01f.
During creation, the Drc must only display a error message, and do not create markers.
Markers are created only during a full board DRC test.
commit c78171d01f replaced this behavior by a incorrect one (create markers and do not show error messages)
2018-06-04 11:20:11 +02:00
Maciej Suminski 27c9c6ceed Enable the accelerated canvas on the first gerbview run if requested
Commit 8910894f applied to gerbview.
2018-06-04 10:47:44 +02:00
Maciej Suminski 8910894fab Enable the accelerated canvas on the first pcbnew run if requested
Fixes: lp:1769143
* https://bugs.launchpad.net/kicad/+bug/1769143
2018-06-04 10:41:34 +02:00
jean-pierre charras d3c41dd247 Remove dead code. 2018-06-03 19:55:03 +02:00
Seth Hillbrand 0a91f0bc9c Add 45º constraints to lines when moving with CTRL
Fixes: lp:1774750
* https://bugs.launchpad.net/kicad/+bug/1774750
2018-06-02 15:52:18 -07:00
Seth Hillbrand 975e777149 Fix threaded race condition in footprints
The progress reporter should not be cleared in the footprint
implementation to prevent dereferencing a NULL.

When cancelling the load, we should only allow setting of cancellation
to true to prevent a condition where the progress reporter resets
the cancellation.

Fixes: lp:1774777
* https://bugs.launchpad.net/kicad/+bug/1774777
2018-06-02 15:05:36 -07:00
jean-pierre charras 6e57266136 Pcbnew: optimize BOARD::SortedNetnamesList() for a must faster calculation time.
It is mainly used in copper zones dialog editor,
and previously created a noticeable delay to show this dialog with large boards (more than 900 nets)
2018-06-02 18:14:34 +02:00
Jean-Samuel Reynaud d4393b2813 Fix incorrect Eeschema BOM plugins install path on Linux.
Fixes lp:1697041

https://bugs.launchpad.net/kicad/+bug/1697041
2018-06-01 14:09:08 -04:00
jean-pierre charras 8f984c2899 OpenGL, DrawGrid(): use grid and axis alpha color value setting, instead of the fixed 1.0
In Cairo mode, this function uses already the alpha color value setting.
Now for low alpha values (usually they are low, as said in many GAL comments),
Cairo mode and OpenGL mode should have a similar look.
2018-06-01 18:29:04 +02:00
Seth Hillbrand 3cf9009f73 Delete GL context in GL destructor not program
Also lock the DeleteAll call with mutext to protect threaded access.

The OpenGL contexts are removed when OPENGL_GAL class is destroyed.
Explicitly deleting all contexts prior to destroying the OPENGL_GAL
class causes an assert when the destructor tries to lock its context
prior to cleaning up OpenGL memory.  In most cases, an unhandled assert
in a destructor-called function will simply exit the destructor.

Python thread cleanup will also attempt to close the context.  This can
cause a race condition with multiple threads accessing/deleting the
canvas.

Fixes: lp:1774096
* https://bugs.launchpad.net/kicad/+bug/1774096
2018-06-01 09:14:36 -07:00
jean-pierre charras bfa89039c4 Gerbview, GAL mode: fix "Zoom to fit" area size calculation when nothing is loaded.
Also ensure the worksheet is displayed after clearing the gerber layers.
2018-06-01 11:39:08 +02:00
jean-pierre charras 9a228d8ec9 Gerbview: GAL mode: shows the page worksheet, similar to legacy mode. 2018-06-01 09:11:43 +02:00
jean-pierre charras fc71fc6474 Gerbview: Fit to page: use the page size when nothing is loaded.
Previously, due to a minor bug, a very small default size was used (therefore a high zoom value), that was not a good choice.
2018-05-31 11:22:33 +02:00
Maciej Suminski 7c49bcd3a6 Clear selection before deleting DRC markers
Pcbnew crashes when a selected DRC marker is deleted. This a possible
fix to lp:#1773863.
2018-05-31 09:32:43 +02:00
Maciej Suminski f51f30fb1e eeschema: Disabled an assert checking if project path is empty
Empty project path is a valid case when eeschema is executed in
standalone mode without any file loaded.

There were no observed harmful consequences of running eeschema without
the project path set, but to stay safe the project specific
sym-lib-table load code is executed only when the project path is set.
2018-05-31 09:09:01 +02:00
Maciej Suminski c5cde53dff Symbol Editor: fixed a crash when modifying a symbol
In the scenario described in the bug report, the SCH_SCREEN current item
pointer stores an address of a stale object that had been deleted when
the symbol was reloaded. To prevent the crash, the current item pointer
is reset whenever a symbol is loaded.

Fixes: lp:1774296
* https://bugs.launchpad.net/kicad/+bug/1774296
2018-05-31 09:01:59 +02:00
Seth Hillbrand 3ce8a4856a Remove ToLayer_ID calls from color checks
Colors are assigned to virtual layers while the ToLayer_ID returns a
physical layer enum.  The GetLayerColor/SetLayerColor take LAYER_NUM
(int) values that can be larger than the physical layer count.
2018-05-30 13:51:20 -07:00
Jeff Young d90d4ff682 Fix bugs in Export to SVG.
We were trying to handle aOnlyOneFile at two different levels
which was preventing the Silk layer from going through the
right routine (and preventing board outlines from getting
drawn if selected).

We were also overwriting the references color local variable
before using it, meaning the reference was always rendered in
the value's color.

Fixes: lp:1774171
* https://bugs.launchpad.net/kicad/+bug/1774171
2018-05-30 20:49:05 +01:00
Seth Hillbrand fe1f837d0c Limit zoom out
We limit the minimum zoom to Z=0.3.  Minimum preset zoom level is 0.31,
so 0.3 is only reachable using the mouse wheel.  Smaller than 0.18, GAL
does not display properly.

Fixes: lp:1773215
* https://bugs.launchpad.net/kicad/+bug/1773215
2018-05-30 11:24:35 -07:00
Seth Hillbrand eeb273faa0 Partial revert of 3804f6 to correct assert change
ToLayerID function converts to PCB_LAYER_ID and needs to check against
that enum instead of GAL_LAYER_ID.
2018-05-30 09:17:51 -07:00
Baranovskiy Konstantin 36504b3071 SymLibEditor: synced state of search tree tool button with its panel
Button "Toggle the search tree" from left toolbar of Symbol Library
Editor does not show actual state of visibility of the search tree
panel. State of this button (checked or unchecked) changes on clicking
only. Toggling panel visibility from menu does not make effect on tool
state.

Applied changes makes tool state (checkd/unchecked) synced with panel
state (shown/hidden).
2018-05-30 16:55:55 +02:00
Jeff Young d03e92a3a2 Field Name Template (aka Default Fields) fixes.
Move from a "default" fields model to a "seed" fields model.  See
discussion on devlist:
https://lists.launchpad.net/kicad-developers/msg35823.html.
2018-05-30 09:46:52 +01:00
Maciej Suminski 8c63dac0c3 Component Chooser: do not create FP list when the FP preview is disabled 2018-05-30 09:53:58 +02:00
jean-pierre charras 52fceb3243 Eeschema: sheet filename renaming: fix a old issue that can set incorrect filenames in sheets inside a complex hierarchy.
Fixes: lp:1773500
https://bugs.launchpad.net/kicad/+bug/1773500
2018-05-29 19:57:18 +02:00
jean-pierre charras ce9cc4ea38 plot board: fix a stupid bug created by commit dfa91752 2018-05-29 19:51:50 +02:00
Maciej Suminski c5f56ef573 Eagle PCB import: made warning strings translatable 2018-05-29 15:02:26 +02:00
Maciej Suminski d2436e7478 Corrected "Add footprint library" dialog file filters
Fixes: lp:1773969
* https://bugs.launchpad.net/kicad/+bug/1773969
2018-05-29 15:02:26 +02:00
jean-pierre charras dfa9175209 Fix incorrect mask size for rectangular and trapezoid pads.
Fixes: lp:1773926
https://bugs.launchpad.net/kicad/+bug/1773926

Fixes: lp:1773961
https://bugs.launchpad.net/kicad/+bug/1773961
2018-05-29 13:45:45 +02:00
jean-pierre charras 71e64de3a4 gerber plot: fix incorrect string attribute for BGA pads on copper layer 2018-05-29 12:30:52 +02:00
Maciej Suminski 94f161b8c2 Eagle SCH import: validate imported symbol names
Fixes: lp:1753189
* https://bugs.launchpad.net/kicad/+bug/1753189
2018-05-29 09:29:22 +02:00
Maciej Suminski e789523632 Eagle SCH import: do not crash if nothing was imported 2018-05-29 09:29:21 +02:00
Jeff Young a12b9db584 Map Eagle values to fab layers.
Fixes: lp:1773256
* https://bugs.launchpad.net/kicad/+bug/1773256
2018-05-28 20:37:52 +01:00
Jeff Young f914558e7b Remove overly-strict assert.
Fixes: lp:1773807
* https://bugs.launchpad.net/kicad/+bug/1773807
2018-05-28 20:37:14 +01:00
Maciej Suminski a8db21319f Spice Simulator: set correct scale for constant plots
Fixes: lp:1772278
* https://bugs.launchpad.net/kicad/+bug/1772278
2018-05-28 16:42:15 +02:00
Marco Ciampa 2cb65f9c19 Make the Simulator error strings translatable 2018-05-28 14:51:10 +02:00
jean-pierre charras da66005254 Pcbnew, plot dialog: avoid slightly change in hpgl pen diameter (due to inch/mm conversion error) when the hpgl format is not selected 2018-05-26 17:36:07 +02:00
jean-pierre charras 7db88126c5 hpgl plot parameters: use double instead of int to store the pen diameter to avoid truncation.
This parameter, always in mm in a hpgl file, is for historical reasons stored in mils,
and using a int to store it created annoying rounding errors.
2018-05-26 09:37:42 +02:00
Seth Hillbrand da061718e5 Remove constraint on circle
Allows circle radius to snap to arbitrary points while editing

Fixes: lp:1773436
* https://bugs.launchpad.net/kicad/+bug/1773436
2018-05-25 12:30:47 -07:00
jean-pierre charras c614f73c50 HPGL plotter fix incorrect scaling factor
A 0.4% scale error in hpgl plots was previously existing since a long time.

Fixes: lp:1772828
https://bugs.launchpad.net/kicad/+bug/1772828
2018-05-25 20:50:00 +02:00
jean-pierre charras 250d958ebb Plot dialog: fix broken dialog management.
Previously, the dialog was created only once, with the current board setup and the current units selection.
Therefore, after changes in board or units, the dialog was really broken.

Now, the dialog is recreated when the plot command is run.
2018-05-25 19:48:07 +02:00
Jeff Young cd5f727880 Fix off-by-1 errors in zoom menus & use zoom steps in GAL canvas.
Also bumps the maximums a bit (at user request).

Fixes: lp:1773215
* https://bugs.launchpad.net/kicad/+bug/1773215
2018-05-25 13:01:58 +01:00
Jeff Young b89f6d4af3 Decrease allowed coverage ration when zones are involved.
A perfect solution would create holes in the coverage map
for the zone edges and handles, but that's a lot more
work.

Fixes: lp:1773204
* https://bugs.launchpad.net/kicad/+bug/1773204
2018-05-25 13:01:58 +01:00
Maciej Suminski 61597db12d Make the Simulator dialog strings translatable 2018-05-25 11:24:25 +02:00
Maciej Suminski 32f599654f Fixed normalizeAbsolutePaths() condition
normalizeAbsolutePath() used an invalid condition to
verify that the tested paths are on the same volume.
2018-05-25 11:07:51 +02:00
Maciej Suminski 145835661b Replaced footprint library wizard with a common file browser
As of v5 footprint library reorganization (one repo per library concept
is replaced with a common repo for all libraries), the Footprint Library
Wizard may handle only the old libraries. It has been replaced with
a file browser to select only local files.

Fixes: lp:1772209
* https://bugs.launchpad.net/kicad/+bug/1772209
2018-05-25 08:51:46 +02:00
Maciej Suminski adc61024d3 DIALOG_FILE_DIR_PICKER: dialog to select both files and directories
wxWidgets offers two dialog types: wxFileDialog and wxDirDialog, one
to select files, the other to select directories, but neither of them
handles both. DIALOG_FILE_DIR_PICKER fills that gap.
2018-05-25 08:51:45 +02:00
Jeff Young 81af2db614 Even out the Gerbveiw zoom steps and increase the max.
Fixes: lp:1773215
* https://bugs.launchpad.net/kicad/+bug/1773215
2018-05-24 19:04:10 +01:00
Jeff Young cb925a6646 Output defined default fields to netlists & BOMs.
Fixes: lp:1746814
* https://bugs.launchpad.net/kicad/+bug/1746814
2018-05-24 18:24:59 +01:00
jean-pierre charras 6090f9001e netinfo.i: fix incorrect position of a declaration, that was not taken in account.
Fixes: lp:1544750
https://bugs.launchpad.net/kicad/+bug/1544750
2018-05-24 09:43:04 +02:00
Jeff Young 8f5cb32598 Don't write empty fields from Global Edit Fields dialog. 2018-05-23 21:35:23 +01:00
Seth Hillbrand cf2a07559d Safely release thread memory
When starting async processes, we need to have a way to stop the process
before releasing memory.  Descoping FOOTPRINT_ASYNC_LOADER while the
threads were still running could cause crashes depending on the memory
structure.  To avoid this we define clear procedures for exiting a
running async processes and call these when exiting.

Fixes: lp:1772909
* https://bugs.launchpad.net/kicad/+bug/1772909
2018-05-23 08:55:55 -07:00
Maciej Suminski 190d4d6f55 Eagle PCB import: disable copper pour for imported *Restrict layer polygons
Fixes: lp:1772245
* https://bugs.launchpad.net/kicad/+bug/1772245
2018-05-23 17:51:49 +02:00
jean-pierre charras 3893c43eb0 Fix compil issues. 2018-05-23 11:31:13 +02:00
jean-pierre charras ca548809da Fix a qa test issue related to pad hit test. 2018-05-23 09:17:35 +02:00
Seth Hillbrand 8506cdf3ae Avoid numerical dereference of selections
The SELECTION is a std::set.  Numerical dereference of item n is O(n) as
the iterator is not random access.  Therefore, a for loop using
numerical dereference is O(n!) and quickly slows.

We avoid this by storing items to remove separately while iterating and
then removing the items after we complete.

Fixes: lp:1692081
* https://bugs.launchpad.net/kicad/+bug/1692081
2018-05-22 16:37:45 -07:00
Seth Hillbrand 8d52dc9451 Avoid re-checking items already selected
If you select a track with many segments (e.g. a length-tuned track) and
then select all connected items again ('U' -> 'U'), we would iterate
over all items in the selection and mark connections for each of the n
segments n separate times.

We avoid this by using the marked flag to show when the segment has
already been visited by the routine.  This means that if the segment has
been checked for connections because it was connected to the previous
item, it won't be checked for connections again.  However, a selection
that interleaves items from multiple connection segments will still
(potentially) be multiply checked as the BUSY flag is cleared each time
there is one not-BUSY track in the selection.
2018-05-22 16:26:52 -07:00
Seth Hillbrand b625d29151 Only search pads when the position hits module
On large boards with high pad-count modules, searching each pad for hits
becomes expensive.  We eliminate many of the pad searches by first
checking the module's bounding box before iterating over pads to look
for hits.
2018-05-22 15:37:24 -07:00
Seth Hillbrand 8c5037a48b Optionally sort reporter messages
It can be useful to have similar class messages grouped together so that
error messages in a larger report don't get lost among the
warning/info/action messages.

This patch allows sorting of messages for dialogs that benefit from
organization.  Default behavior of reporter messages remains
unchanged by this patch.

Fixes: lp:1772090
* https://bugs.launchpad.net/kicad/+bug/1772090
2018-05-22 13:55:02 -07:00
Seth Hillbrand b8f960ea09 Correct message panel sizing
Message panel in update PCB needs size hints from the dialog to
correctly choose the size.
2018-05-22 13:54:48 -07:00
Jeff Young c4b447f3f9 Initialize field visibility checkboxes in Fields Editor. 2018-05-22 19:24:37 +01:00
jean-pierre charras 6f249e5eb6 Add missing icons in lock/unlock context submenu 2018-05-22 14:36:35 +02:00
Jeff Young e3c4a96f5c Default field bug fixes.
1) Commit in-progress edits before closing preferences.
2) Handle default fields in Symbol Fields Editor.
3) Save state of checkboxes in Symbol Fields Editor.
2018-05-22 12:55:39 +01:00
Seth Hillbrand 2d812c2827 Remove FreeRouting icon and menu option
Freerouting-specialized menus are removed as FreeRouting is not
maintained or packaged for most OSes.  Users can still import/export
SPECCTRA files in KiCad allowing them to interface with a custom
FreeRouting installation.
2018-05-21 10:44:32 -07:00
Seth Hillbrand 5d8dd38664 Standardize graphical edit window
The graphical editor window for pcbnew and modedit have slight
differences, so different classes.  But they should appear the same to
the user.  This merges the differences into a dialog that looks the same
to the user.

Fixes: lp:1772389
* https://bugs.launchpad.net/kicad/+bug/1772389
2018-05-21 09:37:04 -07:00
Jeff Young 6a2dc8d4eb Roll back last 2 commits meant for the other resolver only.
Fixes: lp:1772255
* https://bugs.launchpad.net/kicad/+bug/1772255
2018-05-21 16:25:44 +01:00
Jeff Young cdde4c4b40 Fix a bug in how we check for differential pair tuning.
Fixes: lp:1545856
* https://bugs.launchpad.net/kicad/+bug/1545856
2018-05-21 13:49:40 +01:00
Jeff Young 0fd0e84162 Keep OK/Cancel buttons at bottom of Track/Via Properties.
Fixes: lp:1772260
* https://bugs.launchpad.net/kicad/+bug/1772260
2018-05-21 13:18:41 +01:00
Jeff Young 2b22cbe94d Release mouse before closing HTML_MESSAGE_BOX.
Fixes: lp:1772275
* https://bugs.launchpad.net/kicad/+bug/1772275
2018-05-21 13:18:41 +01:00
Jeff Young 10ec39a107 Move 3D file error messages to tracePathsAndFiles key.
Fixes: lp:1772255
* https://bugs.launchpad.net/kicad/+bug/1772255
2018-05-21 13:18:41 +01:00
Wayne Stambaugh c49a4398a1 Set KiCad version to 5.0.0-rc2-unknown for next development cycle. 2018-05-20 21:24:18 -04:00
365 changed files with 29645 additions and 31677 deletions
+22 -2
View File
@@ -29,6 +29,7 @@
#include <wx/log.h>
#include <wx/msgdlg.h>
#include <pgm_base.h>
#include <trace_helpers.h>
#include "common.h"
#include "3d_filename_resolver.h"
@@ -307,6 +308,23 @@ wxString S3D_FILENAME_RESOLVER::ResolvePath( const wxString& aFileName )
return tname;
}
// if a path begins with ${ENV_VAR}/$(ENV_VAR) and is not resolved then the
// file either does not exist or the ENV_VAR is not defined
if( aFileName.StartsWith( "${" ) || aFileName.StartsWith( "$(" ) )
{
if( !( m_errflags & ERRFLG_ENVPATH ) )
{
m_errflags |= ERRFLG_ENVPATH;
wxString errmsg = "[3D File Resolver] No such path; ensure the environment var is defined";
errmsg.append( "\n" );
errmsg.append( tname );
errmsg.append( "\n" );
wxLogTrace( tracePathsAndFiles, errmsg );
}
return wxEmptyString;
}
// at this point aFileName is:
// a. an aliased shortened name or
// b. cannot be determined
@@ -375,7 +393,8 @@ wxString S3D_FILENAME_RESOLVER::ResolvePath( const wxString& aFileName )
wxString errmsg = "[3D File Resolver] No such path";
errmsg.append( "\n" );
errmsg.append( tname );
wxLogTrace( MASK_3D_RESOLVER, errmsg );
errmsg.append( "\n" );
wxLogTrace( tracePathsAndFiles, errmsg );
}
return wxEmptyString;
@@ -411,7 +430,8 @@ wxString S3D_FILENAME_RESOLVER::ResolvePath( const wxString& aFileName )
wxString errmsg = "[3D File Resolver] No such path; ensure the path alias is defined";
errmsg.append( "\n" );
errmsg.append( tname.substr( 1 ) );
wxLogTrace( MASK_3D_RESOLVER, errmsg );
errmsg.append( "\n" );
wxLogTrace( tracePathsAndFiles, errmsg );
}
return wxEmptyString;
@@ -79,18 +79,16 @@ DLG_SELECT_3DMODEL::DLG_SELECT_3DMODEL( wxWindow* aParent, S3D_CACHE* aCacheMana
m_FileTree->ShowHidden( false );
m_FileTree->SetMinSize( wxSize( 300,100 ) );
m_FileTree->SetMinSize( wxSize( 300, 400 ) );
m_FileTree->SetLabel( wxT( "3D_MODEL_SELECTOR" ) );
bSizer2->Add( m_FileTree, 1, wxEXPAND | wxALL, 5 );
bSizer1->Add( bSizer2, 1, wxEXPAND, 5 );
bSizer1->Add( bSizer2, 3, wxEXPAND, 5 );
m_modelViewer = new C3D_MODEL_VIEWER( this,
COGL_ATT_LIST::GetAttributesList( true ),
m_cache );
m_modelViewer->SetMinSize( wxSize( 512, 384 ) );
m_modelViewer = new C3D_MODEL_VIEWER( this, COGL_ATT_LIST::GetAttributesList( true ), m_cache );
m_modelViewer->SetMinSize( wxSize( 500, 400 ) );
bSizer1->Add( m_modelViewer, 0, wxCENTER, 5 );
bSizer1->Add( m_modelViewer, 5, wxEXPAND | wxALL | wxCENTER, 5 );
// create the filter list
if( NULL != m_cache )
@@ -218,7 +218,7 @@ C_OGL_3DMODEL::C_OGL_3DMODEL( const S3DMODEL &a3DModel,
glDisableClientState( GL_NORMAL_ARRAY );
glDisableClientState( GL_VERTEX_ARRAY );
glFinish();
glFlush();
delete [] pColorRGBA;
}
@@ -319,7 +319,7 @@ C_OGL_3DMODEL::C_OGL_3DMODEL( const S3DMODEL &a3DModel,
for( unsigned int mesh_i = 0; mesh_i < a3DModel.m_MeshesSize; ++mesh_i )
m_model_bbox.Union( m_meshs_bbox[mesh_i] );
glFinish();
glFlush();
}
}
+1 -1
View File
@@ -65,7 +65,7 @@ class EDA_3D_VIEWER : public KIWAY_PLAYER
/**
* Request reloading the 3D view. However the request will be executed
* only when the 3D canvas is refreshed.
* It allows to prepare changes and request for 3D rebuild only when all
* It allows one to prepare changes and request for 3D rebuild only when all
* changes are committed.
* This is made because the 3D rebuild can take a long time, and this rebuild
* cannot always made after each change, for calculation time reason.
+4 -1
View File
@@ -50,6 +50,9 @@ void OGL_GetScreenshot( wxImage &aDstImage )
// Alphabuffer was causing some transparency problems on some systems (Windows)
// unsigned char* alphabuffer = (unsigned char*) malloc( viewport.x * viewport.y );
// Call glFinish before screenshot to ensure everything is fully drawn.
glFinish();
glPixelStorei( GL_PACK_ALIGNMENT, 1 );
glReadBuffer( GL_BACK_LEFT );
@@ -130,7 +133,7 @@ GLuint OGL_LoadTexture( const CIMAGE &aImage )
glBindTexture( GL_TEXTURE_2D, 0 );
glFinish();
glFlush();
free( rgbaBuffer );
+1 -1
View File
@@ -34,7 +34,7 @@ Andrew Zonenberg <azonenberg[at]drawersteak-dot-com>
Cirilo Bernardo <cirilo_bernardo[at]yahoo-dot-com>
Adam Wolf <adamwolf[at]feelslikeburning-dot-com>
Bernhard Stegmaier <stegmaier[at]sw-systems-dot-de>
Chris Pavlina <pavlina.chris[at]gmail-dot-com>
Alexis Lockwood <alexlockwood[at]fastmail-dot-com>
Simon Richter <Simon.Richter[at]hogyros-dot-de>
Mario Luzeiro <mrluzeiro[at]ua-dot-pt>
Mateusz Skowroński <skowri[at]gmail-dot-com>
+5 -3
View File
@@ -410,6 +410,9 @@ if( NOT APPLE )
set( KICAD_BIN bin
CACHE PATH "Location of KiCad binaries." )
set( KICAD_DATA ${CMAKE_INSTALL_DATADIR}/kicad
CACHE PATH "Location of KiCad data files." )
if( WIN32 )
set( KICAD_PLUGINS ${KICAD_BIN}/scripting/plugins
CACHE PATH "Location of KiCad plugins." )
@@ -420,7 +423,7 @@ if( NOT APPLE )
set( KICAD_USER_PLUGIN ${KICAD_BIN}/plugins
CACHE PATH "Location of KiCad user-loaded plugins" )
else()
set( KICAD_PLUGINS ${CMAKE_INSTALL_LIBDIR}/kicad/plugins
set( KICAD_PLUGINS ${KICAD_DATA}/plugins
CACHE PATH "Location of KiCad plugins." )
set( KICAD_LIB ${CMAKE_INSTALL_LIBDIR}
@@ -430,8 +433,6 @@ if( NOT APPLE )
CACHE PATH "Location of KiCad user-loaded plugins" )
endif()
set( KICAD_DATA ${CMAKE_INSTALL_DATADIR}/kicad
CACHE PATH "Location of KiCad data files." )
set( KICAD_DOCS ${CMAKE_INSTALL_DATADIR}/doc/kicad
CACHE PATH "Location of KiCad documentation files." )
set( KICAD_DEMOS ${KICAD_DATA}/demos
@@ -578,6 +579,7 @@ endif()
#
# Find OpenGL library, required
#
set( OpenGL_GL_PREFERENCE "GLVND" ) # CMake 3.11+ setting; see 'cmake --help-policy CMP0072'
find_package( OpenGL REQUIRED )
#
+33 -88
View File
@@ -1,4 +1,4 @@
# Try to find OCE / OCC
# Try to find OCC
# Once done this will define
#
# OCC_FOUND - system has OCC - OpenCASCADE
@@ -28,7 +28,6 @@
# Set the needed libraries
set( OCC_LIBS
PTKernel
TKBinL
TKBin
TKBinTObj
@@ -51,18 +50,11 @@ set( OCC_LIBS
TKMath
TKMesh
TKMeshVS
TKNIS
TKOffset
TKOpenGl
TKPCAF
TKPLCAF
TKPrim
TKPShape
TKService
TKShapeSchema
TKShHealing
TKStdLSchema
TKStdSchema
TKSTEP209
TKSTEPAttr
TKSTEPBase
@@ -71,9 +63,7 @@ set( OCC_LIBS
TKTObj
TKTopAlgo
TKV3d
TKVoxel
TKVRML
TKXCAFSchema
TKXCAF
TKXDEIGES
TKXDESTEP
@@ -85,76 +75,9 @@ set( OCC_LIBS
TKXSBase
)
set( OCE_LIBS TKBinXCAF TKPCAF TKSTEP TKXDESTEP TKIGES TKXDEIGES )
# First try to find OpenCASCADE Community Edition
if(NOT DEFINED OCE_INCLUDE_DIR)
# Check for OSX needs to come first because UNIX evaluates to true on OSX
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if(DEFINED HOMEBREW_PREFIX)
find_package(OCE 0.16 QUIET COMPONENTS ${OCE_LIBS}
HINTS
${OCC_LIBRARY_DIR}
${HOMEBREW_PREFIX}/Cellar/oce/*
)
elseif(DEFINED MACPORTS_PREFIX)
find_package(OCE 0.16 QUIET COMPONENTS ${OCE_LIBS}
HINTS
${OCC_LIBRARY_DIR}
${MACPORTS_PREFIX}/Library/Frameworks
)
endif()
else()
find_package(OCE 0.16 QUIET COMPONENTS ${OCE_LIBS}
HINTS
${OCC_LIBRARY_DIR}
/usr
/usr/local
/opt
/opt/oce
PATH_SUFFIXES lib
)
endif()
endif()
if(OCE_FOUND AND NOT KICAD_USE_OCC)
set(OCC_TYPE "OpenCASCADE Community Edition")
set(OCC_INCLUDE_DIR ${OCE_INCLUDE_DIRS})
FIND_LIBRARY(OCC_LIBRARY TKernel
HINTS
${OCC_LIBRARY_DIR}
/usr
/usr/local
/opt
/opt/oce
PATH_SUFFIXES lib
)
else(OCE_FOUND AND NOT KICAD_USE_OCC) #look for OpenCASCADE
set(OCC_TYPE "OpenCASCADE Standard Edition")
if(WIN32)
if(CYGWIN OR MINGW)
FIND_PATH(OCC_INCLUDE_DIR Standard_Version.hxx
/usr/include/opencascade
/usr/local/include/opencascade
/opt/opencascade/include
/opt/opencascade/inc
)
FIND_LIBRARY(OCC_LIBRARY TKernel
HINTS
${OCC_LIBRARY_DIR}
/usr/lib
/usr/local/lib
/opt/opencascade/lib
)
else(CYGWIN OR MINGW)
FIND_PATH(OCC_INCLUDE_DIR Standard_Version.hxx
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\OCC\\2;Installation Path]/include"
)
FIND_LIBRARY(OCC_LIBRARY TKernel
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\OCC\\2;Installation Path]/lib"
)
endif(CYGWIN OR MINGW)
else(WIN32)
set(OCC_TYPE "OpenCASCADE Standard Edition")
if(WIN32)
if(CYGWIN OR MINGW)
FIND_PATH(OCC_INCLUDE_DIR Standard_Version.hxx
/usr/include/opencascade
/usr/local/include/opencascade
@@ -164,14 +87,36 @@ else(OCE_FOUND AND NOT KICAD_USE_OCC) #look for OpenCASCADE
FIND_LIBRARY(OCC_LIBRARY TKernel
HINTS
${OCC_LIBRARY_DIR}
/usr
/usr/local
/opt/opencascade
/opt/opencascade/lin64/gcc
PATH_SUFFIXES lib
/usr/lib
/usr/local/lib
/opt/opencascade/lib
)
endif(WIN32)
endif(OCE_FOUND AND NOT KICAD_USE_OCC)
else(CYGWIN OR MINGW)
FIND_PATH(OCC_INCLUDE_DIR Standard_Version.hxx
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\OCC\\2;Installation Path]/include"
)
FIND_LIBRARY(OCC_LIBRARY TKernel
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\OCC\\2;Installation Path]/lib"
)
endif(CYGWIN OR MINGW)
else(WIN32)
FIND_PATH(OCC_INCLUDE_DIR Standard_Version.hxx
/usr/include/opencascade
/usr/local/include/opencascade
/opt/opencascade/include
/opt/opencascade/inc
)
FIND_LIBRARY(OCC_LIBRARY TKernel
HINTS
${OCC_LIBRARY_DIR}
/usr
/usr/local
/opt/opencascade
/opt/opencascade/lin64/gcc
PATH_SUFFIXES lib
)
endif(WIN32)
if(OCC_LIBRARY)
GET_FILENAME_COMPONENT(OCC_LIBRARY_DIR ${OCC_LIBRARY} PATH)
+1 -1
View File
@@ -35,4 +35,4 @@
# be set after each version tag is added to the git repo. This will
# give developers a reasonable idea where which branch was used to build
# KiCad.
set( KICAD_VERSION "5.0.0-rc2" )
set( KICAD_VERSION "5.0.1-dev-unknown" )
+1 -1
View File
@@ -46,7 +46,7 @@ PROJECT_BRIEF =
# exceed 55 pixels and the maximum width should not exceed 200 pixels.
# Doxygen will copy the logo to the output directory.
PROJECT_LOGO =
PROJECT_LOGO = ../kicad_doxygen_logo.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

+1 -1
View File
@@ -45,7 +45,7 @@ PROJECT_BRIEF =
# exceed 55 pixels and the maximum width should not exceed 200 pixels.
# Doxygen will copy the logo to the output directory.
PROJECT_LOGO =
PROJECT_LOGO = Documentation/kicad_doxygen_logo.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
+1 -1
View File
@@ -639,7 +639,7 @@ void BM2CMP_FRAME::ExportFile( FILE* aOutfile, OUTPUT_FMT_ID aFormat )
if( !potrace_bitmap )
{
wxString msg;
msg.Printf( wxT( "Error allocating memory for potrace bitmap" ) );
msg.Printf( _( "Error allocating memory for potrace bitmap" ) );
wxMessageBox( msg );
return;
}
+1
View File
@@ -345,6 +345,7 @@ set( BMAPS_MID
load_module_board
load_module_lib
local_ratsnest
lock_unlock
locked
measurement
minus
+40
View File
@@ -0,0 +1,40 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x01, 0x6c, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x96, 0x41, 0x4e, 0xc2,
0x40, 0x14, 0x86, 0x89, 0x17, 0xe0, 0x0c, 0x24, 0xba, 0x10, 0xd8, 0x72, 0x0d, 0xb8, 0x82, 0x96,
0xa4, 0xab, 0x76, 0x26, 0x8d, 0x3b, 0x63, 0x08, 0x89, 0xc6, 0xd4, 0xb4, 0x55, 0xd0, 0xa5, 0xb2,
0x82, 0x5b, 0xc8, 0xce, 0x13, 0xb0, 0x29, 0xac, 0x75, 0xd1, 0x4d, 0x17, 0x6c, 0x80, 0x92, 0x90,
0x0c, 0xef, 0x9f, 0xb4, 0x2b, 0x3b, 0xd4, 0x58, 0x4a, 0x8c, 0x4a, 0xf2, 0x85, 0x97, 0x79, 0x2f,
0xff, 0x97, 0x29, 0xc3, 0xa4, 0xa5, 0xd2, 0x9f, 0xf9, 0x3c, 0x19, 0x46, 0xa5, 0xcf, 0x98, 0xd7,
0x63, 0x6c, 0xd2, 0xe7, 0x7c, 0x0e, 0x64, 0x4d, 0x6b, 0xe8, 0x25, 0x73, 0x86, 0x63, 0x54, 0x98,
0xc3, 0x3c, 0xe6, 0xb2, 0x09, 0x77, 0xf9, 0x1c, 0xa0, 0xc6, 0x1a, 0x7a, 0x3b, 0x25, 0x14, 0xd6,
0xa2, 0xd0, 0x25, 0x21, 0x14, 0x2c, 0x7a, 0x9c, 0x37, 0x29, 0xac, 0x45, 0xa1, 0x4b, 0x42, 0xa4,
0xe2, 0xb1, 0x05, 0xf7, 0x78, 0x53, 0x25, 0x39, 0xa1, 0xa0, 0x55, 0x1c, 0x38, 0xa4, 0xc0, 0x86,
0xad, 0xeb, 0x65, 0x80, 0x9a, 0xfa, 0x23, 0xf4, 0x1e, 0x38, 0x8b, 0x2e, 0xee, 0x78, 0x24, 0x03,
0x1d, 0x36, 0xa4, 0x9d, 0x34, 0x74, 0x5b, 0x2f, 0x03, 0xd4, 0xb4, 0x3e, 0x8a, 0x85, 0x2b, 0xeb,
0xde, 0x3a, 0xfe, 0x24, 0xa2, 0x90, 0x17, 0x04, 0x51, 0xe0, 0x60, 0xc7, 0x8e, 0x07, 0x98, 0xb9,
0xbe, 0x94, 0x41, 0xca, 0x39, 0xf4, 0x62, 0xd9, 0x73, 0x9a, 0xe8, 0x03, 0x21, 0x8f, 0xa6, 0x59,
0x55, 0x05, 0xa0, 0x87, 0x19, 0xcf, 0x62, 0xc2, 0x74, 0xd5, 0x73, 0xe8, 0x41, 0x44, 0xdf, 0xef,
0x69, 0xa2, 0x0d, 0x42, 0xba, 0xdd, 0xee, 0x91, 0x2a, 0x00, 0xbd, 0xf8, 0xf1, 0x65, 0xce, 0xc5,
0x3b, 0xda, 0xa4, 0x89, 0xe4, 0x0f, 0x9e, 0x75, 0x2a, 0xbf, 0x3a, 0x97, 0x1c, 0x8c, 0x7f, 0x51,
0x3e, 0xd1, 0x69, 0xad, 0x66, 0x13, 0x6b, 0x42, 0x7c, 0x93, 0x75, 0xb5, 0x5e, 0xbf, 0x55, 0x88,
0xde, 0x40, 0x22, 0xca, 0x23, 0x49, 0x88, 0x32, 0xef, 0xb5, 0x3d, 0x48, 0x24, 0xb9, 0x44, 0x5a,
0xbb, 0x2d, 0xa6, 0xb3, 0x99, 0xf0, 0xa7, 0x53, 0x71, 0x4e, 0x75, 0x61, 0x22, 0x08, 0xc2, 0x30,
0x94, 0xf8, 0xbe, 0xff, 0x0b, 0x44, 0x78, 0x5c, 0x41, 0x10, 0x48, 0xce, 0x34, 0xad, 0x38, 0x11,
0x78, 0x1d, 0x8f, 0x25, 0x85, 0x1e, 0x86, 0x83, 0x8a, 0xae, 0x3a, 0x1d, 0x49, 0xe1, 0xa2, 0x7d,
0xfe, 0x8f, 0x0e, 0x73, 0x33, 0xe0, 0x9e, 0xca, 0x7b, 0xd7, 0x11, 0x37, 0x3f, 0xe2, 0xf5, 0x6d,
0x0b, 0x54, 0xe3, 0x75, 0x92, 0x1e, 0x22, 0x94, 0xee, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e,
0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE lock_unlock_xpm[1] = {{ png, sizeof( png ), "lock_unlock_xpm" }};
//EOF
+29 -27
View File
@@ -8,33 +8,35 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x01, 0x95, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x63, 0x60, 0x18, 0x6e, 0x80,
0x91, 0x18, 0x45, 0xcd, 0xcd, 0xcd, 0x8a, 0x7f, 0xff, 0xfe, 0xcd, 0x01, 0x32, 0x5d, 0x80, 0x58,
0x1e, 0x2a, 0xfc, 0x10, 0x88, 0xf7, 0x30, 0x33, 0x33, 0x4f, 0xa9, 0xad, 0xad, 0xbd, 0x4f, 0xb1,
0x45, 0x8d, 0x8d, 0x8d, 0xfe, 0xff, 0xff, 0xff, 0x5f, 0x0e, 0x64, 0x72, 0xe2, 0x50, 0xf2, 0x0d,
0x88, 0x23, 0x1b, 0x1a, 0x1a, 0x36, 0xe1, 0x33, 0x87, 0x89, 0x80, 0x4f, 0x54, 0x81, 0x96, 0xac,
0x80, 0x5a, 0xb2, 0x84, 0x89, 0x89, 0xc9, 0x8c, 0x83, 0x83, 0x43, 0x00, 0x84, 0x41, 0x6c, 0xa0,
0xd8, 0x52, 0x20, 0xe6, 0x02, 0xe2, 0x95, 0x40, 0x8b, 0x54, 0xf0, 0x99, 0xc5, 0x82, 0x4f, 0x12,
0x18, 0x5c, 0xe5, 0x40, 0x8a, 0x03, 0x88, 0xe7, 0x01, 0x0d, 0x4a, 0x46, 0x93, 0x3e, 0x0d, 0xc4,
0x31, 0x40, 0xf1, 0x9f, 0x40, 0x3a, 0x09, 0x88, 0x41, 0x6a, 0x53, 0xc9, 0xf2, 0x11, 0x10, 0xb8,
0x43, 0xe9, 0x5e, 0x3c, 0x6a, 0x7a, 0xd1, 0xd4, 0x92, 0x65, 0x91, 0x24, 0x94, 0xbe, 0x81, 0x47,
0x0d, 0x4c, 0x4e, 0x8a, 0x12, 0x8b, 0x98, 0x41, 0x04, 0x30, 0x78, 0xfe, 0xe1, 0x52, 0x80, 0x24,
0xc7, 0x4c, 0x89, 0x45, 0x54, 0x03, 0xc3, 0xcf, 0x22, 0x8c, 0x0c, 0x1b, 0x11, 0x11, 0xd1, 0x01,
0xa4, 0x0a, 0x81, 0xf9, 0x87, 0x0d, 0x98, 0xbc, 0x19, 0xfe, 0xfd, 0xfb, 0x47, 0x12, 0x06, 0xea,
0xf9, 0x05, 0xa4, 0x7b, 0x4f, 0x9e, 0x3c, 0x59, 0x85, 0xd7, 0x47, 0x40, 0x0b, 0x0a, 0x81, 0x8a,
0xd9, 0xfe, 0xfc, 0xf9, 0x03, 0xd2, 0x44, 0x10, 0x83, 0xd4, 0x21, 0x63, 0x90, 0x5e, 0x20, 0x2e,
0x22, 0x98, 0x61, 0x41, 0x0a, 0x09, 0xb8, 0x98, 0xa0, 0xaf, 0x80, 0x80, 0x9d, 0x18, 0x8b, 0x70,
0x1a, 0x6a, 0x60, 0x60, 0xc0, 0x90, 0x96, 0x96, 0x06, 0xf2, 0x35, 0xc3, 0xb4, 0x69, 0xd3, 0x18,
0x4e, 0x9f, 0x3e, 0x8d, 0x22, 0x0f, 0x12, 0x27, 0x3a, 0x31, 0xa0, 0x05, 0x03, 0x0a, 0x4e, 0x4d,
0x4d, 0x65, 0x10, 0x12, 0x12, 0x62, 0x10, 0x16, 0x16, 0x66, 0xc8, 0xc8, 0xc8, 0x80, 0x07, 0x1d,
0x88, 0xc6, 0x67, 0x09, 0x41, 0x1f, 0x61, 0x09, 0x12, 0x0c, 0x47, 0x91, 0x9d, 0xbc, 0xf1, 0x45,
0xf6, 0xe4, 0xc9, 0x93, 0x19, 0x7e, 0xff, 0xfe, 0x0d, 0xc6, 0x13, 0x27, 0x4e, 0x24, 0x29, 0x79,
0xb3, 0x60, 0x73, 0x25, 0x2e, 0x1f, 0x01, 0x93, 0x2c, 0xc3, 0xf5, 0xeb, 0xd7, 0x21, 0x45, 0xf7,
0xe9, 0xd3, 0x94, 0x59, 0x84, 0x2f, 0xe8, 0x08, 0xc5, 0x03, 0x45, 0x16, 0xa1, 0x47, 0xf4, 0x91,
0x23, 0x47, 0xa8, 0x63, 0x11, 0x7a, 0xd0, 0xa1, 0x83, 0x8d, 0x1b, 0x37, 0x52, 0xa7, 0xac, 0x03,
0x15, 0x21, 0x30, 0x5f, 0x51, 0x00, 0x7e, 0x12, 0x63, 0x51, 0x2f, 0x30, 0xa8, 0x7e, 0x51, 0x60,
0xc9, 0x2f, 0xa0, 0xfe, 0x9e, 0x01, 0x6b, 0xd7, 0x01, 0x00, 0x25, 0x5a, 0xbf, 0x01, 0x77, 0x49,
0xeb, 0x47, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
0xce, 0x00, 0x00, 0x01, 0xb6, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x96, 0x3f, 0x6f, 0xd3,
0x60, 0x10, 0x87, 0x9f, 0x73, 0x2b, 0x43, 0x99, 0xaa, 0x64, 0x2a, 0x4b, 0x85, 0x44, 0xf7, 0x4c,
0xfd, 0x04, 0x48, 0x1d, 0x59, 0x83, 0xc4, 0x44, 0xe2, 0x34, 0x03, 0x4b, 0x59, 0x2a, 0x55, 0x2a,
0x0a, 0xb0, 0x30, 0x90, 0x21, 0x0a, 0xca, 0x40, 0x2a, 0x26, 0x10, 0x30, 0x86, 0x99, 0x31, 0x8b,
0xe5, 0x0f, 0x10, 0xb6, 0xaa, 0x5f, 0x02, 0xa9, 0xb1, 0xef, 0xbd, 0x0e, 0xfd, 0x03, 0x71, 0x6b,
0x3b, 0x8d, 0x23, 0x21, 0xf5, 0xa4, 0x9b, 0xee, 0xfc, 0x3e, 0xf7, 0xbb, 0xbb, 0xf7, 0x95, 0xe1,
0xae, 0x99, 0xcc, 0x93, 0xf4, 0xae, 0xd9, 0x7c, 0x64, 0x26, 0x2f, 0x45, 0x78, 0x62, 0xb0, 0x79,
0xf1, 0xe1, 0x89, 0x19, 0xbf, 0x44, 0xec, 0xe3, 0xe1, 0xd1, 0xd1, 0x71, 0x69, 0xd0, 0x9b, 0x66,
0xf3, 0xa9, 0x20, 0xdf, 0x80, 0xb5, 0x8c, 0x94, 0x3f, 0x22, 0x3c, 0x3b, 0x1c, 0x0e, 0x7f, 0xe6,
0x9d, 0xe3, 0xe5, 0x2a, 0xd9, 0xdd, 0xdd, 0x12, 0xe4, 0xfb, 0x39, 0x44, 0xbe, 0x20, 0x6c, 0xfb,
0x9e, 0xac, 0xfb, 0x9e, 0xac, 0x23, 0x6c, 0x0b, 0x7c, 0x05, 0x1e, 0x98, 0xf1, 0xa3, 0xd3, 0x68,
0x3c, 0xce, 0x3b, 0x6b, 0x35, 0x57, 0x8e, 0xba, 0x7d, 0xe0, 0x3e, 0xc2, 0xe7, 0xd7, 0xc3, 0x4f,
0x8d, 0x54, 0x34, 0x02, 0x9e, 0xbf, 0x0d, 0x82, 0x53, 0x8c, 0x17, 0x9e, 0xc8, 0x3e, 0x10, 0x2c,
0xa4, 0xc8, 0x60, 0x07, 0xc0, 0x25, 0x5e, 0x37, 0x2b, 0xe7, 0x6f, 0xcc, 0xdb, 0x59, 0xb8, 0x75,
0xc0, 0x06, 0x00, 0x9b, 0x1b, 0xbf, 0x33, 0x33, 0xae, 0x62, 0xf6, 0xb0, 0x0c, 0x68, 0x05, 0xa0,
0xd3, 0xe9, 0xb8, 0xac, 0x84, 0x7f, 0x62, 0x2b, 0x65, 0x40, 0x4b, 0xb3, 0xbb, 0x07, 0xba, 0x76,
0x61, 0xeb, 0xf5, 0xfa, 0x7b, 0x60, 0xcf, 0xcc, 0x7c, 0x55, 0xc5, 0x39, 0x77, 0x2b, 0x57, 0xd5,
0xa9, 0x73, 0xae, 0x1b, 0x86, 0xe1, 0x41, 0xae, 0x22, 0x33, 0xdb, 0x53, 0x55, 0x3f, 0x49, 0x12,
0x54, 0xb5, 0xd0, 0x93, 0x24, 0x99, 0x71, 0x55, 0xf5, 0x55, 0xf5, 0x55, 0xe1, 0x85, 0x55, 0x55,
0xbf, 0xa0, 0xe2, 0x42, 0x55, 0xc0, 0xbd, 0x79, 0x40, 0x99, 0x87, 0xd6, 0x6a, 0x35, 0x5a, 0xad,
0x16, 0x66, 0xc6, 0x60, 0x30, 0x20, 0x8a, 0xa2, 0x99, 0xb8, 0x99, 0xcd, 0xbf, 0x0c, 0xa9, 0x36,
0xcc, 0x78, 0x10, 0x04, 0x54, 0x2a, 0x15, 0xaa, 0xd5, 0x2a, 0xed, 0x76, 0xfb, 0xaa, 0x75, 0xaa,
0x9a, 0x0b, 0x29, 0x54, 0x74, 0x43, 0x4b, 0xae, 0x15, 0xb5, 0xf0, 0x7a, 0xe7, 0x0d, 0xbb, 0xdf,
0xef, 0x13, 0xc7, 0x31, 0x71, 0x1c, 0xd3, 0xeb, 0xf5, 0x6e, 0xb5, 0xde, 0xab, 0x37, 0x55, 0x99,
0xa5, 0x28, 0x0c, 0x43, 0x26, 0x93, 0xc9, 0xf9, 0xd3, 0x1d, 0x45, 0xe5, 0x40, 0x79, 0xad, 0x2b,
0x9a, 0x43, 0x29, 0x50, 0x7a, 0xd0, 0xe3, 0xf1, 0x78, 0x39, 0xa0, 0x74, 0xeb, 0xd2, 0x36, 0x1a,
0x8d, 0x96, 0xf3, 0xd6, 0xa9, 0xea, 0xf4, 0x52, 0x55, 0x09, 0x3b, 0x9d, 0x07, 0xd4, 0x35, 0xb3,
0x69, 0x09, 0xc8, 0xd4, 0xcc, 0x3e, 0xfc, 0xb7, 0xff, 0xba, 0x33, 0x76, 0xe5, 0xc3, 0xdb, 0x78,
0x51, 0xf1, 0x43, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE locked_xpm[1] = {{ png, sizeof( png ), "locked_xpm" }};
+57 -72
View File
@@ -8,78 +8,63 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x00, 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0e, 0xc4, 0x00, 0x00, 0x0e,
0xc4, 0x01, 0x95, 0x2b, 0x0e, 0x1b, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f,
0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x04, 0x1b, 0x49,
0x44, 0x41, 0x54, 0x48, 0x89, 0xc5, 0x96, 0x5b, 0x68, 0x14, 0x67, 0x14, 0xc7, 0x7f, 0xe7, 0xdb,
0x4b, 0xdc, 0x74, 0x93, 0xd8, 0x16, 0x34, 0x2f, 0x35, 0xa2, 0x42, 0x2f, 0xd2, 0x52, 0x89, 0x90,
0x64, 0x36, 0x9b, 0x58, 0x72, 0x35, 0x48, 0x11, 0x4a, 0x88, 0x88, 0x29, 0x8d, 0xb6, 0x2f, 0x7d,
0x69, 0xa1, 0xb4, 0x08, 0x16, 0x09, 0x28, 0x36, 0x55, 0xa9, 0x17, 0x7a, 0x81, 0x0a, 0x96, 0xd2,
0xd6, 0xd6, 0x46, 0x1f, 0xea, 0x43, 0xd5, 0x50, 0xca, 0x62, 0x1a, 0xa4, 0xb1, 0xd0, 0x42, 0x35,
0x86, 0x98, 0x09, 0x49, 0x73, 0xdb, 0x0d, 0xda, 0x44, 0x43, 0x2e, 0x6b, 0x76, 0xe6, 0xeb, 0xc3,
0xcc, 0xea, 0xba, 0x6e, 0xd2, 0x2d, 0x2d, 0xf4, 0x0f, 0xcb, 0xec, 0xcc, 0x77, 0xce, 0xf9, 0xcd,
0x39, 0xdf, 0xf9, 0xce, 0x2e, 0xfc, 0x0f, 0xda, 0xf2, 0x5f, 0x05, 0x4a, 0xc0, 0x2e, 0x0b, 0xc6,
0xe6, 0x61, 0xe0, 0x3a, 0xbc, 0x06, 0x48, 0x72, 0x6d, 0x39, 0x30, 0xe4, 0x5e, 0xff, 0x95, 0x34,
0x48, 0x02, 0x62, 0x1a, 0xb4, 0x06, 0x7d, 0x1b, 0xfe, 0xac, 0x84, 0x17, 0xbc, 0xee, 0xfa, 0x56,
0xc0, 0x07, 0x34, 0x00, 0xa7, 0x92, 0x4e, 0x2f, 0x96, 0x94, 0xac, 0x4c, 0xf8, 0xfd, 0x5f, 0x6a,
0xb8, 0x0b, 0xbc, 0x8d, 0xd6, 0x7b, 0x10, 0x29, 0xd1, 0x22, 0xfb, 0x2e, 0x5c, 0xba, 0xf4, 0xf9,
0x62, 0xb0, 0xb8, 0x48, 0x4e, 0xae, 0xd6, 0xf7, 0xd8, 0x83, 0xb0, 0x56, 0xb9, 0x37, 0x8d, 0xee,
0xf5, 0xa5, 0x54, 0x87, 0xbb, 0x81, 0x40, 0x40, 0x43, 0x35, 0x50, 0x03, 0x74, 0x23, 0xd2, 0x00,
0x78, 0xb0, 0xed, 0x82, 0x45, 0x18, 0x52, 0x55, 0x5a, 0xba, 0xeb, 0xc4, 0x9a, 0x35, 0xfe, 0x19,
0x98, 0x9d, 0x82, 0x9b, 0xc7, 0xe0, 0xcc, 0x32, 0xb8, 0xed, 0x05, 0xd6, 0x00, 0xcf, 0xbb, 0x86,
0xa5, 0xc0, 0x2a, 0xe0, 0x8f, 0xb4, 0x00, 0x3e, 0xe0, 0xec, 0x9c, 0xc7, 0xd3, 0x12, 0x89, 0x44,
0xe6, 0x1b, 0x1b, 0x1b, 0x3d, 0x99, 0x20, 0xd5, 0x65, 0x65, 0xcd, 0x1e, 0xa5, 0xda, 0x8e, 0x4d,
0x4f, 0xef, 0x3d, 0x09, 0x7d, 0xd3, 0x90, 0x93, 0x03, 0x77, 0x4a, 0xe0, 0x17, 0x2f, 0xd0, 0xc4,
0xfd, 0xcd, 0x12, 0x9c, 0x32, 0x1e, 0x4f, 0x0b, 0x32, 0x67, 0x05, 0x02, 0xaf, 0x46, 0x3a, 0x3a,
0xe6, 0x01, 0xda, 0xdb, 0xdb, 0xad, 0x74, 0x4a, 0x8d, 0x61, 0xec, 0x50, 0x22, 0x1f, 0x5c, 0xed,
0xef, 0xdf, 0x3f, 0x3a, 0x31, 0x71, 0x0a, 0xb8, 0x05, 0xd8, 0x00, 0xbd, 0xa0, 0x15, 0x70, 0x0d,
0x78, 0xd6, 0x7d, 0xf8, 0x0c, 0x30, 0x98, 0xe1, 0x6d, 0x27, 0x3a, 0x3a, 0x3a, 0x66, 0x16, 0x29,
0x17, 0x35, 0x86, 0xd1, 0xac, 0x44, 0x8e, 0x5c, 0xed, 0xef, 0xdf, 0x3f, 0x1a, 0x8b, 0x7d, 0xed,
0x42, 0x2c, 0x40, 0xbb, 0x1f, 0xbc, 0xc0, 0x39, 0xb7, 0x34, 0x00, 0x53, 0xee, 0x7d, 0xba, 0xe2,
0x8b, 0x41, 0xaa, 0x4a, 0x4a, 0x76, 0x28, 0x91, 0x23, 0x3d, 0x03, 0x03, 0x07, 0x46, 0x63, 0xb1,
0xd3, 0xc0, 0x4d, 0x17, 0xf2, 0x80, 0x92, 0xcd, 0x20, 0x49, 0x72, 0xaa, 0x7c, 0x89, 0x84, 0x0d,
0x4c, 0x6a, 0xc7, 0x39, 0x23, 0xc4, 0xeb, 0xf5, 0x1e, 0xed, 0x19, 0x18, 0x38, 0x30, 0x3c, 0x3e,
0xfe, 0x0d, 0x30, 0x91, 0x09, 0x92, 0x04, 0x00, 0xe4, 0x00, 0x37, 0x70, 0x1a, 0x21, 0x2b, 0x55,
0x97, 0x95, 0x6d, 0xf7, 0x28, 0x75, 0xbc, 0xc7, 0x34, 0xdf, 0x1b, 0x8e, 0x46, 0x4f, 0x03, 0xe3,
0x80, 0xb5, 0xd9, 0x30, 0x6a, 0xf1, 0x78, 0x76, 0x0a, 0xd8, 0x16, 0x1c, 0xbd, 0xd8, 0xd9, 0xd9,
0xfd, 0xb7, 0x19, 0x65, 0x01, 0x69, 0x1b, 0x8e, 0x46, 0xbf, 0xbd, 0x07, 0xa9, 0xa8, 0x38, 0xa2,
0x95, 0xfa, 0x02, 0xdb, 0x36, 0x81, 0x52, 0x05, 0x9f, 0x25, 0x3b, 0x34, 0x15, 0x94, 0x95, 0x6a,
0x0d, 0x63, 0x5b, 0x1a, 0x64, 0x0c, 0xb0, 0xea, 0x2a, 0x2b, 0xc3, 0x68, 0xbd, 0x53, 0xe0, 0xe0,
0xf9, 0xae, 0xae, 0x3d, 0x36, 0xf4, 0x00, 0x85, 0xb7, 0x63, 0xb1, 0x55, 0xff, 0x38, 0xa3, 0x5a,
0xc3, 0xd8, 0x26, 0x22, 0x1f, 0x5e, 0x33, 0xcd, 0xf7, 0x87, 0xa3, 0xd1, 0x33, 0xc0, 0x28, 0xee,
0x9e, 0x78, 0x6c, 0xfb, 0x2d, 0xed, 0x1c, 0xcc, 0xf6, 0x4d, 0x9b, 0x36, 0x05, 0x11, 0xb1, 0xd0,
0xda, 0xab, 0x2c, 0xcb, 0x0f, 0x4e, 0xd7, 0x65, 0x05, 0xaa, 0x0a, 0x85, 0x9a, 0x94, 0xc8, 0xc7,
0xbd, 0xa6, 0x79, 0x68, 0xc4, 0x81, 0x8c, 0x70, 0x7f, 0xe3, 0x45, 0x6b, 0xbd, 0x4e, 0x29, 0xe5,
0x4b, 0x40, 0x4f, 0xc0, 0xb2, 0x14, 0x30, 0x2d, 0x22, 0x53, 0x73, 0x5e, 0xef, 0x50, 0xd6, 0x19,
0x55, 0x85, 0x42, 0x4d, 0x3e, 0x91, 0x4f, 0x7a, 0x4d, 0xf3, 0xd0, 0xa0, 0xd3, 0x5d, 0xc3, 0x40,
0xe2, 0xde, 0x7a, 0x55, 0xd5, 0x63, 0x22, 0xf2, 0xb8, 0xb6, 0xed, 0xdf, 0xcf, 0x77, 0x76, 0x06,
0x83, 0x85, 0x85, 0x79, 0xc0, 0xa4, 0x0d, 0xd1, 0x48, 0x24, 0x32, 0x9f, 0x15, 0xa8, 0x2e, 0x14,
0xda, 0xeb, 0x13, 0x39, 0x71, 0xdd, 0x34, 0x0f, 0x0f, 0x8e, 0x8f, 0xb7, 0xa7, 0x43, 0x00, 0x02,
0xb3, 0xb3, 0xcb, 0xb4, 0x53, 0x1d, 0x1b, 0xe0, 0x4e, 0x34, 0xba, 0x05, 0x28, 0x42, 0xeb, 0x9f,
0x92, 0x36, 0x8a, 0x25, 0x54, 0x5b, 0x5e, 0xbe, 0x5b, 0x44, 0xde, 0x9d, 0x8f, 0xc7, 0xfb, 0xd6,
0x15, 0x15, 0x95, 0x86, 0x36, 0x6c, 0x98, 0x4d, 0x87, 0x00, 0x6c, 0xbc, 0x7c, 0x79, 0x5c, 0x60,
0x52, 0xa0, 0xb0, 0xb8, 0xb8, 0xd8, 0x27, 0xf0, 0x0e, 0x22, 0x37, 0xfc, 0x5a, 0xb7, 0xa6, 0x83,
0x1e, 0xca, 0xa8, 0x2e, 0x1c, 0x7e, 0xd3, 0x23, 0xb2, 0xcf, 0x1c, 0x1a, 0x3a, 0x18, 0xb9, 0x72,
0x65, 0xbb, 0x47, 0xa9, 0xa3, 0xf9, 0xc1, 0xe0, 0xe9, 0x5a, 0xc3, 0x58, 0x91, 0x0e, 0x6a, 0x05,
0xdb, 0xd6, 0xfa, 0x2b, 0x2d, 0x52, 0xb0, 0x22, 0x37, 0xf7, 0x96, 0x12, 0xf1, 0x2b, 0xdb, 0xde,
0x7a, 0xae, 0xab, 0x6b, 0x3a, 0xdd, 0x36, 0x1f, 0xe7, 0xc0, 0x26, 0x33, 0x79, 0x7d, 0x73, 0x79,
0xf9, 0xc2, 0x93, 0xab, 0x57, 0xb7, 0x01, 0x4f, 0xe3, 0x8e, 0xa8, 0x86, 0x50, 0x68, 0x63, 0x7d,
0x79, 0xf9, 0x8f, 0xad, 0x8b, 0x54, 0xa2, 0x15, 0x54, 0xe3, 0xfa, 0xf5, 0xfe, 0xa5, 0xaa, 0x54,
0x00, 0xf4, 0x01, 0xd4, 0x19, 0x46, 0x4b, 0x7d, 0x38, 0xbc, 0xf0, 0xd4, 0xda, 0xb5, 0x87, 0x71,
0x86, 0xac, 0x2f, 0xd5, 0xb0, 0xbe, 0xa2, 0x62, 0x77, 0x7d, 0x38, 0xfc, 0xca, 0x52, 0xc1, 0x32,
0xe9, 0x81, 0xd2, 0xd5, 0x95, 0x95, 0xbd, 0xac, 0x94, 0xfa, 0x74, 0x24, 0x1a, 0xfd, 0xa8, 0xd7,
0x34, 0x4f, 0xba, 0x59, 0x2e, 0xa4, 0x3a, 0xe4, 0x2d, 0x2c, 0x1c, 0x13, 0x68, 0xc9, 0x10, 0xab,
0x01, 0x68, 0xc6, 0xa9, 0xce, 0x43, 0x4a, 0x4e, 0x84, 0x47, 0x81, 0x9f, 0xeb, 0xc3, 0xe1, 0x27,
0x66, 0xe6, 0xe6, 0xba, 0xe3, 0xf1, 0xf8, 0x77, 0xcb, 0xf3, 0xf2, 0xc6, 0x94, 0x52, 0x99, 0x07,
0xa4, 0x48, 0x6b, 0xb0, 0xb0, 0xf0, 0xb9, 0xb4, 0xdf, 0xa5, 0x95, 0xc0, 0xaf, 0x38, 0x93, 0xfe,
0x22, 0xd0, 0x0e, 0x44, 0x70, 0xcf, 0x5a, 0x12, 0x54, 0x00, 0x0c, 0xfa, 0xbc, 0x5e, 0xcb, 0x7d,
0x96, 0x11, 0x90, 0xf2, 0x76, 0xd6, 0xdd, 0x44, 0x62, 0x2a, 0xc3, 0x52, 0x3e, 0x0f, 0x8e, 0xb3,
0x19, 0xe0, 0x0d, 0xe0, 0x7b, 0x49, 0x33, 0x4a, 0x4e, 0x8a, 0x25, 0x41, 0x29, 0x0a, 0xa6, 0xf8,
0x3c, 0x02, 0xfc, 0xe0, 0x7e, 0x1f, 0x05, 0x2e, 0x00, 0x67, 0x81, 0xdf, 0xb2, 0x8c, 0x95, 0xb5,
0x9a, 0x70, 0xfe, 0x02, 0x84, 0xc9, 0x30, 0xa4, 0xff, 0x02, 0x9a, 0x98, 0x88, 0x7f, 0x66, 0xc7,
0x32, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
0xce, 0x00, 0x00, 0x03, 0x73, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x96, 0x5b, 0x6c, 0x4c,
0x51, 0x14, 0x86, 0xd7, 0xe8, 0xb4, 0x75, 0xab, 0x6b, 0x32, 0x97, 0xea, 0xb4, 0x43, 0xb5, 0xaa,
0x45, 0x48, 0xca, 0x5c, 0xce, 0xa5, 0x87, 0x32, 0x9d, 0x19, 0x4c, 0xe2, 0x61, 0x52, 0x71, 0x17,
0x95, 0x20, 0x22, 0xe2, 0x92, 0x94, 0x87, 0x46, 0xf0, 0xe0, 0x41, 0xa2, 0xf1, 0xc4, 0x83, 0x37,
0x22, 0xe2, 0xf2, 0xe0, 0xf2, 0xd4, 0x44, 0x88, 0x08, 0x89, 0xc6, 0x83, 0x84, 0xaa, 0x56, 0x5b,
0xea, 0xae, 0x9d, 0x22, 0x8a, 0x28, 0xea, 0x5f, 0x63, 0x9f, 0xe6, 0x18, 0xa7, 0x63, 0x5a, 0xc4,
0x4e, 0xfe, 0x9c, 0xb3, 0x66, 0xef, 0xbd, 0xbe, 0xbd, 0xd6, 0xde, 0xeb, 0xec, 0x21, 0xfa, 0x0f,
0x6d, 0xd1, 0xdf, 0x72, 0xf4, 0x85, 0x68, 0xdd, 0x57, 0xa2, 0x67, 0x9f, 0x88, 0x5a, 0x1a, 0x88,
0xd6, 0xe3, 0x27, 0x8b, 0xde, 0x37, 0x06, 0x7a, 0x24, 0x9e, 0x7f, 0xd4, 0x7a, 0xe1, 0x14, 0xa0,
0x97, 0x78, 0xf6, 0xb2, 0xde, 0x12, 0xc5, 0xca, 0x88, 0xe6, 0xea, 0xfd, 0x6b, 0xa0, 0x67, 0xd0,
0x32, 0xe3, 0xa4, 0x88, 0xc7, 0x63, 0x0f, 0x2b, 0x4a, 0x5d, 0x48, 0x51, 0x2e, 0x41, 0xc5, 0x21,
0x59, 0x3e, 0x81, 0x67, 0x73, 0x50, 0x55, 0x57, 0x27, 0x03, 0x75, 0x5b, 0x2c, 0x6f, 0x0c, 0xa0,
0xce, 0x3c, 0xa2, 0x2a, 0xbd, 0xff, 0x92, 0x00, 0x9d, 0x35, 0x4e, 0x0a, 0x6a, 0x9a, 0x1b, 0x8e,
0x7b, 0xa1, 0xcf, 0xd0, 0x7b, 0xa8, 0x0b, 0x6a, 0x0d, 0xca, 0xf2, 0x96, 0x7e, 0x38, 0x96, 0x79,
0x5e, 0x6f, 0x55, 0x6d, 0x7e, 0xfe, 0x87, 0xf7, 0x44, 0xdd, 0x5d, 0x44, 0xaf, 0xf7, 0x12, 0x1d,
0x9d, 0x42, 0x14, 0xe5, 0xce, 0x49, 0xd0, 0x53, 0x01, 0xe2, 0x67, 0xae, 0x09, 0x88, 0x75, 0x52,
0xd3, 0xb4, 0xa1, 0xfc, 0x7b, 0x34, 0x1a, 0x4d, 0x33, 0x83, 0xcc, 0xf7, 0xf9, 0x56, 0x55, 0x48,
0x52, 0xc7, 0x44, 0x9b, 0x6d, 0xc7, 0x0c, 0x24, 0x64, 0x22, 0x86, 0x16, 0x11, 0x55, 0xac, 0x22,
0x1a, 0xcf, 0x03, 0x76, 0x09, 0x88, 0xae, 0x2d, 0x26, 0xa0, 0x0f, 0x81, 0x40, 0x60, 0x44, 0xb2,
0xbd, 0x59, 0xe0, 0xf7, 0xaf, 0x64, 0xc8, 0x04, 0xbb, 0x7d, 0x2b, 0x4c, 0x1b, 0x94, 0x26, 0x0e,
0x41, 0xdf, 0x41, 0x88, 0xd0, 0x0f, 0xe2, 0x13, 0x71, 0x18, 0x22, 0x26, 0xa0, 0xb6, 0x01, 0x40,
0xec, 0x02, 0x62, 0xda, 0xd2, 0x05, 0x88, 0xfa, 0xd9, 0xa3, 0xc6, 0xfe, 0x26, 0x96, 0x7b, 0x3c,
0x2b, 0x18, 0xe2, 0x72, 0x3a, 0xb7, 0xc1, 0x74, 0x26, 0x83, 0x70, 0xcb, 0x80, 0xda, 0x13, 0x7f,
0x5c, 0x2c, 0xcb, 0xb9, 0x80, 0xc4, 0x82, 0x8a, 0x72, 0x3d, 0x05, 0x48, 0x36, 0x43, 0xc2, 0xb2,
0x5c, 0x18, 0xd2, 0xb4, 0xcd, 0x61, 0x49, 0xaa, 0x0a, 0xf8, 0xfd, 0xb6, 0xc4, 0x39, 0x99, 0xd0,
0xe3, 0x81, 0xd4, 0x0b, 0x36, 0x7e, 0x59, 0x1c, 0xe2, 0x70, 0x6c, 0x87, 0x99, 0x53, 0x52, 0x52,
0x92, 0x81, 0x63, 0x7f, 0x1c, 0xea, 0xe8, 0x3b, 0x40, 0xaa, 0xca, 0x27, 0x54, 0x33, 0xce, 0x1b,
0x2a, 0x0a, 0x76, 0xa0, 0x90, 0x1d, 0x30, 0x5d, 0x1c, 0x09, 0x1c, 0xd7, 0x40, 0x3d, 0xa8, 0xb5,
0x4e, 0x38, 0x3f, 0xc5, 0xfb, 0xca, 0x30, 0xd4, 0xe1, 0x45, 0xe3, 0xdc, 0x61, 0xa9, 0x82, 0x90,
0x8e, 0xa5, 0x06, 0x48, 0x6e, 0x1c, 0x12, 0x0a, 0x65, 0x22, 0xbd, 0xf7, 0xd9, 0x31, 0x43, 0x78,
0x1c, 0xde, 0x2f, 0xc4, 0xa3, 0x92, 0xe5, 0x9b, 0xc6, 0xf9, 0xc3, 0xa1, 0xb6, 0x54, 0x21, 0x39,
0x0e, 0xc7, 0x4e, 0x98, 0x6e, 0x7d, 0xe3, 0xe1, 0x7c, 0x49, 0xf0, 0x47, 0x51, 0x7f, 0x83, 0xee,
0x20, 0x65, 0x37, 0x60, 0xb7, 0x88, 0x14, 0x5e, 0x31, 0xfa, 0xe0, 0x1a, 0x69, 0x4d, 0x06, 0x29,
0x97, 0xa4, 0x4a, 0x38, 0x8c, 0xb9, 0x9d, 0x4e, 0xae, 0x3b, 0xd4, 0x22, 0x59, 0xf5, 0x3e, 0xac,
0xfa, 0x98, 0x58, 0x7d, 0x37, 0xf4, 0x82, 0x05, 0xd0, 0x47, 0x11, 0xe1, 0x39, 0xa3, 0x9f, 0x91,
0x50, 0xcb, 0x60, 0x20, 0x22, 0x4d, 0x67, 0xc4, 0xea, 0xeb, 0x17, 0xca, 0xf2, 0x24, 0x44, 0x14,
0x00, 0x88, 0x0f, 0xc5, 0x37, 0xec, 0xd1, 0x06, 0xe3, 0xd8, 0x2c, 0xe8, 0xa1, 0x19, 0x04, 0xa9,
0xaa, 0x01, 0xe4, 0x5d, 0x9e, 0xd3, 0xb9, 0x1b, 0xe6, 0xe4, 0x44, 0x48, 0x3c, 0x75, 0x8a, 0x72,
0x5a, 0x80, 0x9a, 0xe3, 0x1f, 0x62, 0x59, 0xae, 0x13, 0xf6, 0xbd, 0x88, 0x24, 0x65, 0xfd, 0x16,
0x14, 0x90, 0xe5, 0x6a, 0x40, 0x3e, 0x6b, 0xb3, 0x67, 0xd7, 0x97, 0x7b, 0xbd, 0xe7, 0xa5, 0x59,
0xb3, 0xb2, 0xcd, 0x16, 0x13, 0x2a, 0x2b, 0xdb, 0x88, 0x28, 0x3e, 0x09, 0xe7, 0xed, 0xd0, 0x57,
0xa4, 0x2f, 0x86, 0xe7, 0xfa, 0xc4, 0xb1, 0xa3, 0xa0, 0xe6, 0x9f, 0x22, 0x51, 0x94, 0xad, 0x7c,
0x5c, 0x0b, 0x5c, 0xae, 0xfd, 0x30, 0x0b, 0x71, 0x10, 0xe6, 0xc1, 0xbe, 0x66, 0x56, 0x84, 0xfc,
0x3d, 0x43, 0xdf, 0x21, 0xc0, 0x6e, 0x87, 0x55, 0xb5, 0x01, 0xef, 0x57, 0xf1, 0xbe, 0xdc, 0x6c,
0x51, 0x0c, 0x6a, 0x32, 0x44, 0xb2, 0x09, 0x2b, 0xea, 0x99, 0xe2, 0x76, 0x1f, 0x80, 0x39, 0x55,
0x7c, 0xa2, 0x08, 0xd5, 0x5e, 0x8a, 0x08, 0x2f, 0xef, 0x21, 0x1a, 0x32, 0xd8, 0x8b, 0x71, 0x34,
0xf4, 0x20, 0x1e, 0x89, 0xdf, 0xbf, 0x16, 0x39, 0xef, 0x29, 0xca, 0xcf, 0x3f, 0x08, 0xb3, 0x58,
0x87, 0xf4, 0xed, 0x87, 0xaa, 0x56, 0xa3, 0x7f, 0xcd, 0x60, 0x41, 0xfc, 0xd5, 0x6e, 0xac, 0xc0,
0x7d, 0xc2, 0x91, 0x4c, 0x2b, 0x28, 0xa8, 0x35, 0x83, 0xc4, 0xef, 0x22, 0x9f, 0x6f, 0x18, 0xa7,
0xc6, 0xc4, 0x47, 0x18, 0x5a, 0x29, 0xb2, 0xd3, 0x6f, 0x1b, 0xcb, 0x11, 0xf1, 0xd9, 0x57, 0x4a,
0x4b, 0xaf, 0xce, 0x99, 0x3e, 0x7d, 0x1b, 0x17, 0x27, 0xd2, 0x14, 0x35, 0x13, 0x40, 0x77, 0x4d,
0x2e, 0x3f, 0xbb, 0xb8, 0xcf, 0xb8, 0x1e, 0x8f, 0x70, 0x55, 0x98, 0x7d, 0xc9, 0x39, 0x75, 0x5d,
0xe9, 0x56, 0x6b, 0x07, 0xd4, 0x09, 0xbd, 0x4a, 0xa6, 0x0c, 0xab, 0xf5, 0x39, 0xc6, 0x37, 0x98,
0xe8, 0x69, 0xc2, 0x25, 0xda, 0x24, 0x22, 0xfd, 0xe5, 0x40, 0x8c, 0x13, 0x1a, 0x9d, 0xa2, 0x26,
0x40, 0x79, 0x42, 0xc5, 0x06, 0xc0, 0x2d, 0x68, 0x1f, 0x34, 0xf3, 0x5f, 0xfc, 0x2f, 0xac, 0x84,
0x0e, 0x43, 0x8a, 0xf1, 0xfa, 0xd6, 0xdb, 0x77, 0xcb, 0x1b, 0x49, 0x88, 0x18, 0x0b, 0x33, 0xe5,
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE polar_coord_xpm[1] = {{ png, sizeof( png ), "polar_coord_xpm" }};
+19 -28
View File
@@ -8,34 +8,25 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x01, 0xa5, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x63, 0x60, 0x18, 0x6e, 0x80,
0x91, 0x52, 0x03, 0x9a, 0x9b, 0x9b, 0x15, 0xff, 0xfe, 0xfd, 0x9b, 0x03, 0x64, 0xba, 0x00, 0xb1,
0x3c, 0x54, 0xf8, 0x21, 0x10, 0xef, 0x61, 0x66, 0x66, 0x9e, 0x52, 0x5b, 0x5b, 0x7b, 0x9f, 0x62,
0x8b, 0x1a, 0x1b, 0x1b, 0xfd, 0xff, 0xff, 0xff, 0xbf, 0x1c, 0xc8, 0xe4, 0xc4, 0xa1, 0xe4, 0x1b,
0x10, 0x47, 0x36, 0x34, 0x34, 0x6c, 0x62, 0xa4, 0xc0, 0x27, 0xaa, 0x40, 0x9f, 0x5c, 0x02, 0x32,
0x39, 0x80, 0x78, 0x09, 0x13, 0x13, 0xd3, 0x24, 0x36, 0x36, 0xb6, 0x5b, 0x20, 0xb9, 0x5f, 0xbf,
0x7e, 0xa9, 0xfd, 0xfb, 0xf7, 0x2f, 0x1f, 0xc8, 0x8c, 0x06, 0xe2, 0x1f, 0x40, 0xac, 0xcb, 0x42,
0xae, 0x45, 0x40, 0x4b, 0xca, 0xa1, 0x96, 0xcc, 0x03, 0xba, 0x38, 0x19, 0x4d, 0xfa, 0x34, 0x10,
0xc7, 0x00, 0xc5, 0x7f, 0x02, 0xe9, 0x24, 0x20, 0x2e, 0x67, 0xa2, 0x20, 0xe4, 0xdc, 0xa1, 0x74,
0x2f, 0x1e, 0x35, 0x30, 0x39, 0x77, 0x4a, 0x2c, 0x92, 0x84, 0xd2, 0x37, 0xf0, 0xa8, 0x81, 0xc9,
0x49, 0x51, 0x62, 0x11, 0x33, 0x88, 0x00, 0x06, 0xcf, 0x3f, 0x5c, 0x0a, 0x90, 0xe4, 0x98, 0x99,
0xe8, 0x95, 0x8f, 0x86, 0x9f, 0x45, 0xe0, 0xe4, 0x1d, 0x11, 0x11, 0xd1, 0x01, 0xa4, 0x0a, 0x81,
0x99, 0x8f, 0x0d, 0x98, 0x6c, 0x19, 0x80, 0x79, 0x80, 0x20, 0x3e, 0x70, 0xe0, 0x00, 0x98, 0xb6,
0xb1, 0xb1, 0xf9, 0x0f, 0xd4, 0xf3, 0x0b, 0xc8, 0xee, 0x3d, 0x79, 0xf2, 0x64, 0x15, 0x16, 0x3b,
0x8e, 0xc0, 0x4b, 0x86, 0xf0, 0xf0, 0xf0, 0x9f, 0x40, 0x85, 0x6c, 0xc4, 0x58, 0x00, 0xc2, 0x38,
0x1c, 0xf3, 0xf3, 0xcc, 0x99, 0x33, 0x1c, 0x78, 0x7d, 0x04, 0xd4, 0xc8, 0x46, 0x86, 0xc1, 0x28,
0x18, 0x08, 0xd8, 0x09, 0x06, 0x1d, 0xb2, 0x41, 0xe8, 0x86, 0x1a, 0x18, 0x18, 0x30, 0xa4, 0xa5,
0xa5, 0x31, 0x00, 0x83, 0x95, 0x61, 0xda, 0xb4, 0x69, 0x0c, 0xa7, 0x4f, 0x9f, 0x46, 0x91, 0x07,
0x89, 0x13, 0x9d, 0x18, 0xfe, 0xfc, 0xf9, 0x03, 0xc7, 0x20, 0x8b, 0x90, 0x71, 0x6a, 0x6a, 0x2a,
0x83, 0x90, 0x90, 0x10, 0x83, 0xb0, 0xb0, 0x30, 0x43, 0x46, 0x46, 0x06, 0x58, 0x0c, 0xa6, 0x8e,
0x58, 0x4b, 0xb0, 0xfa, 0x08, 0x4b, 0x90, 0xa0, 0x00, 0x90, 0x25, 0x64, 0x27, 0x6f, 0x74, 0x5f,
0x20, 0xfb, 0x70, 0xf2, 0xe4, 0xc9, 0x0c, 0xbf, 0x7f, 0xff, 0x06, 0xe3, 0x89, 0x13, 0x27, 0x52,
0x96, 0xbc, 0x41, 0x06, 0xe2, 0xf2, 0x11, 0x30, 0xc9, 0x32, 0x5c, 0xbf, 0x7e, 0x1d, 0x52, 0x24,
0x9f, 0x3e, 0x4d, 0x99, 0x45, 0xf8, 0x82, 0x8e, 0x94, 0x78, 0x20, 0xd9, 0x22, 0xf4, 0x88, 0x3e,
0x72, 0xe4, 0x08, 0x75, 0x2c, 0x42, 0x0f, 0x3a, 0x74, 0xb0, 0x71, 0xe3, 0x46, 0xea, 0x94, 0x75,
0xa0, 0x22, 0x04, 0xe6, 0x2b, 0x0a, 0xc0, 0x4f, 0x62, 0x2c, 0xea, 0x05, 0x06, 0xd5, 0x2f, 0x0a,
0x2c, 0xf9, 0x05, 0xd4, 0xdf, 0x33, 0x28, 0xda, 0x75, 0x00, 0xe1, 0xa2, 0xc4, 0xfc, 0xec, 0xf5,
0xed, 0x82, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
0xce, 0x00, 0x00, 0x01, 0x0f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x63, 0x60, 0x18, 0x05, 0x68,
0x20, 0xb6, 0x26, 0x45, 0x31, 0xa1, 0x32, 0xb9, 0x37, 0xa1, 0x2a, 0xf9, 0x22, 0x10, 0x7f, 0x80,
0xe2, 0x8b, 0x20, 0x31, 0x90, 0x1c, 0x55, 0x2c, 0x49, 0xac, 0x4e, 0xf1, 0x4f, 0xa8, 0x4a, 0xf9,
0x06, 0x34, 0xf8, 0x3f, 0x0e, 0xfc, 0x35, 0xbe, 0x32, 0xc9, 0x8f, 0x22, 0x4b, 0x12, 0x6a, 0x12,
0x54, 0x81, 0x06, 0x7d, 0x07, 0x19, 0x18, 0x5f, 0x95, 0xbc, 0x38, 0xa1, 0x22, 0xd5, 0x34, 0xad,
0x3c, 0x8d, 0x1f, 0x84, 0x41, 0xec, 0x84, 0xca, 0x94, 0x25, 0x50, 0xcb, 0xbe, 0x27, 0x57, 0x24,
0xab, 0x90, 0x6f, 0x51, 0x75, 0xca, 0x1c, 0xa8, 0x41, 0x73, 0x71, 0xaa, 0x01, 0xca, 0x41, 0x1d,
0x32, 0x9b, 0x6c, 0x8b, 0x80, 0x9a, 0x1f, 0x83, 0x0c, 0x49, 0xac, 0x4c, 0xd4, 0xc2, 0x19, 0xb4,
0x40, 0x39, 0xa8, 0x63, 0x1e, 0x91, 0xef, 0xa3, 0xaa, 0xe4, 0x3f, 0x20, 0x43, 0x1a, 0x1a, 0x1a,
0x98, 0x70, 0xa9, 0x01, 0xc9, 0x41, 0x2d, 0xfa, 0x43, 0x89, 0x45, 0xe0, 0x08, 0xa7, 0x96, 0xba,
0x51, 0x8b, 0xf0, 0xab, 0x33, 0x36, 0x36, 0xee, 0x00, 0xe2, 0x9f, 0x40, 0xfc, 0x9f, 0x4c, 0x0c,
0xd2, 0xdb, 0x86, 0x23, 0x75, 0x1e, 0x06, 0x61, 0x98, 0x45, 0x94, 0x58, 0x02, 0xc3, 0x3f, 0x08,
0x06, 0x03, 0x15, 0x2c, 0x01, 0x63, 0x8a, 0x2c, 0xca, 0xcc, 0xcc, 0xfc, 0x7f, 0xe3, 0xc6, 0x0d,
0x30, 0xce, 0xc8, 0xc8, 0xa0, 0x9d, 0x45, 0x20, 0x0b, 0xde, 0xbc, 0x79, 0x03, 0xc6, 0xd7, 0xaf,
0x5f, 0x1f, 0x06, 0x16, 0x81, 0x82, 0xeb, 0xf9, 0xf3, 0xe7, 0x60, 0x4c, 0xd3, 0xa0, 0x03, 0xe1,
0x7d, 0xfb, 0xf6, 0x81, 0x31, 0x4d, 0x13, 0x03, 0x5d, 0x2d, 0x6a, 0x6a, 0x6a, 0x02, 0x63, 0x9a,
0x5b, 0x44, 0xcd, 0x7c, 0x44, 0xb7, 0x92, 0xa1, 0x8d, 0xd2, 0xb2, 0xce, 0xc8, 0xc8, 0xa8, 0x65,
0x50, 0x34, 0xcb, 0x00, 0xfd, 0x52, 0x19, 0xe9, 0xa4, 0x86, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x00,
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE unlocked_xpm[1] = {{ png, sizeof( png ), "unlocked_xpm" }};
+455
View File
@@ -0,0 +1,455 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
version="1.0"
id="svg2"
inkscape:version="0.92.0 r15299"
sodipodi:docname="lock_unlock.svg">
<metadata
id="metadata188">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1033"
id="namedview186"
showgrid="true"
inkscape:zoom="15.365974"
inkscape:cx="4.5385449"
inkscape:cy="11.395488"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
type="xygrid"
id="grid3167"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
id="an"
y2="13.849"
gradientUnits="userSpaceOnUse"
x2="28.979"
gradientTransform="translate(-116.91,-44.22)"
y1="28.622"
x1="16.226">
<stop
stop-color="#8b8b8b"
offset="0"
id="stop7" />
<stop
stop-color="#8b8b8b"
stop-opacity="0"
offset="1"
id="stop9" />
</linearGradient>
<linearGradient
id="ao"
y2="11.708"
xlink:href="#aa"
gradientUnits="userSpaceOnUse"
x2="129.27"
gradientTransform="matrix(0.52628,0,0,0.78596,-155.15,-37.182)"
y1="22.589001"
x1="153.36" />
<linearGradient
id="aa">
<stop
stop-color="#fff"
offset="0"
id="stop13" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop15" />
</linearGradient>
<linearGradient
id="ap"
y2="33.214001"
gradientUnits="userSpaceOnUse"
x2="135.71001"
gradientTransform="matrix(0.76019,0,0,0.76019,-191.41,-37.143)"
y1="110"
x1="203.57001">
<stop
stop-color="#4f3a1e"
offset="0"
id="stop18" />
<stop
stop-color="#4f3a1e"
stop-opacity="0"
offset="1"
id="stop20" />
</linearGradient>
<linearGradient
id="aq"
y2="41.539001"
xlink:href="#aa"
gradientUnits="userSpaceOnUse"
x2="127.36"
gradientTransform="matrix(0.69024,0,0,0.6591,-179.72,-32.689)"
y1="13.741"
x1="115.62" />
<linearGradient
id="at"
y2="62.02"
gradientUnits="userSpaceOnUse"
x2="-28.537001"
gradientTransform="translate(-116.91,-44.22)"
y1="24.645"
x1="54.296001">
<stop
stop-color="#965d01"
stop-opacity="0"
offset="0"
id="stop24" />
<stop
stop-color="#ab6200"
offset="1"
id="stop26" />
</linearGradient>
<linearGradient
id="ar"
y2="11.685"
gradientUnits="userSpaceOnUse"
x2="98.292"
gradientTransform="matrix(0.76019,0,0,0.76019,-189.24,-36.6)"
y1="70.179001"
x1="156.78999">
<stop
stop-color="#fb9c02"
offset="0"
id="stop29" />
<stop
stop-color="#fff"
offset="1"
id="stop31" />
</linearGradient>
<linearGradient
id="as"
y2="18.836"
xlink:href="#aa"
gradientUnits="userSpaceOnUse"
x2="142.17999"
gradientTransform="matrix(0.76019,0,0,0.76019,-191.41,-37.143)"
y1="16.563"
x1="116.42" />
<radialGradient
id="ay"
gradientUnits="userSpaceOnUse"
cy="4.2800999"
cx="123.57"
gradientTransform="matrix(1.2373,1.1904,-0.87346,0.90788,-246.63,-189.76)"
r="18.304001">
<stop
stop-color="#fff"
offset="0"
id="stop35" />
<stop
stop-color="#b3b0a7"
offset="1"
id="stop37" />
</radialGradient>
<filter
id="ag"
height="1.9436001"
width="1.15"
color-interpolation-filters="sRGB"
y="-0.47181001"
x="-0.074989997">
<feGaussianBlur
stdDeviation="1.4154412"
id="feGaussianBlur40" />
</filter>
<linearGradient
id="av"
y2="32.161999"
gradientUnits="userSpaceOnUse"
x2="40.938"
gradientTransform="matrix(0.63853,0,0,0.69647,-37.821,-3.0264)"
y1="32.161999"
x1="6.7268">
<stop
stop-color="#ead200"
offset="0"
id="stop43" />
<stop
stop-color="#fff16a"
offset="0.21"
id="stop45" />
<stop
stop-color="#b5a300"
offset="0.84"
id="stop47" />
<stop
stop-color="#e8d000"
offset="1"
id="stop49" />
</linearGradient>
<linearGradient
id="al"
y2="36.126999"
gradientUnits="userSpaceOnUse"
x2="30.875"
gradientTransform="matrix(0.63683,0,0,0.68893,-37.771,-1.8896)"
y1="25.002001"
x1="10.907">
<stop
stop-color="#fff"
offset="0"
id="stop52" />
<stop
stop-color="#fff"
stop-opacity=".49485"
offset="1"
id="stop54" />
</linearGradient>
<linearGradient
id="am"
y2="17"
gradientUnits="userSpaceOnUse"
x2="24.75"
gradientTransform="matrix(0.63798,0,0,0.92464,-37.808,-3.9886)"
y1="21"
x1="24.875">
<stop
stop-color="#fffac7"
offset="0"
id="stop57" />
<stop
stop-color="#fff8b2"
offset="1"
id="stop59" />
</linearGradient>
<radialGradient
id="ad"
xlink:href="#ab"
gradientUnits="userSpaceOnUse"
cy="20.312"
cx="15.938"
gradientTransform="matrix(1,0,0,0.58491,0,8.4316)"
r="3.3125" />
<linearGradient
id="ab">
<stop
offset="0"
id="stop63" />
<stop
stop-opacity="0"
offset="1"
id="stop65" />
</linearGradient>
<linearGradient
id="au"
y2="20.094"
gradientUnits="userSpaceOnUse"
x2="34"
gradientTransform="translate(-38.777,11.701)"
y1="20.094"
x1="17.188">
<stop
offset="0"
id="stop68" />
<stop
stop-opacity=".17172"
offset=".5"
id="stop70" />
<stop
offset="1"
id="stop72" />
</linearGradient>
<filter
id="ah"
height="4.0437999"
width="1.2829"
color-interpolation-filters="sRGB"
y="-1.5219001"
x="-0.14144">
<feGaussianBlur
stdDeviation="1.1889706"
id="feGaussianBlur75" />
</filter>
<linearGradient
id="ak"
y2="17.469999"
gradientUnits="userSpaceOnUse"
x2="27.191999"
gradientTransform="translate(0,-1.9263)"
y1="2.9137001"
x1="10.651">
<stop
stop-color="#cad0c6"
offset="0"
id="stop78" />
<stop
stop-color="#eaece9"
offset=".5"
id="stop80" />
<stop
stop-color="#c5cbc0"
offset="1"
id="stop82" />
</linearGradient>
<linearGradient
id="aw"
y2="14.85"
xlink:href="#ab"
gradientUnits="userSpaceOnUse"
x2="33.004002"
gradientTransform="translate(1.6824,1.125)"
y1="14.85"
x1="35.005001" />
<filter
id="ac"
height="1.0951999"
width="1.4849"
color-interpolation-filters="sRGB"
y="-0.047579002"
x="-0.24243">
<feGaussianBlur
stdDeviation="0.24444548"
id="feGaussianBlur86" />
</filter>
<linearGradient
id="ax"
y2="13.789"
xlink:href="#ab"
gradientUnits="userSpaceOnUse"
x2="35.021"
gradientTransform="translate(-19.533,1.7437)"
y1="13.789"
x1="32.127998" />
<filter
id="ae"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="0.8362597"
id="feGaussianBlur90" />
</filter>
<linearGradient
id="aj"
y2="18.038"
gradientUnits="userSpaceOnUse"
x2="21.941999"
gradientTransform="matrix(0.6374,0,0,0.58679,-37.794,3.1212)"
y1="21.551001"
x1="21.941999">
<stop
stop-color="#fff"
offset="0"
id="stop93" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop95" />
</linearGradient>
<filter
id="af"
height="1.1647"
width="1.9881999"
color-interpolation-filters="sRGB"
y="-0.082353003"
x="-0.49412">
<feGaussianBlur
stdDeviation="0.69878785"
id="feGaussianBlur98" />
</filter>
<radialGradient
id="az"
gradientUnits="userSpaceOnUse"
cy="6.2807002"
cx="18.031"
r="3.1819999">
<stop
stop-color="#fff"
offset="0"
id="stop101" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop103" />
</radialGradient>
<filter
id="ai"
height="1.8271"
width="1.1702"
color-interpolation-filters="sRGB"
y="-0.41356999"
x="-0.085115999">
<feGaussianBlur
stdDeviation="0.42546784"
id="feGaussianBlur106" />
</filter>
</defs>
<path
style="fill:none;stroke:#6e8c6e;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 25,12 0,-4 c 0,0 0.5,-5 -5,-5 -5.5,0 -5,5 -5,5 l 0,4"
id="path3944"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cczcc" />
<path
style="fill:none;stroke:#906e6e;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 15,12 V 8 C 15,8 15.5,3 10,3 4.5,3 5,8 5,8 v 4"
id="path3944-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cczcc" />
<rect
style="fill:#292b2b;fill-opacity:1;stroke:none"
id="rect3169"
width="17.999996"
height="13"
x="1"
y="12"
rx="1.5"
ry="1.5" />
<path
sodipodi:type="arc"
style="fill:#ececec;fill-opacity:1;stroke:none"
id="path3971"
sodipodi:cx="13"
sodipodi:cy="16"
sodipodi:rx="2"
sodipodi:ry="2"
d="m 15,16 a 2,2 0 1 1 -4,0 2,2 0 1 1 4,0 z"
transform="translate(-3,1)" />
<path
style="fill:none;stroke:#ececec;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 10,17 0,4"
id="path3973"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

+7 -7
View File
@@ -12,7 +12,7 @@
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.4 r9939"
inkscape:version="0.92.0 r15299"
sodipodi:docname="locked.svg">
<metadata
id="metadata188">
@@ -34,15 +34,15 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="744"
inkscape:window-width="1920"
inkscape:window-height="1033"
id="namedview186"
showgrid="true"
inkscape:zoom="30.731949"
inkscape:cx="11.296694"
inkscape:cx="5.4721366"
inkscape:cy="9.6647768"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
@@ -454,7 +454,7 @@
rx="1.5"
ry="1.5" />
<path
style="fill:none;stroke:#808080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
style="fill:none;stroke:#826465;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 18,12 18,8 C 18,8 18.5,3 13,3 7.5,3 8,8 8,8 l 0,4"
id="path3944"
inkscape:connector-curvature="0"

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

+10 -32
View File
@@ -12,8 +12,8 @@
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.4 r9939"
sodipodi:docname="locked.svg">
inkscape:version="0.92.0 r15299"
sodipodi:docname="unlocked.svg">
<metadata
id="metadata188">
<rdf:RDF>
@@ -22,7 +22,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -35,15 +35,15 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="744"
inkscape:window-width="1920"
inkscape:window-height="1033"
id="namedview186"
showgrid="true"
inkscape:zoom="15.365974"
inkscape:cx="16.18766"
inkscape:cx="-7.1105702"
inkscape:cy="11.395488"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
@@ -56,18 +56,6 @@
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient3975">
<stop
style="stop-color:#333333;stop-opacity:1;"
offset="0"
id="stop3977" />
<stop
style="stop-color:#585858;stop-opacity:1"
offset="1"
id="stop3979" />
</linearGradient>
<linearGradient
id="an"
y2="13.849"
@@ -426,25 +414,15 @@
stdDeviation="0.42546784"
id="feGaussianBlur106" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3975"
id="linearGradient3981"
x1="10"
y1="21"
x2="5"
y2="13"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-3,0)" />
</defs>
<path
style="fill:none;stroke:#808080;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
style="fill:none;stroke:#607a63;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 25,12 0,-4 c 0,0 0.5,-5 -5,-5 -5.5,0 -5,5 -5,5 l 0,4"
id="path3944"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cczcc" />
<rect
style="fill:url(#linearGradient3981);fill-opacity:1;stroke:none"
style="fill:#333333;fill-opacity:1;stroke:none"
id="rect3169"
width="17.999996"
height="13"

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

+1
View File
@@ -157,6 +157,7 @@ set( COMMON_DLG_SRCS
dialogs/dialog_env_var_config.cpp
dialogs/dialog_env_var_config_base.cpp
dialogs/dialog_exit_base.cpp
dialogs/dialog_file_dir_picker.cpp
dialogs/dialog_hotkeys_editor.cpp
dialogs/dialog_hotkeys_editor_base.cpp
dialogs/dialog_image_editor.cpp
+4 -4
View File
@@ -245,8 +245,8 @@ int BASE_SCREEN::SetGrid( const wxRealPoint& size )
m_Grid = nearest_grid;
wxLogWarning( wxT( "Grid size( %f, %f ) not in grid list, falling back " ) \
wxT( "to grid size( %f, %f )." ),
wxLogWarning( _( "Grid size( %f, %f ) not in grid list, falling back "
"to grid size( %f, %f )." ),
size.x, size.y, m_Grid.m_Size.x, m_Grid.m_Size.y );
return gridIdx;
@@ -268,8 +268,8 @@ int BASE_SCREEN::SetGrid( int aCommandId )
m_Grid = m_grids[0];
wxLogWarning( wxT( "Grid ID %d not in grid list, falling back to " ) \
wxT( "grid size( %g, %g )." ), aCommandId,
wxLogWarning( _( "Grid ID %d not in grid list, falling back to "
"grid size( %g, %g )." ), aCommandId,
m_Grid.m_Size.x, m_Grid.m_Size.y );
return m_grids[0].m_CmdId - ID_POPUP_GRID_LEVEL_1000;
+1 -1
View File
@@ -61,7 +61,7 @@ namespace std {
{
static const bool sz64 = sizeof( uintptr_t ) == 8;
static const size_t mask = sz64 ? 0xF000000000000000uLL : 0xF0000000uL;
static const size_t offset = sz64 ? 28 : 60;
static const size_t offset = sz64 ? 60 : 28;
// The hash only needs to be fast and simple, not necessarily accurate - a collision
// only makes things slower, not broken. BITMAP_DEF is a pointer, so the most
+1
View File
@@ -217,6 +217,7 @@ void COLORS_DESIGN_SETTINGS::setupConfigParams()
Add( "Color4DPadBackEx", ITEM_COLOR( LAYER_PAD_BK ), GREEN );
Add( "Color4DAnchorEx", ITEM_COLOR( LAYER_ANCHOR ), BLUE );
Add( "Color4DPadFrontEx", ITEM_COLOR( LAYER_PAD_FR ), RED );
Add( "Color4DPadThruHoleEx", ITEM_COLOR( LAYER_PADS_TH ), YELLOW );
Add( "Color4DNonPlatedEx", ITEM_COLOR( LAYER_NON_PLATEDHOLES ), YELLOW );
Add( "Color4DPCBBackground", ITEM_COLOR( LAYER_PCB_BACKGROUND ), BLACK );
Add( "Color4DPCBCursor", ITEM_COLOR( LAYER_CURSOR ), WHITE );
+3
View File
@@ -141,7 +141,10 @@ COMMIT& COMMIT::createModified( EDA_ITEM* aItem, EDA_ITEM* aCopy, int aExtraFlag
auto entryIt = m_changedItems.find( parent );
if( entryIt != m_changedItems.end() )
{
delete aCopy;
return *this; // item has been already modified once
}
makeEntry( parent, CHT_MODIFY | aExtraFlags, aCopy );
+2 -2
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2010 Rafael Sokolowski <Rafael.Sokolowski@web.de>
* Copyright (C) 2010-2018 KiCad Developers, see CHANGELOG.TXT for contributors.
* Copyright (C) 2010-2018 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -221,7 +221,7 @@ static void buildKicadAboutBanner( EDA_BASE_FRAME* aParent, ABOUT_APP_INFO& aInf
aInfo.AddDeveloper( new CONTRIBUTOR( "Lorenzo Marcantonio" ) );
aInfo.AddDeveloper( new CONTRIBUTOR( "Marco Mattila" ) );
aInfo.AddDeveloper( new CONTRIBUTOR( "Russell Oliver" ) );
aInfo.AddDeveloper( new CONTRIBUTOR( "Chris Pavlina" ) );
aInfo.AddDeveloper( new CONTRIBUTOR( "Alexis Lockwood" ) );
aInfo.AddDeveloper( new CONTRIBUTOR( "Miguel Angel Ajo Pelayo" ) );
aInfo.AddDeveloper( new CONTRIBUTOR( "Jacobo Aragunde Perez" ) );
aInfo.AddDeveloper( new CONTRIBUTOR( "Simon Richter" ) );
+2 -2
View File
@@ -603,6 +603,8 @@ int DIALOG_SHIM::ShowQuasiModal()
event_loop.Run();
m_qmodal_showing = false;
return GetReturnCode();
}
@@ -622,8 +624,6 @@ void DIALOG_SHIM::EndQuasiModal( int retCode )
return;
}
m_qmodal_showing = false;
if( m_qmodal_loop )
{
if( m_qmodal_loop->IsRunning() )
+142
View File
@@ -0,0 +1,142 @@
/*
* Copyright (C) 2018 CERN
* Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
*
* Author: Maciej Suminski <maciej.suminski@cern.ch>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// inspired by David Hart's FileDirDlg widget (4Pane project)
#include "dialog_file_dir_picker.h"
#include <wx/filename.h>
DIALOG_FILE_DIR_PICKER::DIALOG_FILE_DIR_PICKER( wxWindow* parent, const wxString& title,
const wxString& defaultPath, const wxString& wildcard, int style )
: DIALOG_SHIM( parent, wxID_ANY, title, wxDefaultPosition,
wxSize( 500, 600 ), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER )
{
m_showHidden = nullptr;
wxString path = defaultPath.IsEmpty() ? wxGetCwd() : defaultPath;
m_filesOnly = style & FD_RETURN_FILESONLY;
int m_GDC_style = wxDIRCTRL_3D_INTERNAL | wxDIRCTRL_EDIT_LABELS;
if( !wildcard.IsEmpty() )
m_GDC_style |= wxDIRCTRL_SHOW_FILTERS;
if( style & FD_MULTIPLE )
m_GDC_style |= wxDIRCTRL_MULTIPLE;
SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* mainSizer;
mainSizer = new wxBoxSizer( wxVERTICAL );
m_GDC = new wxGenericDirCtrl( this, wxID_ANY, wxEmptyString,
wxDefaultPosition, wxDefaultSize, m_GDC_style );
m_GDC->ShowHidden( style & FD_SHOW_HIDDEN );
// TODO filter is not applied until it is reselected in the drop-down list, why?
if( !wildcard.IsEmpty() )
m_GDC->SetFilter( wildcard );
mainSizer->Add( m_GDC, 1, wxEXPAND | wxALL, 5 );
// TODO commented out due to string freeze, uncomment in v6
//m_showHidden = new wxCheckBox( this, wxID_ANY, _( "Show Hidden" ), wxDefaultPosition, wxDefaultSize, 0 );
//m_showHidden->SetValue( style & FD_SHOW_HIDDEN );
//mainSizer->Add( m_showHidden, 0, wxALL, 5 );
auto sdbSizer = new wxStdDialogButtonSizer();
sdbSizer->AddButton( new wxButton( this, wxID_OK ) );
sdbSizer->AddButton( new wxButton( this, wxID_CANCEL ) );
sdbSizer->Realize();
mainSizer->Add( sdbSizer, 0, wxEXPAND, 5 );
SetSizer( mainSizer );
Layout();
Centre( wxBOTH );
// Use Connect() here instead of an event table entry, as otherwise an
// event is fired before the dialog is created and m_GDC and Text initialised
Connect( wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED,
(wxObjectEventFunction) &DIALOG_FILE_DIR_PICKER::onHidden );
// Call SetDirectory() to make the path visible
SetDirectory( path );
}
void DIALOG_FILE_DIR_PICKER::SetDirectory( const wxString& aDirectory ) const
{
// Make the requested path visible. Without scrolling to the bottom, the requested path
// is just below the window.
wxArrayTreeItemIds selections;
auto treeCtrl = m_GDC->GetTreeCtrl();
treeCtrl->UnselectAll();
m_GDC->SetPath( aDirectory );
m_GDC->SetDefaultPath( aDirectory );
treeCtrl->GetSelections( selections );
if( !selections.IsEmpty() && selections[0].IsOk() )
{
auto lastChild = treeCtrl->GetLastChild( treeCtrl->GetRootItem() );
if( lastChild.IsOk() )
treeCtrl->ScrollTo( lastChild );
treeCtrl->ScrollTo( selections[0] );
}
}
wxString DIALOG_FILE_DIR_PICKER::GetDirectory() const
{
wxFileName fileName( m_GDC->GetPath() );
// Strip the file name, if it is included in the path
return fileName.FileExists() ? fileName.GetPath() : fileName.GetFullPath();
}
size_t DIALOG_FILE_DIR_PICKER::GetFilenames( wxArrayString& aFilePaths )
{
wxArrayTreeItemIds selectedIds;
size_t count = m_GDC->GetTreeCtrl()->GetSelections( selectedIds );
for( size_t c = 0; c < count; ++c )
{
wxDirItemData* data = (wxDirItemData*) m_GDC->GetTreeCtrl()->GetItemData( selectedIds[c] );
if( m_filesOnly && wxDirExists( data->m_path ) )
continue; // If we only want files, skip dirs
aFilePaths.Add( data->m_path );
}
return aFilePaths.GetCount();
}
void DIALOG_FILE_DIR_PICKER::onHidden( wxCommandEvent& event )
{
m_GDC->ShowHidden( event.IsChecked() );
}
+69
View File
@@ -0,0 +1,69 @@
/*
* Copyright (C) 2018 CERN
* Author: Maciej Suminski <maciej.suminski@cern.ch>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// inspired by David Hart's FileDirDlg widget (4Pane project)
#ifndef __DIALOG_FILE_DIR_PICKER_H__
#define __DIALOG_FILE_DIR_PICKER_H__
#include <dialog_shim.h>
#include "wx/dirctrl.h"
enum FILE_DIR_PICKER_STYLE
{
FD_MULTIPLE = 0x0001,
FD_SHOW_HIDDEN = 0x0002,
FD_RETURN_FILESONLY = 0x0004
};
/**
* @brief Dialog that can select both files and directories.
*/
class DIALOG_FILE_DIR_PICKER : public DIALOG_SHIM
{
public:
DIALOG_FILE_DIR_PICKER( wxWindow* parent, const wxString& message, const wxString& defaultPath,
const wxString& wildcard, int style = FD_MULTIPLE | FD_SHOW_HIDDEN );
void SetDirectory( const wxString& aDirectory ) const;
wxString GetDirectory() const;
/**
* Sets the wildcard filter.
* @param aFilter is the new filter
*/
void SetFilter( const wxString& aFilter )
{
m_GDC->SetFilter( aFilter );
}
// Get multiple filepaths. Returns number found
size_t GetFilenames( wxArrayString& aFilepaths );
protected:
void onHidden( wxCommandEvent& event );
bool m_filesOnly;
wxGenericDirCtrl* m_GDC;
wxCheckBox* m_showHidden;
};
#endif //__DIALOG_FILE_DIR_PICKER_H__
+1 -1
View File
@@ -529,7 +529,7 @@ bool DIALOG_PAGES_SETTINGS::SavePageSettings()
if( !retSuccess )
{
wxASSERT_MSG( false, wxT( "the translation for paper size must preserve original spellings" ) );
wxASSERT_MSG( false, _( "the translation for paper size must preserve original spellings" ) );
m_pageInfo.SetType( PAGE_INFO::A4 );
}
+53 -40
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 CERN
* Copyright (C) 2015-2017 KiCad Developers, see change_log.txt for contributors.
* Copyright (C) 2015-2018 KiCad Developers, see AUTHORS.txt for contributors.
* Author: Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
*
* This program is free software: you can redistribute it and/or modify it
@@ -19,6 +19,8 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <algorithm>
#include "wx_html_report_panel.h"
#include <wildcards_and_files_ext.h>
@@ -62,15 +64,19 @@ REPORTER& WX_HTML_REPORT_PANEL::Reporter()
}
void WX_HTML_REPORT_PANEL::Report( const wxString& aText, REPORTER::SEVERITY aSeverity )
void WX_HTML_REPORT_PANEL::Report( const wxString& aText, REPORTER::SEVERITY aSeverity,
REPORTER::LOCATION aLocation )
{
REPORT_LINE line;
line.message = aText;
line.severity = aSeverity;
m_report.push_back( line );
m_html += generateHtml( line );
if( aLocation == REPORTER::LOC_HEAD )
m_reportHead.push_back( line );
else if( aLocation == REPORTER::LOC_TAIL )
m_reportTail.push_back( line );
else
m_report.push_back( line );
if( !m_lazyUpdate )
{
@@ -86,9 +92,29 @@ void WX_HTML_REPORT_PANEL::SetLazyUpdate( bool aLazyUpdate )
}
void WX_HTML_REPORT_PANEL::Flush()
void WX_HTML_REPORT_PANEL::Flush( bool aSort )
{
m_htmlView->SetPage( addHeader( m_html ) );
wxString html;
if( aSort )
{
std::sort( m_report.begin(), m_report.end(),
[]( const REPORT_LINE& a, const REPORT_LINE& b)
{
return a.severity < b.severity;
});
}
for( auto line : m_reportHead )
html += generateHtml( line );
for( auto line : m_report )
html += generateHtml( line );
for( auto line : m_reportTail )
html += generateHtml( line );
m_htmlView->SetPage( addHeader( html ) );
scrollToBottom();
}
@@ -192,20 +218,6 @@ void WX_HTML_REPORT_PANEL::updateBadges()
}
void WX_HTML_REPORT_PANEL::refreshView()
{
wxString html;
for( const REPORT_LINE& l : m_report )
{
html += generateHtml( l );
}
m_htmlView->SetPage( addHeader( html ) );
scrollToBottom();
}
wxString WX_HTML_REPORT_PANEL::addHeader( const wxString& aBody )
{
wxColour bgcolor = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW );
@@ -310,7 +322,7 @@ void WX_HTML_REPORT_PANEL::onCheckBoxShowAll( wxCommandEvent& event )
m_showAll = false;
syncCheckboxes();
refreshView();
Flush( true );
}
@@ -326,45 +338,45 @@ void WX_HTML_REPORT_PANEL::syncCheckboxes()
void WX_HTML_REPORT_PANEL::onCheckBoxShowWarnings( wxCommandEvent& event )
{
if ( event.IsChecked() )
if( event.IsChecked() )
m_severities |= REPORTER::RPT_WARNING;
else
m_severities &= ~REPORTER::RPT_WARNING;
refreshView();
Flush( true );
}
void WX_HTML_REPORT_PANEL::onCheckBoxShowErrors( wxCommandEvent& event )
{
if ( event.IsChecked() )
m_severities |= REPORTER::RPT_ERROR;
else
m_severities &= ~REPORTER::RPT_ERROR;
if( event.IsChecked() )
m_severities |= REPORTER::RPT_ERROR;
else
m_severities &= ~REPORTER::RPT_ERROR;
refreshView();
Flush( true );
}
void WX_HTML_REPORT_PANEL::onCheckBoxShowInfos( wxCommandEvent& event )
{
if ( event.IsChecked() )
m_severities |= REPORTER::RPT_INFO;
else
m_severities &= ~REPORTER::RPT_INFO;
if( event.IsChecked() )
m_severities |= REPORTER::RPT_INFO;
else
m_severities &= ~REPORTER::RPT_INFO;
refreshView();
Flush( true );
}
void WX_HTML_REPORT_PANEL::onCheckBoxShowActions( wxCommandEvent& event )
{
if ( event.IsChecked() )
m_severities |= REPORTER::RPT_ACTION;
else
m_severities &= ~REPORTER::RPT_ACTION;
if( event.IsChecked() )
m_severities |= REPORTER::RPT_ACTION;
else
m_severities &= ~REPORTER::RPT_ACTION;
refreshView();
Flush( true );
}
@@ -406,8 +418,9 @@ void WX_HTML_REPORT_PANEL::onBtnSaveToFile( wxCommandEvent& event )
void WX_HTML_REPORT_PANEL::Clear()
{
m_html.clear();
m_report.clear();
m_reportHead.clear();
m_reportTail.clear();
}
+16 -6
View File
@@ -52,8 +52,14 @@ public:
///> returns the reporter object that reports to this panel
REPORTER& Reporter();
///> reports a string directly.
void Report( const wxString& aText, REPORTER::SEVERITY aSeverity );
/**
* Reports the string
* @param aText string message to report
* @param aSeverity string classification level bitfield
* @param aLocation REPORTER::LOCATION enum for placement of message
*/
void Report( const wxString& aText, REPORTER::SEVERITY aSeverity,
REPORTER::LOCATION aLocation = REPORTER::LOC_BODY );
///> clears the report panel
void Clear();
@@ -70,7 +76,8 @@ public:
void SetLazyUpdate( bool aLazyUpdate );
///> Forces updating the HTML page, after the report is built in lazy mode
void Flush();
///> If aSort = true, the body messages will be ordered by severity
void Flush( bool aSort = false );
///> Set the visible severity filter.
///> if aSeverities < 0 the m_showAll option is set
@@ -94,7 +101,6 @@ private:
wxString generatePlainText( const REPORT_LINE& aLine );
void updateBadges();
void refreshView();
void scrollToBottom();
void syncCheckboxes();
@@ -111,6 +117,12 @@ private:
///> copy of the report, stored for filtering
REPORT_LINES m_report;
///> Lines to print at the very end of the report, regardless of sorting
REPORT_LINES m_reportTail;
///> Lines to print at the very beginning of the report, regardless of sorting
REPORT_LINES m_reportHead;
///> the reporter
WX_HTML_PANEL_REPORTER m_reporter;
@@ -120,8 +132,6 @@ private:
///> show all messages flag (overrides m_severities)
bool m_showAll;
wxString m_html;
bool m_lazyUpdate;
};
+3 -2
View File
@@ -512,8 +512,7 @@ void EDA_DRAW_FRAME::OnSelectZoom( wxCommandEvent& event )
}
else
{
id--;
double selectedZoom = GetScreen()->m_ZoomList[id];
double selectedZoom = GetScreen()->m_ZoomList[id-1];
if( GetScreen()->GetZoom() == selectedZoom )
return;
@@ -991,6 +990,8 @@ void EDA_DRAW_FRAME::AdjustScrollBars( const wxPoint& aCenterPositionIU )
// Full drawing or "page" rectangle in internal units
DBOX pageRectIU( wxPoint( 0, 0 ), wxSize( GetPageSizeIU().x, GetPageSizeIU().y ) );
// Remark: if something is modified here, perhaps EDA_DRAW_FRAME::RedrawScreen2()
// will need changes accordint to the way the center is computed
// Account for scrollbars
wxSize scrollbarSizeDU = m_canvas->GetSize() - m_canvas->GetClientSize();
wxSize scrollbarSizeIU = scrollbarSizeDU * (1 / scale);
+1 -1
View File
@@ -36,7 +36,7 @@ static bool normalizeAbsolutePaths( const wxFileName& aPathA,
|| ( aPathA.HasVolume() && !aPathB.HasVolume() )
|| ( !aPathA.HasVolume() && aPathB.HasVolume() )
|| ( ( aPathA.HasVolume() && aPathB.HasVolume() )
&& ( aPathA.GetVolume() == aPathB.GetVolume() ) ) )
&& ( aPathA.GetVolume() != aPathB.GetVolume() ) ) )
return false;
wxArrayString aDirs = aPathA.GetDirs();
+17
View File
@@ -147,6 +147,13 @@ FOOTPRINT_ASYNC_LOADER::FOOTPRINT_ASYNC_LOADER() : m_list( nullptr )
}
FOOTPRINT_ASYNC_LOADER::~FOOTPRINT_ASYNC_LOADER()
{
// This is NOP if the load has finished
Abort();
}
void FOOTPRINT_ASYNC_LOADER::SetList( FOOTPRINT_LIST* aList )
{
m_list = aList;
@@ -181,6 +188,16 @@ bool FOOTPRINT_ASYNC_LOADER::Join()
}
void FOOTPRINT_ASYNC_LOADER::Abort()
{
if( m_list )
{
m_list->StopWorkers();
m_list = nullptr;
}
}
void FOOTPRINT_ASYNC_LOADER::SetCompletionCallback( std::function<void()> aCallback )
{
m_completion_cb = std::move(aCallback);
+7 -4
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010-2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
* Copyright (C) 2012-2016 Wayne Stambaugh <stambaughw@gmail.com>
* Copyright (C) 2012-2017 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2012-2018 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -241,7 +241,7 @@ long long FP_LIB_TABLE::GenerateTimestamp( const wxString* aNickname )
{
const FP_LIB_TABLE_ROW* row = FindRow( *aNickname );
wxASSERT( (PLUGIN*) row->plugin );
return row->plugin->GetLibraryTimestamp( row->GetFullURI( true ) );
return row->plugin->GetLibraryTimestamp( row->GetFullURI( true ) ) + wxHashTable::MakeKey( *aNickname );
}
long long hash = 0;
@@ -249,7 +249,7 @@ long long FP_LIB_TABLE::GenerateTimestamp( const wxString* aNickname )
{
const FP_LIB_TABLE_ROW* row = FindRow( nickname );
wxASSERT( (PLUGIN*) row->plugin );
hash += row->plugin->GetLibraryTimestamp( row->GetFullURI( true ) );
hash += row->plugin->GetLibraryTimestamp( row->GetFullURI( true ) ) + wxHashTable::MakeKey( nickname );
}
return hash;
@@ -275,7 +275,10 @@ void FP_LIB_TABLE::PrefetchLib( const wxString& aNickname )
const FP_LIB_TABLE_ROW* FP_LIB_TABLE::FindRow( const wxString& aNickname )
{
FP_LIB_TABLE_ROW* row = dynamic_cast< FP_LIB_TABLE_ROW* >( findRow( aNickname ) );
// Do not optimize this code. Is done this way specifically to fix a runtime
// error with clang 4.0.1.
LIB_TABLE_ROW* ltrow = findRow( aNickname );
FP_LIB_TABLE_ROW* row = dynamic_cast< FP_LIB_TABLE_ROW* >( ltrow );
if( !row )
{
+14 -14
View File
@@ -519,7 +519,7 @@ const char smaa_base_shader_p1[] = R"SHADER_SOURCE(
* - DX10.1: D3D10_STANDARD_MULTISAMPLE_PATTERN or
* - DX11: D3D11_STANDARD_MULTISAMPLE_PATTERN
*
* This allows to ensure that the subsample order matches the table in
* This allows one to ensure that the subsample order matches the table in
* @SUBSAMPLE_INDICES.
*
* (*) In the case of DX10, we refer the reader to:
@@ -620,8 +620,8 @@ const char smaa_base_shader_p1[] = R"SHADER_SOURCE(
* performance.
*
* Range: [0, 0.5]
* 0.1 is a reasonable value, and allows to catch most visible edges.
* 0.05 is a rather overkill value, that allows to catch 'em all.
* 0.1 is a reasonable value, and allows one to catch most visible edges.
* 0.05 is a rather overkill value, that allows one to catch 'em all.
*
* If temporal supersampling is used, 0.2 could be a reasonable value, as low
* contrast edges are properly filtered by just 2x.
@@ -686,7 +686,7 @@ const char smaa_base_shader_p2[] = R"SHADER_SOURCE(
* If there is an neighbor edge that has SMAA_LOCAL_CONTRAST_FACTOR times
* bigger contrast than current edge, current edge will be discarded.
*
* This allows to eliminate spurious crossing edges, and is based on the fact
* This allows one to eliminate spurious crossing edges, and is based on the fact
* that, if there is too much contrast in a direction, that will hide
* perceptually contrast in the other neighbors.
*/
@@ -695,7 +695,7 @@ const char smaa_base_shader_p2[] = R"SHADER_SOURCE(
#endif
/**
* Predicated thresholding allows to better preserve texture details and to
* Predicated thresholding allows one to better preserve texture details and to
* improve performance, by decreasing the number of detected edges using an
* additional buffer like the light accumulation buffer, object ids or even the
* depth buffer (the depth buffer usage may be limited to indoor or short range
@@ -742,7 +742,7 @@ const char smaa_base_shader_p2[] = R"SHADER_SOURCE(
#endif
/**
* Temporal reprojection allows to remove ghosting artifacts when using
* Temporal reprojection allows one to remove ghosting artifacts when using
* temporal supersampling. We use the CryEngine 3 method which also introduces
* velocity weighting. This feature is of extreme importance for totally
* removing ghosting. More information here:
@@ -757,8 +757,8 @@ const char smaa_base_shader_p2[] = R"SHADER_SOURCE(
#endif
/**
* SMAA_REPROJECTION_WEIGHT_SCALE controls the velocity weighting. It allows to
* remove ghosting trails behind the moving object, which are not removed by
* SMAA_REPROJECTION_WEIGHT_SCALE controls the velocity weighting. It allows one
* to remove ghosting trails behind the moving object, which are not removed by
* just using reprojection. Using low values will exhibit ghosting, while using
* high values will disable temporal supersampling under motion.
*
@@ -1158,7 +1158,7 @@ float4 SMAADecodeDiagBilinearAccess(float4 e) {
}
/**
* These functions allows to perform diagonal pattern searches.
* These functions allows one to perform diagonal pattern searches.
*/
float2 SMAASearchDiag1(SMAATexture2D(edgesTex), float2 texcoord, float2 dir, out float2 e) {
float4 coord = float4(texcoord, -1.0, 1.0);
@@ -1290,7 +1290,7 @@ float2 SMAACalculateDiagWeights(SMAATexture2D(edgesTex), SMAATexture2D(areaTex),
// Horizontal/Vertical Search Functions
/**
* This allows to determine how much length should we add in the last step
* This allows one to determine how much length should we add in the last step
* of the searches. It takes the bilinearly interpolated edge (see
* @PSEUDO_GATHER4), and adds 0, 1 or 2, depending on which edges and
* crossing edges are active.
@@ -1322,8 +1322,8 @@ float SMAASearchXLeft(SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2
* @PSEUDO_GATHER4
* This texcoord has been offset by (-0.25, -0.125) in the vertex shader to
* sample between edge, thus fetching four edges in a row.
* Sampling with different offsets in each direction allows to disambiguate
* which edges are active from the four fetched ones.
* Sampling with different offsets in each direction allows one to
* disambiguate which edges are active from the four fetched ones.
*/
float2 e = float2(0.0, 1.0);
while (texcoord.x > end &&
@@ -1484,8 +1484,8 @@ float4 SMAABlendingWeightCalculationPS(float2 texcoord,
coords.z = SMAASearchXRight(SMAATexturePass2D(edgesTex), SMAATexturePass2D(searchTex), offset[0].zw, offset[2].y);
d.y = coords.z;
// We want the distances to be in pixel units (doing this here allow to
// better interleave arithmetic and memory accesses):
// We want the distances to be in pixel units (doing this here allow one
// to better interleave arithmetic and memory accesses):
d = abs(round(mad(SMAA_RT_METRICS.zz, d, -pixcoord.xx)));
// SMAAArea below needs a sqrt, as the areas texture is compressed
+23 -7
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KICAD, a free EDA CAD application.
*
* Copyright (C) 2012 Torsten Hueter, torstenhtr <at> gmx.de
* Copyright (C) 2012-2016 Kicad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2012-2018 Kicad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2013-2017 CERN
* @author Maciej Suminski <maciej.suminski@cern.ch>
*
@@ -73,15 +73,31 @@ OPENGL_GAL::OPENGL_GAL( GAL_DISPLAY_OPTIONS& aDisplayOptions, wxWindow* aParent,
mouseListener( aMouseListener ), paintListener( aPaintListener ), currentManager( nullptr ),
cachedManager( nullptr ), nonCachedManager( nullptr ), overlayManager( nullptr ), mainBuffer( 0 ), overlayBuffer( 0 )
{
// IsDisplayAttr() handles WX_GL_{MAJOR,MINOR}_VERSION correctly only in 3.0.4
// starting with 3.1.0 one should use wxGLContext::IsOk() (done by GL_CONTEXT_MANAGER)
#if wxCHECK_VERSION( 3, 0, 3 ) and !wxCHECK_VERSION( 3, 1, 0 )
const int attr[] = { WX_GL_MAJOR_VERSION, 2, WX_GL_MINOR_VERSION, 1, 0 };
if( !IsDisplaySupported( attr ) )
throw std::runtime_error( "OpenGL 2.1 or higher is required!" );
#endif /* wxCHECK_VERSION( 3, 0, 3 ) */
if( glMainContext == NULL )
{
glMainContext = GL_CONTEXT_MANAGER::Get().CreateCtx( this );
if( !glMainContext )
throw std::runtime_error( "Could not create the main OpenGL context" );
glPrivContext = glMainContext;
shader = new SHADER();
}
else
{
glPrivContext = GL_CONTEXT_MANAGER::Get().CreateCtx( this, glMainContext );
if( !glPrivContext )
throw std::runtime_error( "Could not create a private OpenGL context" );
}
++instanceCounter;
@@ -781,15 +797,15 @@ void OPENGL_GAL::DrawPolygon( const VECTOR2D aPointList[], int aListSize )
drawPolygon( points.get(), aListSize );
}
void OPENGL_GAL::drawTriangulatedPolyset( const SHAPE_POLY_SET& aPolySet )
{
currentManager->Shader( SHADER_NONE );
currentManager->Color( fillColor.r, fillColor.g, fillColor.b, fillColor.a );
if ( isFillEnabled )
if( isFillEnabled )
{
for( int j = 0; j < aPolySet.OutlineCount(); ++j )
for( unsigned int j = 0; j < aPolySet.TriangulatedPolyCount(); ++j )
{
auto triPoly = aPolySet.TriangulatedPolygon( j );
@@ -1004,7 +1020,7 @@ void OPENGL_GAL::DrawGrid()
if( axesEnabled )
{
glLineWidth( minorLineWidth );
glColor4d( axesColor.r, axesColor.g, axesColor.b, 1.0 );
glColor4d( axesColor.r, axesColor.g, axesColor.b, axesColor.a );
glBegin( GL_LINES );
glVertex2d( worldStartPoint.x, 0 );
@@ -1060,7 +1076,7 @@ void OPENGL_GAL::DrawGrid()
}
else
{
glColor4d( gridColor.r, gridColor.g, gridColor.b, 1.0 );
glColor4d( gridColor.r, gridColor.g, gridColor.b, gridColor.a );
}
if( gridStyle == GRID_STYLE::SMALL_CROSS )
@@ -1127,7 +1143,7 @@ void OPENGL_GAL::DrawGrid()
if( gridStyle == GRID_STYLE::DOTS )
{
glStencilFunc( GL_NOTEQUAL, 0, 1 );
glColor4d( gridColor.r, gridColor.g, gridColor.b, 1.0 );
glColor4d( gridColor.r, gridColor.g, gridColor.b, gridColor.a );
}
// Horizontal lines
+3 -1
View File
@@ -326,7 +326,9 @@ void STROKE_FONT::drawSingleLineText( const UTF8& aText )
if( !last_had_overbar )
{
overbar_start_x += overbar_italic_comp;
if( m_gal->IsFontItalic() )
overbar_start_x += overbar_italic_comp;
last_had_overbar = true;
}
+1 -1
View File
@@ -90,7 +90,7 @@ std::string GBR_APERTURE_METADATA::FormatAttribute( GBR_APERTURE_ATTRIB aAttribu
case GBR_APERTURE_ATTRIB_BGAPAD_CUDEF: // print info associated to a flashed BGA pad with
// a solder mask defined by the solder mask
attribute_string = "%TA.AperFunction,BGAPad,CuDef";
attribute_string = "TA.AperFunction,BGAPad,CuDef";
break;
case GBR_APERTURE_ATTRIB_CONNECTORPAD: // print info associated to a flashed edge connector pad (outer layers)
+4 -7
View File
@@ -1863,16 +1863,14 @@ SHAPE_POLY_SET &SHAPE_POLY_SET::operator=( const SHAPE_POLY_SET& aOther )
}
class SHAPE_POLY_SET::TRIANGULATION_CONTEXT
{
public:
TRIANGULATION_CONTEXT( TRIANGULATED_POLYGON* aResultPoly ) :
m_triPoly( aResultPoly )
{
}
m_triPoly( aResultPoly )
{
}
void AddOutline( const SHAPE_LINE_CHAIN& outl, bool aIsHole = false )
{
@@ -1887,9 +1885,7 @@ public:
if ( aIsHole )
m_cdt->AddHole( m_points );
else
{
m_cdt.reset( new p2t::CDT( m_points ) );
}
}
void Triangulate()
@@ -2014,6 +2010,7 @@ void SHAPE_POLY_SET::triangulateSingle( const POLYGON& aPoly,
aResult.AllocateVertices( totalVertexCount( aPoly ) );
ctx.AddOutline( aPoly[0], false );
for( unsigned i = 1; i < aPoly.size(); i++ )
{
ctx.AddOutline( aPoly[i], true ); // add holes
+20 -10
View File
@@ -24,6 +24,7 @@
*/
#include <gl_context_mgr.h>
#include <wx/debug.h>
GL_CONTEXT_MANAGER& GL_CONTEXT_MANAGER::Get()
{
@@ -35,8 +36,16 @@ GL_CONTEXT_MANAGER& GL_CONTEXT_MANAGER::Get()
wxGLContext* GL_CONTEXT_MANAGER::CreateCtx( wxGLCanvas* aCanvas, const wxGLContext* aOther )
{
wxGLContext* context = new wxGLContext( aCanvas, aOther );
assert( context /* && context->IsOK() */ ); // IsOK() is available in wx3.1+
assert( m_glContexts.count( context ) == 0 );
wxCHECK( context, nullptr );
#if wxCHECK_VERSION( 3, 1, 0 )
if( !context->IsOK() )
{
delete context;
return nullptr;
}
#endif /* wxCHECK_VERSION( 3, 1, 0 ) */
m_glContexts.insert( std::make_pair( context, aCanvas ) );
return context;
@@ -53,28 +62,30 @@ void GL_CONTEXT_MANAGER::DestroyCtx( wxGLContext* aContext )
else
{
// Do not delete unknown GL contexts
assert( false );
wxFAIL;
}
if( m_glCtx == aContext )
{
m_glCtx = NULL;
}
}
void GL_CONTEXT_MANAGER::DeleteAll()
{
m_glCtxMutex.lock();
for( auto& ctx : m_glContexts )
delete ctx.first;
m_glContexts.clear();
m_glCtx = NULL;
m_glCtxMutex.unlock();
}
void GL_CONTEXT_MANAGER::LockCtx( wxGLContext* aContext, wxGLCanvas* aCanvas )
{
assert( aCanvas || m_glContexts.count( aContext ) > 0 );
wxCHECK( aCanvas || m_glContexts.count( aContext ) > 0, /* void */ );
m_glCtxMutex.lock();
wxGLCanvas* canvas = aCanvas ? aCanvas : m_glContexts.at( aContext );
@@ -93,7 +104,7 @@ void GL_CONTEXT_MANAGER::LockCtx( wxGLContext* aContext, wxGLCanvas* aCanvas )
void GL_CONTEXT_MANAGER::UnlockCtx( wxGLContext* aContext )
{
assert( m_glContexts.count( aContext ) > 0 );
wxCHECK( m_glContexts.count( aContext ) > 0, /* void */ );
if( m_glCtx == aContext )
{
@@ -102,9 +113,8 @@ void GL_CONTEXT_MANAGER::UnlockCtx( wxGLContext* aContext )
}
else
{
wxLogDebug(
"Trying to unlock GL context mutex from a wrong context: aContext %p m_glCtx %p",
aContext, m_glCtx );
wxFAIL_MSG( wxString::Format( "Trying to unlock GL context mutex from "
"a wrong context: aContext %p m_glCtx %p", aContext, m_glCtx ) );
}
}
+4 -7
View File
@@ -641,18 +641,15 @@ int ReadHotkeyConfigFile( const wxString& aFilename, struct EDA_HOTKEY_CONFIG* a
int ReadHotkeyConfig( const wxString& aAppname, struct EDA_HOTKEY_CONFIG* aDescList )
{
// For Eeschema and Pcbnew frames, we try twice.
// The first time, we try to read the new combined file. If it doesn't exist,
// we fall back to reading the old, frame-based file
// For Eeschema and Pcbnew frames, we read the new combined file.
// For other kifaces, we read the frame-based file
if( aAppname == LIB_EDIT_FRAME_NAME || aAppname == SCH_EDIT_FRAME_NAME )
{
if( ReadHotkeyConfigFile( EESCHEMA_HOTKEY_NAME, aDescList ) )
return 1;
return ReadHotkeyConfigFile( EESCHEMA_HOTKEY_NAME, aDescList );
}
else if( aAppname == PCB_EDIT_FRAME_NAME || aAppname == FOOTPRINT_EDIT_FRAME_NAME )
{
if( ReadHotkeyConfigFile( PCBNEW_HOTKEY_NAME, aDescList ) )
return 1;
return ReadHotkeyConfigFile( PCBNEW_HOTKEY_NAME, aDescList );
}
return ReadHotkeyConfigFile( aAppname, aDescList );
+8
View File
@@ -41,6 +41,14 @@ HTML_MESSAGE_BOX::HTML_MESSAGE_BOX( wxWindow* parent, const wxString& aTitle) :
}
HTML_MESSAGE_BOX::~HTML_MESSAGE_BOX()
{
// Prevent wxWidgets bug which fails to release when closing the window on an <esc>.
if( m_htmlWindow->HasCapture() )
m_htmlWindow->ReleaseMouse();
}
void HTML_MESSAGE_BOX::OnCloseButtonClick( wxCommandEvent& event )
{
// the dialog can be shown modal or not modal.
+48 -22
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
* Copyright (C) 2012 Wayne Stambaugh <stambaughw@gmail.com>
* Copyright (C) 2010-2017 KiCad Developers, see change_log.txt for contributors.
* Copyright (C) 2010-2018 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -371,25 +371,54 @@ bool LIB_ID::HasIllegalChars( const UTF8& aLibItemName, LIB_ID_TYPE aType )
}
UTF8 LIB_ID::FixIllegalChars( const UTF8& aLibItemName, LIB_ID_TYPE aType )
UTF8 LIB_ID::FixIllegalChars( const UTF8& aLibItemName, LIB_ID_TYPE aType, bool aLib )
{
UTF8 fixedName;
for( UTF8::uni_iter chIt = aLibItemName.ubegin(); chIt < aLibItemName.uend(); ++chIt )
{
auto ch = *chIt;
fixedName += isLegalChar( ch, aType ) ? ch : '_';
if( aLib )
fixedName += isLegalLibNicknameChar( ch, aType ) ? ch : '_';
else
fixedName += isLegalChar( ch, aType ) ? ch : '_';
}
return fixedName;
}
unsigned LIB_ID::FindIllegalChar( const UTF8& aNickname, LIB_ID_TYPE aType )
bool LIB_ID::isLegalChar( unsigned aUniChar, LIB_ID_TYPE aType )
{
bool const colon_allowed = ( aType == ID_ALIAS );
bool const space_allowed = ( aType != ID_SCH );
if( aUniChar < ' ' )
return false;
switch( aUniChar )
{
case '/':
case '\\':
return false;
case ':':
return colon_allowed;
case ' ':
return space_allowed;
default:
return true;
}
}
unsigned LIB_ID::FindIllegalLibNicknameChar( const UTF8& aNickname, LIB_ID_TYPE aType )
{
for( unsigned ch : aNickname )
{
if( !isLegalChar( ch, aType ) )
if( !isLegalLibNicknameChar( ch, aType ) )
return ch;
}
@@ -397,28 +426,25 @@ unsigned LIB_ID::FindIllegalChar( const UTF8& aNickname, LIB_ID_TYPE aType )
}
///> Set of characters not accepted in library and entry names
#define BASE_ILLEGAL_CHARS '\t', '\n', '\r', ':', '/', '\\'
const unsigned schIllegalChars[] = { BASE_ILLEGAL_CHARS, ' ' };
const unsigned pcbIllegalChars[] = { BASE_ILLEGAL_CHARS, 0 };
#define ILL_CHAR_SIZE (sizeof(schIllegalChars) / sizeof(int))
bool LIB_ID::isLegalChar( unsigned aUniChar, LIB_ID_TYPE aType )
bool LIB_ID::isLegalLibNicknameChar( unsigned aUniChar, LIB_ID_TYPE aType )
{
const unsigned (&illegalChars)[ILL_CHAR_SIZE] =
aType == ID_SCH ? schIllegalChars : pcbIllegalChars;
bool const space_allowed = ( aType != ID_SCH );
for( const unsigned ch : illegalChars )
{
if( ch == aUniChar )
return false;
}
// Test for "printable" code (aUniChar is a unicode (32 bits) char, not a ASCII value )
if( aUniChar < ' ' )
return false;
return true;
switch( aUniChar )
{
case '\\':
case ':':
return false;
case ' ':
return space_allowed;
default:
return true;
}
}
+1 -1
View File
@@ -795,7 +795,7 @@ LSEQ LSET::UIOrder() const
PCB_LAYER_ID ToLAYER_ID( int aLayer )
{
wxASSERT( unsigned( aLayer ) < GAL_LAYER_ID_END );
wxASSERT( unsigned( aLayer ) < PCB_LAYER_ID_COUNT );
return PCB_LAYER_ID( aLayer );
}
+9 -1
View File
@@ -53,7 +53,15 @@ ORIGIN_VIEWITEM* ORIGIN_VIEWITEM::Clone() const
const BOX2I ORIGIN_VIEWITEM::ViewBBox() const
{
BOX2I bbox;
bbox.SetMaximum();
// The origin item doesn't have a fixed size. It is constant on the screen but
// changes the effective BBox size based on the zoom level.
// But we can't simply set it to the maximum size as this causes a splitting degeneracy
// when compiling for Debian i386. By modestly adjusting the bbox, we avoid the degeneracy
// while keeping the origin visible at all zoom levels
bbox.SetSize( VECTOR2I( INT_MAX - 2, INT_MAX - 2 ) );
bbox.SetOrigin( VECTOR2I( INT_MIN / 2 + 1, INT_MIN / 2 + 1 ) );
return bbox;
}
+8
View File
@@ -473,7 +473,15 @@ bool PGM_BASE::InitPgm()
m_local_env_vars[ envVarName ] = envVarItem;
wxFileName baseSharePath;
#if defined( __WXMSW__ )
// Make the paths relative to the executable dir as KiCad might be installed anywhere
// It follows the Windows installer paths scheme, where binaries are installed in
// PATH/bin and extra files in PATH/share/kicad
baseSharePath.AssignDir( m_bin_dir + "\\.." );
baseSharePath.Normalize();
#else
baseSharePath.AssignDir( wxString( wxT( DEFAULT_INSTALL_PATH ) ) );
#endif
#if !defined( __WXMAC__ )
baseSharePath.AppendDir( wxT( "share" ) );
+3 -2
View File
@@ -210,8 +210,9 @@
// EP; draws the polygon outline. It usually gives a better look to the filled polygon
static const char hpgl_end_polygon_cmd[] = "PM 2; FP; EP;\n";
// HPGL scale factor (1 PLU = 1/40mm = 25 micrometers)
static const double PLUsPERDECIMIL = 0.102041;
// HPGL scale factor (1 Plotter Logical Unit = 1/40mm = 25 micrometers)
// PLUsPERDECIMIL = (25.4 / 10000) / 0.025
static const double PLUsPERDECIMIL = 0.1016;
HPGL_PLOTTER::HPGL_PLOTTER()
{
+18
View File
@@ -73,6 +73,24 @@ REPORTER& WX_HTML_PANEL_REPORTER::Report( const wxString& aText, SEVERITY aSever
return *this;
}
REPORTER& WX_HTML_PANEL_REPORTER::ReportTail( const wxString& aText, SEVERITY aSeverity )
{
wxCHECK_MSG( m_panel != NULL, *this,
wxT( "No WX_HTML_REPORT_PANEL object defined in WX_HTML_PANEL_REPORTER." ) );
m_panel->Report( aText, aSeverity, LOC_TAIL );
return *this;
}
REPORTER& WX_HTML_PANEL_REPORTER::ReportHead( const wxString& aText, SEVERITY aSeverity )
{
wxCHECK_MSG( m_panel != NULL, *this,
wxT( "No WX_HTML_REPORT_PANEL object defined in WX_HTML_PANEL_REPORTER." ) );
m_panel->Report( aText, aSeverity, LOC_HEAD );
return *this;
}
bool WX_HTML_PANEL_REPORTER::HasMessage() const
{
return m_panel->Count( REPORTER::RPT_ERROR | REPORTER::RPT_WARNING ) > 0;
+65 -31
View File
@@ -37,7 +37,7 @@
static TOOL_ACTION ACT_toggleCursor( "common.Control.toggleCursor",
AS_GLOBAL, TOOL_ACTION::LegacyHotKey( HK_TOGGLE_CURSOR ),
_( "Toggle Always Show Cursor" ),
_( "Toogle display of the cursor, even when not in an interactive tool" ) );
_( "Toggle display of the cursor, even when not in an interactive tool" ) );
COMMON_TOOLS::COMMON_TOOLS() :
@@ -59,37 +59,56 @@ void COMMON_TOOLS::Reset( RESET_REASON aReason )
int COMMON_TOOLS::ZoomInOut( const TOOL_EVENT& aEvent )
{
KIGFX::VIEW* view = m_frame->GetGalCanvas()->GetView();
KIGFX::VIEW_CONTROLS* ctls = getViewControls();
double zoomScale = 1.0;
if( aEvent.IsAction( &ACTIONS::zoomIn ) )
zoomScale = 1.3;
else if( aEvent.IsAction( &ACTIONS::zoomOut ) )
zoomScale = 1/1.3;
view->SetScale( view->GetScale() * zoomScale, getViewControls()->GetCursorPosition() );
if( ctls->IsCursorWarpingEnabled() )
ctls->CenterOnCursor();
return 0;
bool direction = aEvent.IsAction( &ACTIONS::zoomIn );
return doZoomInOut( direction, true );
}
int COMMON_TOOLS::ZoomInOutCenter( const TOOL_EVENT& aEvent )
{
KIGFX::VIEW* view = getView();
double zoomScale = 1.0;
bool direction = aEvent.IsAction( &ACTIONS::zoomInCenter );
return doZoomInOut( direction, false );
}
if( aEvent.IsAction( &ACTIONS::zoomInCenter ) )
zoomScale = 1.3;
else if( aEvent.IsAction( &ACTIONS::zoomOutCenter ) )
zoomScale = 1/1.3;
view->SetScale( view->GetScale() * zoomScale );
int COMMON_TOOLS::doZoomInOut( bool aDirection, bool aCenterOnCursor )
{
double zoom = m_frame->GetGalCanvas()->GetLegacyZoom();
return 0;
// Step must be AT LEAST 1.3
if( aDirection )
zoom /= 1.3;
else
zoom *= 1.3;
// Now look for the next closest menu step
std::vector<double>& zoomList = m_frame->GetScreen()->m_ZoomList;
int idx;
if( aDirection )
{
for( idx = zoomList.size() - 1; idx >= 0; --idx )
{
if( zoomList[idx] <= zoom )
break;
}
if( idx < 0 )
idx = 0; // if we ran off the end then peg to the end
}
else
{
for( idx = 0; idx < (int)zoomList.size(); ++idx )
{
if( zoomList[idx] >= zoom )
break;
}
if( idx >= (int)zoomList.size() )
idx = zoomList.size() - 1; // if we ran off the end then peg to the end
}
return doZoomToPreset( idx + 1, aCenterOnCursor );
}
@@ -148,6 +167,13 @@ int COMMON_TOOLS::ZoomFitScreen( const TOOL_EVENT& aEvent )
int COMMON_TOOLS::ZoomPreset( const TOOL_EVENT& aEvent )
{
unsigned int idx = aEvent.Parameter<intptr_t>();
return doZoomToPreset( idx, false );
}
// Note: idx == 0 is Auto; idx == 1 is first entry in zoomList
int COMMON_TOOLS::doZoomToPreset( int idx, bool aCenterOnCursor )
{
std::vector<double>& zoomList = m_frame->GetScreen()->m_ZoomList;
KIGFX::VIEW* view = m_frame->GetGalCanvas()->GetView();
KIGFX::GAL* gal = m_frame->GetGalCanvas()->GetGAL();
@@ -156,17 +182,25 @@ int COMMON_TOOLS::ZoomPreset( const TOOL_EVENT& aEvent )
if( idx == 0 ) // Zoom Auto
{
return ZoomFitScreen( aEvent );
}
else if( idx >= zoomList.size() )
{
assert( false );
return 0;
TOOL_EVENT dummy;
return ZoomFitScreen( dummy );
}
else
idx--;
double selectedZoom = zoomList[idx];
double zoomFactor = gal->GetWorldScale() / gal->GetZoomFactor();
view->SetScale( 1.0 / ( zoomFactor * selectedZoom ) );
double scale = 1.0 / ( zoomFactor * selectedZoom );
if( aCenterOnCursor )
{
view->SetScale( scale, getViewControls()->GetCursorPosition() );
if( getViewControls()->IsCursorWarpingEnabled() )
getViewControls()->CenterOnCursor();
}
else
view->SetScale( scale );
return 0;
}
+13 -5
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015 CERN
* @author Maciej Suminski <maciej.suminski@cern.ch>
* Copyright (C) 2015-2017 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2015-2018 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -63,9 +63,17 @@ OPT_TOOL_EVENT GRID_MENU::eventHandler( const wxMenuEvent& aEvent )
void GRID_MENU::update()
{
for( unsigned int i = 0; i < GetMenuItemCount(); ++i )
Check( ID_POPUP_GRID_SELECT + 1 + i, false );
BASE_SCREEN* screen = m_parent->GetScreen();
int currentId = screen->GetGridCmdId();
wxArrayString gridsList;
// Check the current grid size
Check( m_parent->GetScreen()->GetGridCmdId(), true );
screen->BuildGridsChoiceList( gridsList, g_UserUnit != INCHES );
for( unsigned int i = 0; i < GetMenuItemCount(); ++i )
{
int menuId = ID_POPUP_GRID_SELECT + 1 + i;
SetLabel( menuId, gridsList[i] ); // Refresh label in case units have changed
Check( menuId, menuId == currentId ); // Refresh checkmark
}
}
+8 -4
View File
@@ -45,7 +45,7 @@ ZOOM_MENU::ZOOM_MENU( EDA_DRAW_FRAME* aParent ) : m_parent( aParent )
for( int i = 0; i < maxZoomIds; ++i )
{
Append( ID_POPUP_ZOOM_LEVEL_START + i,
Append( ID_POPUP_ZOOM_LEVEL_START+1 + i, // ID_POPUP_ZOOM_LEVEL_START == Auto
wxString::Format( _( "Zoom: %.2f" ), aParent->GetZoomLevelCoeff() / screen->m_ZoomList[i] ),
wxEmptyString, wxITEM_CHECK );
}
@@ -64,10 +64,14 @@ OPT_TOOL_EVENT ZOOM_MENU::eventHandler( const wxMenuEvent& aEvent )
void ZOOM_MENU::update()
{
double zoom = m_parent->GetScreen()->GetZoom();
BASE_SCREEN* screen = m_parent->GetScreen();
double zoom = screen->GetZoom();
const std::vector<double>& zoomList = m_parent->GetScreen()->m_ZoomList;
// Check the current zoom
for( unsigned int i = 0; i < GetMenuItemCount(); ++i )
Check( ID_POPUP_ZOOM_LEVEL_START + i, std::fabs( zoomList[i] - zoom ) < 1e-6 );
int maxZoomIds = std::min( ID_POPUP_ZOOM_LEVEL_END - ID_POPUP_ZOOM_LEVEL_START,
(int) screen->m_ZoomList.size() );
for( int i = 0; i < maxZoomIds; ++i )
Check( ID_POPUP_ZOOM_LEVEL_START+1 + i, std::fabs( zoomList[i] - zoom ) < 1e-6 );
}
+3 -3
View File
@@ -207,7 +207,7 @@ private:
{
new_layer = aReorderMap.at( orig_layer );
}
catch( std::out_of_range ) {}
catch( const std::out_of_range& ) {}
m_groups[i].first = new_layer;
}
@@ -283,7 +283,7 @@ void VIEW::OnDestroy( VIEW_ITEM* aItem )
VIEW::VIEW( bool aIsDynamic ) :
m_enableOrderModifier( true ),
m_scale( 4.0 ),
m_minScale( 4.0 ), m_maxScale( 15000 ),
m_minScale( 4.0 ), m_maxScale( 75000.0 ),
m_mirrorX( false ), m_mirrorY( false ),
m_painter( NULL ),
m_gal( NULL ),
@@ -665,7 +665,7 @@ void VIEW::ReorderLayerData( std::unordered_map<int, int> aReorderMap )
{
new_idx = aReorderMap.at( orig_idx );
}
catch( std::out_of_range )
catch( const std::out_of_range& )
{
new_idx = orig_idx;
}
+4
View File
@@ -67,6 +67,10 @@ WX_VIEW_CONTROLS::WX_VIEW_CONTROLS( VIEW* aView, wxScrolledCanvas* aParentPanel
wxMouseEventHandler( WX_VIEW_CONTROLS::onLeave ), NULL, this );
m_parentPanel->Connect( wxEVT_SCROLLWIN_THUMBTRACK,
wxScrollWinEventHandler( WX_VIEW_CONTROLS::onScroll ), NULL, this );
m_parentPanel->Connect( wxEVT_SCROLLWIN_PAGEUP,
wxScrollWinEventHandler( WX_VIEW_CONTROLS::onScroll ), NULL, this );
m_parentPanel->Connect( wxEVT_SCROLLWIN_PAGEDOWN,
wxScrollWinEventHandler( WX_VIEW_CONTROLS::onScroll ), NULL, this );
m_panTimer.SetOwner( this );
this->Connect( wxEVT_TIMER,
+5 -31
View File
@@ -20,19 +20,10 @@
#include <dialog_shim.h>
#include <kiway.h>
#include <kiway_player.h>
#include <make_unique.h>
#include <project.h>
#include <widgets/footprint_choice.h>
#include <widgets/footprint_select_widget.h>
#include <functional>
#include <wx/combo.h>
#include <wx/gauge.h>
#include <wx/odcombo.h>
#include <wx/simplebook.h>
#include <wx/sizer.h>
#include <wx/timer.h>
#include <wx/utils.h>
#include <wx/wupdlock.h>
#include <widgets/progress_reporter.h>
@@ -47,16 +38,6 @@ enum
};
/**
* Page numbers in the wxSimplebook
*/
enum
{
PAGE_PROGRESS,
PAGE_SELECT
};
wxDEFINE_EVENT( EVT_FOOTPRINT_SELECTED, wxCommandEvent );
@@ -73,22 +54,15 @@ FOOTPRINT_SELECT_WIDGET::FOOTPRINT_SELECT_WIDGET( wxWindow* aParent,
{
m_zero_filter = true;
m_sizer = new wxBoxSizer( wxVERTICAL );
m_book = new wxSimplebook( this, wxID_ANY );
m_progress_ctrl = new GAUGE_PROGRESS_REPORTER( m_book, 2 );
m_fp_sel_ctrl = new FOOTPRINT_CHOICE( m_book, wxID_ANY );
m_book->SetEffect( wxSHOW_EFFECT_BLEND );
m_book->AddPage( m_progress_ctrl, "", true );
m_book->AddPage( m_fp_sel_ctrl, "", false );
m_sizer->Add( m_book, 1, wxEXPAND | wxALL, 5 );
m_fp_sel_ctrl = new FOOTPRINT_CHOICE( this, wxID_ANY );
m_sizer->Add( m_fp_sel_ctrl, 1, wxEXPAND | wxALL, 5 );
SetSizer( m_sizer );
Layout();
m_sizer->Fit( this );
m_fp_sel_ctrl->Bind( wxEVT_COMBOBOX, &FOOTPRINT_SELECT_WIDGET::OnComboBox, this );
m_fp_sel_ctrl->Bind(
EVT_INTERACTIVE_CHOICE, &FOOTPRINT_SELECT_WIDGET::OnComboInteractive, this );
m_fp_sel_ctrl->Bind( EVT_INTERACTIVE_CHOICE, &FOOTPRINT_SELECT_WIDGET::OnComboInteractive, this );
}
@@ -101,7 +75,8 @@ void FOOTPRINT_SELECT_WIDGET::Load( KIWAY& aKiway, PROJECT& aProject )
auto fp_lib_table = aProject.PcbFootprintLibs( aKiway );
m_fp_list = FOOTPRINT_LIST::GetInstance( aKiway );
m_fp_list->ReadFootprintFiles( fp_lib_table, nullptr, m_progress_ctrl );
WX_PROGRESS_REPORTER progressReporter( this, _( "Loading Footprint Libraries" ), 2 );
m_fp_list->ReadFootprintFiles( fp_lib_table, nullptr, &progressReporter );
FootprintsLoaded();
}
catch( ... )
@@ -115,7 +90,6 @@ void FOOTPRINT_SELECT_WIDGET::FootprintsLoaded()
{
m_fp_filter.SetList( *m_fp_list );
m_book->SetSelection( PAGE_SELECT );
m_finished_loading = true;
if( m_update )
-2
View File
@@ -92,8 +92,6 @@ bool PROGRESS_REPORTER::KeepRefreshing( bool aWait )
}
else
{
wxMilliSleep( 20 );
return updateUI();
}
}
+9 -7
View File
@@ -37,8 +37,10 @@
using namespace KIGFX;
WORKSHEET_VIEWITEM::WORKSHEET_VIEWITEM( const PAGE_INFO* aPageInfo, const TITLE_BLOCK* aTitleBlock ) :
WORKSHEET_VIEWITEM::WORKSHEET_VIEWITEM( int aMils2IUscalefactor,
const PAGE_INFO* aPageInfo, const TITLE_BLOCK* aTitleBlock ) :
EDA_ITEM( NOT_USED ), // this item is never added to a BOARD so it needs no type
m_mils2IUscalefactor( aMils2IUscalefactor ),
m_titleBlock( aTitleBlock ), m_pageInfo( aPageInfo ), m_sheetNumber( 1 ), m_sheetCount( 1 ) {}
@@ -61,8 +63,8 @@ const BOX2I WORKSHEET_VIEWITEM::ViewBBox() const
if( m_pageInfo != NULL )
{
bbox.SetOrigin( VECTOR2I( 0, 0 ) );
bbox.SetEnd( VECTOR2I( m_pageInfo->GetWidthMils() * 25400,
m_pageInfo->GetHeightMils() * 25400 ) );
bbox.SetEnd( VECTOR2I( m_pageInfo->GetWidthMils() * m_mils2IUscalefactor,
m_pageInfo->GetHeightMils() * m_mils2IUscalefactor ) );
}
else
{
@@ -82,10 +84,10 @@ void WORKSHEET_VIEWITEM::ViewDraw( int aLayer, VIEW* aView ) const
WS_DRAW_ITEM_LIST drawList;
drawList.SetPenSize( settings->GetWorksheetLineWidth() );
// Sorry, but I don't get this multi #ifdef from include/convert_to_biu.h, so here goes a magic
// number. IU_PER_MILS should be 25400 (as in a different compilation unit), but somehow
// it equals 1 in this case..
drawList.SetMilsToIUfactor( 25400 /* IU_PER_MILS */ );
// Adjust the scaling factor for worksheet items:
// worksheet items coordinates and sizes are stored in mils,
// and must be scaled to the same units as the caller
drawList.SetMilsToIUfactor( m_mils2IUscalefactor );
drawList.SetSheetNumber( m_sheetNumber );
drawList.SetSheetCount( m_sheetCount );
drawList.SetFileName( fileName );
+6 -2
View File
@@ -64,8 +64,12 @@ void EDA_DRAW_FRAME::RedrawScreen2( const wxPoint& posBefore )
if( IsGalCanvasActive() )
return;
// relative screen position to center before zoom
wxPoint dPos = posBefore - m_canvas->GetClientSize() / 2;
// Account for scrollbars (see EDA_DRAW_FRAME::AdjustScrollBars that takes
// in account scroolbars area to adjust scroll bars)
wxSize scrollbarSize = m_canvas->GetSize() - m_canvas->GetClientSize();
wxSize sizeAdjusted = m_canvas->GetClientSize() - scrollbarSize;
wxPoint dPos = posBefore - sizeAdjusted / 2;
// screen position of crosshair after zoom
wxPoint newScreenPos = m_canvas->ToDeviceXY( GetCrossHairPosition() );
-2
View File
@@ -29,8 +29,6 @@ set( CVPCB_DIALOGS
../pcbnew/dialogs/dialog_fp_lib_table_base.cpp
../pcbnew/dialogs/dialog_fp_plugin_options.cpp
../pcbnew/dialogs/dialog_fp_plugin_options_base.cpp
../pcbnew/dialogs/wizard_add_fplib_base.cpp
../pcbnew/dialogs/wizard_add_fplib.cpp
)
set( CVPCB_SRCS
+13 -12
View File
@@ -6,7 +6,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -49,7 +49,8 @@ DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES( CVPCB_MAINFRAME* aParent ) :
m_Config = Pgm().CommonSettings();
PROJECT& prj = Prj();
SetTitle( wxString::Format( _( "Project file: \"%s\"" ), GetChars( prj.GetProjectFullName() ) ) );
SetTitle( wxString::Format( _( "Project file: \"%s\"" ),
GetChars( prj.GetProjectFullName() ) ) );
Init( );
@@ -57,6 +58,7 @@ DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES( CVPCB_MAINFRAME* aParent ) :
Center();
}
void CVPCB_MAINFRAME::OnEditEquFilesList( wxCommandEvent& aEvent )
{
DIALOG_CONFIG_EQUFILES dlg( this );
@@ -69,7 +71,9 @@ void DIALOG_CONFIG_EQUFILES::Init()
{
m_sdbSizerOK->SetDefault();
m_ListChanged = false;
m_ListEquiv->InsertItems( m_Parent->m_EquFilesNames, 0 );
if( !m_Parent->m_EquFilesNames.IsEmpty() )
m_ListEquiv->InsertItems( m_Parent->m_EquFilesNames, 0 );
if( getEnvVarCount() < 2 )
m_gridEnvVars->AppendRows(2 - getEnvVarCount() );
@@ -90,6 +94,7 @@ void DIALOG_CONFIG_EQUFILES::Init()
}
void DIALOG_CONFIG_EQUFILES::OnEditEquFile( wxCommandEvent& event )
{
wxString editorname = Pgm().GetEditorName();
@@ -141,9 +146,7 @@ void DIALOG_CONFIG_EQUFILES::OnCloseWindow( wxCloseEvent& event )
}
/********************************************************************/
void DIALOG_CONFIG_EQUFILES::OnButtonMoveUp( wxCommandEvent& event )
/********************************************************************/
{
wxArrayInt selections;
@@ -176,9 +179,7 @@ void DIALOG_CONFIG_EQUFILES::OnButtonMoveUp( wxCommandEvent& event )
}
/*********************************************************************/
void DIALOG_CONFIG_EQUFILES::OnButtonMoveDown( wxCommandEvent& event )
/*********************************************************************/
{
wxArrayInt selections;
m_ListEquiv->GetSelections( selections );
@@ -195,7 +196,7 @@ void DIALOG_CONFIG_EQUFILES::OnButtonMoveDown( wxCommandEvent& event )
for( int ii = selections.GetCount()-1; ii >= 0; ii-- )
{
int jj = selections[ii];
std::swap( libnames[jj], libnames[jj+1]);
std::swap( libnames[jj], libnames[jj+1] );
}
m_ListEquiv->Set( libnames );
@@ -204,7 +205,7 @@ void DIALOG_CONFIG_EQUFILES::OnButtonMoveDown( wxCommandEvent& event )
for( size_t ii = 0; ii < selections.GetCount(); ii++ )
{
int jj = selections[ii];
m_ListEquiv->SetSelection(jj+1);
m_ListEquiv->SetSelection( jj+1 );
}
m_ListChanged = true;
@@ -223,7 +224,7 @@ void DIALOG_CONFIG_EQUFILES::OnRemoveFiles( wxCommandEvent& event )
for( int ii = selections.GetCount()-1; ii >= 0; ii-- )
{
m_ListEquiv->Delete(selections[ii] );
m_ListEquiv->Delete( selections[ii] );
m_ListChanged = true;
}
}
@@ -268,7 +269,7 @@ void DIALOG_CONFIG_EQUFILES::OnAddFiles( wxCommandEvent& event )
if( fn.MakeRelativeTo( libpath ) )
{
equFilename.Printf( wxT("${%s}%c%s"),
equFilename.Printf( wxT( "${%s}%c%s" ),
GetChars( m_gridEnvVars->GetCellValue( wxGridCellCoords( row, 0 ) ) ),
fn.GetPathSeparator(),
GetChars( fn.GetFullPath() ) );
@@ -284,7 +285,7 @@ void DIALOG_CONFIG_EQUFILES::OnAddFiles( wxCommandEvent& event )
if( list->FindString( equFilename, fn.IsCaseSensitive() ) == wxNOT_FOUND )
{
m_ListChanged = true;
equFilename.Replace( wxT("\\"), wxT("/") ); // Use unix separators only.
equFilename.Replace( wxT( "\\" ), wxT( "/" ) ); // Use unix separators only.
list->Append( equFilename );
}
else
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 22 2017)
// C++ code generated with wxFormBuilder (version Apr 19 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -16,7 +16,7 @@ DIALOG_FP_CONFLICT_ASSIGNMENT_SELECTOR_BASE::DIALOG_FP_CONFLICT_ASSIGNMENT_SELEC
wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxVERTICAL );
m_staticTextInfo = new wxStaticText( this, wxID_ANY, wxT("Footprint assignments from schematic netlist and symbol footprint association file (.cmp) are conflicting.\n\nPlease choose the assignment."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
m_staticTextInfo = new wxStaticText( this, wxID_ANY, _("Footprint assignments from schematic netlist and symbol footprint association file (.cmp) are conflicting.\n\nPlease choose the assignment."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
m_staticTextInfo->Wrap( -1 );
bSizerMain->Add( m_staticTextInfo, 0, wxALL|wxEXPAND, 5 );
@@ -14,7 +14,8 @@
<property name="file">fp_conflict_assignment_selector_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
<property name="internationalize">0</property>
<property name="indent_with_spaces"></property>
<property name="internationalize">1</property>
<property name="name">fp_conflict_assignment_selector</property>
<property name="namespace"></property>
<property name="path">.</property>
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 22 2017)
// C++ code generated with wxFormBuilder (version Apr 19 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -10,6 +10,7 @@
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/stattext.h>
@@ -49,7 +50,7 @@ class DIALOG_FP_CONFLICT_ASSIGNMENT_SELECTOR_BASE : public DIALOG_SHIM
public:
DIALOG_FP_CONFLICT_ASSIGNMENT_SELECTOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Footprint Assignment Conflicts"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
DIALOG_FP_CONFLICT_ASSIGNMENT_SELECTOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Footprint Assignment Conflicts"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_FP_CONFLICT_ASSIGNMENT_SELECTOR_BASE();
};
+1 -1
View File
@@ -432,7 +432,7 @@ MODULE* DISPLAY_FOOTPRINTS_FRAME::Get_Module( const wxString& aFootprintName )
if( fpid.Parse( aFootprintName ) >= 0 )
{
DisplayInfoMessage( this, wxString::Format( wxT( "Footprint ID \"%s\" is not valid." ),
DisplayInfoMessage( this, wxString::Format( _( "Footprint ID \"%s\" is not valid." ),
GetChars( aFootprintName ) ) );
return NULL;
}
+1 -1
View File
@@ -100,7 +100,7 @@ void CVPCB_MAINFRAME::SetNewPkg( const wxString& aFootprintName, int aIndex )
if( !aFootprintName.IsEmpty() )
{
wxCHECK_RET( fpid.Parse( aFootprintName ) < 0,
wxString::Format( wxT( "\"%s\" is not a valid LIB_ID." ),
wxString::Format( _( "\"%s\" is not a valid LIB_ID." ),
GetChars( aFootprintName ) ) );
}
-1
View File
@@ -8,7 +8,6 @@ install( DIRECTORY
kit-dev-coldfire-xilinx_5213
microwave
pic_programmer
pspice
python_scripts_examples
simulation
"sonde xilinx"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+227 -272
View File
@@ -1,4 +1,4 @@
(kicad_pcb (version 20171130) (host pcbnew "(2017-12-14 revision dee93e5)-master")
(kicad_pcb (version 20171130) (host pcbnew "(5.0.0-rc2-151-g11ab8f6dc)")
(general
(thickness 1.6002)
@@ -11,8 +11,8 @@
(page A4)
(layers
(0 Composant signal)
(31 Cuivre signal)
(0 top_cu signal)
(31 bottom_cu signal)
(32 B.Adhes user)
(33 F.Adhes user)
(34 B.Paste user)
@@ -34,17 +34,17 @@
)
(setup
(last_trace_width 0.8636)
(trace_clearance 0.381)
(last_trace_width 0.8)
(trace_clearance 0.4)
(zone_clearance 0.635)
(zone_45_only no)
(trace_min 0.254)
(trace_min 0.2)
(segment_width 0.381)
(edge_width 0.381)
(via_size 0.889)
(via_drill 0.635)
(via_min_size 0.889)
(via_min_drill 0.508)
(via_size 1.2)
(via_drill 0.6)
(via_min_size 0.8)
(via_min_drill 0.5)
(uvia_size 0.508)
(uvia_drill 0.127)
(uvias_allowed no)
@@ -74,7 +74,7 @@
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15)
(hpglpendiameter 15.000000)
(psnegative false)
(psa4output false)
(plotreference true)
@@ -105,10 +105,10 @@
(net 13 "Net-(P8-Pad1)")
(net_class Default "Ceci est la Netclass par défaut"
(clearance 0.381)
(trace_width 0.8636)
(via_dia 0.889)
(via_drill 0.635)
(clearance 0.4)
(trace_width 0.8)
(via_dia 1.2)
(via_drill 0.6)
(uvia_dia 0.508)
(uvia_drill 0.127)
(add_net GND)
@@ -126,7 +126,7 @@
(add_net "Net-(R2-Pad1)")
)
(module Valve:Valve_ECC-83-1 (layer Composant) (tedit 5A32B2BA) (tstamp 5A334CCC)
(module Valve:Valve_ECC-83-1 (layer top_cu) (tedit 5A32B2BA) (tstamp 5A334CCC)
(at 149.225 113.665)
(descr "Valve ECC-83-1 round pins")
(tags "Valve ECC-83-1 round pins")
@@ -168,7 +168,7 @@
)
)
(module discret:R3 (layer Composant) (tedit 54A57B4C) (tstamp 5A33370F)
(module discret:R3 (layer top_cu) (tedit 54A57B4C) (tstamp 5A33370F)
(at 130.048 123.825 180)
(descr "Resitance 3 pas")
(tags R)
@@ -199,7 +199,7 @@
)
)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer Composant) (tedit 5A082035) (tstamp 5A332F3A)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer top_cu) (tedit 5A082035) (tstamp 5A332F3A)
(at 145.542 131.191)
(descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 05mm, size 10.0x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix")
(tags "THT Terminal Block Phoenix MKDS-1.5-2 pitch 05mm size 10.0x9.8mm^2 drill 1.3mm pad 2.6mm")
@@ -261,7 +261,7 @@
)
)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer Composant) (tedit 5A082035) (tstamp 5A332F0F)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer top_cu) (tedit 5A082035) (tstamp 5A332F0F)
(at 128.27 100.711 270)
(descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 05mm, size 10.0x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix")
(tags "THT Terminal Block Phoenix MKDS-1.5-2 pitch 05mm size 10.0x9.8mm^2 drill 1.3mm pad 2.6mm")
@@ -323,7 +323,7 @@
)
)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer Composant) (tedit 5A082035) (tstamp 5A332EE4)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer top_cu) (tedit 5A082035) (tstamp 5A332EE4)
(at 128.27 112.776 270)
(descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 05mm, size 10.0x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix")
(tags "THT Terminal Block Phoenix MKDS-1.5-2 pitch 05mm size 10.0x9.8mm^2 drill 1.3mm pad 2.6mm")
@@ -385,7 +385,7 @@
)
)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer Composant) (tedit 5A082035) (tstamp 5A332EB9)
(module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer top_cu) (tedit 5A082035) (tstamp 5A332EB9)
(at 164.592 105.283 90)
(descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 05mm, size 10.0x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix")
(tags "THT Terminal Block Phoenix MKDS-1.5-2 pitch 05mm size 10.0x9.8mm^2 drill 1.3mm pad 2.6mm")
@@ -447,7 +447,7 @@
)
)
(module discret:C2V10 (layer Composant) (tedit 54A57B4C) (tstamp 54A581E5)
(module discret:C2V10 (layer top_cu) (tedit 54A57B4C) (tstamp 54A581E5)
(at 139.446 97.282 90)
(descr "Condensateur polarise")
(tags CP)
@@ -470,7 +470,7 @@
)
)
(module discret:C2 (layer Composant) (tedit 54A57B4C) (tstamp 54A581EA)
(module discret:C2 (layer top_cu) (tedit 54A57B4C) (tstamp 54A581EA)
(at 137.16 122.555 90)
(descr "Condensateur = 2 pas")
(tags C)
@@ -497,7 +497,7 @@
)
)
(module connect:1pin (layer Composant) (tedit 54A588DF) (tstamp 54A58203)
(module connect:1pin (layer top_cu) (tedit 54A588DF) (tstamp 54A58203)
(at 127 93.98)
(descr "module 1 pin (ou trou mecanique de percage)")
(tags DEV)
@@ -513,7 +513,7 @@
(net 10 "Net-(P5-Pad1)"))
)
(module connect:1pin (layer Composant) (tedit 54A588E7) (tstamp 54A58207)
(module connect:1pin (layer top_cu) (tedit 54A588E7) (tstamp 54A58207)
(at 165.1 93.98)
(descr "module 1 pin (ou trou mecanique de percage)")
(tags DEV)
@@ -529,7 +529,7 @@
(net 11 "Net-(P6-Pad1)"))
)
(module connect:1pin (layer Composant) (tedit 54A588EE) (tstamp 54A5820B)
(module connect:1pin (layer top_cu) (tedit 54A588EE) (tstamp 54A5820B)
(at 165.1 133.731)
(descr "module 1 pin (ou trou mecanique de percage)")
(tags DEV)
@@ -545,7 +545,7 @@
(net 12 "Net-(P7-Pad1)"))
)
(module connect:1pin (layer Composant) (tedit 54A588F3) (tstamp 54A5820F)
(module connect:1pin (layer top_cu) (tedit 54A588F3) (tstamp 54A5820F)
(at 127 133.731)
(descr "module 1 pin (ou trou mecanique de percage)")
(tags DEV)
@@ -561,7 +561,7 @@
(net 13 "Net-(P8-Pad1)"))
)
(module discret:R3 (layer Composant) (tedit 54A57B4C) (tstamp 54A58213)
(module discret:R3 (layer top_cu) (tedit 54A57B4C) (tstamp 54A58213)
(at 135.89 111.76 270)
(descr "Resitance 3 pas")
(tags R)
@@ -592,7 +592,7 @@
)
)
(module discret:R3 (layer Composant) (tedit 54A57B4C) (tstamp 54A58218)
(module discret:R3 (layer top_cu) (tedit 54A57B4C) (tstamp 54A58218)
(at 151.257 97.79 180)
(descr "Resitance 3 pas")
(tags R)
@@ -623,7 +623,7 @@
)
)
(module discret:R3 (layer Composant) (tedit 54A57B4C) (tstamp 54A58222)
(module discret:R3 (layer top_cu) (tedit 54A57B4C) (tstamp 54A58222)
(at 164.465 121.285 270)
(descr "Resitance 3 pas")
(tags R)
@@ -659,74 +659,74 @@
(gr_line (start 168.275 90.805) (end 168.275 136.525) (angle 90) (layer Edge.Cuts) (width 0.127) (tstamp 5A3345B3))
(gr_line (start 123.825 90.805) (end 123.825 136.525) (angle 90) (layer Edge.Cuts) (width 0.127))
(segment (start 142.24 95.25) (end 146.05 95.25) (width 0.8636) (layer Cuivre) (net 1))
(segment (start 164.465 125.095) (end 164.465 124.46) (width 0.8636) (layer Cuivre) (net 1) (status 800))
(segment (start 147.447 97.79) (end 146.05 95.25) (width 0.8636) (layer Cuivre) (net 1) (status 10))
(segment (start 139.065 95.25) (end 142.24 95.25) (width 0.8636) (layer Cuivre) (net 1))
(segment (start 139.446 94.742) (end 139.065 95.25) (width 0.8636) (layer Cuivre) (net 1) (status 810))
(segment (start 139.446 99.822) (end 129.159 99.822) (width 0.8636) (layer Cuivre) (net 2))
(segment (start 129.159 99.822) (end 128.27 100.711) (width 0.8636) (layer Cuivre) (net 2))
(segment (start 145.7706 108.91012) (end 145.7706 103.8606) (width 0.8636) (layer Cuivre) (net 2))
(segment (start 145.7706 103.8606) (end 141.732 99.822) (width 0.8636) (layer Cuivre) (net 2))
(segment (start 141.732 99.822) (end 139.446 99.822) (width 0.8636) (layer Cuivre) (net 2))
(segment (start 132.08 121.059172) (end 132.08 114.4224) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 132.08 114.4224) (end 130.4336 112.776) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 130.4336 112.776) (end 128.27 112.776) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 133.858 123.825) (end 133.858 122.837172) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 133.858 122.837172) (end 132.08 121.059172) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 133.985 125.095) (end 133.858 124.968) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 133.858 124.968) (end 133.858 123.825) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 137.16 125.095) (end 133.985 125.095) (width 0.8636) (layer Cuivre) (net 3))
(segment (start 137.16 120.015) (end 137.16 115.57) (width 0.8636) (layer Cuivre) (net 4))
(segment (start 135.89 115.57) (end 137.16 115.57) (width 0.8636) (layer Cuivre) (net 4))
(segment (start 137.16 115.57) (end 143.49984 115.57) (width 0.8636) (layer Cuivre) (net 4))
(segment (start 143.49984 115.57) (end 143.61668 115.45316) (width 0.8636) (layer Cuivre) (net 4))
(segment (start 162.450001 101.582999) (end 161.417 102.616) (width 0.8636) (layer Cuivre) (net 5))
(segment (start 161.417 102.616) (end 161.417 106.506) (width 0.8636) (layer Cuivre) (net 5))
(segment (start 164.592 100.283) (end 163.292001 101.582999) (width 0.8636) (layer Cuivre) (net 5))
(segment (start 163.292001 101.582999) (end 162.450001 101.582999) (width 0.8636) (layer Cuivre) (net 5))
(segment (start 161.417 106.506) (end 161.417 111.4806) (width 0.8636) (layer Cuivre) (net 5))
(segment (start 161.417 111.4806) (end 157.4038 115.4938) (width 0.8636) (layer Cuivre) (net 5))
(segment (start 159.385 117.475) (end 164.465 117.475) (width 0.8636) (layer Cuivre) (net 5) (status 400))
(segment (start 154.83332 115.4938) (end 157.4038 115.4938) (width 0.8636) (layer Cuivre) (net 5) (status 800))
(segment (start 157.4038 115.4938) (end 159.385 117.475) (width 0.8636) (layer Cuivre) (net 5))
(segment (start 145.7706 118.41988) (end 145.7706 124.587) (width 0.8636) (layer Cuivre) (net 6))
(segment (start 145.7706 124.587) (end 145.7706 126.492) (width 0.8636) (layer Cuivre) (net 6))
(segment (start 149.86 111.125) (end 149.86 124.841) (width 0.8636) (layer Cuivre) (net 7))
(segment (start 150.542 131.191) (end 150.542 125.523) (width 0.8636) (layer Cuivre) (net 7))
(segment (start 150.542 125.523) (end 149.86 124.841) (width 0.8636) (layer Cuivre) (net 7))
(segment (start 149.225 110.49) (end 149.86 111.125) (width 0.8636) (layer Cuivre) (net 7))
(segment (start 149.225 107.7722) (end 149.225 110.49) (width 0.8636) (layer Cuivre) (net 7) (status 800))
(segment (start 145.368 129.54) (end 145.368 127.701523) (width 0.8636) (layer Cuivre) (net 6))
(segment (start 145.368 127.701523) (end 145.7706 127.298923) (width 0.8636) (layer Cuivre) (net 6))
(segment (start 145.7706 127.298923) (end 145.7706 126.492) (width 0.8636) (layer Cuivre) (net 6))
(segment (start 149.225 107.7722) (end 151.54148 107.7722) (width 0.8636) (layer Cuivre) (net 7) (status 800))
(segment (start 151.54148 107.7722) (end 152.6794 108.91012) (width 0.8636) (layer Cuivre) (net 7) (status 400))
(segment (start 139.065 132.240853) (end 140.879459 134.055312) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 135.509 121.031) (end 136.398 121.92) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 139.065 124.46) (end 139.065 132.240853) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 135.89 107.95) (end 135.255 107.95) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 136.525 121.92) (end 139.065 124.46) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 135.255 107.95) (end 133.985 109.22) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 136.398 121.92) (end 136.525 121.92) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 135.509 117.729) (end 135.509 121.031) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 133.985 109.22) (end 133.985 116.205) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 133.985 116.205) (end 135.509 117.729) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 140.879459 134.055312) (end 152.250834 134.055312) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 152.250834 134.055312) (end 154.94 131.366146) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 154.94 131.366146) (end 154.94 120.68048) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 154.94 120.68048) (end 152.6794 118.41988) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 143.61668 111.8362) (end 141.6812 111.8362) (width 0.8636) (layer Cuivre) (net 8) (status 800))
(segment (start 141.6812 111.8362) (end 137.795 107.95) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 135.89 107.95) (end 137.795 107.95) (width 0.8636) (layer Cuivre) (net 8) (status 800))
(segment (start 154.94 121.31548) (end 154.94 121.31548) (width 0.8636) (layer Cuivre) (net 8))
(segment (start 154.83332 111.8362) (end 154.83332 111.23168) (width 0.8636) (layer Cuivre) (net 9) (status 800))
(segment (start 159.385 106.68) (end 159.385 99.695) (width 0.8636) (layer Cuivre) (net 9))
(segment (start 154.83332 111.23168) (end 159.385 106.68) (width 0.8636) (layer Cuivre) (net 9))
(segment (start 157.48 97.79) (end 159.385 99.695) (width 0.8636) (layer Cuivre) (net 9))
(segment (start 155.067 97.79) (end 157.48 97.79) (width 0.8636) (layer Cuivre) (net 9) (status 810))
(segment (start 142.24 95.25) (end 146.05 95.25) (width 0.8) (layer bottom_cu) (net 1))
(segment (start 164.465 125.095) (end 164.465 124.46) (width 0.8) (layer bottom_cu) (net 1) (status 800))
(segment (start 147.447 97.79) (end 146.05 95.25) (width 0.8) (layer bottom_cu) (net 1) (status 10))
(segment (start 139.065 95.25) (end 142.24 95.25) (width 0.8) (layer bottom_cu) (net 1))
(segment (start 139.446 94.742) (end 139.065 95.25) (width 0.8) (layer bottom_cu) (net 1) (status 810))
(segment (start 139.446 99.822) (end 129.159 99.822) (width 0.8) (layer bottom_cu) (net 2))
(segment (start 129.159 99.822) (end 128.27 100.711) (width 0.8) (layer bottom_cu) (net 2))
(segment (start 145.7706 108.91012) (end 145.7706 103.8606) (width 0.8) (layer bottom_cu) (net 2))
(segment (start 145.7706 103.8606) (end 141.732 99.822) (width 0.8) (layer bottom_cu) (net 2))
(segment (start 141.732 99.822) (end 139.446 99.822) (width 0.8) (layer bottom_cu) (net 2))
(segment (start 132.08 121.059172) (end 132.08 114.4224) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 132.08 114.4224) (end 130.4336 112.776) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 130.4336 112.776) (end 128.27 112.776) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 133.858 123.825) (end 133.858 122.837172) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 133.858 122.837172) (end 132.08 121.059172) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 133.985 125.095) (end 133.858 124.968) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 133.858 124.968) (end 133.858 123.825) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 137.16 125.095) (end 133.985 125.095) (width 0.8) (layer bottom_cu) (net 3))
(segment (start 137.16 120.015) (end 137.16 115.57) (width 0.8) (layer bottom_cu) (net 4))
(segment (start 135.89 115.57) (end 137.16 115.57) (width 0.8) (layer bottom_cu) (net 4))
(segment (start 137.16 115.57) (end 143.49984 115.57) (width 0.8) (layer bottom_cu) (net 4))
(segment (start 143.49984 115.57) (end 143.61668 115.45316) (width 0.8) (layer bottom_cu) (net 4))
(segment (start 162.450001 101.582999) (end 161.417 102.616) (width 0.8) (layer bottom_cu) (net 5))
(segment (start 161.417 102.616) (end 161.417 106.506) (width 0.8) (layer bottom_cu) (net 5))
(segment (start 164.592 100.283) (end 163.292001 101.582999) (width 0.8) (layer bottom_cu) (net 5))
(segment (start 163.292001 101.582999) (end 162.450001 101.582999) (width 0.8) (layer bottom_cu) (net 5))
(segment (start 161.417 106.506) (end 161.417 111.4806) (width 0.8) (layer bottom_cu) (net 5))
(segment (start 161.417 111.4806) (end 157.4038 115.4938) (width 0.8) (layer bottom_cu) (net 5))
(segment (start 159.385 117.475) (end 164.465 117.475) (width 0.8) (layer bottom_cu) (net 5) (status 400))
(segment (start 154.83332 115.4938) (end 157.4038 115.4938) (width 0.8) (layer bottom_cu) (net 5) (status 800))
(segment (start 157.4038 115.4938) (end 159.385 117.475) (width 0.8) (layer bottom_cu) (net 5))
(segment (start 145.7706 118.41988) (end 145.7706 124.587) (width 0.8) (layer bottom_cu) (net 6))
(segment (start 145.7706 124.587) (end 145.7706 126.492) (width 0.8) (layer bottom_cu) (net 6))
(segment (start 145.368 129.54) (end 145.368 127.701523) (width 0.8) (layer bottom_cu) (net 6))
(segment (start 145.368 127.701523) (end 145.7706 127.298923) (width 0.8) (layer bottom_cu) (net 6))
(segment (start 145.7706 127.298923) (end 145.7706 126.492) (width 0.8) (layer bottom_cu) (net 6))
(segment (start 149.86 111.125) (end 149.86 124.841) (width 0.8) (layer bottom_cu) (net 7))
(segment (start 150.542 131.191) (end 150.542 125.523) (width 0.8) (layer bottom_cu) (net 7))
(segment (start 150.542 125.523) (end 149.86 124.841) (width 0.8) (layer bottom_cu) (net 7))
(segment (start 149.225 110.49) (end 149.86 111.125) (width 0.8) (layer bottom_cu) (net 7))
(segment (start 149.225 107.7722) (end 149.225 110.49) (width 0.8) (layer bottom_cu) (net 7) (status 800))
(segment (start 149.225 107.7722) (end 151.54148 107.7722) (width 0.8) (layer bottom_cu) (net 7) (status 800))
(segment (start 151.54148 107.7722) (end 152.6794 108.91012) (width 0.8) (layer bottom_cu) (net 7) (status 400))
(segment (start 139.065 132.240853) (end 140.879459 134.055312) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 135.509 121.031) (end 136.398 121.92) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 139.065 124.46) (end 139.065 132.240853) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 135.89 107.95) (end 135.255 107.95) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 136.525 121.92) (end 139.065 124.46) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 135.255 107.95) (end 133.985 109.22) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 136.398 121.92) (end 136.525 121.92) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 135.509 117.729) (end 135.509 121.031) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 133.985 109.22) (end 133.985 116.205) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 133.985 116.205) (end 135.509 117.729) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 140.879459 134.055312) (end 152.250834 134.055312) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 152.250834 134.055312) (end 154.94 131.366146) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 154.94 131.366146) (end 154.94 120.68048) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 154.94 120.68048) (end 152.6794 118.41988) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 143.61668 111.8362) (end 141.6812 111.8362) (width 0.8) (layer bottom_cu) (net 8) (status 800))
(segment (start 141.6812 111.8362) (end 137.795 107.95) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 135.89 107.95) (end 137.795 107.95) (width 0.8) (layer bottom_cu) (net 8) (status 800))
(segment (start 154.94 121.31548) (end 154.94 121.31548) (width 0.8) (layer bottom_cu) (net 8))
(segment (start 154.83332 111.8362) (end 154.83332 111.23168) (width 0.8) (layer bottom_cu) (net 9) (status 800))
(segment (start 159.385 106.68) (end 159.385 99.695) (width 0.8) (layer bottom_cu) (net 9))
(segment (start 154.83332 111.23168) (end 159.385 106.68) (width 0.8) (layer bottom_cu) (net 9))
(segment (start 157.48 97.79) (end 159.385 99.695) (width 0.8) (layer bottom_cu) (net 9))
(segment (start 155.067 97.79) (end 157.48 97.79) (width 0.8) (layer bottom_cu) (net 9) (status 810))
(zone (net 1) (net_name GND) (layer Cuivre) (tstamp 4EED97A2) (hatch edge 0.508)
(zone (net 1) (net_name GND) (layer bottom_cu) (tstamp 4EED97A2) (hatch edge 0.508)
(connect_pads (clearance 0.635))
(min_thickness 0.381)
(fill yes (arc_segments 32) (thermal_gap 0.254) (thermal_bridge_width 0.50038))
@@ -737,18 +737,18 @@
)
(filled_polygon
(pts
(xy 163.320965 91.767326) (xy 162.925069 92.155016) (xy 162.612015 92.612219) (xy 162.393729 93.12152) (xy 162.278523 93.663521)
(xy 162.270786 94.217576) (xy 162.370814 94.762582) (xy 162.574795 95.277779) (xy 162.87496 95.743545) (xy 163.259877 96.142137)
(xy 163.714883 96.458375) (xy 164.222648 96.680212) (xy 164.763831 96.799199) (xy 165.317818 96.810803) (xy 165.863509 96.714583)
(xy 166.380118 96.514204) (xy 166.847968 96.217297) (xy 167.249238 95.835173) (xy 167.386 95.641301) (xy 167.386 128.988908)
(xy 167.360397 132.027164) (xy 167.3002 131.936561) (xy 166.909756 131.543381) (xy 166.450378 131.233527) (xy 165.939566 131.018801)
(xy 165.396774 130.907382) (xy 164.842679 130.903514) (xy 164.298384 131.007344) (xy 163.784623 131.214916) (xy 163.320965 131.518326)
(xy 162.925069 131.906016) (xy 162.612015 132.363219) (xy 162.393729 132.87252) (xy 162.278523 133.414521) (xy 162.270786 133.968576)
(xy 162.370814 134.513582) (xy 162.574795 135.028779) (xy 162.87496 135.494545) (xy 163.011562 135.636) (xy 129.096914 135.636)
(xy 129.149238 135.586173) (xy 129.468645 135.133385) (xy 129.694021 134.627182) (xy 129.816783 134.086842) (xy 129.825621 133.453945)
(xy 129.717994 132.910389) (xy 129.506839 132.39809) (xy 129.2002 131.936561) (xy 128.809756 131.543381) (xy 128.350378 131.233527)
(xy 127.839566 131.018801) (xy 127.296774 130.907382) (xy 126.742679 130.903514) (xy 126.198384 131.007344) (xy 125.684623 131.214916)
(xy 125.220965 131.518326) (xy 124.825069 131.906016) (xy 124.714 132.068228) (xy 124.714 124.599548) (xy 125.547867 124.599548)
(xy 163.298849 91.785291) (xy 162.905291 92.178849) (xy 162.596075 92.641624) (xy 162.383083 93.155832) (xy 162.2745 93.701713)
(xy 162.2745 94.258287) (xy 162.383083 94.804168) (xy 162.596075 95.318376) (xy 162.905291 95.781151) (xy 163.298849 96.174709)
(xy 163.761624 96.483925) (xy 164.275832 96.696917) (xy 164.821713 96.8055) (xy 165.378287 96.8055) (xy 165.924168 96.696917)
(xy 166.438376 96.483925) (xy 166.901151 96.174709) (xy 167.294709 95.781151) (xy 167.386 95.644524) (xy 167.386001 128.9888)
(xy 167.360388 132.028145) (xy 167.294709 131.929849) (xy 166.901151 131.536291) (xy 166.438376 131.227075) (xy 165.924168 131.014083)
(xy 165.378287 130.9055) (xy 164.821713 130.9055) (xy 164.275832 131.014083) (xy 163.761624 131.227075) (xy 163.298849 131.536291)
(xy 162.905291 131.929849) (xy 162.596075 132.392624) (xy 162.383083 132.906832) (xy 162.2745 133.452713) (xy 162.2745 134.009287)
(xy 162.383083 134.555168) (xy 162.596075 135.069376) (xy 162.905291 135.532151) (xy 163.00914 135.636) (xy 129.09086 135.636)
(xy 129.194709 135.532151) (xy 129.503925 135.069376) (xy 129.716917 134.555168) (xy 129.8255 134.009287) (xy 129.8255 133.452713)
(xy 129.716917 132.906832) (xy 129.503925 132.392624) (xy 129.194709 131.929849) (xy 128.801151 131.536291) (xy 128.338376 131.227075)
(xy 127.824168 131.014083) (xy 127.278287 130.9055) (xy 126.721713 130.9055) (xy 126.175832 131.014083) (xy 125.661624 131.227075)
(xy 125.198849 131.536291) (xy 124.805291 131.929849) (xy 124.714 132.066476) (xy 124.714 124.599548) (xy 125.547867 124.599548)
(xy 125.612114 124.788009) (xy 125.812013 124.89161) (xy 126.028283 124.954221) (xy 126.252613 124.973438) (xy 126.476382 124.94852)
(xy 126.69099 124.880426) (xy 126.863886 124.788009) (xy 126.928133 124.599548) (xy 126.238 123.909414) (xy 125.547867 124.599548)
(xy 124.714 124.599548) (xy 124.714 123.839613) (xy 125.089562 123.839613) (xy 125.11448 124.063382) (xy 125.182574 124.27799)
@@ -770,197 +770,152 @@
(xy 124.714 116.573621) (xy 127.152035 116.573621) (xy 128.27 117.691586) (xy 129.387965 116.573621) (xy 129.251465 116.323579)
(xy 128.949253 116.160013) (xy 128.620939 116.058548) (xy 128.279137 116.023084) (xy 127.936985 116.054983) (xy 127.60763 116.153021)
(xy 127.303729 116.313428) (xy 127.288535 116.323579) (xy 127.152035 116.573621) (xy 124.714 116.573621) (xy 124.714 113.919771)
(xy 124.773042 106.913379) (xy 127.152035 106.913379) (xy 127.288535 107.163421) (xy 127.590747 107.326987) (xy 127.919061 107.428452)
(xy 124.773041 106.913379) (xy 127.152035 106.913379) (xy 127.288535 107.163421) (xy 127.590747 107.326987) (xy 127.919061 107.428452)
(xy 128.260863 107.463916) (xy 128.603015 107.432017) (xy 128.93237 107.333979) (xy 129.236271 107.173572) (xy 129.251465 107.163421)
(xy 129.387965 106.913379) (xy 128.27 105.795414) (xy 127.152035 106.913379) (xy 124.773042 106.913379) (xy 124.783252 105.701863)
(xy 129.387965 106.913379) (xy 128.27 105.795414) (xy 127.152035 106.913379) (xy 124.773041 106.913379) (xy 124.783251 105.701863)
(xy 126.517084 105.701863) (xy 126.548983 106.044015) (xy 126.647021 106.37337) (xy 126.807428 106.677271) (xy 126.817579 106.692465)
(xy 127.067621 106.828965) (xy 128.185586 105.711) (xy 128.354414 105.711) (xy 129.472379 106.828965) (xy 129.722421 106.692465)
(xy 129.885987 106.390253) (xy 129.987452 106.061939) (xy 130.022916 105.720137) (xy 129.991017 105.377985) (xy 129.892979 105.04863)
(xy 129.732572 104.744729) (xy 129.722421 104.729535) (xy 129.472379 104.593035) (xy 128.354414 105.711) (xy 128.185586 105.711)
(xy 127.067621 104.593035) (xy 126.817579 104.729535) (xy 126.654013 105.031747) (xy 126.552548 105.360061) (xy 126.517084 105.701863)
(xy 124.783252 105.701863) (xy 124.793307 104.508621) (xy 127.152035 104.508621) (xy 128.27 105.626586) (xy 129.387965 104.508621)
(xy 124.783251 105.701863) (xy 124.793306 104.508621) (xy 127.152035 104.508621) (xy 128.27 105.626586) (xy 129.387965 104.508621)
(xy 129.251465 104.258579) (xy 128.949253 104.095013) (xy 128.620939 103.993548) (xy 128.279137 103.958084) (xy 127.936985 103.989983)
(xy 127.60763 104.088021) (xy 127.303729 104.248428) (xy 127.288535 104.258579) (xy 127.152035 104.508621) (xy 124.793307 104.508621)
(xy 124.836265 99.411) (xy 126.140506 99.411) (xy 126.140506 102.011) (xy 126.156444 102.172826) (xy 126.203647 102.328434)
(xy 127.60763 104.088021) (xy 127.303729 104.248428) (xy 127.288535 104.258579) (xy 127.152035 104.508621) (xy 124.793306 104.508621)
(xy 124.836264 99.411) (xy 126.140506 99.411) (xy 126.140506 102.011) (xy 126.156444 102.172826) (xy 126.203647 102.328434)
(xy 126.280301 102.471842) (xy 126.383459 102.597541) (xy 126.509158 102.700699) (xy 126.652566 102.777353) (xy 126.808174 102.824556)
(xy 126.97 102.840494) (xy 129.57 102.840494) (xy 129.731826 102.824556) (xy 129.887434 102.777353) (xy 130.030842 102.700699)
(xy 130.156541 102.597541) (xy 130.259699 102.471842) (xy 130.336353 102.328434) (xy 130.383556 102.172826) (xy 130.399494 102.011)
(xy 130.399494 101.0793) (xy 137.817836 101.0793) (xy 137.867301 101.171842) (xy 137.970459 101.297541) (xy 138.096158 101.400699)
(xy 130.399494 101.0475) (xy 137.800838 101.0475) (xy 137.867301 101.171842) (xy 137.970459 101.297541) (xy 138.096158 101.400699)
(xy 138.239566 101.477353) (xy 138.395174 101.524556) (xy 138.557 101.540494) (xy 140.335 101.540494) (xy 140.496826 101.524556)
(xy 140.652434 101.477353) (xy 140.795842 101.400699) (xy 140.921541 101.297541) (xy 141.024699 101.171842) (xy 141.074164 101.0793)
(xy 141.21121 101.0793) (xy 144.5133 104.38139) (xy 144.5133 107.563823) (xy 144.353104 107.720699) (xy 144.149073 108.018678)
(xy 144.006806 108.350612) (xy 143.931722 108.703857) (xy 143.92668 109.064958) (xy 143.991872 109.420162) (xy 144.124815 109.755939)
(xy 144.320446 110.059498) (xy 144.442147 110.185523) (xy 144.163861 110.068543) (xy 143.810101 109.995927) (xy 143.448973 109.993406)
(xy 143.094233 110.061076) (xy 142.759392 110.19636) (xy 142.457206 110.394105) (xy 142.2685 110.5789) (xy 142.201991 110.5789)
(xy 138.684045 107.060955) (xy 138.594337 106.987268) (xy 138.505333 106.912585) (xy 138.499539 106.9094) (xy 138.49443 106.905203)
(xy 138.392035 106.850299) (xy 138.290303 106.794371) (xy 138.284006 106.792373) (xy 138.278175 106.789247) (xy 138.167058 106.755276)
(xy 138.056407 106.720175) (xy 138.049838 106.719438) (xy 138.043515 106.717505) (xy 137.927963 106.705768) (xy 137.812555 106.692823)
(xy 137.799629 106.692732) (xy 137.799388 106.692708) (xy 137.799164 106.692729) (xy 137.795 106.6927) (xy 136.75145 106.6927)
(xy 136.618359 106.602929) (xy 136.34284 106.487112) (xy 136.050072 106.427015) (xy 135.751208 106.424929) (xy 135.45763 106.480932)
(xy 135.18052 106.592891) (xy 134.974799 106.727511) (xy 134.899553 106.750229) (xy 134.788079 106.782615) (xy 134.782212 106.785656)
(xy 134.77588 106.787568) (xy 134.673302 106.84211) (xy 134.570225 106.89554) (xy 134.565059 106.899664) (xy 134.559221 106.902768)
(xy 134.469175 106.976208) (xy 134.378455 107.048629) (xy 134.369254 107.057701) (xy 134.369063 107.057857) (xy 134.368917 107.058033)
(xy 134.365954 107.060955) (xy 133.095955 108.330955) (xy 133.022268 108.420663) (xy 132.947585 108.509667) (xy 132.9444 108.515461)
(xy 132.940203 108.52057) (xy 132.885299 108.622965) (xy 132.829371 108.724697) (xy 132.827373 108.730994) (xy 132.824247 108.736825)
(xy 132.790276 108.847942) (xy 132.755175 108.958593) (xy 132.754438 108.965162) (xy 132.752505 108.971485) (xy 132.740768 109.087037)
(xy 132.727823 109.202445) (xy 132.727732 109.215371) (xy 132.727708 109.215612) (xy 132.727729 109.215836) (xy 132.7277 109.22)
(xy 132.7277 113.292009) (xy 131.322645 111.886955) (xy 131.232937 111.813268) (xy 131.143933 111.738585) (xy 131.138139 111.7354)
(xy 131.13303 111.731203) (xy 131.030635 111.676299) (xy 130.928903 111.620371) (xy 130.922606 111.618373) (xy 130.916775 111.615247)
(xy 130.805658 111.581276) (xy 130.695007 111.546175) (xy 130.688438 111.545438) (xy 130.682115 111.543505) (xy 130.566563 111.531768)
(xy 130.451155 111.518823) (xy 130.438229 111.518732) (xy 130.437988 111.518708) (xy 130.437764 111.518729) (xy 130.4336 111.5187)
(xy 130.399494 111.5187) (xy 130.399494 111.476) (xy 130.383556 111.314174) (xy 130.336353 111.158566) (xy 130.259699 111.015158)
(xy 130.156541 110.889459) (xy 130.030842 110.786301) (xy 129.887434 110.709647) (xy 129.731826 110.662444) (xy 129.57 110.646506)
(xy 126.97 110.646506) (xy 126.808174 110.662444) (xy 126.652566 110.709647) (xy 126.509158 110.786301) (xy 126.383459 110.889459)
(xy 126.280301 111.015158) (xy 126.203647 111.158566) (xy 126.156444 111.314174) (xy 126.140506 111.476) (xy 126.140506 114.076)
(xy 126.156444 114.237826) (xy 126.203647 114.393434) (xy 126.280301 114.536842) (xy 126.383459 114.662541) (xy 126.509158 114.765699)
(xy 126.652566 114.842353) (xy 126.808174 114.889556) (xy 126.97 114.905494) (xy 129.57 114.905494) (xy 129.731826 114.889556)
(xy 129.887434 114.842353) (xy 130.030842 114.765699) (xy 130.156541 114.662541) (xy 130.259699 114.536842) (xy 130.314266 114.434756)
(xy 130.8227 114.943191) (xy 130.8227 121.059172) (xy 130.834032 121.174749) (xy 130.844156 121.290454) (xy 130.845999 121.296799)
(xy 130.846645 121.303383) (xy 130.880229 121.414619) (xy 130.912615 121.526093) (xy 130.915656 121.53196) (xy 130.917568 121.538292)
(xy 130.97211 121.64087) (xy 131.02554 121.743947) (xy 131.029664 121.749113) (xy 131.032768 121.754951) (xy 131.106183 121.844967)
(xy 131.178628 121.935717) (xy 131.187699 121.944915) (xy 131.187857 121.945109) (xy 131.188036 121.945257) (xy 131.190955 121.948217)
(xy 132.460228 123.217491) (xy 132.398309 123.361959) (xy 132.33617 123.654299) (xy 132.331997 123.953142) (xy 132.385949 124.247104)
(xy 132.495971 124.524988) (xy 132.6007 124.687496) (xy 132.6007 124.968) (xy 132.612032 125.083577) (xy 132.622156 125.199282)
(xy 132.623999 125.205627) (xy 132.624645 125.212211) (xy 132.658229 125.323447) (xy 132.690615 125.434921) (xy 132.693656 125.440788)
(xy 132.695568 125.44712) (xy 132.75011 125.549698) (xy 132.80354 125.652775) (xy 132.807664 125.657941) (xy 132.810768 125.663779)
(xy 132.884183 125.753795) (xy 132.956628 125.844545) (xy 132.965699 125.853743) (xy 132.965857 125.853937) (xy 132.966036 125.854085)
(xy 132.968955 125.857045) (xy 133.095955 125.984045) (xy 133.185685 126.057751) (xy 133.274667 126.132415) (xy 133.280458 126.135598)
(xy 133.285569 126.139797) (xy 133.38795 126.194693) (xy 133.489697 126.250629) (xy 133.495999 126.252628) (xy 133.501825 126.255752)
(xy 133.612896 126.28971) (xy 133.723593 126.324825) (xy 133.730162 126.325562) (xy 133.736485 126.327495) (xy 133.852037 126.339232)
(xy 133.967445 126.352177) (xy 133.980371 126.352268) (xy 133.980612 126.352292) (xy 133.980836 126.352271) (xy 133.985 126.3523)
(xy 136.298562 126.3523) (xy 136.412904 126.43177) (xy 136.686779 126.551423) (xy 136.978679 126.615602) (xy 137.277486 126.621861)
(xy 137.571817 126.569962) (xy 137.8077 126.478469) (xy 137.8077 132.240853) (xy 137.819032 132.35643) (xy 137.829156 132.472135)
(xy 137.830999 132.47848) (xy 137.831645 132.485064) (xy 137.865229 132.5963) (xy 137.897615 132.707774) (xy 137.900656 132.713641)
(xy 137.902568 132.719973) (xy 137.95711 132.822551) (xy 138.01054 132.925628) (xy 138.014664 132.930794) (xy 138.017768 132.936632)
(xy 138.091183 133.026648) (xy 138.163628 133.117398) (xy 138.172699 133.126596) (xy 138.172857 133.12679) (xy 138.173036 133.126938)
(xy 138.175955 133.129898) (xy 139.990414 134.944358) (xy 140.080152 135.018069) (xy 140.169126 135.092727) (xy 140.174919 135.095912)
(xy 140.180029 135.100109) (xy 140.282405 135.155003) (xy 140.384156 135.210941) (xy 140.390456 135.212939) (xy 140.396285 135.216065)
(xy 140.507374 135.250028) (xy 140.618052 135.285137) (xy 140.624622 135.285874) (xy 140.630945 135.287807) (xy 140.746536 135.299549)
(xy 140.861904 135.312489) (xy 140.87482 135.312579) (xy 140.875071 135.312605) (xy 140.875305 135.312583) (xy 140.879459 135.312612)
(xy 152.250834 135.312612) (xy 152.366411 135.30128) (xy 152.482116 135.291156) (xy 152.488461 135.289313) (xy 152.495045 135.288667)
(xy 152.606281 135.255083) (xy 152.717755 135.222697) (xy 152.723622 135.219656) (xy 152.729954 135.217744) (xy 152.832532 135.163202)
(xy 152.935609 135.109772) (xy 152.940775 135.105648) (xy 152.946613 135.102544) (xy 153.036629 135.029129) (xy 153.127379 134.956684)
(xy 153.136577 134.947613) (xy 153.136771 134.947455) (xy 153.136919 134.947276) (xy 153.139879 134.944357) (xy 155.829045 132.255191)
(xy 155.902732 132.165483) (xy 155.977415 132.076479) (xy 155.9806 132.070685) (xy 155.984797 132.065576) (xy 156.039701 131.963181)
(xy 156.095629 131.861449) (xy 156.097627 131.855152) (xy 156.100753 131.849321) (xy 156.134724 131.738204) (xy 156.169825 131.627553)
(xy 156.170562 131.620984) (xy 156.172495 131.614661) (xy 156.184232 131.499109) (xy 156.197177 131.383701) (xy 156.197268 131.370775)
(xy 156.197292 131.370534) (xy 156.197271 131.37031) (xy 156.1973 131.366146) (xy 156.1973 125.869548) (xy 163.774867 125.869548)
(xy 140.652434 101.477353) (xy 140.795842 101.400699) (xy 140.921541 101.297541) (xy 141.024699 101.171842) (xy 141.091162 101.0475)
(xy 141.224382 101.0475) (xy 144.545101 104.36822) (xy 144.5451 107.572041) (xy 144.335391 107.78175) (xy 144.13397 108.083197)
(xy 143.99523 108.418146) (xy 143.9245 108.773727) (xy 143.9245 109.136273) (xy 143.99523 109.491854) (xy 144.13397 109.826803)
(xy 144.335391 110.12825) (xy 144.442944 110.235803) (xy 144.151854 110.11523) (xy 143.796273 110.0445) (xy 143.433727 110.0445)
(xy 143.078146 110.11523) (xy 142.743197 110.25397) (xy 142.44175 110.455391) (xy 142.286441 110.6107) (xy 142.188819 110.6107)
(xy 138.704131 107.126013) (xy 138.665752 107.079248) (xy 138.479145 106.926104) (xy 138.266247 106.812308) (xy 138.03524 106.742233)
(xy 137.855197 106.7245) (xy 137.795 106.718571) (xy 137.734803 106.7245) (xy 136.799037 106.7245) (xy 136.611885 106.599449)
(xy 136.334534 106.484566) (xy 136.040101 106.426) (xy 135.739899 106.426) (xy 135.445466 106.484566) (xy 135.168115 106.599449)
(xy 134.918507 106.766232) (xy 134.911044 106.773695) (xy 134.783753 106.812308) (xy 134.570855 106.926104) (xy 134.384248 107.079248)
(xy 134.345869 107.126013) (xy 133.161013 108.310869) (xy 133.114248 108.349248) (xy 132.961104 108.535856) (xy 132.847308 108.748754)
(xy 132.839733 108.773727) (xy 132.777233 108.97976) (xy 132.753571 109.22) (xy 132.7595 109.280197) (xy 132.759501 113.368783)
(xy 131.342731 111.952013) (xy 131.304352 111.905248) (xy 131.117745 111.752104) (xy 130.904847 111.638308) (xy 130.67384 111.568233)
(xy 130.493797 111.5505) (xy 130.4336 111.544571) (xy 130.399494 111.54793) (xy 130.399494 111.476) (xy 130.383556 111.314174)
(xy 130.336353 111.158566) (xy 130.259699 111.015158) (xy 130.156541 110.889459) (xy 130.030842 110.786301) (xy 129.887434 110.709647)
(xy 129.731826 110.662444) (xy 129.57 110.646506) (xy 126.97 110.646506) (xy 126.808174 110.662444) (xy 126.652566 110.709647)
(xy 126.509158 110.786301) (xy 126.383459 110.889459) (xy 126.280301 111.015158) (xy 126.203647 111.158566) (xy 126.156444 111.314174)
(xy 126.140506 111.476) (xy 126.140506 114.076) (xy 126.156444 114.237826) (xy 126.203647 114.393434) (xy 126.280301 114.536842)
(xy 126.383459 114.662541) (xy 126.509158 114.765699) (xy 126.652566 114.842353) (xy 126.808174 114.889556) (xy 126.97 114.905494)
(xy 129.57 114.905494) (xy 129.731826 114.889556) (xy 129.887434 114.842353) (xy 130.030842 114.765699) (xy 130.156541 114.662541)
(xy 130.259699 114.536842) (xy 130.329931 114.405449) (xy 130.854501 114.930019) (xy 130.8545 120.998975) (xy 130.848571 121.059172)
(xy 130.8545 121.119368) (xy 130.872233 121.299411) (xy 130.942308 121.530418) (xy 131.056104 121.743316) (xy 131.209248 121.929924)
(xy 131.256012 121.968302) (xy 132.47329 123.185581) (xy 132.392566 123.380466) (xy 132.334 123.674899) (xy 132.334 123.975101)
(xy 132.392566 124.269534) (xy 132.507449 124.546885) (xy 132.6325 124.734037) (xy 132.6325 124.907803) (xy 132.626571 124.968)
(xy 132.6325 125.028196) (xy 132.650233 125.208239) (xy 132.720308 125.439246) (xy 132.834104 125.652144) (xy 132.987248 125.838752)
(xy 133.034015 125.877133) (xy 133.075867 125.918984) (xy 133.114248 125.965752) (xy 133.300855 126.118896) (xy 133.513753 126.232692)
(xy 133.74476 126.302767) (xy 133.984999 126.326429) (xy 134.045196 126.3205) (xy 136.250963 126.3205) (xy 136.438115 126.445551)
(xy 136.715466 126.560434) (xy 137.009899 126.619) (xy 137.310101 126.619) (xy 137.604534 126.560434) (xy 137.8395 126.463107)
(xy 137.839501 132.180646) (xy 137.833571 132.240853) (xy 137.857233 132.481093) (xy 137.892568 132.597575) (xy 137.927309 132.7121)
(xy 138.041105 132.924998) (xy 138.194249 133.111605) (xy 138.241008 133.149979) (xy 139.970333 134.879305) (xy 140.008707 134.926064)
(xy 140.195314 135.079208) (xy 140.334053 135.153366) (xy 140.408211 135.193004) (xy 140.639219 135.263079) (xy 140.879459 135.286741)
(xy 140.939656 135.280812) (xy 152.190637 135.280812) (xy 152.250834 135.286741) (xy 152.311031 135.280812) (xy 152.491074 135.263079)
(xy 152.722081 135.193004) (xy 152.934979 135.079208) (xy 153.121586 134.926064) (xy 153.159965 134.879299) (xy 155.763994 132.275271)
(xy 155.810752 132.236898) (xy 155.963896 132.050291) (xy 156.077692 131.837393) (xy 156.147767 131.606386) (xy 156.1655 131.426343)
(xy 156.1655 131.426342) (xy 156.171429 131.366147) (xy 156.1655 131.30595) (xy 156.1655 125.869548) (xy 163.774867 125.869548)
(xy 163.839114 126.058009) (xy 164.039013 126.16161) (xy 164.255283 126.224221) (xy 164.479613 126.243438) (xy 164.703382 126.21852)
(xy 164.91799 126.150426) (xy 165.090886 126.058009) (xy 165.155133 125.869548) (xy 164.465 125.179414) (xy 163.774867 125.869548)
(xy 156.1973 125.869548) (xy 156.1973 125.109613) (xy 163.316562 125.109613) (xy 163.34148 125.333382) (xy 163.409574 125.54799)
(xy 156.1655 125.869548) (xy 156.1655 125.109613) (xy 163.316562 125.109613) (xy 163.34148 125.333382) (xy 163.409574 125.54799)
(xy 163.501991 125.720886) (xy 163.690452 125.785133) (xy 164.380586 125.095) (xy 164.549414 125.095) (xy 165.239548 125.785133)
(xy 165.428009 125.720886) (xy 165.53161 125.520987) (xy 165.594221 125.304717) (xy 165.613438 125.080387) (xy 165.58852 124.856618)
(xy 165.520426 124.64201) (xy 165.428009 124.469114) (xy 165.239548 124.404867) (xy 164.549414 125.095) (xy 164.380586 125.095)
(xy 163.690452 124.404867) (xy 163.501991 124.469114) (xy 163.39839 124.669013) (xy 163.335779 124.885283) (xy 163.316562 125.109613)
(xy 156.1973 125.109613) (xy 156.1973 124.320452) (xy 163.774867 124.320452) (xy 164.465 125.010586) (xy 165.155133 124.320452)
(xy 156.1655 125.109613) (xy 156.1655 124.320452) (xy 163.774867 124.320452) (xy 164.465 125.010586) (xy 165.155133 124.320452)
(xy 165.090886 124.131991) (xy 164.890987 124.02839) (xy 164.674717 123.965779) (xy 164.450387 123.946562) (xy 164.226618 123.97148)
(xy 164.01201 124.039574) (xy 163.839114 124.131991) (xy 163.774867 124.320452) (xy 156.1973 124.320452) (xy 156.1973 120.68048)
(xy 156.185963 120.564858) (xy 156.175844 120.449198) (xy 156.174001 120.442853) (xy 156.173355 120.436269) (xy 156.139771 120.325033)
(xy 156.107385 120.213559) (xy 156.104344 120.207692) (xy 156.102432 120.20136) (xy 156.04789 120.098782) (xy 155.99446 119.995705)
(xy 155.990336 119.990539) (xy 155.987232 119.984701) (xy 155.913817 119.894685) (xy 155.841372 119.803935) (xy 155.832301 119.794737)
(xy 155.832143 119.794543) (xy 155.831964 119.794395) (xy 155.829045 119.791435) (xy 154.517618 118.480008) (xy 154.520979 118.239312)
(xy 154.450834 117.885053) (xy 154.313215 117.551165) (xy 154.113365 117.250367) (xy 154.005587 117.141833) (xy 154.261512 117.253644)
(xy 154.614224 117.331193) (xy 154.975282 117.338756) (xy 155.330932 117.276046) (xy 155.667628 117.14545) (xy 155.972546 116.951943)
(xy 156.183452 116.7511) (xy 156.88301 116.7511) (xy 158.495955 118.364045) (xy 158.585663 118.437732) (xy 158.674667 118.512415)
(xy 158.680461 118.5156) (xy 158.68557 118.519797) (xy 158.787946 118.574691) (xy 158.889697 118.630629) (xy 158.895997 118.632627)
(xy 158.901826 118.635753) (xy 159.012927 118.66972) (xy 159.123593 118.704825) (xy 159.130162 118.705562) (xy 159.136485 118.707495)
(xy 159.252037 118.719232) (xy 159.367445 118.732177) (xy 159.380371 118.732268) (xy 159.380612 118.732292) (xy 159.380836 118.732271)
(xy 159.385 118.7323) (xy 163.603562 118.7323) (xy 163.717904 118.81177) (xy 163.991779 118.931423) (xy 164.283679 118.995602)
(xy 164.582486 119.001861) (xy 164.876817 118.949962) (xy 165.155462 118.841883) (xy 165.407808 118.681739) (xy 165.624243 118.475631)
(xy 165.796522 118.23141) (xy 165.918084 117.958377) (xy 165.984299 117.666932) (xy 165.989065 117.325564) (xy 165.931014 117.032384)
(xy 165.817123 116.756063) (xy 165.65173 116.507127) (xy 165.441135 116.295056) (xy 165.193359 116.127929) (xy 164.91784 116.012112)
(xy 164.625072 115.952015) (xy 164.326208 115.949929) (xy 164.03263 116.005932) (xy 163.75552 116.117891) (xy 163.602996 116.2177)
(xy 159.90579 116.2177) (xy 159.18189 115.4938) (xy 162.306045 112.369645) (xy 162.379732 112.279937) (xy 162.454415 112.190933)
(xy 162.4576 112.185139) (xy 162.461797 112.18003) (xy 162.516691 112.077654) (xy 162.572629 111.975903) (xy 162.574627 111.969603)
(xy 162.577753 111.963774) (xy 162.61172 111.852673) (xy 162.646825 111.742007) (xy 162.647562 111.735438) (xy 162.649495 111.729115)
(xy 162.661237 111.613518) (xy 162.674177 111.498155) (xy 162.674267 111.485239) (xy 162.674293 111.484988) (xy 162.674271 111.484754)
(xy 162.6743 111.4806) (xy 162.6743 105.453815) (xy 162.8475 105.453815) (xy 162.8475 106.626779) (xy 162.864582 106.712655)
(xy 164.01201 124.039574) (xy 163.839114 124.131991) (xy 163.774867 124.320452) (xy 156.1655 124.320452) (xy 156.1655 121.375677)
(xy 156.171429 121.31548) (xy 156.1655 121.255283) (xy 156.1655 120.740676) (xy 156.171429 120.680479) (xy 156.147767 120.440239)
(xy 156.106894 120.3055) (xy 156.077692 120.209233) (xy 155.963896 119.996335) (xy 155.810752 119.809728) (xy 155.763987 119.771349)
(xy 154.5155 118.522862) (xy 154.5155 118.283727) (xy 154.44477 117.928146) (xy 154.30603 117.593197) (xy 154.104609 117.29175)
(xy 153.997056 117.184197) (xy 154.288146 117.30477) (xy 154.643727 117.3755) (xy 155.006273 117.3755) (xy 155.361854 117.30477)
(xy 155.696803 117.16603) (xy 155.99825 116.964609) (xy 156.243559 116.7193) (xy 156.896182 116.7193) (xy 158.475874 118.298993)
(xy 158.514248 118.345752) (xy 158.700855 118.498896) (xy 158.913753 118.612692) (xy 159.065646 118.658768) (xy 159.144759 118.682767)
(xy 159.385 118.706429) (xy 159.445197 118.7005) (xy 163.555963 118.7005) (xy 163.743115 118.825551) (xy 164.020466 118.940434)
(xy 164.314899 118.999) (xy 164.615101 118.999) (xy 164.909534 118.940434) (xy 165.186885 118.825551) (xy 165.436493 118.658768)
(xy 165.648768 118.446493) (xy 165.815551 118.196885) (xy 165.930434 117.919534) (xy 165.989 117.625101) (xy 165.989 117.324899)
(xy 165.930434 117.030466) (xy 165.815551 116.753115) (xy 165.648768 116.503507) (xy 165.436493 116.291232) (xy 165.186885 116.124449)
(xy 164.909534 116.009566) (xy 164.615101 115.951) (xy 164.314899 115.951) (xy 164.020466 116.009566) (xy 163.743115 116.124449)
(xy 163.555963 116.2495) (xy 159.892619 116.2495) (xy 159.136918 115.4938) (xy 162.240993 112.389726) (xy 162.287752 112.351352)
(xy 162.440896 112.164745) (xy 162.554692 111.951847) (xy 162.615283 111.752104) (xy 162.624767 111.720841) (xy 162.648429 111.4806)
(xy 162.6425 111.420403) (xy 162.6425 105.453815) (xy 162.8475 105.453815) (xy 162.8475 106.626779) (xy 162.864582 106.712655)
(xy 162.898089 106.793549) (xy 162.946734 106.866352) (xy 163.008647 106.928265) (xy 163.08145 106.976911) (xy 163.162344 107.010418)
(xy 163.24822 107.0275) (xy 164.421185 107.0275) (xy 164.53231 106.916375) (xy 164.53231 105.34269) (xy 164.65169 105.34269)
(xy 164.65169 106.916375) (xy 164.762815 107.0275) (xy 165.93578 107.0275) (xy 166.021656 107.010418) (xy 166.10255 106.976911)
(xy 166.175353 106.928265) (xy 166.237266 106.866352) (xy 166.285911 106.793549) (xy 166.319418 106.712655) (xy 166.3365 106.626779)
(xy 166.3365 105.453815) (xy 166.225375 105.34269) (xy 164.65169 105.34269) (xy 164.53231 105.34269) (xy 162.958625 105.34269)
(xy 162.8475 105.453815) (xy 162.6743 105.453815) (xy 162.6743 103.939221) (xy 162.8475 103.939221) (xy 162.8475 105.112185)
(xy 162.8475 105.453815) (xy 162.6425 105.453815) (xy 162.6425 103.939221) (xy 162.8475 103.939221) (xy 162.8475 105.112185)
(xy 162.958625 105.22331) (xy 164.53231 105.22331) (xy 164.53231 103.649625) (xy 164.65169 103.649625) (xy 164.65169 105.22331)
(xy 166.225375 105.22331) (xy 166.3365 105.112185) (xy 166.3365 103.939221) (xy 166.319418 103.853345) (xy 166.285911 103.772451)
(xy 166.237266 103.699648) (xy 166.175353 103.637735) (xy 166.10255 103.589089) (xy 166.021656 103.555582) (xy 165.93578 103.5385)
(xy 164.762815 103.5385) (xy 164.65169 103.649625) (xy 164.53231 103.649625) (xy 164.421185 103.5385) (xy 163.24822 103.5385)
(xy 163.162344 103.555582) (xy 163.08145 103.589089) (xy 163.008647 103.637735) (xy 162.946734 103.699648) (xy 162.898089 103.772451)
(xy 162.864582 103.853345) (xy 162.8475 103.939221) (xy 162.6743 103.939221) (xy 162.6743 103.13679) (xy 162.970791 102.840299)
(xy 163.292001 102.840299) (xy 163.407578 102.828967) (xy 163.523283 102.818843) (xy 163.529628 102.817) (xy 163.536212 102.816354)
(xy 163.647448 102.78277) (xy 163.758922 102.750384) (xy 163.764789 102.747343) (xy 163.771121 102.745431) (xy 163.873699 102.690889)
(xy 163.976776 102.637459) (xy 163.981942 102.633335) (xy 163.98778 102.630231) (xy 164.077796 102.556816) (xy 164.168546 102.484371)
(xy 164.177744 102.4753) (xy 164.177938 102.475142) (xy 164.178086 102.474963) (xy 164.181046 102.472044) (xy 164.265513 102.387577)
(xy 164.339115 102.40376) (xy 164.755855 102.412489) (xy 165.166355 102.340107) (xy 165.554977 102.189371) (xy 165.90692 101.966021)
(xy 166.208778 101.678565) (xy 166.449053 101.337953) (xy 166.618594 100.957158) (xy 166.710943 100.550685) (xy 166.717591 100.074584)
(xy 166.636628 99.665691) (xy 166.477785 99.28031) (xy 166.247114 98.933122) (xy 165.9534 98.63735) (xy 165.607831 98.404261)
(xy 165.223569 98.242732) (xy 164.81525 98.158916) (xy 164.398428 98.156006) (xy 163.98898 98.234113) (xy 163.6025 98.390261)
(xy 163.25371 98.618502) (xy 162.955895 98.910145) (xy 162.720398 99.254078) (xy 162.556191 99.637203) (xy 162.469526 100.044926)
(xy 162.465605 100.325699) (xy 162.450001 100.325699) (xy 162.334424 100.337031) (xy 162.218719 100.347155) (xy 162.212374 100.348998)
(xy 162.20579 100.349644) (xy 162.094554 100.383228) (xy 161.98308 100.415614) (xy 161.977213 100.418655) (xy 161.970881 100.420567)
(xy 161.868303 100.475109) (xy 161.765226 100.528539) (xy 161.76006 100.532663) (xy 161.754222 100.535767) (xy 161.664206 100.609182)
(xy 161.573456 100.681627) (xy 161.564258 100.690698) (xy 161.564064 100.690856) (xy 161.563916 100.691035) (xy 161.560956 100.693954)
(xy 160.6423 101.61261) (xy 160.6423 99.695) (xy 160.630972 99.579473) (xy 160.620845 99.463718) (xy 160.619 99.457368)
(xy 160.618355 99.450789) (xy 160.584784 99.339595) (xy 160.552385 99.228079) (xy 160.549344 99.222212) (xy 160.547432 99.21588)
(xy 160.49289 99.113302) (xy 160.43946 99.010225) (xy 160.435336 99.005059) (xy 160.432232 98.999221) (xy 160.358817 98.909205)
(xy 160.286372 98.818455) (xy 160.277301 98.809257) (xy 160.277143 98.809063) (xy 160.276964 98.808915) (xy 160.274045 98.805955)
(xy 158.369045 96.900955) (xy 158.279337 96.827268) (xy 158.190333 96.752585) (xy 158.184539 96.7494) (xy 158.17943 96.745203)
(xy 158.077035 96.690299) (xy 157.975303 96.634371) (xy 157.969006 96.632373) (xy 157.963175 96.629247) (xy 157.852058 96.595276)
(xy 157.741407 96.560175) (xy 157.734838 96.559438) (xy 157.728515 96.557505) (xy 157.612963 96.545768) (xy 157.497555 96.532823)
(xy 157.484629 96.532732) (xy 157.484388 96.532708) (xy 157.484164 96.532729) (xy 157.48 96.5327) (xy 155.92845 96.5327)
(xy 155.795359 96.442929) (xy 155.51984 96.327112) (xy 155.227072 96.267015) (xy 154.928208 96.264929) (xy 154.63463 96.320932)
(xy 154.35752 96.432891) (xy 154.107435 96.596542) (xy 153.893899 96.805652) (xy 153.725047 97.052255) (xy 153.607309 97.326959)
(xy 153.54517 97.619299) (xy 153.540997 97.918142) (xy 153.594949 98.212104) (xy 153.704971 98.489988) (xy 153.866872 98.74121)
(xy 154.074486 98.9562) (xy 154.319904 99.12677) (xy 154.593779 99.246423) (xy 154.885679 99.310602) (xy 155.184486 99.316861)
(xy 155.478817 99.264962) (xy 155.757462 99.156883) (xy 155.930137 99.0473) (xy 156.95921 99.0473) (xy 158.1277 100.21579)
(xy 158.1277 106.159209) (xy 154.168184 110.118726) (xy 154.016172 110.180142) (xy 154.080151 110.119216) (xy 154.288322 109.824115)
(xy 154.43521 109.4942) (xy 154.515219 109.142038) (xy 154.520979 108.729552) (xy 154.450834 108.375293) (xy 154.313215 108.041405)
(xy 154.113365 107.740607) (xy 153.858896 107.484355) (xy 153.5595 107.282409) (xy 153.226581 107.142463) (xy 152.872821 107.069847)
(xy 152.61542 107.06805) (xy 152.430525 106.883155) (xy 152.340817 106.809468) (xy 152.251813 106.734785) (xy 152.246019 106.7316)
(xy 152.24091 106.727403) (xy 152.138515 106.672499) (xy 152.036783 106.616571) (xy 152.030486 106.614573) (xy 152.024655 106.611447)
(xy 151.913538 106.577476) (xy 151.802887 106.542375) (xy 151.796318 106.541638) (xy 151.789995 106.539705) (xy 151.674443 106.527968)
(xy 151.559035 106.515023) (xy 151.546109 106.514932) (xy 151.545868 106.514908) (xy 151.545644 106.514929) (xy 151.54148 106.5149)
(xy 150.571789 106.5149) (xy 150.404496 106.346435) (xy 150.1051 106.144489) (xy 149.772181 106.004543) (xy 149.418421 105.931927)
(xy 149.057293 105.929406) (xy 148.702553 105.997076) (xy 148.367712 106.13236) (xy 148.065526 106.330105) (xy 147.807504 106.582779)
(xy 147.603473 106.880758) (xy 147.461206 107.212692) (xy 147.386122 107.565937) (xy 147.38108 107.927038) (xy 147.401175 108.036529)
(xy 147.204565 107.740607) (xy 147.0279 107.562704) (xy 147.0279 103.8606) (xy 147.016572 103.745073) (xy 147.006445 103.629318)
(xy 147.0046 103.622968) (xy 147.003955 103.616389) (xy 146.970384 103.505195) (xy 146.937985 103.393679) (xy 146.934944 103.387812)
(xy 146.933032 103.38148) (xy 146.87849 103.278902) (xy 146.82506 103.175825) (xy 146.820936 103.170659) (xy 146.817832 103.164821)
(xy 146.744417 103.074805) (xy 146.671972 102.984055) (xy 146.662901 102.974857) (xy 146.662743 102.974663) (xy 146.662564 102.974515)
(xy 146.659645 102.971555) (xy 142.621045 98.932955) (xy 142.531337 98.859268) (xy 142.442333 98.784585) (xy 142.436539 98.7814)
(xy 142.43143 98.777203) (xy 142.329035 98.722299) (xy 142.227303 98.666371) (xy 142.221006 98.664373) (xy 142.215175 98.661247)
(xy 142.104058 98.627276) (xy 141.993407 98.592175) (xy 141.986838 98.591438) (xy 141.980515 98.589505) (xy 141.864963 98.577768)
(xy 141.749555 98.564823) (xy 141.736629 98.564732) (xy 141.736388 98.564708) (xy 141.736164 98.564729) (xy 141.732 98.5647)
(xy 141.074164 98.5647) (xy 141.074083 98.564548) (xy 146.756867 98.564548) (xy 146.821114 98.753009) (xy 147.021013 98.85661)
(xy 147.237283 98.919221) (xy 147.461613 98.938438) (xy 147.685382 98.91352) (xy 147.89999 98.845426) (xy 148.072886 98.753009)
(xy 148.137133 98.564548) (xy 147.447 97.874414) (xy 146.756867 98.564548) (xy 141.074083 98.564548) (xy 141.024699 98.472158)
(xy 140.921541 98.346459) (xy 140.795842 98.243301) (xy 140.652434 98.166647) (xy 140.496826 98.119444) (xy 140.335 98.103506)
(xy 138.557 98.103506) (xy 138.395174 98.119444) (xy 138.239566 98.166647) (xy 138.096158 98.243301) (xy 137.970459 98.346459)
(xy 137.867301 98.472158) (xy 137.817836 98.5647) (xy 129.159 98.5647) (xy 129.043473 98.576028) (xy 128.980855 98.581506)
(xy 126.97 98.581506) (xy 126.808174 98.597444) (xy 126.652566 98.644647) (xy 126.509158 98.721301) (xy 126.383459 98.824459)
(xy 126.280301 98.950158) (xy 126.203647 99.093566) (xy 126.156444 99.249174) (xy 126.140506 99.411) (xy 124.836265 99.411)
(xy 124.849802 97.804613) (xy 146.298562 97.804613) (xy 146.32348 98.028382) (xy 146.391574 98.24299) (xy 146.483991 98.415886)
(xy 146.672452 98.480133) (xy 147.362586 97.79) (xy 147.531414 97.79) (xy 148.221548 98.480133) (xy 148.410009 98.415886)
(xy 148.51361 98.215987) (xy 148.576221 97.999717) (xy 148.595438 97.775387) (xy 148.57052 97.551618) (xy 148.502426 97.33701)
(xy 148.410009 97.164114) (xy 148.221548 97.099867) (xy 147.531414 97.79) (xy 147.362586 97.79) (xy 146.672452 97.099867)
(xy 146.483991 97.164114) (xy 146.38039 97.364013) (xy 146.317779 97.580283) (xy 146.298562 97.804613) (xy 124.849802 97.804613)
(xy 124.856452 97.015452) (xy 146.756867 97.015452) (xy 147.447 97.705586) (xy 148.137133 97.015452) (xy 148.072886 96.826991)
(xy 147.872987 96.72339) (xy 147.656717 96.660779) (xy 147.432387 96.641562) (xy 147.208618 96.66648) (xy 146.99401 96.734574)
(xy 146.821114 96.826991) (xy 146.756867 97.015452) (xy 124.856452 97.015452) (xy 124.866373 95.838205) (xy 125.159877 96.142137)
(xy 125.614883 96.458375) (xy 126.122648 96.680212) (xy 126.663831 96.799199) (xy 127.217818 96.810803) (xy 127.763509 96.714583)
(xy 128.280118 96.514204) (xy 128.747968 96.217297) (xy 129.149238 95.835173) (xy 129.278386 95.652093) (xy 138.620321 95.652093)
(xy 138.707468 95.860053) (xy 138.93978 95.982651) (xy 139.191546 96.057571) (xy 139.45309 96.081934) (xy 139.714363 96.054805)
(xy 139.965321 95.977224) (xy 140.184532 95.860053) (xy 140.271679 95.652093) (xy 139.446 94.826414) (xy 138.620321 95.652093)
(xy 129.278386 95.652093) (xy 129.468645 95.382385) (xy 129.694021 94.876182) (xy 129.722895 94.74909) (xy 138.106066 94.74909)
(xy 138.133195 95.010363) (xy 138.210776 95.261321) (xy 138.327947 95.480532) (xy 138.535907 95.567679) (xy 139.361586 94.742)
(xy 139.530414 94.742) (xy 140.356093 95.567679) (xy 140.564053 95.480532) (xy 140.686651 95.24822) (xy 140.761571 94.996454)
(xy 140.785934 94.73491) (xy 140.758805 94.473637) (xy 140.681224 94.222679) (xy 140.564053 94.003468) (xy 140.356093 93.916321)
(xy 139.530414 94.742) (xy 139.361586 94.742) (xy 138.535907 93.916321) (xy 138.327947 94.003468) (xy 138.205349 94.23578)
(xy 138.130429 94.487546) (xy 138.106066 94.74909) (xy 129.722895 94.74909) (xy 129.816783 94.335842) (xy 129.82382 93.831907)
(xy 138.620321 93.831907) (xy 139.446 94.657586) (xy 140.271679 93.831907) (xy 140.184532 93.623947) (xy 139.95222 93.501349)
(xy 139.700454 93.426429) (xy 139.43891 93.402066) (xy 139.177637 93.429195) (xy 138.926679 93.506776) (xy 138.707468 93.623947)
(xy 138.620321 93.831907) (xy 129.82382 93.831907) (xy 129.825621 93.702945) (xy 129.717994 93.159389) (xy 129.506839 92.64709)
(xy 129.2002 92.185561) (xy 128.809756 91.792381) (xy 128.6639 91.694) (xy 163.433019 91.694)
(xy 162.864582 103.853345) (xy 162.8475 103.939221) (xy 162.6425 103.939221) (xy 162.6425 103.123618) (xy 162.95762 102.808499)
(xy 163.231804 102.808499) (xy 163.292001 102.814428) (xy 163.352198 102.808499) (xy 163.532241 102.790766) (xy 163.763248 102.720691)
(xy 163.976146 102.606895) (xy 164.162753 102.453751) (xy 164.201132 102.406986) (xy 164.229986 102.378132) (xy 164.382657 102.4085)
(xy 164.801343 102.4085) (xy 165.211985 102.326818) (xy 165.598802 102.166593) (xy 165.946927 101.933983) (xy 166.242983 101.637927)
(xy 166.475593 101.289802) (xy 166.635818 100.902985) (xy 166.7175 100.492343) (xy 166.7175 100.073657) (xy 166.635818 99.663015)
(xy 166.475593 99.276198) (xy 166.242983 98.928073) (xy 165.946927 98.632017) (xy 165.598802 98.399407) (xy 165.211985 98.239182)
(xy 164.801343 98.1575) (xy 164.382657 98.1575) (xy 163.972015 98.239182) (xy 163.585198 98.399407) (xy 163.237073 98.632017)
(xy 162.941017 98.928073) (xy 162.708407 99.276198) (xy 162.548182 99.663015) (xy 162.4665 100.073657) (xy 162.4665 100.353195)
(xy 162.45 100.35157) (xy 162.20976 100.375232) (xy 162.139685 100.396489) (xy 161.978754 100.445307) (xy 161.765856 100.559103)
(xy 161.579249 100.712247) (xy 161.540875 100.759006) (xy 160.6105 101.689382) (xy 160.6105 99.755197) (xy 160.616429 99.695)
(xy 160.592767 99.454759) (xy 160.538601 99.276198) (xy 160.522692 99.223753) (xy 160.408896 99.010855) (xy 160.255752 98.824248)
(xy 160.208993 98.785874) (xy 158.38913 96.966012) (xy 158.350752 96.919248) (xy 158.164145 96.766104) (xy 157.951247 96.652308)
(xy 157.72024 96.582233) (xy 157.540197 96.5645) (xy 157.48 96.558571) (xy 157.419803 96.5645) (xy 155.976037 96.5645)
(xy 155.788885 96.439449) (xy 155.511534 96.324566) (xy 155.217101 96.266) (xy 154.916899 96.266) (xy 154.622466 96.324566)
(xy 154.345115 96.439449) (xy 154.095507 96.606232) (xy 153.883232 96.818507) (xy 153.716449 97.068115) (xy 153.601566 97.345466)
(xy 153.543 97.639899) (xy 153.543 97.940101) (xy 153.601566 98.234534) (xy 153.716449 98.511885) (xy 153.883232 98.761493)
(xy 154.095507 98.973768) (xy 154.345115 99.140551) (xy 154.622466 99.255434) (xy 154.916899 99.314) (xy 155.217101 99.314)
(xy 155.511534 99.255434) (xy 155.788885 99.140551) (xy 155.976037 99.0155) (xy 156.972382 99.0155) (xy 158.159501 100.20262)
(xy 158.1595 106.172381) (xy 154.166098 110.165784) (xy 153.997056 110.235803) (xy 154.104609 110.12825) (xy 154.30603 109.826803)
(xy 154.44477 109.491854) (xy 154.5155 109.136273) (xy 154.5155 108.773727) (xy 154.44477 108.418146) (xy 154.30603 108.083197)
(xy 154.104609 107.78175) (xy 153.84825 107.525391) (xy 153.546803 107.32397) (xy 153.211854 107.18523) (xy 152.856273 107.1145)
(xy 152.616898 107.1145) (xy 152.45061 106.948212) (xy 152.412232 106.901448) (xy 152.225625 106.748304) (xy 152.012727 106.634508)
(xy 151.78172 106.564433) (xy 151.601677 106.5467) (xy 151.54148 106.540771) (xy 151.481283 106.5467) (xy 150.559559 106.5467)
(xy 150.39825 106.385391) (xy 150.096803 106.18397) (xy 149.761854 106.04523) (xy 149.406273 105.9745) (xy 149.043727 105.9745)
(xy 148.688146 106.04523) (xy 148.353197 106.18397) (xy 148.05175 106.385391) (xy 147.795391 106.64175) (xy 147.59397 106.943197)
(xy 147.45523 107.278146) (xy 147.3845 107.633727) (xy 147.3845 107.996273) (xy 147.407112 108.109952) (xy 147.39603 108.083197)
(xy 147.194609 107.78175) (xy 146.9961 107.583241) (xy 146.9961 103.920797) (xy 147.002029 103.8606) (xy 146.978367 103.620359)
(xy 146.937837 103.486751) (xy 146.908292 103.389353) (xy 146.794496 103.176455) (xy 146.641352 102.989848) (xy 146.594593 102.951474)
(xy 142.641131 98.998013) (xy 142.602752 98.951248) (xy 142.416145 98.798104) (xy 142.203247 98.684308) (xy 141.97224 98.614233)
(xy 141.792197 98.5965) (xy 141.732 98.590571) (xy 141.671803 98.5965) (xy 141.091162 98.5965) (xy 141.074084 98.564548)
(xy 146.756867 98.564548) (xy 146.821114 98.753009) (xy 147.021013 98.85661) (xy 147.237283 98.919221) (xy 147.461613 98.938438)
(xy 147.685382 98.91352) (xy 147.89999 98.845426) (xy 148.072886 98.753009) (xy 148.137133 98.564548) (xy 147.447 97.874414)
(xy 146.756867 98.564548) (xy 141.074084 98.564548) (xy 141.024699 98.472158) (xy 140.921541 98.346459) (xy 140.795842 98.243301)
(xy 140.652434 98.166647) (xy 140.496826 98.119444) (xy 140.335 98.103506) (xy 138.557 98.103506) (xy 138.395174 98.119444)
(xy 138.239566 98.166647) (xy 138.096158 98.243301) (xy 137.970459 98.346459) (xy 137.867301 98.472158) (xy 137.800838 98.5965)
(xy 129.722241 98.5965) (xy 129.57 98.581506) (xy 126.97 98.581506) (xy 126.808174 98.597444) (xy 126.652566 98.644647)
(xy 126.509158 98.721301) (xy 126.383459 98.824459) (xy 126.280301 98.950158) (xy 126.203647 99.093566) (xy 126.156444 99.249174)
(xy 126.140506 99.411) (xy 124.836264 99.411) (xy 124.849801 97.804613) (xy 146.298562 97.804613) (xy 146.32348 98.028382)
(xy 146.391574 98.24299) (xy 146.483991 98.415886) (xy 146.672452 98.480133) (xy 147.362586 97.79) (xy 147.531414 97.79)
(xy 148.221548 98.480133) (xy 148.410009 98.415886) (xy 148.51361 98.215987) (xy 148.576221 97.999717) (xy 148.595438 97.775387)
(xy 148.57052 97.551618) (xy 148.502426 97.33701) (xy 148.410009 97.164114) (xy 148.221548 97.099867) (xy 147.531414 97.79)
(xy 147.362586 97.79) (xy 146.672452 97.099867) (xy 146.483991 97.164114) (xy 146.38039 97.364013) (xy 146.317779 97.580283)
(xy 146.298562 97.804613) (xy 124.849801 97.804613) (xy 124.856451 97.015452) (xy 146.756867 97.015452) (xy 147.447 97.705586)
(xy 148.137133 97.015452) (xy 148.072886 96.826991) (xy 147.872987 96.72339) (xy 147.656717 96.660779) (xy 147.432387 96.641562)
(xy 147.208618 96.66648) (xy 146.99401 96.734574) (xy 146.821114 96.826991) (xy 146.756867 97.015452) (xy 124.856451 97.015452)
(xy 124.866339 95.842199) (xy 125.198849 96.174709) (xy 125.661624 96.483925) (xy 126.175832 96.696917) (xy 126.721713 96.8055)
(xy 127.278287 96.8055) (xy 127.824168 96.696917) (xy 128.338376 96.483925) (xy 128.801151 96.174709) (xy 129.194709 95.781151)
(xy 129.280942 95.652093) (xy 138.620321 95.652093) (xy 138.707468 95.860053) (xy 138.93978 95.982651) (xy 139.191546 96.057571)
(xy 139.45309 96.081934) (xy 139.714363 96.054805) (xy 139.965321 95.977224) (xy 140.184532 95.860053) (xy 140.271679 95.652093)
(xy 139.446 94.826414) (xy 138.620321 95.652093) (xy 129.280942 95.652093) (xy 129.503925 95.318376) (xy 129.716917 94.804168)
(xy 129.727872 94.74909) (xy 138.106066 94.74909) (xy 138.133195 95.010363) (xy 138.210776 95.261321) (xy 138.327947 95.480532)
(xy 138.535907 95.567679) (xy 139.361586 94.742) (xy 139.530414 94.742) (xy 140.356093 95.567679) (xy 140.564053 95.480532)
(xy 140.686651 95.24822) (xy 140.761571 94.996454) (xy 140.785934 94.73491) (xy 140.758805 94.473637) (xy 140.681224 94.222679)
(xy 140.564053 94.003468) (xy 140.356093 93.916321) (xy 139.530414 94.742) (xy 139.361586 94.742) (xy 138.535907 93.916321)
(xy 138.327947 94.003468) (xy 138.205349 94.23578) (xy 138.130429 94.487546) (xy 138.106066 94.74909) (xy 129.727872 94.74909)
(xy 129.8255 94.258287) (xy 129.8255 93.831907) (xy 138.620321 93.831907) (xy 139.446 94.657586) (xy 140.271679 93.831907)
(xy 140.184532 93.623947) (xy 139.95222 93.501349) (xy 139.700454 93.426429) (xy 139.43891 93.402066) (xy 139.177637 93.429195)
(xy 138.926679 93.506776) (xy 138.707468 93.623947) (xy 138.620321 93.831907) (xy 129.8255 93.831907) (xy 129.8255 93.701713)
(xy 129.716917 93.155832) (xy 129.503925 92.641624) (xy 129.194709 92.178849) (xy 128.801151 91.785291) (xy 128.664524 91.694)
(xy 163.435476 91.694)
)
)
)
+557 -255
View File
@@ -1,9 +1,9 @@
(kicad_pcb (version 20171130) (host pcbnew "(2017-12-14 revision b47a06e)-master")
(kicad_pcb (version 20171130) (host pcbnew "(5.0.0-rc2-151-g11ab8f6dc)")
(general
(thickness 1.6002)
(drawings 4)
(tracks 49)
(tracks 53)
(zones 0)
(modules 15)
(nets 14)
@@ -78,7 +78,7 @@
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15)
(hpglpendiameter 15.000000)
(psnegative false)
(psa4output false)
(plotreference true)
@@ -130,6 +130,434 @@
(add_net "Net-(R2-Pad1)")
)
(module Capacitor_THT:CP_Radial_D12.5mm_P7.50mm (layer Dessus) (tedit 5A533290) (tstamp 54A58357)
(at 133.1 102.9 90)
(descr "CP, Radial series, Radial, pin pitch=7.50mm, , diameter=12.5mm, Electrolytic Capacitor")
(tags "CP Radial series Radial pin pitch 7.50mm diameter 12.5mm Electrolytic Capacitor")
(path /4549F4BE)
(fp_text reference C1 (at 3.75 -7.62 90) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value 10uF (at 3.75 7.62 90) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 3.75 0 90) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -2.442082 -4.2) (end -2.442082 -2.95) (layer F.SilkS) (width 0.12))
(fp_line (start -3.067082 -3.575) (end -1.817082 -3.575) (layer F.SilkS) (width 0.12))
(fp_line (start 10.111 -0.317) (end 10.111 0.317) (layer F.SilkS) (width 0.12))
(fp_line (start 10.071 -0.757) (end 10.071 0.757) (layer F.SilkS) (width 0.12))
(fp_line (start 10.031 -1.028) (end 10.031 1.028) (layer F.SilkS) (width 0.12))
(fp_line (start 9.991 -1.241) (end 9.991 1.241) (layer F.SilkS) (width 0.12))
(fp_line (start 9.951 -1.422) (end 9.951 1.422) (layer F.SilkS) (width 0.12))
(fp_line (start 9.911 -1.583) (end 9.911 1.583) (layer F.SilkS) (width 0.12))
(fp_line (start 9.871 -1.728) (end 9.871 1.728) (layer F.SilkS) (width 0.12))
(fp_line (start 9.831 -1.861) (end 9.831 1.861) (layer F.SilkS) (width 0.12))
(fp_line (start 9.791 -1.984) (end 9.791 1.984) (layer F.SilkS) (width 0.12))
(fp_line (start 9.751 -2.1) (end 9.751 2.1) (layer F.SilkS) (width 0.12))
(fp_line (start 9.711 -2.209) (end 9.711 2.209) (layer F.SilkS) (width 0.12))
(fp_line (start 9.671 -2.312) (end 9.671 2.312) (layer F.SilkS) (width 0.12))
(fp_line (start 9.631 -2.41) (end 9.631 2.41) (layer F.SilkS) (width 0.12))
(fp_line (start 9.591 -2.504) (end 9.591 2.504) (layer F.SilkS) (width 0.12))
(fp_line (start 9.551 -2.594) (end 9.551 2.594) (layer F.SilkS) (width 0.12))
(fp_line (start 9.511 -2.681) (end 9.511 2.681) (layer F.SilkS) (width 0.12))
(fp_line (start 9.471 -2.764) (end 9.471 2.764) (layer F.SilkS) (width 0.12))
(fp_line (start 9.431 -2.844) (end 9.431 2.844) (layer F.SilkS) (width 0.12))
(fp_line (start 9.391 -2.921) (end 9.391 2.921) (layer F.SilkS) (width 0.12))
(fp_line (start 9.351 -2.996) (end 9.351 2.996) (layer F.SilkS) (width 0.12))
(fp_line (start 9.311 -3.069) (end 9.311 3.069) (layer F.SilkS) (width 0.12))
(fp_line (start 9.271 -3.14) (end 9.271 3.14) (layer F.SilkS) (width 0.12))
(fp_line (start 9.231 -3.208) (end 9.231 3.208) (layer F.SilkS) (width 0.12))
(fp_line (start 9.191 -3.275) (end 9.191 3.275) (layer F.SilkS) (width 0.12))
(fp_line (start 9.151 -3.339) (end 9.151 3.339) (layer F.SilkS) (width 0.12))
(fp_line (start 9.111 -3.402) (end 9.111 3.402) (layer F.SilkS) (width 0.12))
(fp_line (start 9.071 -3.464) (end 9.071 3.464) (layer F.SilkS) (width 0.12))
(fp_line (start 9.031 -3.524) (end 9.031 3.524) (layer F.SilkS) (width 0.12))
(fp_line (start 8.991 -3.583) (end 8.991 3.583) (layer F.SilkS) (width 0.12))
(fp_line (start 8.951 -3.64) (end 8.951 3.64) (layer F.SilkS) (width 0.12))
(fp_line (start 8.911 1.44) (end 8.911 3.696) (layer F.SilkS) (width 0.12))
(fp_line (start 8.911 -3.696) (end 8.911 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.871 1.44) (end 8.871 3.75) (layer F.SilkS) (width 0.12))
(fp_line (start 8.871 -3.75) (end 8.871 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.831 1.44) (end 8.831 3.804) (layer F.SilkS) (width 0.12))
(fp_line (start 8.831 -3.804) (end 8.831 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.791 1.44) (end 8.791 3.856) (layer F.SilkS) (width 0.12))
(fp_line (start 8.791 -3.856) (end 8.791 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.751 1.44) (end 8.751 3.907) (layer F.SilkS) (width 0.12))
(fp_line (start 8.751 -3.907) (end 8.751 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.711 1.44) (end 8.711 3.957) (layer F.SilkS) (width 0.12))
(fp_line (start 8.711 -3.957) (end 8.711 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.671 1.44) (end 8.671 4.007) (layer F.SilkS) (width 0.12))
(fp_line (start 8.671 -4.007) (end 8.671 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.631 1.44) (end 8.631 4.055) (layer F.SilkS) (width 0.12))
(fp_line (start 8.631 -4.055) (end 8.631 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.591 1.44) (end 8.591 4.102) (layer F.SilkS) (width 0.12))
(fp_line (start 8.591 -4.102) (end 8.591 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.551 1.44) (end 8.551 4.148) (layer F.SilkS) (width 0.12))
(fp_line (start 8.551 -4.148) (end 8.551 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.511 1.44) (end 8.511 4.194) (layer F.SilkS) (width 0.12))
(fp_line (start 8.511 -4.194) (end 8.511 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.471 1.44) (end 8.471 4.238) (layer F.SilkS) (width 0.12))
(fp_line (start 8.471 -4.238) (end 8.471 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.431 1.44) (end 8.431 4.282) (layer F.SilkS) (width 0.12))
(fp_line (start 8.431 -4.282) (end 8.431 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.391 1.44) (end 8.391 4.325) (layer F.SilkS) (width 0.12))
(fp_line (start 8.391 -4.325) (end 8.391 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.351 1.44) (end 8.351 4.367) (layer F.SilkS) (width 0.12))
(fp_line (start 8.351 -4.367) (end 8.351 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.311 1.44) (end 8.311 4.408) (layer F.SilkS) (width 0.12))
(fp_line (start 8.311 -4.408) (end 8.311 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.271 1.44) (end 8.271 4.449) (layer F.SilkS) (width 0.12))
(fp_line (start 8.271 -4.449) (end 8.271 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.231 1.44) (end 8.231 4.489) (layer F.SilkS) (width 0.12))
(fp_line (start 8.231 -4.489) (end 8.231 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.191 1.44) (end 8.191 4.528) (layer F.SilkS) (width 0.12))
(fp_line (start 8.191 -4.528) (end 8.191 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.151 1.44) (end 8.151 4.567) (layer F.SilkS) (width 0.12))
(fp_line (start 8.151 -4.567) (end 8.151 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.111 1.44) (end 8.111 4.605) (layer F.SilkS) (width 0.12))
(fp_line (start 8.111 -4.605) (end 8.111 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.071 1.44) (end 8.071 4.642) (layer F.SilkS) (width 0.12))
(fp_line (start 8.071 -4.642) (end 8.071 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 8.031 1.44) (end 8.031 4.678) (layer F.SilkS) (width 0.12))
(fp_line (start 8.031 -4.678) (end 8.031 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.991 1.44) (end 7.991 4.714) (layer F.SilkS) (width 0.12))
(fp_line (start 7.991 -4.714) (end 7.991 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.951 1.44) (end 7.951 4.75) (layer F.SilkS) (width 0.12))
(fp_line (start 7.951 -4.75) (end 7.951 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.911 1.44) (end 7.911 4.785) (layer F.SilkS) (width 0.12))
(fp_line (start 7.911 -4.785) (end 7.911 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.871 1.44) (end 7.871 4.819) (layer F.SilkS) (width 0.12))
(fp_line (start 7.871 -4.819) (end 7.871 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.831 1.44) (end 7.831 4.852) (layer F.SilkS) (width 0.12))
(fp_line (start 7.831 -4.852) (end 7.831 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.791 1.44) (end 7.791 4.885) (layer F.SilkS) (width 0.12))
(fp_line (start 7.791 -4.885) (end 7.791 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.751 1.44) (end 7.751 4.918) (layer F.SilkS) (width 0.12))
(fp_line (start 7.751 -4.918) (end 7.751 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.711 1.44) (end 7.711 4.95) (layer F.SilkS) (width 0.12))
(fp_line (start 7.711 -4.95) (end 7.711 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.671 1.44) (end 7.671 4.982) (layer F.SilkS) (width 0.12))
(fp_line (start 7.671 -4.982) (end 7.671 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.631 1.44) (end 7.631 5.012) (layer F.SilkS) (width 0.12))
(fp_line (start 7.631 -5.012) (end 7.631 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.591 1.44) (end 7.591 5.043) (layer F.SilkS) (width 0.12))
(fp_line (start 7.591 -5.043) (end 7.591 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.551 1.44) (end 7.551 5.073) (layer F.SilkS) (width 0.12))
(fp_line (start 7.551 -5.073) (end 7.551 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.511 1.44) (end 7.511 5.102) (layer F.SilkS) (width 0.12))
(fp_line (start 7.511 -5.102) (end 7.511 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.471 1.44) (end 7.471 5.131) (layer F.SilkS) (width 0.12))
(fp_line (start 7.471 -5.131) (end 7.471 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.431 1.44) (end 7.431 5.16) (layer F.SilkS) (width 0.12))
(fp_line (start 7.431 -5.16) (end 7.431 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.391 1.44) (end 7.391 5.188) (layer F.SilkS) (width 0.12))
(fp_line (start 7.391 -5.188) (end 7.391 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.351 1.44) (end 7.351 5.216) (layer F.SilkS) (width 0.12))
(fp_line (start 7.351 -5.216) (end 7.351 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.311 1.44) (end 7.311 5.243) (layer F.SilkS) (width 0.12))
(fp_line (start 7.311 -5.243) (end 7.311 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.271 1.44) (end 7.271 5.27) (layer F.SilkS) (width 0.12))
(fp_line (start 7.271 -5.27) (end 7.271 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.231 1.44) (end 7.231 5.296) (layer F.SilkS) (width 0.12))
(fp_line (start 7.231 -5.296) (end 7.231 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.191 1.44) (end 7.191 5.322) (layer F.SilkS) (width 0.12))
(fp_line (start 7.191 -5.322) (end 7.191 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.151 1.44) (end 7.151 5.347) (layer F.SilkS) (width 0.12))
(fp_line (start 7.151 -5.347) (end 7.151 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.111 1.44) (end 7.111 5.372) (layer F.SilkS) (width 0.12))
(fp_line (start 7.111 -5.372) (end 7.111 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.071 1.44) (end 7.071 5.397) (layer F.SilkS) (width 0.12))
(fp_line (start 7.071 -5.397) (end 7.071 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 7.031 1.44) (end 7.031 5.421) (layer F.SilkS) (width 0.12))
(fp_line (start 7.031 -5.421) (end 7.031 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.991 1.44) (end 6.991 5.445) (layer F.SilkS) (width 0.12))
(fp_line (start 6.991 -5.445) (end 6.991 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.951 1.44) (end 6.951 5.468) (layer F.SilkS) (width 0.12))
(fp_line (start 6.951 -5.468) (end 6.951 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.911 1.44) (end 6.911 5.491) (layer F.SilkS) (width 0.12))
(fp_line (start 6.911 -5.491) (end 6.911 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.871 1.44) (end 6.871 5.514) (layer F.SilkS) (width 0.12))
(fp_line (start 6.871 -5.514) (end 6.871 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.831 1.44) (end 6.831 5.536) (layer F.SilkS) (width 0.12))
(fp_line (start 6.831 -5.536) (end 6.831 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.791 1.44) (end 6.791 5.558) (layer F.SilkS) (width 0.12))
(fp_line (start 6.791 -5.558) (end 6.791 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.751 1.44) (end 6.751 5.58) (layer F.SilkS) (width 0.12))
(fp_line (start 6.751 -5.58) (end 6.751 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.711 1.44) (end 6.711 5.601) (layer F.SilkS) (width 0.12))
(fp_line (start 6.711 -5.601) (end 6.711 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.671 1.44) (end 6.671 5.622) (layer F.SilkS) (width 0.12))
(fp_line (start 6.671 -5.622) (end 6.671 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.631 1.44) (end 6.631 5.642) (layer F.SilkS) (width 0.12))
(fp_line (start 6.631 -5.642) (end 6.631 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.591 1.44) (end 6.591 5.662) (layer F.SilkS) (width 0.12))
(fp_line (start 6.591 -5.662) (end 6.591 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.551 1.44) (end 6.551 5.682) (layer F.SilkS) (width 0.12))
(fp_line (start 6.551 -5.682) (end 6.551 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.511 1.44) (end 6.511 5.702) (layer F.SilkS) (width 0.12))
(fp_line (start 6.511 -5.702) (end 6.511 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.471 1.44) (end 6.471 5.721) (layer F.SilkS) (width 0.12))
(fp_line (start 6.471 -5.721) (end 6.471 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.431 1.44) (end 6.431 5.739) (layer F.SilkS) (width 0.12))
(fp_line (start 6.431 -5.739) (end 6.431 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.391 1.44) (end 6.391 5.758) (layer F.SilkS) (width 0.12))
(fp_line (start 6.391 -5.758) (end 6.391 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.351 1.44) (end 6.351 5.776) (layer F.SilkS) (width 0.12))
(fp_line (start 6.351 -5.776) (end 6.351 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.311 1.44) (end 6.311 5.793) (layer F.SilkS) (width 0.12))
(fp_line (start 6.311 -5.793) (end 6.311 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.271 1.44) (end 6.271 5.811) (layer F.SilkS) (width 0.12))
(fp_line (start 6.271 -5.811) (end 6.271 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.231 1.44) (end 6.231 5.828) (layer F.SilkS) (width 0.12))
(fp_line (start 6.231 -5.828) (end 6.231 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.191 1.44) (end 6.191 5.845) (layer F.SilkS) (width 0.12))
(fp_line (start 6.191 -5.845) (end 6.191 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.151 1.44) (end 6.151 5.861) (layer F.SilkS) (width 0.12))
(fp_line (start 6.151 -5.861) (end 6.151 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.111 1.44) (end 6.111 5.877) (layer F.SilkS) (width 0.12))
(fp_line (start 6.111 -5.877) (end 6.111 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.071 1.44) (end 6.071 5.893) (layer F.SilkS) (width 0.12))
(fp_line (start 6.071 -5.893) (end 6.071 -1.44) (layer F.SilkS) (width 0.12))
(fp_line (start 6.031 -5.908) (end 6.031 5.908) (layer F.SilkS) (width 0.12))
(fp_line (start 5.991 -5.924) (end 5.991 5.924) (layer F.SilkS) (width 0.12))
(fp_line (start 5.951 -5.939) (end 5.951 5.939) (layer F.SilkS) (width 0.12))
(fp_line (start 5.911 -5.953) (end 5.911 5.953) (layer F.SilkS) (width 0.12))
(fp_line (start 5.871 -5.967) (end 5.871 5.967) (layer F.SilkS) (width 0.12))
(fp_line (start 5.831 -5.981) (end 5.831 5.981) (layer F.SilkS) (width 0.12))
(fp_line (start 5.791 -5.995) (end 5.791 5.995) (layer F.SilkS) (width 0.12))
(fp_line (start 5.751 -6.008) (end 5.751 6.008) (layer F.SilkS) (width 0.12))
(fp_line (start 5.711 -6.021) (end 5.711 6.021) (layer F.SilkS) (width 0.12))
(fp_line (start 5.671 -6.034) (end 5.671 6.034) (layer F.SilkS) (width 0.12))
(fp_line (start 5.631 -6.047) (end 5.631 6.047) (layer F.SilkS) (width 0.12))
(fp_line (start 5.591 -6.059) (end 5.591 6.059) (layer F.SilkS) (width 0.12))
(fp_line (start 5.551 -6.071) (end 5.551 6.071) (layer F.SilkS) (width 0.12))
(fp_line (start 5.511 -6.083) (end 5.511 6.083) (layer F.SilkS) (width 0.12))
(fp_line (start 5.471 -6.094) (end 5.471 6.094) (layer F.SilkS) (width 0.12))
(fp_line (start 5.431 -6.105) (end 5.431 6.105) (layer F.SilkS) (width 0.12))
(fp_line (start 5.391 -6.116) (end 5.391 6.116) (layer F.SilkS) (width 0.12))
(fp_line (start 5.351 -6.126) (end 5.351 6.126) (layer F.SilkS) (width 0.12))
(fp_line (start 5.311 -6.137) (end 5.311 6.137) (layer F.SilkS) (width 0.12))
(fp_line (start 5.271 -6.146) (end 5.271 6.146) (layer F.SilkS) (width 0.12))
(fp_line (start 5.231 -6.156) (end 5.231 6.156) (layer F.SilkS) (width 0.12))
(fp_line (start 5.191 -6.166) (end 5.191 6.166) (layer F.SilkS) (width 0.12))
(fp_line (start 5.151 -6.175) (end 5.151 6.175) (layer F.SilkS) (width 0.12))
(fp_line (start 5.111 -6.184) (end 5.111 6.184) (layer F.SilkS) (width 0.12))
(fp_line (start 5.071 -6.192) (end 5.071 6.192) (layer F.SilkS) (width 0.12))
(fp_line (start 5.031 -6.201) (end 5.031 6.201) (layer F.SilkS) (width 0.12))
(fp_line (start 4.991 -6.209) (end 4.991 6.209) (layer F.SilkS) (width 0.12))
(fp_line (start 4.951 -6.216) (end 4.951 6.216) (layer F.SilkS) (width 0.12))
(fp_line (start 4.911 -6.224) (end 4.911 6.224) (layer F.SilkS) (width 0.12))
(fp_line (start 4.871 -6.231) (end 4.871 6.231) (layer F.SilkS) (width 0.12))
(fp_line (start 4.831 -6.238) (end 4.831 6.238) (layer F.SilkS) (width 0.12))
(fp_line (start 4.791 -6.245) (end 4.791 6.245) (layer F.SilkS) (width 0.12))
(fp_line (start 4.751 -6.252) (end 4.751 6.252) (layer F.SilkS) (width 0.12))
(fp_line (start 4.711 -6.258) (end 4.711 6.258) (layer F.SilkS) (width 0.12))
(fp_line (start 4.671 -6.264) (end 4.671 6.264) (layer F.SilkS) (width 0.12))
(fp_line (start 4.631 -6.269) (end 4.631 6.269) (layer F.SilkS) (width 0.12))
(fp_line (start 4.591 -6.275) (end 4.591 6.275) (layer F.SilkS) (width 0.12))
(fp_line (start 4.551 -6.28) (end 4.551 6.28) (layer F.SilkS) (width 0.12))
(fp_line (start 4.511 -6.285) (end 4.511 6.285) (layer F.SilkS) (width 0.12))
(fp_line (start 4.471 -6.29) (end 4.471 6.29) (layer F.SilkS) (width 0.12))
(fp_line (start 4.43 -6.294) (end 4.43 6.294) (layer F.SilkS) (width 0.12))
(fp_line (start 4.39 -6.298) (end 4.39 6.298) (layer F.SilkS) (width 0.12))
(fp_line (start 4.35 -6.302) (end 4.35 6.302) (layer F.SilkS) (width 0.12))
(fp_line (start 4.31 -6.306) (end 4.31 6.306) (layer F.SilkS) (width 0.12))
(fp_line (start 4.27 -6.309) (end 4.27 6.309) (layer F.SilkS) (width 0.12))
(fp_line (start 4.23 -6.312) (end 4.23 6.312) (layer F.SilkS) (width 0.12))
(fp_line (start 4.19 -6.315) (end 4.19 6.315) (layer F.SilkS) (width 0.12))
(fp_line (start 4.15 -6.318) (end 4.15 6.318) (layer F.SilkS) (width 0.12))
(fp_line (start 4.11 -6.32) (end 4.11 6.32) (layer F.SilkS) (width 0.12))
(fp_line (start 4.07 -6.322) (end 4.07 6.322) (layer F.SilkS) (width 0.12))
(fp_line (start 4.03 -6.324) (end 4.03 6.324) (layer F.SilkS) (width 0.12))
(fp_line (start 3.99 -6.326) (end 3.99 6.326) (layer F.SilkS) (width 0.12))
(fp_line (start 3.95 -6.327) (end 3.95 6.327) (layer F.SilkS) (width 0.12))
(fp_line (start 3.91 -6.328) (end 3.91 6.328) (layer F.SilkS) (width 0.12))
(fp_line (start 3.87 -6.329) (end 3.87 6.329) (layer F.SilkS) (width 0.12))
(fp_line (start 3.83 -6.33) (end 3.83 6.33) (layer F.SilkS) (width 0.12))
(fp_line (start 3.79 -6.33) (end 3.79 6.33) (layer F.SilkS) (width 0.12))
(fp_line (start 3.75 -6.33) (end 3.75 6.33) (layer F.SilkS) (width 0.12))
(fp_line (start -0.991489 -3.3625) (end -0.991489 -2.1125) (layer F.Fab) (width 0.1))
(fp_line (start -1.616489 -2.7375) (end -0.366489 -2.7375) (layer F.Fab) (width 0.1))
(fp_circle (center 3.75 0) (end 10.25 0) (layer F.CrtYd) (width 0.05))
(fp_circle (center 3.75 0) (end 10.12 0) (layer F.SilkS) (width 0.12))
(fp_circle (center 3.75 0) (end 10 0) (layer F.Fab) (width 0.1))
(pad 2 thru_hole circle (at 7.5 0 90) (size 2.4 2.4) (drill 1.2) (layers *.Cu *.Mask)
(net 1 GND))
(pad 1 thru_hole rect (at 0 0 90) (size 2.4 2.4) (drill 1.2) (layers *.Cu *.Mask)
(net 2 "Net-(C1-Pad1)"))
(model ${KISYS3DMOD}/Capacitor_THT.3dshapes/CP_Radial_D12.5mm_P7.50mm.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal (layer Dessus) (tedit 5A24F4B6) (tstamp 54A58389)
(at 141 121.3 270)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=7.62mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 7.62mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
(path /4549F38A)
(fp_text reference R1 (at 3.81 -2.37 270) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value 1.5K (at 3.81 2.37 270) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 3.81 0 270) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 8.7 -1.65) (end -1.05 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 8.7 1.65) (end 8.7 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 1.65) (end 8.7 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 -1.65) (end -1.05 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 7.08 1.37) (end 7.08 1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.37) (end 7.08 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.04) (end 0.54 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.08 -1.37) (end 7.08 -1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.37) (end 7.08 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.04) (end 0.54 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.62 0) (end 6.96 0) (layer F.Fab) (width 0.1))
(fp_line (start 0 0) (end 0.66 0) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 -1.25) (end 0.66 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 1.25) (end 6.96 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 1.25) (end 6.96 1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 -1.25) (end 0.66 1.25) (layer F.Fab) (width 0.1))
(pad 2 thru_hole oval (at 7.62 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 4 "Net-(C2-Pad2)"))
(pad 1 thru_hole circle (at 0 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 8 "Net-(R1-Pad1)"))
(model ${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal (layer Dessus) (tedit 5A24F4B6) (tstamp 54A5838E)
(at 165.2 107.3 90)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=7.62mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 7.62mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
(path /4549F39D)
(fp_text reference R2 (at 3.81 -2.37 90) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value 1.5K (at 3.81 2.37 90) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 3.81 0 90) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 8.7 -1.65) (end -1.05 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 8.7 1.65) (end 8.7 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 1.65) (end 8.7 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 -1.65) (end -1.05 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 7.08 1.37) (end 7.08 1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.37) (end 7.08 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.04) (end 0.54 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.08 -1.37) (end 7.08 -1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.37) (end 7.08 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.04) (end 0.54 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.62 0) (end 6.96 0) (layer F.Fab) (width 0.1))
(fp_line (start 0 0) (end 0.66 0) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 -1.25) (end 0.66 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 1.25) (end 6.96 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 1.25) (end 6.96 1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 -1.25) (end 0.66 1.25) (layer F.Fab) (width 0.1))
(pad 2 thru_hole oval (at 7.62 0 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 1 GND))
(pad 1 thru_hole circle (at 0 0 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 9 "Net-(R2-Pad1)"))
(model ${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal (layer Dessus) (tedit 5A24F4B6) (tstamp 54A58393)
(at 124.46 115 270)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=7.62mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 7.62mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
(path /4549F3AD)
(fp_text reference R3 (at 3.81 -2.37 270) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value 100K (at 3.81 2.37 270) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 3.81 0 270) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 8.7 -1.65) (end -1.05 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 8.7 1.65) (end 8.7 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 1.65) (end 8.7 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 -1.65) (end -1.05 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 7.08 1.37) (end 7.08 1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.37) (end 7.08 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.04) (end 0.54 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.08 -1.37) (end 7.08 -1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.37) (end 7.08 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.04) (end 0.54 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.62 0) (end 6.96 0) (layer F.Fab) (width 0.1))
(fp_line (start 0 0) (end 0.66 0) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 -1.25) (end 0.66 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 1.25) (end 6.96 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 1.25) (end 6.96 1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 -1.25) (end 0.66 1.25) (layer F.Fab) (width 0.1))
(pad 2 thru_hole oval (at 7.62 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 1 GND))
(pad 1 thru_hole circle (at 0 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 3 "Net-(C2-Pad1)"))
(model ${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal (layer Dessus) (tedit 5A24F4B6) (tstamp 54A58398)
(at 165.1 116.2 270)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=7.62mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 7.62mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
(path /4549F3A2)
(fp_text reference R4 (at 3.81 -2.37 270) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value 47K (at 3.81 2.37 270) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 3.81 0 270) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 8.7 -1.65) (end -1.05 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 8.7 1.65) (end 8.7 -1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 1.65) (end 8.7 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.05 -1.65) (end -1.05 1.65) (layer F.CrtYd) (width 0.05))
(fp_line (start 7.08 1.37) (end 7.08 1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.37) (end 7.08 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 1.04) (end 0.54 1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.08 -1.37) (end 7.08 -1.04) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.37) (end 7.08 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 0.54 -1.04) (end 0.54 -1.37) (layer F.SilkS) (width 0.12))
(fp_line (start 7.62 0) (end 6.96 0) (layer F.Fab) (width 0.1))
(fp_line (start 0 0) (end 0.66 0) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 -1.25) (end 0.66 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 6.96 1.25) (end 6.96 -1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 1.25) (end 6.96 1.25) (layer F.Fab) (width 0.1))
(fp_line (start 0.66 -1.25) (end 0.66 1.25) (layer F.Fab) (width 0.1))
(pad 2 thru_hole oval (at 7.62 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 1 GND))
(pad 1 thru_hole circle (at 0 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 5 "Net-(P1-Pad2)"))
(model ${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(module connect:1pin (layer Dessus) (tedit 5A325A26) (tstamp 54A583DE)
(at 123.19 129.54)
(descr "module 1 pin (ou trou mecanique de percage)")
@@ -446,164 +874,21 @@
)
)
(module discret:C2V10 (layer Dessus) (tedit 54A58223) (tstamp 54A58357)
(at 131.445 99.06 90)
(descr "Condensateur polarise")
(tags CP)
(path /4549F4BE)
(fp_text reference C1 (at 0 2.54 180) (layer F.SilkS)
(effects (font (size 1.27 1.27) (thickness 0.254)))
)
(fp_text value 10uF (at 0 -2.54 90) (layer F.SilkS)
(effects (font (size 1.27 1.27) (thickness 0.254)))
)
(fp_circle (center 0 0) (end 4.826 -2.794) (layer F.SilkS) (width 0.3048))
(pad 1 thru_hole rect (at -2.54 0 90) (size 1.778 1.778) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 2 "Net-(C1-Pad1)"))
(pad 2 thru_hole circle (at 2.54 0 90) (size 1.778 1.778) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 1 GND))
(model Discret.3dshapes/C2V10.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(module discret:R3 (layer Dessus) (tedit 54A58223) (tstamp 54A58389)
(at 140.97 125.095 270)
(descr "Resitance 3 pas")
(tags R)
(path /4549F38A)
(autoplace_cost180 10)
(fp_text reference R1 (at 0 0.127 270) (layer F.SilkS) hide
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_text value 1.5K (at 0 0.127 270) (layer F.SilkS)
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_line (start -3.81 0) (end -3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.81 0) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 0) (end 3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 -1.016) (end -3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -1.016) (end -3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 1.016) (end 3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 1.016) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -0.508) (end -2.794 -1.016) (layer F.SilkS) (width 0.2032))
(pad 1 thru_hole circle (at -3.81 0 270) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 8 "Net-(R1-Pad1)"))
(pad 2 thru_hole circle (at 3.81 0 270) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 4 "Net-(C2-Pad2)"))
(model Discret.3dshapes/R3.wrl
(at (xyz 0 0 0))
(scale (xyz 0.3 0.3 0.3))
(rotate (xyz 0 0 0))
)
)
(module discret:R3 (layer Dessus) (tedit 54A58223) (tstamp 54A5838E)
(at 165.1 103.505 90)
(descr "Resitance 3 pas")
(tags R)
(path /4549F39D)
(autoplace_cost180 10)
(fp_text reference R2 (at 0 0.127 90) (layer F.SilkS) hide
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_text value 1.5K (at 0 0.127 90) (layer F.SilkS)
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_line (start -3.81 0) (end -3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.81 0) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 0) (end 3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 -1.016) (end -3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -1.016) (end -3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 1.016) (end 3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 1.016) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -0.508) (end -2.794 -1.016) (layer F.SilkS) (width 0.2032))
(pad 1 thru_hole circle (at -3.81 0 90) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 9 "Net-(R2-Pad1)"))
(pad 2 thru_hole circle (at 3.81 0 90) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 1 GND))
(model Discret.3dshapes/R3.wrl
(at (xyz 0 0 0))
(scale (xyz 0.3 0.3 0.3))
(rotate (xyz 0 0 0))
)
)
(module discret:R3 (layer Dessus) (tedit 54A58223) (tstamp 54A58393)
(at 124.46 118.745 270)
(descr "Resitance 3 pas")
(tags R)
(path /4549F3AD)
(autoplace_cost180 10)
(fp_text reference R3 (at 0 0.127 270) (layer F.SilkS) hide
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_text value 100K (at 0 0.127 270) (layer F.SilkS)
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_line (start -3.81 0) (end -3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.81 0) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 0) (end 3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 -1.016) (end -3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -1.016) (end -3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 1.016) (end 3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 1.016) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -0.508) (end -2.794 -1.016) (layer F.SilkS) (width 0.2032))
(pad 1 thru_hole circle (at -3.81 0 270) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 3 "Net-(C2-Pad1)"))
(pad 2 thru_hole circle (at 3.81 0 270) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 1 GND))
(model Discret.3dshapes/R3.wrl
(at (xyz 0 0 0))
(scale (xyz 0.3 0.3 0.3))
(rotate (xyz 0 0 0))
)
)
(module discret:R3 (layer Dessus) (tedit 54A58223) (tstamp 54A58398)
(at 165.1 120.015 270)
(descr "Resitance 3 pas")
(tags R)
(path /4549F3A2)
(autoplace_cost180 10)
(fp_text reference R4 (at 0 0.127 270) (layer F.SilkS) hide
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_text value 47K (at 0 0.127 270) (layer F.SilkS)
(effects (font (size 1.397 1.27) (thickness 0.2032)))
)
(fp_line (start -3.81 0) (end -3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.81 0) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 0) (end 3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 -1.016) (end -3.302 -1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -1.016) (end -3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 1.016) (end 3.302 1.016) (layer F.SilkS) (width 0.2032))
(fp_line (start 3.302 1.016) (end 3.302 0) (layer F.SilkS) (width 0.2032))
(fp_line (start -3.302 -0.508) (end -2.794 -1.016) (layer F.SilkS) (width 0.2032))
(pad 1 thru_hole circle (at -3.81 0 270) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 5 "Net-(P1-Pad2)"))
(pad 2 thru_hole circle (at 3.81 0 270) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)
(net 1 GND))
(model Discret.3dshapes/R3.wrl
(at (xyz 0 0 0))
(scale (xyz 0.3 0.3 0.3))
(rotate (xyz 0 0 0))
)
)
(gr_line (start 168.275 132.715) (end 120.015 132.715) (angle 90) (layer Edge.Cuts) (width 0.381))
(gr_line (start 168.275 90.805) (end 120.015 90.805) (angle 90) (layer Edge.Cuts) (width 0.381))
(gr_line (start 168.275 90.805) (end 168.275 132.715) (angle 90) (layer Edge.Cuts) (width 0.381))
(gr_line (start 120.015 90.805) (end 120.015 132.715) (angle 90) (layer Edge.Cuts) (width 0.381))
(segment (start 165.1 123.825) (end 165.354 123.825) (width 0.8636) (layer Dessous) (net 1) (status 30))
(segment (start 125.73 101.6) (end 131.445 101.6) (width 0.8636) (layer Dessous) (net 2) (status 420))
(segment (start 123.19 102.87) (end 124.46 102.87) (width 0.8636) (layer Dessous) (net 2) (status 810))
(segment (start 142.90548 101.6) (end 145.7706 104.46512) (width 0.8636) (layer Dessous) (net 2) (status 420))
(segment (start 131.445 101.6) (end 142.90548 101.6) (width 0.8636) (layer Dessous) (net 2) (status 810))
(segment (start 124.46 102.87) (end 125.73 101.6) (width 0.8636) (layer Dessous) (net 2))
(segment (start 145.82 104.47) (end 142.7 101.35) (width 0.8636) (layer Dessous) (net 2))
(segment (start 136.05 102.9) (end 137.6 101.35) (width 0.8636) (layer Dessous) (net 2))
(segment (start 133.1 102.9) (end 136.05 102.9) (width 0.8636) (layer Dessous) (net 2))
(segment (start 142.7 101.35) (end 137.6 101.35) (width 0.8636) (layer Dessous) (net 2))
(segment (start 125.73 101.6) (end 128.6 101.6) (width 0.8636) (layer Dessous) (net 2))
(segment (start 129.9 102.9) (end 133.1 102.9) (width 0.8636) (layer Dessous) (net 2))
(segment (start 128.6 101.6) (end 129.9 102.9) (width 0.8636) (layer Dessous) (net 2))
(segment (start 124.46 114.935) (end 123.825 114.935) (width 0.8636) (layer Dessous) (net 3) (status 30))
(segment (start 123.19 114.3) (end 123.19 111.125) (width 0.8636) (layer Dessous) (net 3) (status 20))
(segment (start 123.825 114.935) (end 123.19 114.3) (width 0.8636) (layer Dessous) (net 3) (status 10))
@@ -659,109 +944,126 @@
)
(filled_polygon
(pts
(xy 162.732743 92.39526) (xy 162.306486 93.421801) (xy 162.305516 94.533323) (xy 162.729981 95.560606) (xy 163.51526 96.347257)
(xy 164.541801 96.773514) (xy 165.653323 96.774484) (xy 166.680606 96.350019) (xy 167.3225 95.709245) (xy 167.3225 127.811617)
(xy 166.68474 127.172743) (xy 165.658199 126.746486) (xy 164.546677 126.745516) (xy 163.519394 127.169981) (xy 162.732743 127.95526)
(xy 162.306486 128.981801) (xy 162.305516 130.093323) (xy 162.729981 131.120606) (xy 163.370755 131.7625) (xy 155.040788 131.7625)
(xy 155.784144 131.019144) (xy 156.042927 130.631848) (xy 156.1338 130.175) (xy 156.1338 124.617676) (xy 164.481541 124.617676)
(xy 164.556783 124.782258) (xy 164.96446 124.917271) (xy 165.392771 124.885996) (xy 165.643217 124.782258) (xy 165.718459 124.617676)
(xy 165.1 123.999217) (xy 164.481541 124.617676) (xy 156.1338 124.617676) (xy 156.1338 123.68946) (xy 164.007729 123.68946)
(xy 164.039004 124.117771) (xy 164.142742 124.368217) (xy 164.307324 124.443459) (xy 164.925783 123.825) (xy 165.274217 123.825)
(xy 165.892676 124.443459) (xy 166.057258 124.368217) (xy 166.192271 123.96054) (xy 166.160996 123.532229) (xy 166.057258 123.281783)
(xy 165.892676 123.206541) (xy 165.274217 123.825) (xy 164.925783 123.825) (xy 164.307324 123.206541) (xy 164.142742 123.281783)
(xy 164.007729 123.68946) (xy 156.1338 123.68946) (xy 156.1338 123.032324) (xy 164.481541 123.032324) (xy 165.1 123.650783)
(xy 165.718459 123.032324) (xy 165.643217 122.867742) (xy 165.23554 122.732729) (xy 164.807229 122.764004) (xy 164.556783 122.867742)
(xy 164.481541 123.032324) (xy 156.1338 123.032324) (xy 156.1338 116.23548) (xy 156.062126 115.875153) (xy 156.042927 115.778632)
(xy 155.784144 115.391336) (xy 154.769769 114.376961) (xy 154.933969 113.931879) (xy 154.910383 113.331573) (xy 155.515298 113.16097)
(xy 156.059798 112.731719) (xy 156.333718 112.2426) (xy 159.449312 112.2426) (xy 161.080856 113.874144) (xy 161.468153 114.132927)
(xy 161.925 114.2238) (xy 163.9062 114.2238) (xy 163.9062 115.333059) (xy 163.86257 115.376613) (xy 163.639754 115.913214)
(xy 163.639247 116.494237) (xy 163.861126 117.031226) (xy 164.271613 117.44243) (xy 164.808214 117.665246) (xy 165.389237 117.665753)
(xy 165.926226 117.443874) (xy 166.33743 117.033387) (xy 166.560246 116.496786) (xy 166.560753 115.915763) (xy 166.338874 115.378774)
(xy 166.2938 115.333621) (xy 166.2938 114.136387) (xy 166.620875 113.646886) (xy 166.743581 113.03) (xy 166.620875 112.413114)
(xy 166.271437 111.890144) (xy 166.018296 111.721) (xy 166.025786 111.721) (xy 166.16582 111.662996) (xy 166.272996 111.555819)
(xy 166.331 111.415785) (xy 166.331 110.70844) (xy 166.23575 110.61319) (xy 165.22319 110.61319) (xy 165.22319 111.436222)
(xy 165.131581 111.418) (xy 165.068419 111.418) (xy 164.97681 111.436222) (xy 164.97681 110.61319) (xy 163.96425 110.61319)
(xy 163.869 110.70844) (xy 163.869 111.415785) (xy 163.927004 111.555819) (xy 164.03418 111.662996) (xy 164.174214 111.721)
(xy 164.181704 111.721) (xy 164.009296 111.8362) (xy 162.419488 111.8362) (xy 160.787944 110.204656) (xy 160.400648 109.945873)
(xy 159.9438 109.855) (xy 156.674076 109.855) (xy 156.634763 109.715607) (xy 156.515415 109.564215) (xy 163.869 109.564215)
(xy 163.869 110.27156) (xy 163.96425 110.36681) (xy 164.97681 110.36681) (xy 164.97681 109.35425) (xy 165.22319 109.35425)
(xy 165.22319 110.36681) (xy 166.23575 110.36681) (xy 166.331 110.27156) (xy 166.331 109.564215) (xy 166.272996 109.424181)
(xy 166.16582 109.317004) (xy 166.025786 109.259) (xy 165.31844 109.259) (xy 165.22319 109.35425) (xy 164.97681 109.35425)
(xy 164.88156 109.259) (xy 164.174214 109.259) (xy 164.03418 109.317004) (xy 163.927004 109.424181) (xy 163.869 109.564215)
(xy 156.515415 109.564215) (xy 156.247998 109.225) (xy 156.634763 108.734393) (xy 156.676896 108.585) (xy 164.35005 108.585)
(xy 164.808214 108.775246) (xy 165.389237 108.775753) (xy 165.926226 108.553874) (xy 166.33743 108.143387) (xy 166.560246 107.606786)
(xy 166.560753 107.025763) (xy 166.338874 106.488774) (xy 165.928387 106.07757) (xy 165.391786 105.854754) (xy 164.810763 105.854247)
(xy 164.273774 106.076126) (xy 164.152288 106.1974) (xy 156.328118 106.1974) (xy 156.059798 105.718281) (xy 155.515298 105.28903)
(xy 154.910383 105.118427) (xy 154.933969 104.518121) (xy 154.693987 103.867625) (xy 154.22334 103.358482) (xy 153.325646 102.70627)
(xy 152.695985 102.415993) (xy 152.259597 102.398847) (xy 151.998328 102.224273) (xy 151.54148 102.1334) (xy 151.131377 102.1334)
(xy 151.091334 102.073471) (xy 150.514833 101.688266) (xy 149.834805 101.553) (xy 148.725195 101.553) (xy 148.045167 101.688266)
(xy 147.468666 102.073471) (xy 147.117353 102.599249) (xy 146.546832 102.388772) (xy 145.854015 102.415993) (xy 145.549941 102.556173)
(xy 143.749624 100.755856) (xy 143.362328 100.497073) (xy 143.315087 100.487676) (xy 164.481541 100.487676) (xy 164.556783 100.652258)
(xy 164.96446 100.787271) (xy 165.392771 100.755996) (xy 165.643217 100.652258) (xy 165.718459 100.487676) (xy 165.1 99.869217)
(xy 164.481541 100.487676) (xy 143.315087 100.487676) (xy 142.90548 100.4062) (xy 133.046788 100.4062) (xy 132.883371 100.161629)
(xy 132.631317 99.993212) (xy 132.334 99.934072) (xy 130.556 99.934072) (xy 130.258683 99.993212) (xy 130.006629 100.161629)
(xy 129.843212 100.4062) (xy 125.73 100.4062) (xy 125.273152 100.497073) (xy 124.885856 100.755856) (xy 124.338626 101.303086)
(xy 124.337317 101.302212) (xy 124.04 101.243072) (xy 123.994213 101.243072) (xy 124.253318 100.950275) (xy 124.380469 100.643277)
(xy 124.319049 100.45319) (xy 123.31319 100.45319) (xy 123.31319 101.243072) (xy 123.06681 101.243072) (xy 123.06681 100.45319)
(xy 122.060951 100.45319) (xy 121.999531 100.643277) (xy 122.126682 100.950275) (xy 122.385787 101.243072) (xy 122.34 101.243072)
(xy 122.042683 101.302212) (xy 121.790629 101.470629) (xy 121.622212 101.722683) (xy 121.563072 102.02) (xy 121.563072 103.72)
(xy 121.622212 104.017317) (xy 121.790629 104.269371) (xy 122.042683 104.437788) (xy 122.34 104.496928) (xy 124.04 104.496928)
(xy 124.337317 104.437788) (xy 124.589371 104.269371) (xy 124.757788 104.017317) (xy 124.760429 104.004041) (xy 124.916848 103.972927)
(xy 125.304144 103.714144) (xy 126.224488 102.7938) (xy 129.843212 102.7938) (xy 130.006629 103.038371) (xy 130.258683 103.206788)
(xy 130.556 103.265928) (xy 132.334 103.265928) (xy 132.631317 103.206788) (xy 132.883371 103.038371) (xy 133.046788 102.7938)
(xy 142.410992 102.7938) (xy 143.755976 104.138784) (xy 143.616031 104.518121) (xy 143.639617 105.118427) (xy 143.034702 105.28903)
(xy 142.490202 105.718281) (xy 142.221882 106.1974) (xy 142.1638 106.1974) (xy 141.706952 106.288273) (xy 141.319656 106.547056)
(xy 140.125856 107.740856) (xy 139.867073 108.128152) (xy 139.864043 108.143387) (xy 139.7762 108.585) (xy 139.7762 120.413059)
(xy 139.73257 120.456613) (xy 139.509754 120.993214) (xy 139.509247 121.574237) (xy 139.731126 122.111226) (xy 139.7762 122.156379)
(xy 139.7762 123.330512) (xy 138.570512 124.5362) (xy 130.175 124.5362) (xy 129.718152 124.627073) (xy 129.330856 124.885856)
(xy 128.060856 126.155856) (xy 127.802073 126.543152) (xy 127.744433 126.832927) (xy 127.7112 127) (xy 127.7112 130.175)
(xy 127.802073 130.631848) (xy 128.060856 131.019144) (xy 128.804212 131.7625) (xy 124.918383 131.7625) (xy 125.557257 131.12474)
(xy 125.983514 130.098199) (xy 125.984484 128.986677) (xy 125.560019 127.959394) (xy 124.77474 127.172743) (xy 123.748199 126.746486)
(xy 122.636677 126.745516) (xy 121.609394 127.169981) (xy 120.9675 127.810755) (xy 120.9675 123.347676) (xy 123.841541 123.347676)
(xy 123.916783 123.512258) (xy 124.32446 123.647271) (xy 124.752771 123.615996) (xy 125.003217 123.512258) (xy 125.078459 123.347676)
(xy 124.46 122.729217) (xy 123.841541 123.347676) (xy 120.9675 123.347676) (xy 120.9675 122.41946) (xy 123.367729 122.41946)
(xy 123.399004 122.847771) (xy 123.502742 123.098217) (xy 123.667324 123.173459) (xy 124.285783 122.555) (xy 124.634217 122.555)
(xy 125.252676 123.173459) (xy 125.417258 123.098217) (xy 125.552271 122.69054) (xy 125.520996 122.262229) (xy 125.417258 122.011783)
(xy 125.252676 121.936541) (xy 124.634217 122.555) (xy 124.285783 122.555) (xy 123.667324 121.936541) (xy 123.502742 122.011783)
(xy 123.367729 122.41946) (xy 120.9675 122.41946) (xy 120.9675 121.762324) (xy 123.841541 121.762324) (xy 124.46 122.380783)
(xy 125.078459 121.762324) (xy 125.003217 121.597742) (xy 124.59554 121.462729) (xy 124.167229 121.494004) (xy 123.916783 121.597742)
(xy 123.841541 121.762324) (xy 120.9675 121.762324) (xy 120.9675 110.275) (xy 121.563072 110.275) (xy 121.563072 111.975)
(xy 121.622212 112.272317) (xy 121.790629 112.524371) (xy 121.9962 112.661729) (xy 121.9962 114.3) (xy 122.087073 114.756848)
(xy 122.345856 115.144144) (xy 122.980856 115.779144) (xy 123.368153 116.037927) (xy 123.529354 116.069992) (xy 123.631613 116.17243)
(xy 124.168214 116.395246) (xy 124.749237 116.395753) (xy 125.286226 116.173874) (xy 125.69743 115.763387) (xy 125.920246 115.226786)
(xy 125.920753 114.645763) (xy 125.698874 114.108774) (xy 125.288387 113.69757) (xy 124.751786 113.474754) (xy 124.3838 113.474433)
(xy 124.3838 112.661729) (xy 124.589371 112.524371) (xy 124.726729 112.3188) (xy 128.905 112.3188) (xy 129.361848 112.227927)
(xy 129.749144 111.969144) (xy 131.571178 110.14711) (xy 131.754338 110.14727) (xy 132.328646 109.909971) (xy 132.768427 109.470957)
(xy 133.006728 108.897064) (xy 133.00727 108.275662) (xy 132.769971 107.701354) (xy 132.330957 107.261573) (xy 131.757064 107.023272)
(xy 131.135662 107.02273) (xy 130.561354 107.260029) (xy 130.121573 107.699043) (xy 129.883272 108.272936) (xy 129.88311 108.458602)
(xy 128.410512 109.9312) (xy 124.726729 109.9312) (xy 124.589371 109.725629) (xy 124.337317 109.557212) (xy 124.04 109.498072)
(xy 123.994213 109.498072) (xy 124.253318 109.205275) (xy 124.380469 108.898277) (xy 124.319049 108.70819) (xy 123.31319 108.70819)
(xy 123.31319 109.498072) (xy 123.06681 109.498072) (xy 123.06681 108.70819) (xy 122.060951 108.70819) (xy 121.999531 108.898277)
(xy 122.126682 109.205275) (xy 122.385787 109.498072) (xy 122.34 109.498072) (xy 122.042683 109.557212) (xy 121.790629 109.725629)
(xy 121.622212 109.977683) (xy 121.563072 110.275) (xy 120.9675 110.275) (xy 120.9675 108.271723) (xy 121.999531 108.271723)
(xy 122.060951 108.46181) (xy 123.06681 108.46181) (xy 123.06681 107.455418) (xy 123.31319 107.455418) (xy 123.31319 108.46181)
(xy 124.319049 108.46181) (xy 124.380469 108.271723) (xy 124.253318 107.964725) (xy 123.935009 107.605026) (xy 123.503279 107.394519)
(xy 123.31319 107.455418) (xy 123.06681 107.455418) (xy 122.876721 107.394519) (xy 122.444991 107.605026) (xy 122.126682 107.964725)
(xy 121.999531 108.271723) (xy 120.9675 108.271723) (xy 120.9675 100.016723) (xy 121.999531 100.016723) (xy 122.060951 100.20681)
(xy 123.06681 100.20681) (xy 123.06681 99.200418) (xy 123.31319 99.200418) (xy 123.31319 100.20681) (xy 124.319049 100.20681)
(xy 124.380469 100.016723) (xy 124.253318 99.709725) (xy 124.120344 99.55946) (xy 164.007729 99.55946) (xy 164.039004 99.987771)
(xy 164.142742 100.238217) (xy 164.307324 100.313459) (xy 164.925783 99.695) (xy 165.274217 99.695) (xy 165.892676 100.313459)
(xy 166.057258 100.238217) (xy 166.192271 99.83054) (xy 166.160996 99.402229) (xy 166.057258 99.151783) (xy 165.892676 99.076541)
(xy 165.274217 99.695) (xy 164.925783 99.695) (xy 164.307324 99.076541) (xy 164.142742 99.151783) (xy 164.007729 99.55946)
(xy 124.120344 99.55946) (xy 123.935009 99.350026) (xy 123.503279 99.139519) (xy 123.31319 99.200418) (xy 123.06681 99.200418)
(xy 162.731361 92.397326) (xy 162.306 93.424239) (xy 162.306 94.535761) (xy 162.731361 95.562674) (xy 163.517326 96.348639)
(xy 164.544239 96.774) (xy 165.655761 96.774) (xy 166.682674 96.348639) (xy 167.3225 95.708813) (xy 167.322501 127.811188)
(xy 166.682674 127.171361) (xy 165.655761 126.746) (xy 164.544239 126.746) (xy 163.517326 127.171361) (xy 162.731361 127.957326)
(xy 162.306 128.984239) (xy 162.306 130.095761) (xy 162.731361 131.122674) (xy 163.371187 131.7625) (xy 155.040787 131.7625)
(xy 155.701007 131.102281) (xy 155.800681 131.035681) (xy 156.064534 130.640797) (xy 156.1338 130.292574) (xy 156.1338 130.29257)
(xy 156.157186 130.175001) (xy 156.1338 130.057432) (xy 156.1338 124.125416) (xy 163.959163 124.125416) (xy 164.162882 124.538747)
(xy 164.509268 124.842655) (xy 164.794585 124.960825) (xy 164.97681 124.898739) (xy 164.97681 123.94319) (xy 165.22319 123.94319)
(xy 165.22319 124.898739) (xy 165.405415 124.960825) (xy 165.690732 124.842655) (xy 166.037118 124.538747) (xy 166.240837 124.125416)
(xy 166.179319 123.94319) (xy 165.22319 123.94319) (xy 164.97681 123.94319) (xy 164.020681 123.94319) (xy 163.959163 124.125416)
(xy 156.1338 124.125416) (xy 156.1338 123.514584) (xy 163.959163 123.514584) (xy 164.020681 123.69681) (xy 164.97681 123.69681)
(xy 164.97681 122.741261) (xy 165.22319 122.741261) (xy 165.22319 123.69681) (xy 166.179319 123.69681) (xy 166.240837 123.514584)
(xy 166.037118 123.101253) (xy 165.690732 122.797345) (xy 165.405415 122.679175) (xy 165.22319 122.741261) (xy 164.97681 122.741261)
(xy 164.794585 122.679175) (xy 164.509268 122.797345) (xy 164.162882 123.101253) (xy 163.959163 123.514584) (xy 156.1338 123.514584)
(xy 156.1338 116.353048) (xy 156.157186 116.235479) (xy 156.1338 116.11791) (xy 156.1338 116.117906) (xy 156.064534 115.769683)
(xy 155.800681 115.374799) (xy 155.701007 115.308199) (xy 154.776972 114.384165) (xy 154.932104 113.963662) (xy 154.90718 113.329244)
(xy 155.544945 113.149376) (xy 156.100113 112.711718) (xy 156.358344 112.250614) (xy 156.360948 112.2426) (xy 159.449313 112.2426)
(xy 160.997719 113.791007) (xy 161.064319 113.890681) (xy 161.459203 114.154534) (xy 161.807426 114.2238) (xy 161.807431 114.2238)
(xy 161.925 114.247186) (xy 162.042569 114.2238) (xy 163.9062 114.2238) (xy 163.906201 115.184798) (xy 163.775801 115.315198)
(xy 163.538 115.889299) (xy 163.538 116.510701) (xy 163.775801 117.084802) (xy 164.215198 117.524199) (xy 164.789299 117.762)
(xy 165.410701 117.762) (xy 165.984802 117.524199) (xy 166.424199 117.084802) (xy 166.662 116.510701) (xy 166.662 115.889299)
(xy 166.424199 115.315198) (xy 166.2938 115.184799) (xy 166.2938 114.144875) (xy 166.61847 113.658971) (xy 166.74358 113.03)
(xy 166.61847 112.401029) (xy 166.262187 111.867813) (xy 166.036083 111.716735) (xy 166.16582 111.662996) (xy 166.272996 111.555819)
(xy 166.331 111.415785) (xy 166.331 110.70844) (xy 166.23575 110.61319) (xy 165.22319 110.61319) (xy 165.22319 110.63319)
(xy 164.97681 110.63319) (xy 164.97681 110.61319) (xy 163.96425 110.61319) (xy 163.869 110.70844) (xy 163.869 111.415785)
(xy 163.927004 111.555819) (xy 164.03418 111.662996) (xy 164.163917 111.716735) (xy 163.985125 111.8362) (xy 162.419488 111.8362)
(xy 160.871083 110.287796) (xy 160.804481 110.188119) (xy 160.409597 109.924266) (xy 160.061374 109.855) (xy 160.061369 109.855)
(xy 159.9438 109.831614) (xy 159.826231 109.855) (xy 156.683688 109.855) (xy 156.651936 109.742416) (xy 156.511454 109.564215)
(xy 163.869 109.564215) (xy 163.869 110.27156) (xy 163.96425 110.36681) (xy 164.97681 110.36681) (xy 164.97681 109.35425)
(xy 165.22319 109.35425) (xy 165.22319 110.36681) (xy 166.23575 110.36681) (xy 166.331 110.27156) (xy 166.331 109.564215)
(xy 166.272996 109.424181) (xy 166.16582 109.317004) (xy 166.025786 109.259) (xy 165.31844 109.259) (xy 165.22319 109.35425)
(xy 164.97681 109.35425) (xy 164.88156 109.259) (xy 164.174214 109.259) (xy 164.03418 109.317004) (xy 163.927004 109.424181)
(xy 163.869 109.564215) (xy 156.511454 109.564215) (xy 156.244039 109.225) (xy 156.651936 108.707584) (xy 156.686508 108.585)
(xy 164.275999 108.585) (xy 164.315198 108.624199) (xy 164.889299 108.862) (xy 165.510701 108.862) (xy 166.084802 108.624199)
(xy 166.524199 108.184802) (xy 166.762 107.610701) (xy 166.762 106.989299) (xy 166.524199 106.415198) (xy 166.084802 105.975801)
(xy 165.510701 105.738) (xy 164.889299 105.738) (xy 164.315198 105.975801) (xy 164.093599 106.1974) (xy 156.357232 106.1974)
(xy 156.100113 105.738282) (xy 155.544945 105.300624) (xy 154.90718 105.120756) (xy 154.932104 104.486338) (xy 154.687422 103.823099)
(xy 154.328683 103.435018) (xy 153.220301 102.629734) (xy 152.740358 102.408477) (xy 152.288741 102.390734) (xy 152.007277 102.202666)
(xy 151.659054 102.1334) (xy 151.659049 102.1334) (xy 151.54148 102.110014) (xy 151.423911 102.1334) (xy 151.127636 102.1334)
(xy 151.071145 102.048855) (xy 150.483351 101.656103) (xy 149.965017 101.553) (xy 148.594983 101.553) (xy 148.076649 101.656103)
(xy 147.488855 102.048855) (xy 147.118576 102.603016) (xy 146.516031 102.380725) (xy 145.809641 102.408477) (xy 145.561267 102.522979)
(xy 143.627283 100.588996) (xy 143.560681 100.489319) (xy 143.165797 100.225466) (xy 142.817574 100.1562) (xy 142.817569 100.1562)
(xy 142.7 100.132814) (xy 142.582431 100.1562) (xy 137.717568 100.1562) (xy 137.599999 100.132814) (xy 137.48243 100.1562)
(xy 137.482426 100.1562) (xy 137.134203 100.225466) (xy 136.739319 100.489319) (xy 136.672719 100.588993) (xy 135.555513 101.7062)
(xy 135.076928 101.7062) (xy 135.076928 101.7) (xy 135.017788 101.402683) (xy 134.849371 101.150629) (xy 134.597317 100.982212)
(xy 134.3 100.923072) (xy 131.9 100.923072) (xy 131.602683 100.982212) (xy 131.350629 101.150629) (xy 131.182212 101.402683)
(xy 131.123072 101.7) (xy 131.123072 101.7062) (xy 130.394488 101.7062) (xy 129.527283 100.838996) (xy 129.460681 100.739319)
(xy 129.065797 100.475466) (xy 128.717574 100.4062) (xy 128.717569 100.4062) (xy 128.6 100.382814) (xy 128.482431 100.4062)
(xy 125.847568 100.4062) (xy 125.729999 100.382814) (xy 125.61243 100.4062) (xy 125.612426 100.4062) (xy 125.264203 100.475466)
(xy 124.869319 100.739319) (xy 124.802719 100.838993) (xy 124.338626 101.303087) (xy 124.337317 101.302212) (xy 124.04 101.243072)
(xy 123.994213 101.243072) (xy 124.253318 100.950275) (xy 124.380469 100.643277) (xy 124.319049 100.45319) (xy 123.31319 100.45319)
(xy 123.31319 100.47319) (xy 123.06681 100.47319) (xy 123.06681 100.45319) (xy 122.060951 100.45319) (xy 121.999531 100.643277)
(xy 122.126682 100.950275) (xy 122.385787 101.243072) (xy 122.34 101.243072) (xy 122.042683 101.302212) (xy 121.790629 101.470629)
(xy 121.622212 101.722683) (xy 121.563072 102.02) (xy 121.563072 103.72) (xy 121.622212 104.017317) (xy 121.790629 104.269371)
(xy 122.042683 104.437788) (xy 122.34 104.496928) (xy 124.04 104.496928) (xy 124.337317 104.437788) (xy 124.589371 104.269371)
(xy 124.749592 104.029583) (xy 124.925797 103.994534) (xy 125.320681 103.730681) (xy 125.387283 103.631004) (xy 126.224488 102.7938)
(xy 128.105513 102.7938) (xy 128.972719 103.661007) (xy 129.039319 103.760681) (xy 129.138993 103.827281) (xy 129.434202 104.024534)
(xy 129.9 104.117187) (xy 130.017574 104.0938) (xy 131.123072 104.0938) (xy 131.123072 104.1) (xy 131.182212 104.397317)
(xy 131.350629 104.649371) (xy 131.602683 104.817788) (xy 131.9 104.876928) (xy 134.3 104.876928) (xy 134.597317 104.817788)
(xy 134.849371 104.649371) (xy 135.017788 104.397317) (xy 135.076928 104.1) (xy 135.076928 104.0938) (xy 135.932431 104.0938)
(xy 136.05 104.117186) (xy 136.167569 104.0938) (xy 136.167574 104.0938) (xy 136.515797 104.024534) (xy 136.910681 103.760681)
(xy 136.977283 103.661004) (xy 138.094488 102.5438) (xy 142.205513 102.5438) (xy 143.760771 104.099059) (xy 143.617896 104.486339)
(xy 143.64282 105.120755) (xy 143.005055 105.300624) (xy 142.449887 105.738282) (xy 142.201649 106.181543) (xy 142.163799 106.174014)
(xy 142.04623 106.1974) (xy 142.046226 106.1974) (xy 141.698003 106.266666) (xy 141.303119 106.530519) (xy 141.236519 106.630193)
(xy 140.208996 107.657717) (xy 140.109319 107.724319) (xy 139.845466 108.119204) (xy 139.7762 108.467427) (xy 139.7762 108.467431)
(xy 139.752814 108.585) (xy 139.7762 108.702569) (xy 139.776201 120.314798) (xy 139.675801 120.415198) (xy 139.438 120.989299)
(xy 139.438 121.610701) (xy 139.675801 122.184802) (xy 139.7762 122.285201) (xy 139.776201 123.330511) (xy 138.570513 124.5362)
(xy 130.292568 124.5362) (xy 130.174999 124.512814) (xy 130.05743 124.5362) (xy 130.057426 124.5362) (xy 129.709203 124.605466)
(xy 129.314319 124.869319) (xy 129.247719 124.968993) (xy 128.143996 126.072717) (xy 128.044319 126.139319) (xy 127.780466 126.534204)
(xy 127.7112 126.882427) (xy 127.7112 126.882431) (xy 127.687814 127) (xy 127.7112 127.117569) (xy 127.711201 130.057426)
(xy 127.687814 130.175) (xy 127.711201 130.292573) (xy 127.711201 130.292574) (xy 127.780467 130.640797) (xy 128.04432 131.035681)
(xy 128.143994 131.102281) (xy 128.804212 131.7625) (xy 124.918813 131.7625) (xy 125.558639 131.122674) (xy 125.984 130.095761)
(xy 125.984 128.984239) (xy 125.558639 127.957326) (xy 124.772674 127.171361) (xy 123.745761 126.746) (xy 122.634239 126.746)
(xy 121.607326 127.171361) (xy 120.9675 127.811187) (xy 120.9675 122.925416) (xy 123.319163 122.925416) (xy 123.522882 123.338747)
(xy 123.869268 123.642655) (xy 124.154585 123.760825) (xy 124.33681 123.698739) (xy 124.33681 122.74319) (xy 124.58319 122.74319)
(xy 124.58319 123.698739) (xy 124.765415 123.760825) (xy 125.050732 123.642655) (xy 125.397118 123.338747) (xy 125.600837 122.925416)
(xy 125.539319 122.74319) (xy 124.58319 122.74319) (xy 124.33681 122.74319) (xy 123.380681 122.74319) (xy 123.319163 122.925416)
(xy 120.9675 122.925416) (xy 120.9675 122.314584) (xy 123.319163 122.314584) (xy 123.380681 122.49681) (xy 124.33681 122.49681)
(xy 124.33681 121.541261) (xy 124.58319 121.541261) (xy 124.58319 122.49681) (xy 125.539319 122.49681) (xy 125.600837 122.314584)
(xy 125.397118 121.901253) (xy 125.050732 121.597345) (xy 124.765415 121.479175) (xy 124.58319 121.541261) (xy 124.33681 121.541261)
(xy 124.154585 121.479175) (xy 123.869268 121.597345) (xy 123.522882 121.901253) (xy 123.319163 122.314584) (xy 120.9675 122.314584)
(xy 120.9675 110.275) (xy 121.563072 110.275) (xy 121.563072 111.975) (xy 121.622212 112.272317) (xy 121.790629 112.524371)
(xy 121.996201 112.661729) (xy 121.9962 114.182431) (xy 121.972814 114.3) (xy 121.9962 114.417569) (xy 121.9962 114.417573)
(xy 122.065466 114.765796) (xy 122.329319 115.160681) (xy 122.428996 115.227283) (xy 122.897717 115.696004) (xy 122.964319 115.795681)
(xy 123.212528 115.961529) (xy 123.575198 116.324199) (xy 124.149299 116.562) (xy 124.770701 116.562) (xy 125.344802 116.324199)
(xy 125.784199 115.884802) (xy 126.022 115.310701) (xy 126.022 114.689299) (xy 125.784199 114.115198) (xy 125.344802 113.675801)
(xy 124.770701 113.438) (xy 124.3838 113.438) (xy 124.3838 112.661729) (xy 124.589371 112.524371) (xy 124.726729 112.3188)
(xy 128.787431 112.3188) (xy 128.905 112.342186) (xy 129.022569 112.3188) (xy 129.022574 112.3188) (xy 129.370797 112.249534)
(xy 129.765681 111.985681) (xy 129.832283 111.886004) (xy 131.571288 110.147) (xy 131.755701 110.147) (xy 132.329802 109.909199)
(xy 132.769199 109.469802) (xy 133.007 108.895701) (xy 133.007 108.274299) (xy 132.769199 107.700198) (xy 132.329802 107.260801)
(xy 131.755701 107.023) (xy 131.134299 107.023) (xy 130.560198 107.260801) (xy 130.120801 107.700198) (xy 129.883 108.274299)
(xy 129.883 108.458712) (xy 128.410513 109.9312) (xy 124.726729 109.9312) (xy 124.589371 109.725629) (xy 124.337317 109.557212)
(xy 124.04 109.498072) (xy 123.994213 109.498072) (xy 124.253318 109.205275) (xy 124.380469 108.898277) (xy 124.319049 108.70819)
(xy 123.31319 108.70819) (xy 123.31319 108.72819) (xy 123.06681 108.72819) (xy 123.06681 108.70819) (xy 122.060951 108.70819)
(xy 121.999531 108.898277) (xy 122.126682 109.205275) (xy 122.385787 109.498072) (xy 122.34 109.498072) (xy 122.042683 109.557212)
(xy 121.790629 109.725629) (xy 121.622212 109.977683) (xy 121.563072 110.275) (xy 120.9675 110.275) (xy 120.9675 108.271723)
(xy 121.999531 108.271723) (xy 122.060951 108.46181) (xy 123.06681 108.46181) (xy 123.06681 107.455418) (xy 123.31319 107.455418)
(xy 123.31319 108.46181) (xy 124.319049 108.46181) (xy 124.380469 108.271723) (xy 124.253318 107.964725) (xy 123.935009 107.605026)
(xy 123.503279 107.394519) (xy 123.31319 107.455418) (xy 123.06681 107.455418) (xy 122.876721 107.394519) (xy 122.444991 107.605026)
(xy 122.126682 107.964725) (xy 121.999531 108.271723) (xy 120.9675 108.271723) (xy 120.9675 100.016723) (xy 121.999531 100.016723)
(xy 122.060951 100.20681) (xy 123.06681 100.20681) (xy 123.06681 99.200418) (xy 123.31319 99.200418) (xy 123.31319 100.20681)
(xy 124.319049 100.20681) (xy 124.380469 100.016723) (xy 124.367503 99.985416) (xy 164.059163 99.985416) (xy 164.262882 100.398747)
(xy 164.609268 100.702655) (xy 164.894585 100.820825) (xy 165.07681 100.758739) (xy 165.07681 99.80319) (xy 165.32319 99.80319)
(xy 165.32319 100.758739) (xy 165.505415 100.820825) (xy 165.790732 100.702655) (xy 166.137118 100.398747) (xy 166.340837 99.985416)
(xy 166.279319 99.80319) (xy 165.32319 99.80319) (xy 165.07681 99.80319) (xy 164.120681 99.80319) (xy 164.059163 99.985416)
(xy 124.367503 99.985416) (xy 124.253318 99.709725) (xy 123.956742 99.374584) (xy 164.059163 99.374584) (xy 164.120681 99.55681)
(xy 165.07681 99.55681) (xy 165.07681 98.601261) (xy 165.32319 98.601261) (xy 165.32319 99.55681) (xy 166.279319 99.55681)
(xy 166.340837 99.374584) (xy 166.137118 98.961253) (xy 165.790732 98.657345) (xy 165.505415 98.539175) (xy 165.32319 98.601261)
(xy 165.07681 98.601261) (xy 164.894585 98.539175) (xy 164.609268 98.657345) (xy 164.262882 98.961253) (xy 164.059163 99.374584)
(xy 123.956742 99.374584) (xy 123.935009 99.350026) (xy 123.503279 99.139519) (xy 123.31319 99.200418) (xy 123.06681 99.200418)
(xy 122.876721 99.139519) (xy 122.444991 99.350026) (xy 122.126682 99.709725) (xy 121.999531 100.016723) (xy 120.9675 100.016723)
(xy 120.9675 98.902324) (xy 164.481541 98.902324) (xy 165.1 99.520783) (xy 165.718459 98.902324) (xy 165.643217 98.737742)
(xy 165.23554 98.602729) (xy 164.807229 98.634004) (xy 164.556783 98.737742) (xy 164.481541 98.902324) (xy 120.9675 98.902324)
(xy 120.9675 97.450891) (xy 130.688326 97.450891) (xy 130.787003 97.635239) (xy 131.263874 97.802151) (xy 131.768319 97.773867)
(xy 132.102997 97.635239) (xy 132.201674 97.450891) (xy 131.445 96.694217) (xy 130.688326 97.450891) (xy 120.9675 97.450891)
(xy 120.9675 95.708383) (xy 121.60526 96.347257) (xy 122.631801 96.773514) (xy 123.743323 96.774484) (xy 124.770606 96.350019)
(xy 124.78177 96.338874) (xy 130.162849 96.338874) (xy 130.191133 96.843319) (xy 130.329761 97.177997) (xy 130.514109 97.276674)
(xy 131.270783 96.52) (xy 131.619217 96.52) (xy 132.375891 97.276674) (xy 132.560239 97.177997) (xy 132.727151 96.701126)
(xy 132.698867 96.196681) (xy 132.560239 95.862003) (xy 132.375891 95.763326) (xy 131.619217 96.52) (xy 131.270783 96.52)
(xy 130.514109 95.763326) (xy 130.329761 95.862003) (xy 130.162849 96.338874) (xy 124.78177 96.338874) (xy 125.532845 95.589109)
(xy 130.688326 95.589109) (xy 131.445 96.345783) (xy 132.201674 95.589109) (xy 132.102997 95.404761) (xy 131.626126 95.237849)
(xy 131.121681 95.266133) (xy 130.787003 95.404761) (xy 130.688326 95.589109) (xy 125.532845 95.589109) (xy 125.557257 95.56474)
(xy 125.983514 94.538199) (xy 125.984484 93.426677) (xy 125.560019 92.399394) (xy 124.919245 91.7575) (xy 163.371617 91.7575)
(xy 120.9675 95.708813) (xy 121.607326 96.348639) (xy 122.634239 96.774) (xy 123.745761 96.774) (xy 124.271936 96.556051)
(xy 132.118166 96.556051) (xy 132.254939 96.77271) (xy 132.844579 96.99161) (xy 133.473104 96.968201) (xy 133.945061 96.77271)
(xy 134.081834 96.556051) (xy 133.1 95.574217) (xy 132.118166 96.556051) (xy 124.271936 96.556051) (xy 124.772674 96.348639)
(xy 125.558639 95.562674) (xy 125.731819 95.144579) (xy 131.50839 95.144579) (xy 131.531799 95.773104) (xy 131.72729 96.245061)
(xy 131.943949 96.381834) (xy 132.925783 95.4) (xy 133.274217 95.4) (xy 134.256051 96.381834) (xy 134.47271 96.245061)
(xy 134.69161 95.655421) (xy 134.668201 95.026896) (xy 134.47271 94.554939) (xy 134.256051 94.418166) (xy 133.274217 95.4)
(xy 132.925783 95.4) (xy 131.943949 94.418166) (xy 131.72729 94.554939) (xy 131.50839 95.144579) (xy 125.731819 95.144579)
(xy 125.984 94.535761) (xy 125.984 94.243949) (xy 132.118166 94.243949) (xy 133.1 95.225783) (xy 134.081834 94.243949)
(xy 133.945061 94.02729) (xy 133.355421 93.80839) (xy 132.726896 93.831799) (xy 132.254939 94.02729) (xy 132.118166 94.243949)
(xy 125.984 94.243949) (xy 125.984 93.424239) (xy 125.558639 92.397326) (xy 124.918813 91.7575) (xy 163.371187 91.7575)
)
)
)
+9 -9
View File
@@ -20,7 +20,7 @@ U 3 1 48B4F266
P 3900 3050
F 0 "U1" H 4200 3150 50 0000 C CNN
F 1 "ECC83" H 4250 3050 50 0000 C CNN
F 2 "" H 4400 2950 30 0000 C CNN
F 2 "Valve:Valve_ECC-83-2" H 4400 2950 30 0000 C CNN
F 3 "" H 3900 3050 60 0001 C CNN
3 3900 3050
1 0 0 -1
@@ -31,7 +31,7 @@ U 2 1 48B4F263
P 6500 4200
F 0 "U1" H 7000 4300 50 0000 C CNN
F 1 "ECC83" H 7000 4200 50 0000 C CNN
F 2 "" H 7000 4100 30 0000 C CNN
F 2 "Valve:Valve_ECC-83-2" H 7000 4100 30 0000 C CNN
F 3 "" H 6500 4200 60 0001 C CNN
2 6500 4200
1 0 0 -1
@@ -108,7 +108,7 @@ U 1 1 456A8ACC
P 3050 3700
F 0 "P4" V 3000 3700 40 0000 C CNN
F 1 "CONN_2" V 3100 3700 40 0000 C CNN
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 3050 3500 30 0000 C CNN
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 3050 3500 20 0000 C CNN
F 3 "" H 3050 3700 60 0001 C CNN
1 3050 3700
-1 0 0 -1
@@ -119,7 +119,7 @@ U 1 1 4549F4BE
P 4100 2100
F 0 "C1" H 4250 2150 50 0000 L CNN
F 1 "10uF" H 4250 2050 50 0000 L CNN
F 2 "discret:C2V10" H 4300 1900 30 0000 C CNN
F 2 "Capacitor_THT:CP_Radial_D12.5mm_P7.50mm" H 4300 1900 30 0000 C CNN
F 3 "" H 4100 2100 60 0001 C CNN
1 4100 2100
1 0 0 -1
@@ -130,7 +130,7 @@ U 1 1 4549F4A5
P 3050 1900
F 0 "P3" V 3000 1900 40 0000 C CNN
F 1 "POWER" V 3100 1900 40 0000 C CNN
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 3050 1700 30 0000 C CNN
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 3050 1700 20 0000 C CNN
F 3 "" H 3050 1900 60 0001 C CNN
1 3050 1900
-1 0 0 -1
@@ -174,7 +174,7 @@ U 1 1 4549F3AD
P 7600 3550
F 0 "R3" H 7500 3750 50 0000 C CNN
F 1 "100K" V 7600 3550 50 0000 C CNN
F 2 "discret:R3" V 7700 3550 30 0000 C CNN
F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" V 7700 3550 10 0000 C CNN
F 3 "" H 7600 3550 60 0001 C CNN
1 7600 3550
1 0 0 -1
@@ -185,7 +185,7 @@ U 1 1 4549F3A2
P 6000 5300
F 0 "R4" H 5900 5500 50 0000 C CNN
F 1 "47K" V 6000 5300 50 0000 C CNN
F 2 "discret:R3" V 6100 5300 30 0000 C CNN
F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" V 6100 5300 10 0000 C CNN
F 3 "" H 6000 5300 60 0001 C CNN
1 6000 5300
1 0 0 -1
@@ -196,7 +196,7 @@ U 1 1 4549F39D
P 6400 5300
F 0 "R2" H 6300 5500 50 0000 C CNN
F 1 "1.5K" V 6400 5300 50 0000 C CNN
F 2 "discret:R3" V 6500 5300 30 0000 C CNN
F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" V 6500 5300 10 0000 C CNN
F 3 "" H 6400 5300 60 0001 C CNN
1 6400 5300
1 0 0 -1
@@ -207,7 +207,7 @@ U 1 1 4549F38A
P 6500 3250
F 0 "R1" H 6600 3050 50 0000 C CNN
F 1 "1.5K" V 6500 3250 50 0000 C CNN
F 2 "discret:R3" V 6400 3250 30 0000 C CNN
F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" V 6400 3250 10 0000 C CNN
F 3 "" H 6500 3250 60 0001 C CNN
1 6500 3250
-1 0 0 1
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,4 +1,4 @@
(kicad_pcb (version 20171130) (host pcbnew "(5.0.0-rc2-dev-728-g2832f99-dirty)")
(kicad_pcb (version 20171130) (host pcbnew "(5.0.0-rc2-221-gd3deaf5ff)")
(general
(thickness 1.6)
@@ -6,7 +6,7 @@
(tracks 3592)
(zones 0)
(modules 162)
(nets 210)
(nets 279)
)
(page A4)
@@ -81,7 +81,7 @@
(useauxorigin true)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15)
(hpglpendiameter 15.000000)
(psnegative false)
(psa4output false)
(plotreference true)
@@ -93,7 +93,7 @@
(mirror false)
(drillshape 0)
(scaleselection 1)
(outputdirectory plots/))
(outputdirectory "plots/"))
)
(net 0 "")
@@ -306,6 +306,75 @@
(net 207 /UTXD0)
(net 208 /URXD0)
(net 209 /UCTS0)
(net 210 "Net-(SW_ONOFF1-Pad1)")
(net 211 "Net-(UARTCAN2-Pad9)")
(net 212 "Net-(UARTCAN0-Pad9)")
(net 213 "Net-(UARTCAN1-Pad9)")
(net 214 "Net-(VR1-Pad4)")
(net 215 "Net-(U9-Pad141)")
(net 216 "Net-(U9-Pad133)")
(net 217 "Net-(U9-Pad121)")
(net 218 "Net-(U9-Pad120)")
(net 219 "Net-(U9-Pad110)")
(net 220 "Net-(U9-Pad106)")
(net 221 "Net-(U9-Pad103)")
(net 222 "Net-(U9-Pad102)")
(net 223 "Net-(U9-Pad94)")
(net 224 "Net-(U9-Pad93)")
(net 225 "Net-(U9-Pad92)")
(net 226 "Net-(U9-Pad91)")
(net 227 "Net-(U9-Pad90)")
(net 228 "Net-(U9-Pad88)")
(net 229 "Net-(U9-Pad87)")
(net 230 "Net-(U9-Pad86)")
(net 231 "Net-(U9-Pad84)")
(net 232 "Net-(U9-Pad83)")
(net 233 "Net-(U9-Pad82)")
(net 234 "Net-(U9-Pad81)")
(net 235 "Net-(U9-Pad80)")
(net 236 "Net-(U9-Pad79)")
(net 237 "Net-(U9-Pad78)")
(net 238 "Net-(U9-Pad77)")
(net 239 "Net-(U9-Pad75)")
(net 240 "Net-(U9-Pad74)")
(net 241 "Net-(U9-Pad72)")
(net 242 "Net-(U9-Pad71)")
(net 243 "Net-(U9-Pad70)")
(net 244 "Net-(U9-Pad69)")
(net 245 "Net-(U9-Pad68)")
(net 246 "Net-(U9-Pad67)")
(net 247 "Net-(U9-Pad66)")
(net 248 "Net-(U9-Pad65)")
(net 249 "Net-(U9-Pad63)")
(net 250 "Net-(U9-Pad62)")
(net 251 "Net-(U9-Pad61)")
(net 252 "Net-(U9-Pad60)")
(net 253 "Net-(U9-Pad56)")
(net 254 "Net-(U9-Pad55)")
(net 255 "Net-(U9-Pad41)")
(net 256 "Net-(U9-Pad40)")
(net 257 "Net-(U9-Pad39)")
(net 258 "Net-(U9-Pad38)")
(net 259 "Net-(U9-Pad37)")
(net 260 "Net-(U9-Pad36)")
(net 261 "Net-(U9-Pad35)")
(net 262 "Net-(U9-Pad34)")
(net 263 "Net-(U9-Pad30)")
(net 264 "Net-(U9-Pad29)")
(net 265 "Net-(U9-Pad26)")
(net 266 "Net-(U9-Pad25)")
(net 267 "Net-(U9-Pad23)")
(net 268 "Net-(U9-Pad22)")
(net 269 "Net-(U9-Pad21)")
(net 270 "Net-(U9-Pad19)")
(net 271 "Net-(U9-Pad18)")
(net 272 "Net-(U9-Pad16)")
(net 273 "Net-(U9-Pad15)")
(net 274 "Net-(U9-Pad14)")
(net 275 "Net-(U9-Pad9)")
(net 276 "Net-(BDM_PORT1-Pad22)")
(net 277 "Net-(BDM_PORT1-Pad21)")
(net 278 "Net-(BDM_PORT1-Pad1)")
(net_class Default "Ceci est la Netclass par défaut"
(clearance 0.15)
@@ -447,6 +516,9 @@
(add_net /xilinx/XIL_D8)
(add_net /xilinx/XIL_D9)
(add_net "Net-(ABRT_SW1-Pad1)")
(add_net "Net-(BDM_PORT1-Pad1)")
(add_net "Net-(BDM_PORT1-Pad21)")
(add_net "Net-(BDM_PORT1-Pad22)")
(add_net "Net-(BDM_PORT1-Pad26)")
(add_net "Net-(BDM_PORT1-Pad6)")
(add_net "Net-(C15-Pad1)")
@@ -507,6 +579,7 @@
(add_net "Net-(R36-Pad1)")
(add_net "Net-(R46-Pad1)")
(add_net "Net-(R9-Pad1)")
(add_net "Net-(SW_ONOFF1-Pad1)")
(add_net "Net-(U3-Pad11)")
(add_net "Net-(U3-Pad12)")
(add_net "Net-(U3-Pad9)")
@@ -517,9 +590,74 @@
(add_net "Net-(U8-Pad10)")
(add_net "Net-(U8-Pad12)")
(add_net "Net-(U8-Pad9)")
(add_net "Net-(U9-Pad102)")
(add_net "Net-(U9-Pad103)")
(add_net "Net-(U9-Pad106)")
(add_net "Net-(U9-Pad110)")
(add_net "Net-(U9-Pad120)")
(add_net "Net-(U9-Pad121)")
(add_net "Net-(U9-Pad133)")
(add_net "Net-(U9-Pad14)")
(add_net "Net-(U9-Pad141)")
(add_net "Net-(U9-Pad15)")
(add_net "Net-(U9-Pad16)")
(add_net "Net-(U9-Pad18)")
(add_net "Net-(U9-Pad19)")
(add_net "Net-(U9-Pad21)")
(add_net "Net-(U9-Pad22)")
(add_net "Net-(U9-Pad23)")
(add_net "Net-(U9-Pad25)")
(add_net "Net-(U9-Pad26)")
(add_net "Net-(U9-Pad29)")
(add_net "Net-(U9-Pad30)")
(add_net "Net-(U9-Pad34)")
(add_net "Net-(U9-Pad35)")
(add_net "Net-(U9-Pad36)")
(add_net "Net-(U9-Pad37)")
(add_net "Net-(U9-Pad38)")
(add_net "Net-(U9-Pad39)")
(add_net "Net-(U9-Pad40)")
(add_net "Net-(U9-Pad41)")
(add_net "Net-(U9-Pad55)")
(add_net "Net-(U9-Pad56)")
(add_net "Net-(U9-Pad60)")
(add_net "Net-(U9-Pad61)")
(add_net "Net-(U9-Pad62)")
(add_net "Net-(U9-Pad63)")
(add_net "Net-(U9-Pad65)")
(add_net "Net-(U9-Pad66)")
(add_net "Net-(U9-Pad67)")
(add_net "Net-(U9-Pad68)")
(add_net "Net-(U9-Pad69)")
(add_net "Net-(U9-Pad70)")
(add_net "Net-(U9-Pad71)")
(add_net "Net-(U9-Pad72)")
(add_net "Net-(U9-Pad74)")
(add_net "Net-(U9-Pad75)")
(add_net "Net-(U9-Pad77)")
(add_net "Net-(U9-Pad78)")
(add_net "Net-(U9-Pad79)")
(add_net "Net-(U9-Pad80)")
(add_net "Net-(U9-Pad81)")
(add_net "Net-(U9-Pad82)")
(add_net "Net-(U9-Pad83)")
(add_net "Net-(U9-Pad84)")
(add_net "Net-(U9-Pad86)")
(add_net "Net-(U9-Pad87)")
(add_net "Net-(U9-Pad88)")
(add_net "Net-(U9-Pad9)")
(add_net "Net-(U9-Pad90)")
(add_net "Net-(U9-Pad91)")
(add_net "Net-(U9-Pad92)")
(add_net "Net-(U9-Pad93)")
(add_net "Net-(U9-Pad94)")
(add_net "Net-(UARTCAN0-Pad1)")
(add_net "Net-(UARTCAN0-Pad9)")
(add_net "Net-(UARTCAN1-Pad1)")
(add_net "Net-(UARTCAN1-Pad9)")
(add_net "Net-(UARTCAN2-Pad1)")
(add_net "Net-(UARTCAN2-Pad9)")
(add_net "Net-(VR1-Pad4)")
)
(net_class POWER ""
@@ -826,7 +964,8 @@
(net 177 +3.3V))
(pad 3 smd rect (at -5.775 0 90) (size 4.6 1.1) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 4 smd rect (at -5.775 1.7 90) (size 4.6 1.1) (layers Top_layer F.Paste F.Mask))
(pad 4 smd rect (at -5.775 1.7 90) (size 4.6 1.1) (layers Top_layer F.Paste F.Mask)
(net 214 "Net-(VR1-Pad4)"))
(pad 5 smd rect (at -5.775 3.4 90) (size 4.6 1.1) (layers Top_layer F.Paste F.Mask)
(net 113 "Net-(C38-Pad1)"))
(pad 3 smd rect (at 3.375 0 90) (size 9.4 10.8) (layers Top_layer F.Mask)
@@ -2320,7 +2459,8 @@
(net 86 /xilinx/XIL_D5))
(pad 142 smd rect (at -7.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 71 /xilinx/XIL_D24))
(pad 141 smd rect (at -7.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 141 smd rect (at -7.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 215 "Net-(U9-Pad141)"))
(pad 140 smd rect (at -6.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 87 /xilinx/XIL_D6))
(pad 139 smd rect (at -6.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
@@ -2335,7 +2475,8 @@
(net 91 GND))
(pad 134 smd rect (at -3.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 74 /xilinx/XIL_D27))
(pad 133 smd rect (at -3.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 133 smd rect (at -3.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 216 "Net-(U9-Pad133)"))
(pad 132 smd rect (at -2.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 75 /xilinx/XIL_D28))
(pad 131 smd rect (at -2.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
@@ -2358,8 +2499,10 @@
(net 177 +3.3V))
(pad 122 smd rect (at 2.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 56 /xilinx/XIL_D10))
(pad 121 smd rect (at 2.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 120 smd rect (at 3.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 121 smd rect (at 2.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 217 "Net-(U9-Pad121)"))
(pad 120 smd rect (at 3.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 218 "Net-(U9-Pad120)"))
(pad 119 smd rect (at 3.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 57 /xilinx/XIL_D11))
(pad 118 smd rect (at 4.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
@@ -2378,20 +2521,24 @@
(net 81 /xilinx/XIL_D33))
(pad 111 smd rect (at 7.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 59 /xilinx/XIL_D13))
(pad 110 smd rect (at 8.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 110 smd rect (at 8.25 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 219 "Net-(U9-Pad110)"))
(pad 109 smd rect (at 8.75 -10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 60 /xilinx/XIL_D14))
(pad 108 smd rect (at 10.55 -8.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 61 /xilinx/XIL_D15))
(pad 107 smd rect (at 10.55 -8.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 83 /xilinx/XIL_D35))
(pad 106 smd rect (at 10.55 -7.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 106 smd rect (at 10.55 -7.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 220 "Net-(U9-Pad106)"))
(pad 105 smd rect (at 10.55 -7.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 104 smd rect (at 10.55 -6.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 52 /xilinx/TDO))
(pad 103 smd rect (at 10.55 -6.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 102 smd rect (at 10.55 -5.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 103 smd rect (at 10.55 -6.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 221 "Net-(U9-Pad103)"))
(pad 102 smd rect (at 10.55 -5.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 222 "Net-(U9-Pad102)"))
(pad 101 smd rect (at 10.55 -5.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 63 /xilinx/XIL_D17))
(pad 100 smd rect (at 10.55 -4.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
@@ -2406,54 +2553,86 @@
(net 65 /xilinx/XIL_D19))
(pad 95 smd rect (at 10.55 -2.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 177 +3.3V))
(pad 94 smd rect (at 10.55 -1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 93 smd rect (at 10.55 -1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 92 smd rect (at 10.55 -0.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 91 smd rect (at 10.55 -0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 90 smd rect (at 10.55 0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 94 smd rect (at 10.55 -1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 223 "Net-(U9-Pad94)"))
(pad 93 smd rect (at 10.55 -1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 224 "Net-(U9-Pad93)"))
(pad 92 smd rect (at 10.55 -0.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 225 "Net-(U9-Pad92)"))
(pad 91 smd rect (at 10.55 -0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 226 "Net-(U9-Pad91)"))
(pad 90 smd rect (at 10.55 0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 227 "Net-(U9-Pad90)"))
(pad 89 smd rect (at 10.55 0.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 50 /xilinx/TCK))
(pad 88 smd rect (at 10.55 1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 87 smd rect (at 10.55 1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 86 smd rect (at 10.55 2.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 88 smd rect (at 10.55 1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 228 "Net-(U9-Pad88)"))
(pad 87 smd rect (at 10.55 1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 229 "Net-(U9-Pad87)"))
(pad 86 smd rect (at 10.55 2.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 230 "Net-(U9-Pad86)"))
(pad 85 smd rect (at 10.55 2.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 84 smd rect (at 10.55 3.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 83 smd rect (at 10.55 3.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 82 smd rect (at 10.55 4.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 81 smd rect (at 10.55 4.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 80 smd rect (at 10.55 5.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 79 smd rect (at 10.55 5.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 78 smd rect (at 10.55 6.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 77 smd rect (at 10.55 6.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 84 smd rect (at 10.55 3.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 231 "Net-(U9-Pad84)"))
(pad 83 smd rect (at 10.55 3.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 232 "Net-(U9-Pad83)"))
(pad 82 smd rect (at 10.55 4.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 233 "Net-(U9-Pad82)"))
(pad 81 smd rect (at 10.55 4.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 234 "Net-(U9-Pad81)"))
(pad 80 smd rect (at 10.55 5.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 235 "Net-(U9-Pad80)"))
(pad 79 smd rect (at 10.55 5.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 236 "Net-(U9-Pad79)"))
(pad 78 smd rect (at 10.55 6.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 237 "Net-(U9-Pad78)"))
(pad 77 smd rect (at 10.55 6.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 238 "Net-(U9-Pad77)"))
(pad 76 smd rect (at 10.55 7.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 177 +3.3V))
(pad 75 smd rect (at 10.55 7.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 74 smd rect (at 10.55 8.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 75 smd rect (at 10.55 7.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 239 "Net-(U9-Pad75)"))
(pad 74 smd rect (at 10.55 8.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 240 "Net-(U9-Pad74)"))
(pad 73 smd rect (at 10.55 8.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 177 +3.3V))
(pad 72 smd rect (at 8.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 71 smd rect (at 8.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 70 smd rect (at 7.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 69 smd rect (at 7.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 68 smd rect (at 6.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 67 smd rect (at 6.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 66 smd rect (at 5.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 65 smd rect (at 5.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 72 smd rect (at 8.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 241 "Net-(U9-Pad72)"))
(pad 71 smd rect (at 8.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 242 "Net-(U9-Pad71)"))
(pad 70 smd rect (at 7.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 243 "Net-(U9-Pad70)"))
(pad 69 smd rect (at 7.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 244 "Net-(U9-Pad69)"))
(pad 68 smd rect (at 6.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 245 "Net-(U9-Pad68)"))
(pad 67 smd rect (at 6.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 246 "Net-(U9-Pad67)"))
(pad 66 smd rect (at 5.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 247 "Net-(U9-Pad66)"))
(pad 65 smd rect (at 5.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 248 "Net-(U9-Pad65)"))
(pad 64 smd rect (at 4.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 63 smd rect (at 4.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 62 smd rect (at 3.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 61 smd rect (at 3.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 60 smd rect (at 2.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 63 smd rect (at 4.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 249 "Net-(U9-Pad63)"))
(pad 62 smd rect (at 3.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 250 "Net-(U9-Pad62)"))
(pad 61 smd rect (at 3.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 251 "Net-(U9-Pad61)"))
(pad 60 smd rect (at 2.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 252 "Net-(U9-Pad60)"))
(pad 59 smd rect (at 2.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 58 smd rect (at 1.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 177 +3.3V))
(pad 57 smd rect (at 1.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 56 smd rect (at 0.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 55 smd rect (at 0.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 56 smd rect (at 0.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 253 "Net-(U9-Pad56)"))
(pad 55 smd rect (at 0.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 254 "Net-(U9-Pad55)"))
(pad 54 smd rect (at -0.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 187 /QSPI_CS1))
(pad 53 smd rect (at -0.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
@@ -2480,42 +2659,62 @@
(net 181 /IRQ-2))
(pad 42 smd rect (at -6.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 180 /IRQ-1))
(pad 41 smd rect (at -6.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 40 smd rect (at -7.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 39 smd rect (at -7.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 38 smd rect (at -8.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 37 smd rect (at -8.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 36 smd rect (at -10.55 8.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 35 smd rect (at -10.55 8.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 34 smd rect (at -10.55 7.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 41 smd rect (at -6.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 255 "Net-(U9-Pad41)"))
(pad 40 smd rect (at -7.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 256 "Net-(U9-Pad40)"))
(pad 39 smd rect (at -7.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 257 "Net-(U9-Pad39)"))
(pad 38 smd rect (at -8.25 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 258 "Net-(U9-Pad38)"))
(pad 37 smd rect (at -8.75 10.55) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 259 "Net-(U9-Pad37)"))
(pad 36 smd rect (at -10.55 8.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 260 "Net-(U9-Pad36)"))
(pad 35 smd rect (at -10.55 8.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 261 "Net-(U9-Pad35)"))
(pad 34 smd rect (at -10.55 7.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 262 "Net-(U9-Pad34)"))
(pad 33 smd rect (at -10.55 7.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 32 smd rect (at -10.55 6.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 145 "Net-(P3-Pad2)"))
(pad 31 smd rect (at -10.55 6.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 146 "Net-(P3-Pad4)"))
(pad 30 smd rect (at -10.55 5.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 29 smd rect (at -10.55 5.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 30 smd rect (at -10.55 5.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 263 "Net-(U9-Pad30)"))
(pad 29 smd rect (at -10.55 5.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 264 "Net-(U9-Pad29)"))
(pad 28 smd rect (at -10.55 4.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 48 /xilinx/LED_TEST1))
(pad 27 smd rect (at -10.55 4.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 49 /xilinx/LED_TEST2))
(pad 26 smd rect (at -10.55 3.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 25 smd rect (at -10.55 3.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 26 smd rect (at -10.55 3.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 265 "Net-(U9-Pad26)"))
(pad 25 smd rect (at -10.55 3.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 266 "Net-(U9-Pad25)"))
(pad 24 smd rect (at -10.55 2.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 177 +3.3V))
(pad 23 smd rect (at -10.55 2.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 22 smd rect (at -10.55 1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 21 smd rect (at -10.55 1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 23 smd rect (at -10.55 2.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 267 "Net-(U9-Pad23)"))
(pad 22 smd rect (at -10.55 1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 268 "Net-(U9-Pad22)"))
(pad 21 smd rect (at -10.55 1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 269 "Net-(U9-Pad21)"))
(pad 20 smd rect (at -10.55 0.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 53 /xilinx/TMS))
(pad 19 smd rect (at -10.55 0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 18 smd rect (at -10.55 -0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 19 smd rect (at -10.55 0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 270 "Net-(U9-Pad19)"))
(pad 18 smd rect (at -10.55 -0.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 271 "Net-(U9-Pad18)"))
(pad 17 smd rect (at -10.55 -0.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 16 smd rect (at -10.55 -1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 15 smd rect (at -10.55 -1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 14 smd rect (at -10.55 -2.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 16 smd rect (at -10.55 -1.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 272 "Net-(U9-Pad16)"))
(pad 15 smd rect (at -10.55 -1.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 273 "Net-(U9-Pad15)"))
(pad 14 smd rect (at -10.55 -2.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 274 "Net-(U9-Pad14)"))
(pad 13 smd rect (at -10.55 -2.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 91 GND))
(pad 12 smd rect (at -10.55 -3.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
@@ -2524,7 +2723,8 @@
(net 55 /xilinx/XIL_D1))
(pad 10 smd rect (at -10.55 -4.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 68 /xilinx/XIL_D21))
(pad 9 smd rect (at -10.55 -4.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask))
(pad 9 smd rect (at -10.55 -4.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 275 "Net-(U9-Pad9)"))
(pad 8 smd rect (at -10.55 -5.25 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
(net 77 /xilinx/XIL_D3))
(pad 7 smd rect (at -10.55 -5.75 270) (size 1.45 0.25) (layers Top_layer F.Paste F.Mask)
@@ -6964,8 +7164,10 @@
(net 29 /TCLK))
(pad 23 thru_hole oval (at 0 27.94) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 91 GND))
(pad 22 thru_hole oval (at 2.54 25.4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask))
(pad 21 thru_hole oval (at 0 25.4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask))
(pad 22 thru_hole oval (at 2.54 25.4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 276 "Net-(BDM_PORT1-Pad22)"))
(pad 21 thru_hole oval (at 0 25.4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 277 "Net-(BDM_PORT1-Pad21)"))
(pad 20 thru_hole oval (at 2.54 22.86) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 91 GND))
(pad 19 thru_hole oval (at 0 22.86) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
@@ -7004,7 +7206,8 @@
(net 91 GND))
(pad 2 thru_hole oval (at 2.54 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 6 /BKPT-))
(pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask))
(pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 278 "Net-(BDM_PORT1-Pad1)"))
(model ${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_2x13_P2.54mm_Vertical.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
@@ -7416,7 +7619,8 @@
(fp_line (start 33.655 -0.635) (end 22.86 1.27) (layer F.SilkS) (width 0.3048))
(pad 2 thru_hole rect (at 0 0 90) (size 3.81 2.54) (drill 1.6) (layers *.Cu *.Mask F.SilkS)
(net 124 "Net-(F1-Pad1)"))
(pad 1 thru_hole rect (at 0 -5.08 90) (size 3.81 2.54) (drill 1.6) (layers *.Cu *.Mask F.SilkS))
(pad 1 thru_hole rect (at 0 -5.08 90) (size 3.81 2.54) (drill 1.6) (layers *.Cu *.Mask F.SilkS)
(net 210 "Net-(SW_ONOFF1-Pad1)"))
(pad 3 thru_hole rect (at 0 5.08 90) (size 3.81 2.54) (drill 1.6) (layers *.Cu *.Mask F.SilkS)
(net 125 "Net-(J1-Pad3)"))
(model ${KIPRJMOD}/prj.3dshapes/Device.switch_toggle_horizontal_right_angle_PC_terminal.wrl
@@ -7523,7 +7727,8 @@
(net 33 /inout_user/CTS0))
(pad 8 thru_hole circle (at 1.397 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 36 /inout_user/RTS0))
(pad 9 thru_hole circle (at 4.191 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 9 thru_hole circle (at 4.191 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 212 "Net-(UARTCAN0-Pad9)"))
(model ${KIPRJMOD}/prj.3dshapes/db9_female_pin90deg.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
@@ -7570,7 +7775,8 @@
(net 34 /inout_user/CTS1))
(pad 8 thru_hole circle (at 1.397 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 37 /inout_user/RTS1))
(pad 9 thru_hole circle (at 4.191 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 9 thru_hole circle (at 4.191 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 213 "Net-(UARTCAN1-Pad9)"))
(model ${KIPRJMOD}/prj.3dshapes/db9_female_pin90deg.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
@@ -7617,7 +7823,8 @@
(net 35 /inout_user/CTS2/CANH))
(pad 8 thru_hole circle (at 1.397 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 38 /inout_user/RTS2))
(pad 9 thru_hole circle (at 4.191 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
(pad 9 thru_hole circle (at 4.191 -1.27) (size 1.524 1.524) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
(net 211 "Net-(UARTCAN2-Pad9)"))
(model ${KIPRJMOD}/prj.3dshapes/db9_female_pin90deg.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
+20 -20
View File
@@ -1,4 +1,4 @@
(kicad_pcb (version 20171130) (host pcbnew "(2018-01-31 revision c758e72)-master")
(kicad_pcb (version 20171130) (host pcbnew "(5.0.0-rc2-151-g11ab8f6dc)")
(general
(thickness 1.6)
@@ -11,8 +11,8 @@
(page A3)
(layers
(0 Dessus.Cu signal)
(31 Dessous.Cu signal)
(0 F.Cu signal)
(31 B.Cu signal)
(32 B.Adhes user)
(33 F.Adhes user)
(34 B.Paste user)
@@ -74,7 +74,7 @@
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15)
(hpglpendiameter 15.000000)
(psnegative false)
(psa4output false)
(plotreference true)
@@ -100,7 +100,7 @@
(uvia_drill 0.127)
)
(module POLY (layer Dessus.Cu) (tedit 42809A8C) (tstamp 0)
(module POLY (layer F.Cu) (tedit 42809A8C) (tstamp 0)
(at 203.2 144.78)
(fp_text reference POLY (at 0 0.0762) (layer F.SilkS)
(effects (font (size 0.0762 0.0762) (thickness 0.2032)))
@@ -378,12 +378,12 @@
(xy -128.71196 0.55372) (xy -129.21488 0.55372) (xy -129.7178 0.55372) (xy -130.22072 0.55626)
(xy -130.72364 0.56134) (xy -131.22402 0.56642) (xy -131.72694 0.57404) (xy -132.22986 0.58166)
(xy -132.73278 0.58674) (xy -133.2357 0.59436) (xy -133.73862 0.59944) (xy -134.24154 0.60452)
(xy -134.74446 0.6096) (xy -135.24738 0.61214) (xy -135.7503 0.61214) (xy -135.7503 0)) (layer Dessus.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 0) (size 1.22428 1.22428) (layers Dessus.Cu))
(pad 1 smd rect (at 135.7503 0) (size 1.22428 1.22428) (layers Dessus.Cu))
(xy -134.74446 0.6096) (xy -135.24738 0.61214) (xy -135.7503 0.61214) (xy -135.7503 0)) (layer F.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 0) (size 1.22428 1.22428) (layers F.Cu))
(pad 1 smd rect (at 135.7503 0) (size 1.22428 1.22428) (layers F.Cu))
)
(module POLY (layer Dessus.Cu) (tedit 4278D8F6) (tstamp 0)
(module POLY (layer F.Cu) (tedit 4278D8F6) (tstamp 0)
(at 203.17968 117.21084)
(fp_text reference POLY (at 0 0.0762) (layer F.SilkS)
(effects (font (size 0.0762 0.0762) (thickness 0.2032)))
@@ -526,12 +526,12 @@
(xy 129.21488 0.55372) (xy 129.7178 0.55372) (xy 130.22072 0.55626) (xy 130.72364 0.56134)
(xy 131.22656 0.56642) (xy 131.72948 0.57404) (xy 132.2324 0.58166) (xy 132.73278 0.58674)
(xy 133.2357 0.59436) (xy 133.73862 0.59944) (xy 134.24154 0.60452) (xy 134.74446 0.6096)
(xy 135.24738 0.61214) (xy 135.7503 0.61214) (xy 135.7503 0)) (layer Dessus.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 0.3048) (size 0.61214 0.61214) (layers Dessus.Cu))
(pad 1 smd rect (at 135.7503 0.3048) (size 0.61214 0.61214) (layers Dessus.Cu))
(xy 135.24738 0.61214) (xy 135.7503 0.61214) (xy 135.7503 0)) (layer F.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 0.3048) (size 0.61214 0.61214) (layers F.Cu))
(pad 1 smd rect (at 135.7503 0.3048) (size 0.61214 0.61214) (layers F.Cu))
)
(module POLY (layer Dessus.Cu) (tedit 4278D8F1) (tstamp 0)
(module POLY (layer F.Cu) (tedit 4278D8F1) (tstamp 0)
(at 203.2 119.38)
(fp_text reference POLY (at 0 0.0762) (layer F.SilkS)
(effects (font (size 0.0762 0.0762) (thickness 0.2032)))
@@ -809,12 +809,12 @@
(xy -128.71196 0.55372) (xy -129.21488 0.55372) (xy -129.7178 0.55372) (xy -130.22072 0.55626)
(xy -130.72364 0.56134) (xy -131.22402 0.56642) (xy -131.72694 0.57404) (xy -132.22986 0.58166)
(xy -132.73278 0.58674) (xy -133.2357 0.59436) (xy -133.73862 0.59944) (xy -134.24154 0.60452)
(xy -134.74446 0.6096) (xy -135.24738 0.61214) (xy -135.7503 0.61214) (xy -135.7503 0)) (layer Dessus.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 0) (size 1.22428 1.22428) (layers Dessus.Cu))
(pad 1 smd rect (at 135.7503 0) (size 1.22428 1.22428) (layers Dessus.Cu))
(xy -134.74446 0.6096) (xy -135.24738 0.61214) (xy -135.7503 0.61214) (xy -135.7503 0)) (layer F.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 0) (size 1.22428 1.22428) (layers F.Cu))
(pad 1 smd rect (at 135.7503 0) (size 1.22428 1.22428) (layers F.Cu))
)
(module POLY (layer Dessus.Cu) (tedit 4278D8EB) (tstamp 0)
(module POLY (layer F.Cu) (tedit 4278D8EB) (tstamp 0)
(at 203.18984 121.54408)
(fp_text reference POLY (at 0 0.0762) (layer F.SilkS)
(effects (font (size 0.0762 0.0762) (thickness 0.2032)))
@@ -957,9 +957,9 @@
(xy 129.21488 -0.55372) (xy 129.7178 -0.55372) (xy 130.22072 -0.55626) (xy 130.72364 -0.56134)
(xy 131.22656 -0.56642) (xy 131.72948 -0.57404) (xy 132.2324 -0.58166) (xy 132.73278 -0.58674)
(xy 133.2357 -0.59436) (xy 133.73862 -0.59944) (xy 134.24154 -0.60452) (xy 134.74446 -0.6096)
(xy 135.24738 -0.61214) (xy 135.7503 -0.61214) (xy 135.7503 0)) (layer Dessus.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 -0.3048) (size 0.61214 0.61214) (layers Dessus.Cu))
(pad 1 smd rect (at 135.7503 -0.3048) (size 0.61214 0.61214) (layers Dessus.Cu))
(xy 135.24738 -0.61214) (xy 135.7503 -0.61214) (xy 135.7503 0)) (layer F.Cu) (width 0.3048))
(pad 2 smd rect (at -135.7503 -0.3048) (size 0.61214 0.61214) (layers F.Cu))
(pad 1 smd rect (at 135.7503 -0.3048) (size 0.61214 0.61214) (layers F.Cu))
)
(gr_line (start 203.50988 120.54332) (end 203.50988 120.55348) (angle 90) (layer Dwgs.User) (width 0.3048))
@@ -103,7 +103,7 @@ F3 "" 0 0 60 H V C CNN
DRAW
C 0 0 31 0 1 0 N
P 2 0 1 0 -30 0 -50 0 N
X 1 1 -150 0 100 R 60 60 1 1 P
X 1 ~ -150 0 100 R 60 60 1 1 P
ENDDRAW
ENDDEF
#
@@ -339,6 +339,21 @@ X Vsw 8 1000 250 300 L 60 60 1 1 I
ENDDRAW
ENDDEF
#
# MOUNTING_HOLE
#
DEF ~MOUNTING_HOLE P 0 30 N N 1 F N
F0 "P" 80 0 40 H V L CNN
F1 "MOUNTING_HOLE" 0 55 30 H I C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
$FPLIST
*Hole*
$ENDFPLIST
DRAW
C 0 0 31 0 1 0 N
ENDDRAW
ENDDEF
#
# NPN
#
DEF NPN Q 0 0 Y Y 1 F N
+15 -14
View File
@@ -93,20 +93,6 @@ X ~ 2 0 -150 110 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# pic_programmer_schlib:CONN_1
#
DEF ~pic_programmer_schlib:CONN_1 P 0 30 N N 1 F N
F0 "P" 80 0 40 H V L CNN
F1 "pic_programmer_schlib:CONN_1" 0 55 30 H I C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
DRAW
C 0 0 31 0 1 0 N
P 2 0 1 0 -30 0 -50 0 N
X 1 1 -150 0 100 R 60 60 1 1 P
ENDDRAW
ENDDEF
#
# pic_programmer_schlib:CONN_2
#
DEF pic_programmer_schlib:CONN_2 P 0 40 Y N 1 F N
@@ -339,6 +325,21 @@ X Vsw 8 1000 250 300 L 60 60 1 1 I
ENDDRAW
ENDDEF
#
# pic_programmer_schlib:MOUNTING_HOLE
#
DEF ~pic_programmer_schlib:MOUNTING_HOLE P 0 30 N N 1 F N
F0 "P" 80 0 40 H V L CNN
F1 "pic_programmer_schlib:MOUNTING_HOLE" 0 55 30 H I C CNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
$FPLIST
*Hole*
$ENDFPLIST
DRAW
C 0 0 31 0 1 0 N
ENDDRAW
ENDDEF
#
# pic_programmer_schlib:NPN
#
DEF pic_programmer_schlib:NPN Q 0 0 Y Y 1 F N
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6 -12
View File
@@ -1269,7 +1269,7 @@ F 3 "" H 1250 3600 60 0001 C CNN
-1 0 0 1
$EndComp
$Comp
L pic_programmer_schlib:CONN_1 P101
L pic_programmer_schlib:MOUNTING_HOLE P101
U 1 1 54020BEA
P 6400 6800
F 0 "P101" H 6480 6800 40 0000 L CNN
@@ -1280,7 +1280,7 @@ F 3 "" H 6400 6800 60 0000 C CNN
1 0 0 -1
$EndComp
$Comp
L pic_programmer_schlib:CONN_1 P102
L pic_programmer_schlib:MOUNTING_HOLE P102
U 1 1 54020DA9
P 6400 6950
F 0 "P102" H 6480 6950 40 0000 L CNN
@@ -1291,7 +1291,7 @@ F 3 "" H 6400 6950 60 0000 C CNN
1 0 0 -1
$EndComp
$Comp
L pic_programmer_schlib:CONN_1 P103
L pic_programmer_schlib:MOUNTING_HOLE P103
U 1 1 54020DC2
P 6400 7100
F 0 "P103" H 6480 7100 40 0000 L CNN
@@ -1302,7 +1302,7 @@ F 3 "" H 6400 7100 60 0000 C CNN
1 0 0 -1
$EndComp
$Comp
L pic_programmer_schlib:CONN_1 P104
L pic_programmer_schlib:MOUNTING_HOLE P104
U 1 1 54020DE3
P 6400 7250
F 0 "P104" H 6480 7250 40 0000 L CNN
@@ -1313,7 +1313,7 @@ F 3 "" H 6400 7250 60 0000 C CNN
1 0 0 -1
$EndComp
$Comp
L pic_programmer_schlib:CONN_1 P105
L pic_programmer_schlib:MOUNTING_HOLE P105
U 1 1 54020E5D
P 6400 7400
F 0 "P105" H 6480 7400 40 0000 L CNN
@@ -1324,7 +1324,7 @@ F 3 "" H 6400 7400 60 0000 C CNN
1 0 0 -1
$EndComp
$Comp
L pic_programmer_schlib:CONN_1 P106
L pic_programmer_schlib:MOUNTING_HOLE P106
U 1 1 54020E76
P 6400 7550
F 0 "P106" H 6480 7550 40 0000 L CNN
@@ -1345,12 +1345,6 @@ Wire Notes Line
5850 7750 5850 6700
Text Notes 6050 7700 0 40 Italic 0
Mounting holes
NoConn ~ 6250 6800
NoConn ~ 6250 6950
NoConn ~ 6250 7100
NoConn ~ 6250 7250
NoConn ~ 6250 7400
NoConn ~ 6250 7550
Wire Wire Line
3850 2700 3850 2750
Wire Wire Line
@@ -1,11 +1,11 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# +12V
# schematic_libspice:+12V
#
DEF +12V #PWR 0 0 Y Y 1 F P
DEF schematic_libspice:+12V #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "+12V" 0 140 50 H V C CNN
F1 "schematic_libspice:+12V" 0 140 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
@@ -16,11 +16,11 @@ X +12V 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# 0
# schematic_libspice:0
#
DEF 0 #GND 0 0 Y Y 1 F P
DEF schematic_libspice:0 #GND 0 0 Y Y 1 F P
F0 "#GND" 0 -100 50 H I C CNN
F1 "0" 0 -70 50 H V C CNN
F1 "schematic_libspice:0" 0 -70 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
@@ -29,11 +29,11 @@ X 0 1 0 0 0 R 40 40 1 1 W N
ENDDRAW
ENDDEF
#
# CAP
# schematic_libspice:C
#
DEF CAP C 0 10 Y Y 1 F N
DEF schematic_libspice:C C 0 10 Y Y 1 F N
F0 "C" 100 150 50 V V C CNN
F1 "CAP" 100 -150 50 V V C CNN
F1 "schematic_libspice:C" 100 -150 50 V V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
ALIAS C
@@ -45,11 +45,26 @@ X ~ 2 0 -250 200 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# INDUCTOR
# schematic_libspice:CAP
#
DEF INDUCTOR L 0 0 N Y 1 F N
DEF schematic_libspice:CAP C 0 10 Y Y 1 F N
F0 "C" 100 150 50 V V C CNN
F1 "schematic_libspice:CAP" 100 -150 50 V V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
P 2 0 1 0 -150 -50 150 -50 N
P 2 0 1 0 -150 50 150 50 N
X ~ 1 0 250 200 D 40 40 1 1 P
X ~ 2 0 -250 200 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# schematic_libspice:INDUCTOR
#
DEF schematic_libspice:INDUCTOR L 0 0 N Y 1 F N
F0 "L" 0 100 50 H V C CNN
F1 "INDUCTOR" 0 -50 50 H V C CNN
F1 "schematic_libspice:INDUCTOR" 0 -50 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
@@ -62,11 +77,11 @@ X 2 2 250 0 50 L 30 30 1 1 I
ENDDRAW
ENDDEF
#
# PWR_FLAG
# schematic_libspice:PWR_FLAG
#
DEF PWR_FLAG #FLG 0 0 N N 1 F P
DEF schematic_libspice:PWR_FLAG #FLG 0 0 N N 1 F P
F0 "#FLG" 0 75 50 H I C CNN
F1 "PWR_FLAG" 0 150 40 H V C CNN
F1 "schematic_libspice:PWR_FLAG" 0 150 40 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
@@ -75,11 +90,11 @@ X pwr 1 0 0 0 U 50 50 0 0 w
ENDDRAW
ENDDEF
#
# QNPN
# schematic_libspice:QNPN
#
DEF QNPN Q 0 0 Y Y 1 F N
DEF schematic_libspice:QNPN Q 0 0 Y Y 1 F N
F0 "Q" -100 300 50 H V C CNN
F1 "QNPN" -100 200 50 H V C CNN
F1 "schematic_libspice:QNPN" -100 200 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
@@ -93,11 +108,11 @@ X E 3 150 -350 200 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# R
# schematic_libspice:R
#
DEF R R 0 0 N Y 1 F N
DEF schematic_libspice:R R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN
F1 "R" 0 0 50 V V C CNN
F1 "schematic_libspice:R" 0 0 50 V V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
@@ -107,11 +122,11 @@ X ~ 2 0 -250 100 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# VSOURCE
# schematic_libspice:VSOURCE
#
DEF VSOURCE V 0 40 Y Y 1 F N
DEF schematic_libspice:VSOURCE V 0 40 Y Y 1 F N
F0 "V" 0 -100 50 H V C CNN
F1 "VSOURCE" 0 100 50 H V C CNN
F1 "schematic_libspice:VSOURCE" 0 100 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
@@ -25,18 +25,18 @@ Wire Notes Line
Wire Notes Line
3900 6200 1100 6200
Wire Wire Line
4400 2800 5300 2800
4400 2800 5100 2800
Connection ~ 9200 1800
Wire Wire Line
9200 1800 8700 1800
Wire Wire Line
7800 1800 8200 1800
Wire Wire Line
7800 1450 7800 1800
7800 1450 7800 1500
Wire Wire Line
7800 1500 8250 1500
7800 1500 8050 1500
Wire Wire Line
9200 1050 9200 2100
9200 1050 9200 1500
Wire Wire Line
9400 2950 9550 2950
Connection ~ 7050 2450
@@ -47,7 +47,7 @@ Wire Wire Line
Wire Wire Line
3900 2800 3850 2800
Wire Wire Line
6100 2450 7250 2450
6100 2450 7050 2450
Wire Wire Line
6100 2450 6100 2300
Wire Wire Line
@@ -57,11 +57,11 @@ Connection ~ 6700 2800
Wire Wire Line
6550 2800 6700 2800
Wire Wire Line
6700 2300 6700 3300
6700 2300 6700 2800
Wire Wire Line
5100 2300 5100 3300
5100 2300 5100 2800
Wire Wire Line
7700 2100 9250 2100
7700 2100 9200 2100
Text Notes 1150 6500 0 60 ~ 0
.model Q2N2222 npn (bf=200)\n.ac dec 100 10 1Meg\n
Text Notes 1100 6200 0 60 ~ 0
@@ -157,12 +157,12 @@ $EndComp
$Comp
L schematic_libspice:+12V #+12V01
U 1 1 32E8B84A
P 7800 900
F 0 "#+12V01" H 7800 1100 40 0001 C CNN
F 1 "+12V" H 7800 1050 40 0000 C CNN
F 2 "" H 7800 900 60 0001 C CNN
F 3 "" H 7800 900 60 0001 C CNN
1 7800 900
P 7800 850
F 0 "#+12V01" H 7800 1050 40 0001 C CNN
F 1 "+12V" H 7800 1000 40 0000 C CNN
F 2 "" H 7800 850 60 0001 C CNN
F 3 "" H 7800 850 60 0001 C CNN
1 7800 850
1 0 0 -1
$EndComp
$Comp
@@ -457,7 +457,7 @@ Wire Wire Line
Wire Wire Line
9550 3500 9550 3450
Wire Wire Line
7700 2800 7700 3000
7700 2800 7700 2900
Wire Wire Line
8500 2900 8750 2900
Connection ~ 7700 2900
@@ -472,7 +472,7 @@ Wire Wire Line
Wire Wire Line
7800 900 7800 950
Wire Wire Line
5750 3200 6100 3200
5750 3200 5950 3200
Text GLabel 9250 2100 2 60 Output ~ 0
VOUT
Connection ~ 9200 2100
@@ -503,14 +503,14 @@ $EndComp
Wire Wire Line
8850 2800 8750 2800
Wire Wire Line
8750 2800 8750 3050
8750 2800 8750 2900
Wire Wire Line
8750 3050 8850 3050
Connection ~ 8750 2900
Wire Wire Line
9350 2800 9400 2800
Wire Wire Line
9400 2800 9400 3050
9400 2800 9400 2950
Wire Wire Line
9400 3050 9350 3050
Connection ~ 9400 2950
@@ -578,4 +578,34 @@ F 3 "" H 8250 2900 50 0001 C CNN
$EndComp
Wire Wire Line
8000 2900 7700 2900
Wire Wire Line
9200 1800 9200 2100
Wire Wire Line
7050 2450 7250 2450
Wire Wire Line
5100 2800 5300 2800
Wire Wire Line
5100 2800 5100 3300
Wire Wire Line
6700 2800 6700 3300
Wire Wire Line
7800 1500 7800 1800
Wire Wire Line
5950 3200 6100 3200
Wire Wire Line
7700 2900 7700 3000
Wire Wire Line
9200 2100 9250 2100
Wire Wire Line
8750 2900 8750 3050
Wire Wire Line
9400 2950 9400 3050
Wire Wire Line
9200 1500 9200 1800
Wire Wire Line
8050 1500 8250 1500
Connection ~ 6100 2450
Wire Wire Line
7800 850 7800 900
Connection ~ 7800 900
$EndSCHEMATC
+342 -342
View File
@@ -1,4 +1,4 @@
(kicad_pcb (version 20171130) (host pcbnew "(2018-01-31 revision c758e72)-master")
(kicad_pcb (version 20171130) (host pcbnew "(5.0.0-rc2-151-g11ab8f6dc)")
(general
(thickness 1.6002)
@@ -16,8 +16,8 @@
)
(layers
(0 Dessus signal)
(31 Dessous signal)
(0 top_copper signal)
(31 bottom_copper signal)
(32 B.Adhes user)
(33 F.Adhes user)
(34 B.Paste user)
@@ -81,7 +81,7 @@
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15)
(hpglpendiameter 15.000000)
(psnegative false)
(psa4output false)
(plotreference true)
@@ -191,7 +191,7 @@
(add_net VCC)
)
(module Connector_Dsub:DSUB-25_Male_EdgeMount_P2.77mm (layer Dessus) (tedit 59FEDEE2) (tstamp 5A73AC29)
(module Connector_Dsub:DSUB-25_Male_EdgeMount_P2.77mm (layer top_copper) (tedit 59FEDEE2) (tstamp 5A73AC29)
(at 105.5116 89.1032 270)
(descr "25-pin D-Sub connector, solder-cups edge-mounted, male, x-pin-pitch 2.77mm, distance of mounting holes 47.1mm, see https://disti-assets.s3.amazonaws.com/tonar/files/datasheets/16730.pdf")
(tags "25-pin D-Sub connector edge mount solder cup male x-pin-pitch 2.77mm mounting holes distance 47.1mm")
@@ -351,55 +351,55 @@
(fp_text user "PCB edge" (at -21.55 1.323333 270) (layer Dwgs.User)
(effects (font (size 0.5 0.5) (thickness 0.075)))
)
(pad 1 smd rect (at -16.62 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 1 smd rect (at -16.62 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 33 "Net-(J1-Pad1)"))
(pad 2 smd rect (at -13.85 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 2 smd rect (at -13.85 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 9 /TDI-DIN-D0))
(pad 3 smd rect (at -11.08 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 3 smd rect (at -11.08 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 1 /CLK-D1))
(pad 4 smd rect (at -8.31 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 4 smd rect (at -8.31 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 11 /TMS-PROG-D2))
(pad 5 smd rect (at -5.54 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 5 smd rect (at -5.54 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 2 /CTRL-D3))
(pad 6 smd rect (at -2.77 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 6 smd rect (at -2.77 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 7 /TD0-PROG-D4))
(pad 7 smd rect (at 0 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 7 smd rect (at 0 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 32 "Net-(J1-Pad7)"))
(pad 8 smd rect (at 2.77 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 8 smd rect (at 2.77 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 29 "Net-(J1-Pad11)"))
(pad 9 smd rect (at 5.54 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 9 smd rect (at 5.54 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 31 "Net-(J1-Pad9)"))
(pad 10 smd rect (at 8.31 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 10 smd rect (at 8.31 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 30 "Net-(J1-Pad10)"))
(pad 11 smd rect (at 11.08 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 11 smd rect (at 11.08 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 29 "Net-(J1-Pad11)"))
(pad 12 smd rect (at 13.85 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 12 smd rect (at 13.85 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 29 "Net-(J1-Pad11)"))
(pad 13 smd rect (at 16.62 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 13 smd rect (at 16.62 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 3 /DONE-SELECT*))
(pad 14 smd rect (at -15.235 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 14 smd rect (at -15.235 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 42 "Net-(J1-Pad14)"))
(pad 15 smd rect (at -12.465 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 15 smd rect (at -12.465 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 12 /VCC_SENSE-ERROR*))
(pad 16 smd rect (at -9.695 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 16 smd rect (at -9.695 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 41 "Net-(J1-Pad16)"))
(pad 17 smd rect (at -6.925 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 17 smd rect (at -6.925 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 40 "Net-(J1-Pad17)"))
(pad 18 smd rect (at -4.155 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 18 smd rect (at -4.155 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 39 "Net-(J1-Pad18)"))
(pad 19 smd rect (at -1.385 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 19 smd rect (at -1.385 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 38 "Net-(J1-Pad19)"))
(pad 20 smd rect (at 1.385 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 20 smd rect (at 1.385 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 13 GND))
(pad 21 smd rect (at 4.155 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 21 smd rect (at 4.155 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 37 "Net-(J1-Pad21)"))
(pad 22 smd rect (at 6.925 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 22 smd rect (at 6.925 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 36 "Net-(J1-Pad22)"))
(pad 23 smd rect (at 9.695 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 23 smd rect (at 9.695 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 35 "Net-(J1-Pad23)"))
(pad 24 smd rect (at 12.465 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 24 smd rect (at 12.465 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 34 "Net-(J1-Pad24)"))
(pad 25 smd rect (at 15.235 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 25 smd rect (at 15.235 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 13 GND))
(model ${KISYS3DMOD}/Connector_Dsub.3dshapes/DSUB-25_Male_EdgeMount_P2.77mm.wrl
(at (xyz 0 0 0))
@@ -408,7 +408,7 @@
)
)
(module Connector_Dsub:DSUB-9_Male_EdgeMount_P2.77mm (layer Dessous) (tedit 59FEDEE2) (tstamp 5A73B143)
(module Connector_Dsub:DSUB-9_Male_EdgeMount_P2.77mm (layer bottom_copper) (tedit 59FEDEE2) (tstamp 5A73B143)
(at 181.61 90.1192 270)
(descr "9-pin D-Sub connector, solder-cups edge-mounted, male, x-pin-pitch 2.77mm, distance of mounting holes 25mm, see https://disti-assets.s3.amazonaws.com/tonar/files/datasheets/16730.pdf")
(tags "9-pin D-Sub connector edge mount solder cup male x-pin-pitch 2.77mm mounting holes distance 25mm")
@@ -504,23 +504,23 @@
(fp_text user "PCB edge" (at -10.425 -1.323333 270) (layer Dwgs.User)
(effects (font (size 0.5 0.5) (thickness 0.075)))
)
(pad 1 smd rect (at -5.54 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 1 smd rect (at -5.54 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 4 /PWR_3,3-5V))
(pad 2 smd rect (at -2.77 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 2 smd rect (at -2.77 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 6 /TD0-DONE))
(pad 3 smd rect (at 0 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 3 smd rect (at 0 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 8 /TDI-DIN))
(pad 4 smd rect (at 2.77 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 4 smd rect (at 2.77 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 5 /TCK-CCLK))
(pad 5 smd rect (at 5.54 0 270) (size 1.846667 3.48) (layers Dessous B.Paste B.Mask)
(pad 5 smd rect (at 5.54 0 270) (size 1.846667 3.48) (layers bottom_copper B.Paste B.Mask)
(net 10 /TMS-PROG))
(pad 6 smd rect (at -4.155 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 6 smd rect (at -4.155 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 13 GND))
(pad 7 smd rect (at -1.385 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 7 smd rect (at -1.385 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 13 GND))
(pad 8 smd rect (at 1.385 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 8 smd rect (at 1.385 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 13 GND))
(pad 9 smd rect (at 4.155 0 270) (size 1.846667 3.48) (layers Dessus F.Paste F.Mask)
(pad 9 smd rect (at 4.155 0 270) (size 1.846667 3.48) (layers top_copper F.Paste F.Mask)
(net 13 GND))
(model ${KISYS3DMOD}/Connector_Dsub.3dshapes/DSUB-9_Male_EdgeMount_P2.77mm.wrl
(at (xyz 0 0 0))
@@ -529,7 +529,7 @@
)
)
(module Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical (layer Dessus) (tedit 59FED5CC) (tstamp 5A583D55)
(module Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical (layer top_copper) (tedit 59FED5CC) (tstamp 5A583D55)
(at 169.672 80.137)
(descr "Through hole straight pin header, 1x06, 2.54mm pitch, single row")
(tags "Through hole pin header THT 1x06 2.54mm single row")
@@ -577,7 +577,7 @@
)
)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer Dessus) (tedit 5A142A3B) (tstamp 5A59B9B3)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer top_copper) (tedit 5A142A3B) (tstamp 5A59B9B3)
(at 140.97 102.87 270)
(descr "C, Disc series, Radial, pin pitch=5.00mm, diameter*width=5.1*3.2mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf")
(tags "C Disc series Radial pin pitch 5.00mm diameter 5.1mm width 3.2mm Capacitor")
@@ -616,7 +616,7 @@
)
)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer Dessus) (tedit 5A142A3B) (tstamp 5A59B99F)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer top_copper) (tedit 5A142A3B) (tstamp 5A59B99F)
(at 151.13 69.85)
(descr "C, Disc series, Radial, pin pitch=5.00mm, diameter*width=5.1*3.2mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf")
(tags "C Disc series Radial pin pitch 5.00mm diameter 5.1mm width 3.2mm Capacitor")
@@ -655,7 +655,7 @@
)
)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer Dessus) (tedit 5A142A3B) (tstamp 5A59B98B)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer top_copper) (tedit 5A142A3B) (tstamp 5A59B98B)
(at 149 102.87 270)
(descr "C, Disc series, Radial, pin pitch=5.00mm, diameter*width=5.1*3.2mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf")
(tags "C Disc series Radial pin pitch 5.00mm diameter 5.1mm width 3.2mm Capacitor")
@@ -694,7 +694,7 @@
)
)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer Dessus) (tedit 5A142A3B) (tstamp 5A59B977)
(module Capacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mm (layer top_copper) (tedit 5A142A3B) (tstamp 5A59B977)
(at 145 102.87 270)
(descr "C, Disc series, Radial, pin pitch=5.00mm, diameter*width=5.1*3.2mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf")
(tags "C Disc series Radial pin pitch 5.00mm diameter 5.1mm width 3.2mm Capacitor")
@@ -733,7 +733,7 @@
)
)
(module Package_DIP:DIP-14_W7.62mm_LongPads (layer Dessus) (tedit 5A02E8C5) (tstamp 5A58F5AD)
(module Package_DIP:DIP-14_W7.62mm_LongPads (layer top_copper) (tedit 5A02E8C5) (tstamp 5A58F5AD)
(at 127 82.55)
(descr "14-lead though-hole mounted DIP package, row spacing 7.62 mm (300 mils), LongPads")
(tags "THT DIP DIL PDIP 2.54mm 7.62mm 300mil LongPads")
@@ -797,7 +797,7 @@
)
)
(module Package_DIP:DIP-14_W7.62mm_LongPads (layer Dessus) (tedit 5A02E8C5) (tstamp 5A58F58C)
(module Package_DIP:DIP-14_W7.62mm_LongPads (layer top_copper) (tedit 5A02E8C5) (tstamp 5A58F58C)
(at 140.97 82.55)
(descr "14-lead though-hole mounted DIP package, row spacing 7.62 mm (300 mils), LongPads")
(tags "THT DIP DIL PDIP 2.54mm 7.62mm 300mil LongPads")
@@ -861,7 +861,7 @@
)
)
(module Capacitor_THT:C_Axial_L5.1mm_D3.1mm_P12.50mm_Horizontal (layer Dessus) (tedit 5A142A3B) (tstamp 5A5834A9)
(module Capacitor_THT:C_Axial_L5.1mm_D3.1mm_P12.50mm_Horizontal (layer top_copper) (tedit 5A142A3B) (tstamp 5A5834A9)
(at 134.62 76.2)
(descr "C, Axial series, Axial, Horizontal, pin pitch=12.5mm, http://www.vishay.com/docs/45231/arseries.pdf")
(tags "C Axial series Axial Horizontal pin pitch 12.5mm length 5.1mm diameter 3.1mm")
@@ -902,7 +902,7 @@
)
)
(module Diode_THT:D_A-405_P7.62mm_Horizontal (layer Dessus) (tedit 5A195B5A) (tstamp 5A56D054)
(module Diode_THT:D_A-405_P7.62mm_Horizontal (layer top_copper) (tedit 5A195B5A) (tstamp 5A56D054)
(at 134.62 72.39 180)
(descr "D, A-405 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=5.2*2.7mm^2, , http://www.diodes.com/_files/packages/A-405.pdf")
(tags "D A-405 series Axial Horizontal pin pitch 7.62mm length 5.2mm diameter 2.7mm")
@@ -955,7 +955,7 @@
)
)
(module Diode_THT:D_A-405_P7.62mm_Horizontal (layer Dessus) (tedit 5A195B5A) (tstamp 5A56D036)
(module Diode_THT:D_A-405_P7.62mm_Horizontal (layer top_copper) (tedit 5A195B5A) (tstamp 5A56D036)
(at 160.02 78.74 180)
(descr "D, A-405 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=5.2*2.7mm^2, , http://www.diodes.com/_files/packages/A-405.pdf")
(tags "D A-405 series Axial Horizontal pin pitch 7.62mm length 5.2mm diameter 2.7mm")
@@ -1008,7 +1008,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CFDE)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CFDE)
(at 121.92 77.216 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1049,7 +1049,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CFC8)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CFC8)
(at 151.13 73.66)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1090,7 +1090,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56D255)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56D255)
(at 121.92 73.8632 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1131,7 +1131,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF9C)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF9C)
(at 137.16 72.39)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1172,7 +1172,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF86)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF86)
(at 121.9327 83.82 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1213,7 +1213,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF70)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF70)
(at 121.92 92.71 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1254,7 +1254,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF5A)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF5A)
(at 121.92 87.63 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1295,7 +1295,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF44)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF44)
(at 162.56 93.98 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1336,7 +1336,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF2E)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF2E)
(at 162.56 99.06 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1377,7 +1377,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF18)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF18)
(at 162.56 105.41 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1418,7 +1418,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CF02)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CF02)
(at 121.92 104.14 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1459,7 +1459,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CEEC)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CEEC)
(at 121.92 80.518 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1500,7 +1500,7 @@
)
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer Dessus) (tedit 5A14249F) (tstamp 5A56CED6)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer top_copper) (tedit 5A14249F) (tstamp 5A56CED6)
(at 162.56 88.9 180)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 10.16mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
@@ -1544,7 +1544,7 @@
(gr_line (start 184.15 83.185) (end 184.15 97.79) (angle 90) (layer Edge.Cuts) (width 0.1))
(gr_line (start 102.87 71.12) (end 102.87 106.68) (angle 90) (layer Edge.Cuts) (width 0.1))
(dimension 81.28 (width 0.3048) (layer Dwgs.User)
(gr_text "3.2000 " (at 143.149793 114.033596) (layer Dwgs.User) (tstamp 5A7306E8)
(gr_text "3.2000 " (at 143.149793 114.033596) (layer Dwgs.User)
(effects (font (size 1.524 1.524) (thickness 0.3048)))
)
(feature1 (pts (xy 184.043793 110.350596) (xy 184.043793 118.173796)))
@@ -1559,28 +1559,28 @@
(gr_line (start 184.15 97.79) (end 184.15 110.49) (angle 90) (layer Edge.Cuts) (width 0.3048))
(gr_line (start 184.15 67.31) (end 184.15 83.185) (angle 90) (layer Edge.Cuts) (width 0.3048))
(gr_line (start 179.07 67.31) (end 184.15 67.31) (angle 90) (layer Edge.Cuts) (width 0.3048))
(gr_text TMS-PROG (at 158.115 102.235) (layer Dessus)
(gr_text TMS-PROG (at 158.115 102.235) (layer top_copper)
(effects (font (size 1.524 1.524) (thickness 0.381)))
)
(gr_text TCK-CCL (at 158.115 96.52) (layer Dessus)
(gr_text TCK-CCL (at 158.115 96.52) (layer top_copper)
(effects (font (size 1.524 1.524) (thickness 0.381)))
)
(gr_text TDI-TIN (at 158.115 91.44) (layer Dessus)
(gr_text TDI-TIN (at 158.115 91.44) (layer top_copper)
(effects (font (size 1.524 1.524) (thickness 0.381)))
)
(gr_text TDO-DONE (at 158.115 86.36) (layer Dessus)
(gr_text TDO-DONE (at 158.115 86.36) (layer top_copper)
(effects (font (size 1.524 1.524) (thickness 0.381)))
)
(gr_text VCC (at 162.56 76.2) (layer Dessus)
(gr_text VCC (at 162.56 76.2) (layer top_copper)
(effects (font (size 1.524 1.524) (thickness 0.381)))
)
(gr_text GND (at 162.56 81.28) (layer Dessus)
(gr_text GND (at 162.56 81.28) (layer top_copper)
(effects (font (size 1.524 1.524) (thickness 0.381)))
)
(gr_text "Component Side" (at 121.92 69.85) (layer Dessus)
(gr_text "Component Side" (at 121.92 69.85) (layer top_copper)
(effects (font (size 1.524 1.524) (thickness 0.3048)))
)
(gr_text "Copper layer" (at 119.38 68.58) (layer Dessous)
(gr_text "Copper layer" (at 119.38 68.58) (layer bottom_copper)
(effects (font (size 1.524 1.524) (thickness 0.3048)) (justify mirror))
)
(gr_line (start 102.87 110.49) (end 102.87 106.68) (angle 90) (layer Edge.Cuts) (width 0.3048))
@@ -1588,277 +1588,277 @@
(gr_line (start 102.87 67.31) (end 179.07 67.31) (angle 90) (layer Edge.Cuts) (width 0.3048))
(gr_line (start 102.87 71.12) (end 102.87 67.31) (angle 90) (layer Edge.Cuts) (width 0.3048))
(segment (start 111.76 77.216) (end 110.744 77.216) (width 0.635) (layer Dessus) (net 1) (status 10))
(segment (start 110.744 77.216) (end 109.855 78.105) (width 0.635) (layer Dessus) (net 1))
(segment (start 109.855 78.105) (end 106.045 78.105) (width 0.635) (layer Dessus) (net 1) (status 20))
(segment (start 106.045 78.105) (end 105.537 77.978) (width 0.635) (layer Dessus) (net 1) (status 430))
(segment (start 111.76 87.63) (end 109.855 85.725) (width 0.635) (layer Dessus) (net 2) (status 10))
(segment (start 109.22 83.82) (end 105.41 83.82) (width 0.635) (layer Dessus) (net 2) (status 20))
(segment (start 109.855 85.725) (end 109.855 84.455) (width 0.635) (layer Dessus) (net 2))
(segment (start 105.41 83.82) (end 105.537 83.439) (width 0.635) (layer Dessus) (net 2) (status 430))
(segment (start 109.855 84.455) (end 109.22 83.82) (width 0.635) (layer Dessus) (net 2))
(segment (start 111.125 105.41) (end 105.537 105.41) (width 0.635) (layer Dessus) (net 3) (status 420))
(segment (start 111.76 104.775) (end 111.125 105.41) (width 0.635) (layer Dessus) (net 3) (status 10))
(segment (start 111.76 104.14) (end 111.76 104.775) (width 0.635) (layer Dessus) (net 3) (status 830))
(segment (start 180.213 78.613) (end 171.050935 78.613) (width 1.016) (layer Dessous) (net 4))
(segment (start 171.050935 78.613) (end 169.599468 80.064467) (width 1.016) (layer Dessous) (net 4) (status 20))
(segment (start 181.61 80.01) (end 180.213 78.613) (width 1.016) (layer Dessous) (net 4))
(segment (start 181.61 80.01) (end 181.61 84.582) (width 1.016) (layer Dessous) (net 4) (status 20))
(segment (start 160.02 78.74) (end 168.40201 78.74) (width 1.016) (layer Dessous) (net 4) (status 10))
(segment (start 168.40201 78.74) (end 169.672 80.00999) (width 1.016) (layer Dessous) (net 4) (status 20))
(segment (start 167.005 92.329) (end 167.005 94.615) (width 0.635) (layer Dessous) (net 5))
(segment (start 167.005 94.615) (end 162.56 99.06) (width 0.635) (layer Dessous) (net 5) (status 20))
(segment (start 169.037 90.297) (end 167.005 92.329) (width 0.635) (layer Dessous) (net 5) (status 10))
(segment (start 169.672 90.297) (end 169.037 90.297) (width 0.635) (layer Dessous) (net 5) (status 30))
(segment (start 169.672 90.297) (end 172.212 90.297) (width 0.635) (layer Dessous) (net 5) (status 10))
(segment (start 172.212 90.297) (end 174.625 92.71) (width 0.635) (layer Dessous) (net 5))
(segment (start 181.61 92.71) (end 181.61 92.964) (width 0.635) (layer Dessous) (net 5) (status 430))
(segment (start 174.625 92.71) (end 181.61 92.71) (width 0.635) (layer Dessous) (net 5) (status 20))
(segment (start 169.672 85.217) (end 176.657 85.217) (width 0.635) (layer Dessous) (net 6) (status 10))
(segment (start 176.657 85.217) (end 178.435 86.995) (width 0.635) (layer Dessous) (net 6))
(segment (start 162.56 88.138) (end 165.481 85.217) (width 0.635) (layer Dessous) (net 6) (status 10))
(segment (start 165.481 85.217) (end 169.672 85.217) (width 0.635) (layer Dessous) (net 6) (status 20))
(segment (start 162.56 88.9) (end 162.56 88.138) (width 0.635) (layer Dessous) (net 6) (status 30))
(segment (start 180.975 86.995) (end 181.61 87.376) (width 0.635) (layer Dessous) (net 6) (status 430))
(segment (start 178.435 86.995) (end 180.975 86.995) (width 0.635) (layer Dessous) (net 6) (status 20))
(segment (start 113.284 89.408) (end 114.3 88.392) (width 0.635) (layer Dessus) (net 7))
(segment (start 110.744 89.408) (end 113.284 89.408) (width 0.635) (layer Dessus) (net 7))
(segment (start 107.569 86.233) (end 110.744 89.408) (width 0.635) (layer Dessus) (net 7))
(segment (start 105.537 86.233) (end 107.569 86.233) (width 0.635) (layer Dessus) (net 7) (status 10))
(segment (start 114.3 88.392) (end 114.3 84.455) (width 0.635) (layer Dessus) (net 7))
(segment (start 114.3 84.455) (end 113.665 83.82) (width 0.635) (layer Dessus) (net 7))
(segment (start 113.665 83.82) (end 111.76 83.82) (width 0.635) (layer Dessus) (net 7) (status 20))
(segment (start 169.672 87.757) (end 172.847 87.757) (width 0.635) (layer Dessous) (net 8) (status 10))
(segment (start 172.847 87.757) (end 175.26 90.17) (width 0.635) (layer Dessous) (net 8))
(segment (start 167.513 87.757) (end 166.243 89.027) (width 0.635) (layer Dessous) (net 8))
(segment (start 166.243 89.027) (end 166.243 91.44) (width 0.635) (layer Dessous) (net 8))
(segment (start 169.672 87.757) (end 167.513 87.757) (width 0.635) (layer Dessous) (net 8) (status 10))
(segment (start 163.703 93.98) (end 166.243 91.44) (width 0.635) (layer Dessous) (net 8))
(segment (start 162.56 93.98) (end 163.703 93.98) (width 0.635) (layer Dessous) (net 8) (status 10))
(segment (start 175.26 90.17) (end 181.61 90.17) (width 0.635) (layer Dessous) (net 8) (status 20))
(segment (start 116.205 72.771) (end 115.316 71.882) (width 0.635) (layer Dessus) (net 9))
(segment (start 116.205 91.44) (end 116.205 72.771) (width 0.635) (layer Dessus) (net 9))
(segment (start 114.935 92.71) (end 116.205 91.44) (width 0.635) (layer Dessus) (net 9))
(segment (start 111.76 92.71) (end 114.935 92.71) (width 0.635) (layer Dessus) (net 9) (status 10))
(segment (start 115.316 71.882) (end 110.744 71.882) (width 0.635) (layer Dessus) (net 9))
(segment (start 110.744 71.882) (end 107.696 74.93) (width 0.635) (layer Dessus) (net 9))
(segment (start 107.696 74.93) (end 106.045 74.93) (width 0.635) (layer Dessus) (net 9) (status 20))
(segment (start 106.045 74.93) (end 106.045 75.565) (width 0.635) (layer Dessus) (net 9) (status 30))
(segment (start 106.045 75.565) (end 105.537 75.184) (width 0.635) (layer Dessus) (net 9) (status 30))
(segment (start 162.56 103.632) (end 169.672 96.52) (width 0.635) (layer Dessous) (net 10))
(segment (start 169.672 96.52) (end 169.672 92.837) (width 0.635) (layer Dessous) (net 10) (status 20))
(segment (start 162.56 105.41) (end 162.56 103.632) (width 0.635) (layer Dessous) (net 10) (status 10))
(segment (start 181.61 95.885) (end 172.72 95.885) (width 0.635) (layer Dessous) (net 10) (status 10))
(segment (start 172.72 95.885) (end 169.672 92.837) (width 0.635) (layer Dessous) (net 10) (status 20))
(segment (start 181.61 95.885) (end 181.61 95.758) (width 0.635) (layer Dessous) (net 10) (status 430))
(segment (start 111.76 80.518) (end 109.982 80.518) (width 0.635) (layer Dessus) (net 11) (status 10))
(segment (start 109.982 80.518) (end 109.855 80.645) (width 0.635) (layer Dessus) (net 11))
(segment (start 109.855 80.645) (end 106.045 80.645) (width 0.635) (layer Dessus) (net 11) (status 20))
(segment (start 106.045 80.645) (end 105.537 80.772) (width 0.635) (layer Dessus) (net 11) (status 430))
(segment (start 109.4232 76.2) (end 106.045 76.2) (width 0.635) (layer Dessous) (net 12) (status 20))
(segment (start 109.4232 76.2) (end 111.76 73.8632) (width 0.635) (layer Dessous) (net 12) (status 20))
(segment (start 106.045 76.2) (end 105.537 76.581) (width 0.635) (layer Dessous) (net 12) (status 430))
(segment (start 169.672 82.677) (end 176.403 82.677) (width 1.016) (layer Dessous) (net 13) (status 10))
(segment (start 176.403 82.677) (end 177.8 81.28) (width 1.016) (layer Dessous) (net 13))
(segment (start 157.48 82.677) (end 157.48 74.295) (width 1.016) (layer Dessous) (net 13))
(segment (start 157.48 107.315) (end 157.48 82.677) (width 1.016) (layer Dessous) (net 13))
(segment (start 157.48 82.677) (end 169.672 82.677) (width 1.016) (layer Dessous) (net 13) (status 20))
(segment (start 148.59 85.09) (end 154.305 85.09) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 149.86 92.71) (end 148.59 92.71) (width 1.016) (layer Dessous) (net 13) (status 420))
(segment (start 148.59 95.25) (end 148.59 92.71) (width 1.016) (layer Dessous) (net 13) (status C30))
(segment (start 148.59 87.63) (end 148.59 85.09) (width 1.016) (layer Dessous) (net 13) (status C30))
(segment (start 155.575 71.755) (end 156.21 71.12) (width 1.016) (layer Dessous) (net 13))
(segment (start 156.21 71.12) (end 156.21 69.85) (width 1.016) (layer Dessous) (net 13) (status 420))
(segment (start 147.32 76.2) (end 149.225 74.295) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 140.97 76.835) (end 141.605 76.2) (width 1.016) (layer Dessous) (net 13))
(segment (start 150.495 92.075) (end 149.86 92.71) (width 1.016) (layer Dessous) (net 13))
(segment (start 154.305 92.075) (end 150.495 92.075) (width 1.016) (layer Dessous) (net 13))
(segment (start 154.94 85.725) (end 154.94 91.44) (width 1.016) (layer Dessous) (net 13))
(segment (start 154.305 85.09) (end 154.94 85.725) (width 1.016) (layer Dessous) (net 13))
(segment (start 140.97 82.55) (end 140.97 76.835) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 141.605 76.2) (end 147.32 76.2) (width 1.016) (layer Dessous) (net 13) (status 420))
(segment (start 140.97 92.71) (end 144.78 92.71) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 140.97 97.79) (end 144.145 97.79) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 144.78 92.71) (end 148.59 92.71) (width 1.016) (layer Dessous) (net 13) (status 420))
(segment (start 140.97 92.71) (end 140.97 90.17) (width 1.016) (layer Dessous) (net 13) (status C30))
(segment (start 144.145 97.79) (end 144.78 97.155) (width 1.016) (layer Dessous) (net 13))
(segment (start 149.225 72.39) (end 149.86 71.755) (width 1.016) (layer Dessous) (net 13))
(segment (start 149.225 74.295) (end 149.225 72.39) (width 1.016) (layer Dessous) (net 13))
(segment (start 146.05 85.09) (end 143.51 82.55) (width 1.016) (layer Dessous) (net 13))
(segment (start 143.51 82.55) (end 140.97 82.55) (width 1.016) (layer Dessous) (net 13) (status 420))
(via (at 177.8 81.28) (size 1.778) (layers Dessus Dessous) (net 13))
(segment (start 177.8 81.28) (end 180.975 81.28) (width 1.016) (layer Dessus) (net 13))
(segment (start 180.975 81.28) (end 181.61 81.915) (width 1.016) (layer Dessus) (net 13))
(segment (start 181.61 85.979) (end 181.61 81.915) (width 1.016) (layer Dessus) (net 13) (status 810))
(segment (start 181.61 88.773) (end 181.61 85.979) (width 1.016) (layer Dessus) (net 13) (status C30))
(segment (start 181.61 91.567) (end 181.61 88.773) (width 1.016) (layer Dessus) (net 13) (status C30))
(segment (start 181.61 94.361) (end 181.61 91.567) (width 1.016) (layer Dessus) (net 13) (status C30))
(segment (start 154.94 91.44) (end 154.305 92.075) (width 1.016) (layer Dessous) (net 13))
(segment (start 161.29 70.485) (end 161.29 73.66) (width 1.016) (layer Dessous) (net 13) (status 420))
(segment (start 156.21 69.85) (end 160.655 69.85) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 160.655 69.85) (end 161.29 70.485) (width 1.016) (layer Dessous) (net 13))
(segment (start 158.115 73.66) (end 161.29 73.66) (width 1.016) (layer Dessous) (net 13) (status 420))
(segment (start 157.48 74.295) (end 158.115 73.66) (width 1.016) (layer Dessous) (net 13))
(segment (start 140.97 107.95) (end 144.78 107.95) (width 1.016) (layer Dessous) (net 13) (status C30))
(segment (start 144.78 107.95) (end 156.845 107.95) (width 1.016) (layer Dessous) (net 13) (status C10))
(segment (start 149.86 71.755) (end 155.575 71.755) (width 1.016) (layer Dessous) (net 13))
(segment (start 156.845 107.95) (end 157.48 107.315) (width 1.016) (layer Dessous) (net 13))
(segment (start 117.475 85.09) (end 116.84 85.725) (width 1.016) (layer Dessous) (net 13))
(segment (start 116.84 85.725) (end 116.84 89.535) (width 1.016) (layer Dessous) (net 13))
(segment (start 109.22 104.14) (end 109.22 107.315) (width 1.016) (layer Dessous) (net 13))
(segment (start 109.855 107.95) (end 127 107.95) (width 1.016) (layer Dessous) (net 13))
(segment (start 109.855 90.297) (end 109.855 90.17) (width 0.635) (layer Dessous) (net 13))
(segment (start 105.537 90.297) (end 109.855 90.297) (width 0.635) (layer Dessous) (net 13) (status 810))
(segment (start 109.22 104.013) (end 109.22 104.14) (width 0.635) (layer Dessous) (net 13))
(segment (start 105.537 104.013) (end 109.22 104.013) (width 0.635) (layer Dessous) (net 13) (status 810))
(segment (start 148.59 85.09) (end 146.05 85.09) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 109.22 90.805) (end 109.22 104.14) (width 1.016) (layer Dessous) (net 13))
(segment (start 127 107.95) (end 140.97 107.95) (width 1.016) (layer Dessous) (net 13) (status 420))
(segment (start 109.22 107.315) (end 109.855 107.95) (width 1.016) (layer Dessous) (net 13))
(segment (start 127 97.79) (end 127 107.95) (width 1.016) (layer Dessous) (net 13) (status 810))
(segment (start 127 85.09) (end 117.475 85.09) (width 0.4318) (layer Dessous) (net 13) (status 810))
(segment (start 144.78 97.155) (end 144.78 92.71) (width 1.016) (layer Dessous) (net 13))
(segment (start 109.855 90.17) (end 109.22 90.805) (width 1.016) (layer Dessous) (net 13))
(segment (start 116.205 90.17) (end 109.855 90.17) (width 1.016) (layer Dessous) (net 13))
(segment (start 116.84 89.535) (end 116.205 90.17) (width 1.016) (layer Dessous) (net 13))
(segment (start 121.92 89.535) (end 121.92 87.63) (width 0.635) (layer Dessous) (net 21) (status 20))
(segment (start 122.555 90.17) (end 127 90.17) (width 0.635) (layer Dessous) (net 21) (status 420))
(segment (start 121.92 89.535) (end 122.555 90.17) (width 0.635) (layer Dessous) (net 21))
(segment (start 151.765 100.965) (end 152.4 100.33) (width 0.635) (layer Dessous) (net 24))
(segment (start 145.535 100.965) (end 151.765 100.965) (width 0.635) (layer Dessous) (net 24))
(segment (start 145 101.5) (end 145.535 100.965) (width 0.635) (layer Dessous) (net 24))
(segment (start 145 102.87) (end 145 101.5) (width 0.635) (layer Dessous) (net 24) (status 10))
(segment (start 152.4 100.33) (end 152.4 99.06) (width 0.635) (layer Dessous) (net 24) (status 20))
(segment (start 145 102.87) (end 145 103.92) (width 0.635) (layer Dessous) (net 24) (status 10))
(segment (start 145 103.92) (end 144.145 104.775) (width 0.635) (layer Dessous) (net 24))
(segment (start 124.46 78.74) (end 131.445 78.74) (width 0.635) (layer Dessous) (net 25))
(segment (start 121.92 77.216) (end 122.936 77.216) (width 0.635) (layer Dessous) (net 25) (status 10))
(segment (start 122.936 77.216) (end 124.46 78.74) (width 0.635) (layer Dessous) (net 25))
(segment (start 149 102.87) (end 147.32 102.87) (width 0.635) (layer Dessous) (net 26) (status 10))
(segment (start 149 102.87) (end 151.765 102.87) (width 0.635) (layer Dessous) (net 26) (status 10))
(segment (start 121.92 80.518) (end 124.333 80.518) (width 0.635) (layer Dessous) (net 27) (status 10))
(segment (start 124.333 80.518) (end 124.46 80.645) (width 0.635) (layer Dessous) (net 27))
(segment (start 121.92 73.025) (end 121.92 73.8632) (width 0.635) (layer Dessous) (net 28) (status 20))
(segment (start 105.41 102.87) (end 105.537 102.616) (width 0.635) (layer Dessus) (net 29) (status 430))
(segment (start 109.22 102.87) (end 105.41 102.87) (width 0.635) (layer Dessus) (net 29) (status 20))
(segment (start 105.537 99.949) (end 109.855 99.949) (width 0.635) (layer Dessus) (net 29) (status 810))
(segment (start 109.855 99.949) (end 109.855 100.33) (width 0.635) (layer Dessus) (net 29))
(segment (start 109.855 100.33) (end 109.855 102.235) (width 0.635) (layer Dessus) (net 29))
(segment (start 109.855 102.235) (end 109.22 102.87) (width 0.635) (layer Dessus) (net 29))
(segment (start 109.855 92.329) (end 109.855 100.33) (width 0.635) (layer Dessus) (net 29))
(segment (start 105.537 91.694) (end 109.22 91.694) (width 0.635) (layer Dessus) (net 29) (status 810))
(segment (start 109.22 91.694) (end 109.855 92.329) (width 0.635) (layer Dessus) (net 29))
(segment (start 121.92 73.025) (end 122.555 72.39) (width 0.635) (layer Dessous) (net 28))
(segment (start 122.555 72.39) (end 127 72.39) (width 0.635) (layer Dessous) (net 28) (status 420))
(segment (start 140.97 87.63) (end 139.065 89.535) (width 0.635) (layer Dessous) (net 16) (status 810))
(segment (start 135.255 104.14) (end 121.92 104.14) (width 0.635) (layer Dessus) (net 16) (status 420))
(segment (start 139.065 89.535) (end 139.065 100.33) (width 0.635) (layer Dessous) (net 16))
(segment (start 139.065 100.33) (end 135.255 104.14) (width 0.635) (layer Dessus) (net 16))
(via (at 139.065 100.33) (size 1.778) (layers Dessus Dessous) (net 16))
(segment (start 121.92 92.71) (end 127 92.71) (width 0.635) (layer Dessous) (net 22) (status C30))
(segment (start 132.08 83.185) (end 132.715 83.82) (width 0.635) (layer Dessous) (net 25))
(segment (start 136.525 83.82) (end 137.795 85.09) (width 0.635) (layer Dessous) (net 25))
(segment (start 137.795 94.615) (end 137.795 85.09) (width 0.635) (layer Dessous) (net 25))
(segment (start 131.445 78.74) (end 132.08 79.375) (width 0.635) (layer Dessous) (net 25))
(segment (start 132.08 79.375) (end 132.08 83.185) (width 0.635) (layer Dessous) (net 25))
(segment (start 137.795 94.615) (end 137.16 95.25) (width 0.635) (layer Dessous) (net 25))
(segment (start 137.16 95.25) (end 134.62 95.25) (width 0.635) (layer Dessous) (net 25) (status 420))
(segment (start 132.715 83.82) (end 136.525 83.82) (width 0.4318) (layer Dessous) (net 25))
(segment (start 125.73 82.55) (end 127 82.55) (width 0.635) (layer Dessous) (net 20) (status 420))
(segment (start 121.92 83.82) (end 124.46 83.82) (width 0.635) (layer Dessous) (net 20) (status 810))
(segment (start 124.46 83.82) (end 125.73 82.55) (width 0.635) (layer Dessous) (net 20))
(segment (start 130.81 81.915) (end 129.54 80.645) (width 0.635) (layer Dessous) (net 27))
(segment (start 129.54 80.645) (end 124.46 80.645) (width 0.635) (layer Dessous) (net 27))
(segment (start 131.445 87.63) (end 134.62 87.63) (width 0.635) (layer Dessous) (net 27) (status 420))
(segment (start 130.81 86.995) (end 130.81 81.915) (width 0.635) (layer Dessous) (net 27))
(segment (start 131.445 87.63) (end 130.81 86.995) (width 0.635) (layer Dessous) (net 27))
(segment (start 131.445 88.9) (end 135.89 88.9) (width 0.4318) (layer Dessous) (net 21))
(segment (start 130.175 90.17) (end 132.715 92.71) (width 0.635) (layer Dessous) (net 21))
(segment (start 136.525 88.265) (end 136.525 85.725) (width 0.635) (layer Dessous) (net 21))
(segment (start 135.89 85.09) (end 136.525 85.725) (width 0.635) (layer Dessous) (net 21))
(segment (start 130.175 90.17) (end 131.445 88.9) (width 0.635) (layer Dessous) (net 21))
(segment (start 132.715 92.71) (end 134.62 92.71) (width 0.635) (layer Dessous) (net 21) (status 420))
(segment (start 135.89 85.09) (end 134.62 85.09) (width 0.635) (layer Dessous) (net 21) (status 420))
(segment (start 135.89 88.9) (end 136.525 88.265) (width 0.635) (layer Dessous) (net 21))
(segment (start 127 90.17) (end 130.175 90.17) (width 0.635) (layer Dessous) (net 21) (status 810))
(segment (start 125.73 96.52) (end 128.905 96.52) (width 0.4318) (layer Dessous) (net 26))
(segment (start 125.095 94.615) (end 125.095 95.885) (width 0.635) (layer Dessous) (net 26))
(segment (start 151.765 102.87) (end 152.4 103.505) (width 0.635) (layer Dessous) (net 26))
(segment (start 128.905 96.52) (end 129.54 96.52) (width 0.635) (layer Dessous) (net 26))
(segment (start 130.81 104.775) (end 132.08 106.045) (width 0.635) (layer Dessous) (net 26))
(segment (start 130.81 97.79) (end 130.81 104.775) (width 0.635) (layer Dessous) (net 26))
(segment (start 129.54 96.52) (end 130.81 97.79) (width 0.635) (layer Dessous) (net 26))
(segment (start 125.73 96.52) (end 125.095 95.885) (width 0.4318) (layer Dessous) (net 26))
(segment (start 152.4 103.505) (end 152.4 105.41) (width 0.635) (layer Dessous) (net 26) (status 420))
(segment (start 136.525 93.345) (end 135.89 93.98) (width 0.635) (layer Dessous) (net 26))
(segment (start 136.525 90.805) (end 136.525 93.345) (width 0.635) (layer Dessous) (net 26))
(segment (start 132.08 106.045) (end 145.415 106.045) (width 0.635) (layer Dessous) (net 26))
(segment (start 135.89 90.17) (end 136.525 90.805) (width 0.635) (layer Dessous) (net 26))
(segment (start 145.415 106.045) (end 146.685 104.775) (width 0.635) (layer Dessous) (net 26))
(segment (start 135.89 93.98) (end 125.73 93.98) (width 0.4318) (layer Dessous) (net 26))
(segment (start 125.73 93.98) (end 125.095 94.615) (width 0.635) (layer Dessous) (net 26))
(segment (start 134.62 90.17) (end 135.89 90.17) (width 0.635) (layer Dessous) (net 26) (status 810))
(segment (start 146.685 103.505) (end 147.32 102.87) (width 0.635) (layer Dessous) (net 26))
(segment (start 146.685 104.775) (end 146.685 103.505) (width 0.635) (layer Dessous) (net 26))
(segment (start 137.795 97.155) (end 137.795 99.06) (width 0.635) (layer Dessous) (net 23))
(segment (start 137.16 96.52) (end 137.795 97.155) (width 0.635) (layer Dessous) (net 23))
(segment (start 132.08 96.52) (end 137.16 96.52) (width 0.4318) (layer Dessous) (net 23))
(segment (start 140.97 102.87) (end 144.145 99.695) (width 0.635) (layer Dessous) (net 23) (status 810))
(segment (start 127 95.25) (end 130.81 95.25) (width 0.635) (layer Dessous) (net 23) (status 810))
(segment (start 130.81 95.25) (end 132.08 96.52) (width 0.635) (layer Dessous) (net 23))
(segment (start 137.795 102.87) (end 140.97 102.87) (width 0.635) (layer Dessous) (net 23) (status 420))
(segment (start 152.4 96.52) (end 152.4 93.98) (width 0.635) (layer Dessous) (net 23) (status 420))
(segment (start 150.495 98.425) (end 152.4 96.52) (width 0.635) (layer Dessous) (net 23))
(segment (start 137.795 99.06) (end 137.16 99.695) (width 0.635) (layer Dessous) (net 23))
(segment (start 144.145 99.695) (end 149.86 99.695) (width 0.635) (layer Dessous) (net 23))
(segment (start 137.16 102.235) (end 137.795 102.87) (width 0.635) (layer Dessous) (net 23))
(segment (start 149.86 99.695) (end 150.495 99.06) (width 0.635) (layer Dessous) (net 23))
(segment (start 150.495 99.06) (end 150.495 98.425) (width 0.635) (layer Dessous) (net 23))
(segment (start 137.16 99.695) (end 137.16 102.235) (width 0.635) (layer Dessous) (net 23))
(segment (start 134.62 104.14) (end 135.255 104.775) (width 0.635) (layer Dessous) (net 24))
(segment (start 135.255 104.775) (end 144.145 104.775) (width 0.635) (layer Dessous) (net 24))
(segment (start 134.62 97.79) (end 134.62 104.14) (width 0.635) (layer Dessous) (net 24) (status 810))
(segment (start 127 87.63) (end 124.46 87.63) (width 0.635) (layer Dessous) (net 15) (status 810))
(segment (start 152.4 88.9) (end 145.415 88.9) (width 0.4318) (layer Dessous) (net 15) (status 810))
(segment (start 144.145 77.47) (end 144.145 74.93) (width 0.635) (layer Dessus) (net 15))
(segment (start 147.32 72.39) (end 147.32 70.485) (width 0.635) (layer Dessous) (net 15) (status 810))
(segment (start 143.51 78.105) (end 144.145 77.47) (width 0.635) (layer Dessus) (net 15))
(segment (start 142.24 72.39) (end 147.32 72.39) (width 0.635) (layer Dessous) (net 15) (status 420))
(segment (start 138.43 83.82) (end 138.43 76.2) (width 0.635) (layer Dessous) (net 15))
(via (at 124.46 87.63) (size 1.778) (layers Dessus Dessous) (net 15))
(segment (start 145.415 88.9) (end 144.78 88.265) (width 0.635) (layer Dessous) (net 15))
(segment (start 144.78 86.36) (end 143.51 85.09) (width 0.635) (layer Dessous) (net 15))
(segment (start 144.145 74.93) (end 144.78 74.295) (width 0.635) (layer Dessus) (net 15))
(segment (start 147.32 70.485) (end 147.955 69.85) (width 0.635) (layer Dessous) (net 15))
(segment (start 144.78 88.265) (end 144.78 86.36) (width 0.635) (layer Dessous) (net 15))
(segment (start 146.685 74.295) (end 147.32 73.66) (width 0.635) (layer Dessus) (net 15))
(segment (start 143.51 85.09) (end 140.97 85.09) (width 0.635) (layer Dessous) (net 15) (status 420))
(segment (start 124.46 87.63) (end 124.46 80.01) (width 0.635) (layer Dessus) (net 15))
(segment (start 147.32 73.66) (end 147.32 72.39) (width 0.635) (layer Dessus) (net 15) (status 420))
(segment (start 147.955 69.85) (end 151.13 69.85) (width 0.635) (layer Dessous) (net 15) (status 420))
(segment (start 139.7 85.09) (end 138.43 83.82) (width 0.635) (layer Dessous) (net 15))
(segment (start 140.97 85.09) (end 139.7 85.09) (width 0.635) (layer Dessous) (net 15) (status 810))
(segment (start 144.78 74.295) (end 146.685 74.295) (width 0.635) (layer Dessus) (net 15))
(segment (start 138.43 76.2) (end 142.24 72.39) (width 0.635) (layer Dessous) (net 15))
(segment (start 126.365 78.105) (end 143.51 78.105) (width 0.635) (layer Dessus) (net 15))
(segment (start 124.46 80.01) (end 126.365 78.105) (width 0.635) (layer Dessus) (net 15))
(segment (start 137.16 72.39) (end 142.875 72.39) (width 1.016) (layer Dessus) (net 14) (status 810))
(segment (start 142.875 72.39) (end 145.415 69.85) (width 1.016) (layer Dessus) (net 14))
(segment (start 149.86 73.025) (end 150.495 73.66) (width 1.016) (layer Dessus) (net 14) (status 20))
(segment (start 148.59 69.85) (end 149.86 71.12) (width 1.016) (layer Dessus) (net 14))
(segment (start 151.13 78.74) (end 152.4 78.74) (width 1.016) (layer Dessous) (net 14) (status 420))
(segment (start 145.415 69.85) (end 148.59 69.85) (width 1.016) (layer Dessus) (net 14))
(segment (start 150.495 73.66) (end 151.13 73.66) (width 1.016) (layer Dessus) (net 14) (status 430))
(segment (start 148.59 82.55) (end 148.59 79.375) (width 1.016) (layer Dessous) (net 14) (status 810))
(segment (start 134.62 76.2) (end 134.62 72.39) (width 1.016) (layer Dessous) (net 14) (status C30))
(segment (start 149.225 78.74) (end 151.13 78.74) (width 1.016) (layer Dessous) (net 14))
(segment (start 137.16 72.39) (end 134.62 72.39) (width 1.016) (layer Dessous) (net 14) (status C30))
(segment (start 151.13 73.66) (end 151.13 78.74) (width 1.016) (layer Dessous) (net 14) (status 810))
(segment (start 149.86 71.12) (end 149.86 73.025) (width 1.016) (layer Dessus) (net 14))
(segment (start 148.59 79.375) (end 149.225 78.74) (width 1.016) (layer Dessous) (net 14))
(segment (start 134.62 82.55) (end 134.62 76.2) (width 1.016) (layer Dessous) (net 14) (status C30))
(segment (start 111.76 77.216) (end 110.744 77.216) (width 0.635) (layer top_copper) (net 1) (status 10))
(segment (start 110.744 77.216) (end 109.855 78.105) (width 0.635) (layer top_copper) (net 1))
(segment (start 109.855 78.105) (end 106.045 78.105) (width 0.635) (layer top_copper) (net 1) (status 20))
(segment (start 106.045 78.105) (end 105.537 77.978) (width 0.635) (layer top_copper) (net 1) (status 430))
(segment (start 111.76 87.63) (end 109.855 85.725) (width 0.635) (layer top_copper) (net 2) (status 10))
(segment (start 109.22 83.82) (end 105.41 83.82) (width 0.635) (layer top_copper) (net 2) (status 20))
(segment (start 109.855 85.725) (end 109.855 84.455) (width 0.635) (layer top_copper) (net 2))
(segment (start 105.41 83.82) (end 105.537 83.439) (width 0.635) (layer top_copper) (net 2) (status 430))
(segment (start 109.855 84.455) (end 109.22 83.82) (width 0.635) (layer top_copper) (net 2))
(segment (start 111.125 105.41) (end 105.537 105.41) (width 0.635) (layer top_copper) (net 3) (status 420))
(segment (start 111.76 104.775) (end 111.125 105.41) (width 0.635) (layer top_copper) (net 3) (status 10))
(segment (start 111.76 104.14) (end 111.76 104.775) (width 0.635) (layer top_copper) (net 3) (status 830))
(segment (start 180.213 78.613) (end 171.050935 78.613) (width 1.016) (layer bottom_copper) (net 4))
(segment (start 171.050935 78.613) (end 169.599468 80.064467) (width 1.016) (layer bottom_copper) (net 4) (status 20))
(segment (start 181.61 80.01) (end 180.213 78.613) (width 1.016) (layer bottom_copper) (net 4))
(segment (start 181.61 80.01) (end 181.61 84.582) (width 1.016) (layer bottom_copper) (net 4) (status 20))
(segment (start 160.02 78.74) (end 168.40201 78.74) (width 1.016) (layer bottom_copper) (net 4) (status 10))
(segment (start 168.40201 78.74) (end 169.672 80.00999) (width 1.016) (layer bottom_copper) (net 4) (status 20))
(segment (start 167.005 92.329) (end 167.005 94.615) (width 0.635) (layer bottom_copper) (net 5))
(segment (start 167.005 94.615) (end 162.56 99.06) (width 0.635) (layer bottom_copper) (net 5) (status 20))
(segment (start 169.037 90.297) (end 167.005 92.329) (width 0.635) (layer bottom_copper) (net 5) (status 10))
(segment (start 169.672 90.297) (end 169.037 90.297) (width 0.635) (layer bottom_copper) (net 5) (status 30))
(segment (start 169.672 90.297) (end 172.212 90.297) (width 0.635) (layer bottom_copper) (net 5) (status 10))
(segment (start 172.212 90.297) (end 174.625 92.71) (width 0.635) (layer bottom_copper) (net 5))
(segment (start 181.61 92.71) (end 181.61 92.964) (width 0.635) (layer bottom_copper) (net 5) (status 430))
(segment (start 174.625 92.71) (end 181.61 92.71) (width 0.635) (layer bottom_copper) (net 5) (status 20))
(segment (start 169.672 85.217) (end 176.657 85.217) (width 0.635) (layer bottom_copper) (net 6) (status 10))
(segment (start 176.657 85.217) (end 178.435 86.995) (width 0.635) (layer bottom_copper) (net 6))
(segment (start 162.56 88.138) (end 165.481 85.217) (width 0.635) (layer bottom_copper) (net 6) (status 10))
(segment (start 165.481 85.217) (end 169.672 85.217) (width 0.635) (layer bottom_copper) (net 6) (status 20))
(segment (start 162.56 88.9) (end 162.56 88.138) (width 0.635) (layer bottom_copper) (net 6) (status 30))
(segment (start 180.975 86.995) (end 181.61 87.376) (width 0.635) (layer bottom_copper) (net 6) (status 430))
(segment (start 178.435 86.995) (end 180.975 86.995) (width 0.635) (layer bottom_copper) (net 6) (status 20))
(segment (start 113.284 89.408) (end 114.3 88.392) (width 0.635) (layer top_copper) (net 7))
(segment (start 110.744 89.408) (end 113.284 89.408) (width 0.635) (layer top_copper) (net 7))
(segment (start 107.569 86.233) (end 110.744 89.408) (width 0.635) (layer top_copper) (net 7))
(segment (start 105.537 86.233) (end 107.569 86.233) (width 0.635) (layer top_copper) (net 7) (status 10))
(segment (start 114.3 88.392) (end 114.3 84.455) (width 0.635) (layer top_copper) (net 7))
(segment (start 114.3 84.455) (end 113.665 83.82) (width 0.635) (layer top_copper) (net 7))
(segment (start 113.665 83.82) (end 111.76 83.82) (width 0.635) (layer top_copper) (net 7) (status 20))
(segment (start 169.672 87.757) (end 172.847 87.757) (width 0.635) (layer bottom_copper) (net 8) (status 10))
(segment (start 172.847 87.757) (end 175.26 90.17) (width 0.635) (layer bottom_copper) (net 8))
(segment (start 167.513 87.757) (end 166.243 89.027) (width 0.635) (layer bottom_copper) (net 8))
(segment (start 166.243 89.027) (end 166.243 91.44) (width 0.635) (layer bottom_copper) (net 8))
(segment (start 169.672 87.757) (end 167.513 87.757) (width 0.635) (layer bottom_copper) (net 8) (status 10))
(segment (start 163.703 93.98) (end 166.243 91.44) (width 0.635) (layer bottom_copper) (net 8))
(segment (start 162.56 93.98) (end 163.703 93.98) (width 0.635) (layer bottom_copper) (net 8) (status 10))
(segment (start 175.26 90.17) (end 181.61 90.17) (width 0.635) (layer bottom_copper) (net 8) (status 20))
(segment (start 116.205 72.771) (end 115.316 71.882) (width 0.635) (layer top_copper) (net 9))
(segment (start 116.205 91.44) (end 116.205 72.771) (width 0.635) (layer top_copper) (net 9))
(segment (start 114.935 92.71) (end 116.205 91.44) (width 0.635) (layer top_copper) (net 9))
(segment (start 111.76 92.71) (end 114.935 92.71) (width 0.635) (layer top_copper) (net 9) (status 10))
(segment (start 115.316 71.882) (end 110.744 71.882) (width 0.635) (layer top_copper) (net 9))
(segment (start 110.744 71.882) (end 107.696 74.93) (width 0.635) (layer top_copper) (net 9))
(segment (start 107.696 74.93) (end 106.045 74.93) (width 0.635) (layer top_copper) (net 9) (status 20))
(segment (start 106.045 74.93) (end 106.045 75.565) (width 0.635) (layer top_copper) (net 9) (status 30))
(segment (start 106.045 75.565) (end 105.537 75.184) (width 0.635) (layer top_copper) (net 9) (status 30))
(segment (start 162.56 103.632) (end 169.672 96.52) (width 0.635) (layer bottom_copper) (net 10))
(segment (start 169.672 96.52) (end 169.672 92.837) (width 0.635) (layer bottom_copper) (net 10) (status 20))
(segment (start 162.56 105.41) (end 162.56 103.632) (width 0.635) (layer bottom_copper) (net 10) (status 10))
(segment (start 181.61 95.885) (end 172.72 95.885) (width 0.635) (layer bottom_copper) (net 10) (status 10))
(segment (start 172.72 95.885) (end 169.672 92.837) (width 0.635) (layer bottom_copper) (net 10) (status 20))
(segment (start 181.61 95.885) (end 181.61 95.758) (width 0.635) (layer bottom_copper) (net 10) (status 430))
(segment (start 111.76 80.518) (end 109.982 80.518) (width 0.635) (layer top_copper) (net 11) (status 10))
(segment (start 109.982 80.518) (end 109.855 80.645) (width 0.635) (layer top_copper) (net 11))
(segment (start 109.855 80.645) (end 106.045 80.645) (width 0.635) (layer top_copper) (net 11) (status 20))
(segment (start 106.045 80.645) (end 105.537 80.772) (width 0.635) (layer top_copper) (net 11) (status 430))
(segment (start 109.4232 76.2) (end 106.045 76.2) (width 0.635) (layer bottom_copper) (net 12) (status 20))
(segment (start 109.4232 76.2) (end 111.76 73.8632) (width 0.635) (layer bottom_copper) (net 12) (status 20))
(segment (start 106.045 76.2) (end 105.537 76.581) (width 0.635) (layer bottom_copper) (net 12) (status 430))
(segment (start 169.672 82.677) (end 176.403 82.677) (width 1.016) (layer bottom_copper) (net 13) (status 10))
(segment (start 176.403 82.677) (end 177.8 81.28) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 157.48 82.677) (end 157.48 74.295) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 157.48 107.315) (end 157.48 82.677) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 157.48 82.677) (end 169.672 82.677) (width 1.016) (layer bottom_copper) (net 13) (status 20))
(segment (start 148.59 85.09) (end 154.305 85.09) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 149.86 92.71) (end 148.59 92.71) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(segment (start 148.59 95.25) (end 148.59 92.71) (width 1.016) (layer bottom_copper) (net 13) (status C30))
(segment (start 148.59 87.63) (end 148.59 85.09) (width 1.016) (layer bottom_copper) (net 13) (status C30))
(segment (start 155.575 71.755) (end 156.21 71.12) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 156.21 71.12) (end 156.21 69.85) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(segment (start 147.32 76.2) (end 149.225 74.295) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 140.97 76.835) (end 141.605 76.2) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 150.495 92.075) (end 149.86 92.71) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 154.305 92.075) (end 150.495 92.075) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 154.94 85.725) (end 154.94 91.44) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 154.305 85.09) (end 154.94 85.725) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 140.97 82.55) (end 140.97 76.835) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 141.605 76.2) (end 147.32 76.2) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(segment (start 140.97 92.71) (end 144.78 92.71) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 140.97 97.79) (end 144.145 97.79) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 144.78 92.71) (end 148.59 92.71) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(segment (start 140.97 92.71) (end 140.97 90.17) (width 1.016) (layer bottom_copper) (net 13) (status C30))
(segment (start 144.145 97.79) (end 144.78 97.155) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 149.225 72.39) (end 149.86 71.755) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 149.225 74.295) (end 149.225 72.39) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 146.05 85.09) (end 143.51 82.55) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 143.51 82.55) (end 140.97 82.55) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(via (at 177.8 81.28) (size 1.778) (layers top_copper bottom_copper) (net 13))
(segment (start 177.8 81.28) (end 180.975 81.28) (width 1.016) (layer top_copper) (net 13))
(segment (start 180.975 81.28) (end 181.61 81.915) (width 1.016) (layer top_copper) (net 13))
(segment (start 181.61 85.979) (end 181.61 81.915) (width 1.016) (layer top_copper) (net 13) (status 810))
(segment (start 181.61 88.773) (end 181.61 85.979) (width 1.016) (layer top_copper) (net 13) (status C30))
(segment (start 181.61 91.567) (end 181.61 88.773) (width 1.016) (layer top_copper) (net 13) (status C30))
(segment (start 181.61 94.361) (end 181.61 91.567) (width 1.016) (layer top_copper) (net 13) (status C30))
(segment (start 154.94 91.44) (end 154.305 92.075) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 161.29 70.485) (end 161.29 73.66) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(segment (start 156.21 69.85) (end 160.655 69.85) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 160.655 69.85) (end 161.29 70.485) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 158.115 73.66) (end 161.29 73.66) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(segment (start 157.48 74.295) (end 158.115 73.66) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 140.97 107.95) (end 144.78 107.95) (width 1.016) (layer bottom_copper) (net 13) (status C30))
(segment (start 144.78 107.95) (end 156.845 107.95) (width 1.016) (layer bottom_copper) (net 13) (status C10))
(segment (start 149.86 71.755) (end 155.575 71.755) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 156.845 107.95) (end 157.48 107.315) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 117.475 85.09) (end 116.84 85.725) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 116.84 85.725) (end 116.84 89.535) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 109.22 104.14) (end 109.22 107.315) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 109.855 107.95) (end 127 107.95) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 109.855 90.297) (end 109.855 90.17) (width 0.635) (layer bottom_copper) (net 13))
(segment (start 105.537 90.297) (end 109.855 90.297) (width 0.635) (layer bottom_copper) (net 13) (status 810))
(segment (start 109.22 104.013) (end 109.22 104.14) (width 0.635) (layer bottom_copper) (net 13))
(segment (start 105.537 104.013) (end 109.22 104.013) (width 0.635) (layer bottom_copper) (net 13) (status 810))
(segment (start 148.59 85.09) (end 146.05 85.09) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 109.22 90.805) (end 109.22 104.14) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 127 107.95) (end 140.97 107.95) (width 1.016) (layer bottom_copper) (net 13) (status 420))
(segment (start 109.22 107.315) (end 109.855 107.95) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 127 97.79) (end 127 107.95) (width 1.016) (layer bottom_copper) (net 13) (status 810))
(segment (start 127 85.09) (end 117.475 85.09) (width 0.4318) (layer bottom_copper) (net 13) (status 810))
(segment (start 144.78 97.155) (end 144.78 92.71) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 109.855 90.17) (end 109.22 90.805) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 116.205 90.17) (end 109.855 90.17) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 116.84 89.535) (end 116.205 90.17) (width 1.016) (layer bottom_copper) (net 13))
(segment (start 137.16 72.39) (end 142.875 72.39) (width 1.016) (layer top_copper) (net 14) (status 810))
(segment (start 142.875 72.39) (end 145.415 69.85) (width 1.016) (layer top_copper) (net 14))
(segment (start 149.86 73.025) (end 150.495 73.66) (width 1.016) (layer top_copper) (net 14) (status 20))
(segment (start 148.59 69.85) (end 149.86 71.12) (width 1.016) (layer top_copper) (net 14))
(segment (start 151.13 78.74) (end 152.4 78.74) (width 1.016) (layer bottom_copper) (net 14) (status 420))
(segment (start 145.415 69.85) (end 148.59 69.85) (width 1.016) (layer top_copper) (net 14))
(segment (start 150.495 73.66) (end 151.13 73.66) (width 1.016) (layer top_copper) (net 14) (status 430))
(segment (start 148.59 82.55) (end 148.59 79.375) (width 1.016) (layer bottom_copper) (net 14) (status 810))
(segment (start 134.62 76.2) (end 134.62 72.39) (width 1.016) (layer bottom_copper) (net 14) (status C30))
(segment (start 149.225 78.74) (end 151.13 78.74) (width 1.016) (layer bottom_copper) (net 14))
(segment (start 137.16 72.39) (end 134.62 72.39) (width 1.016) (layer bottom_copper) (net 14) (status C30))
(segment (start 151.13 73.66) (end 151.13 78.74) (width 1.016) (layer bottom_copper) (net 14) (status 810))
(segment (start 149.86 71.12) (end 149.86 73.025) (width 1.016) (layer top_copper) (net 14))
(segment (start 148.59 79.375) (end 149.225 78.74) (width 1.016) (layer bottom_copper) (net 14))
(segment (start 134.62 82.55) (end 134.62 76.2) (width 1.016) (layer bottom_copper) (net 14) (status C30))
(segment (start 127 87.63) (end 124.46 87.63) (width 0.635) (layer bottom_copper) (net 15) (status 810))
(segment (start 152.4 88.9) (end 145.415 88.9) (width 0.4318) (layer bottom_copper) (net 15) (status 810))
(segment (start 144.145 77.47) (end 144.145 74.93) (width 0.635) (layer top_copper) (net 15))
(segment (start 147.32 72.39) (end 147.32 70.485) (width 0.635) (layer bottom_copper) (net 15) (status 810))
(segment (start 143.51 78.105) (end 144.145 77.47) (width 0.635) (layer top_copper) (net 15))
(segment (start 142.24 72.39) (end 147.32 72.39) (width 0.635) (layer bottom_copper) (net 15) (status 420))
(segment (start 138.43 83.82) (end 138.43 76.2) (width 0.635) (layer bottom_copper) (net 15))
(via (at 124.46 87.63) (size 1.778) (layers top_copper bottom_copper) (net 15))
(segment (start 145.415 88.9) (end 144.78 88.265) (width 0.635) (layer bottom_copper) (net 15))
(segment (start 144.78 86.36) (end 143.51 85.09) (width 0.635) (layer bottom_copper) (net 15))
(segment (start 144.145 74.93) (end 144.78 74.295) (width 0.635) (layer top_copper) (net 15))
(segment (start 147.32 70.485) (end 147.955 69.85) (width 0.635) (layer bottom_copper) (net 15))
(segment (start 144.78 88.265) (end 144.78 86.36) (width 0.635) (layer bottom_copper) (net 15))
(segment (start 146.685 74.295) (end 147.32 73.66) (width 0.635) (layer top_copper) (net 15))
(segment (start 143.51 85.09) (end 140.97 85.09) (width 0.635) (layer bottom_copper) (net 15) (status 420))
(segment (start 124.46 87.63) (end 124.46 80.01) (width 0.635) (layer top_copper) (net 15))
(segment (start 147.32 73.66) (end 147.32 72.39) (width 0.635) (layer top_copper) (net 15) (status 420))
(segment (start 147.955 69.85) (end 151.13 69.85) (width 0.635) (layer bottom_copper) (net 15) (status 420))
(segment (start 139.7 85.09) (end 138.43 83.82) (width 0.635) (layer bottom_copper) (net 15))
(segment (start 140.97 85.09) (end 139.7 85.09) (width 0.635) (layer bottom_copper) (net 15) (status 810))
(segment (start 144.78 74.295) (end 146.685 74.295) (width 0.635) (layer top_copper) (net 15))
(segment (start 138.43 76.2) (end 142.24 72.39) (width 0.635) (layer bottom_copper) (net 15))
(segment (start 126.365 78.105) (end 143.51 78.105) (width 0.635) (layer top_copper) (net 15))
(segment (start 124.46 80.01) (end 126.365 78.105) (width 0.635) (layer top_copper) (net 15))
(segment (start 140.97 87.63) (end 139.065 89.535) (width 0.635) (layer bottom_copper) (net 16) (status 810))
(segment (start 135.255 104.14) (end 121.92 104.14) (width 0.635) (layer top_copper) (net 16) (status 420))
(segment (start 139.065 89.535) (end 139.065 100.33) (width 0.635) (layer bottom_copper) (net 16))
(segment (start 139.065 100.33) (end 135.255 104.14) (width 0.635) (layer top_copper) (net 16))
(via (at 139.065 100.33) (size 1.778) (layers top_copper bottom_copper) (net 16))
(segment (start 125.73 82.55) (end 127 82.55) (width 0.635) (layer bottom_copper) (net 20) (status 420))
(segment (start 121.92 83.82) (end 124.46 83.82) (width 0.635) (layer bottom_copper) (net 20) (status 810))
(segment (start 124.46 83.82) (end 125.73 82.55) (width 0.635) (layer bottom_copper) (net 20))
(segment (start 121.92 89.535) (end 121.92 87.63) (width 0.635) (layer bottom_copper) (net 21) (status 20))
(segment (start 122.555 90.17) (end 127 90.17) (width 0.635) (layer bottom_copper) (net 21) (status 420))
(segment (start 121.92 89.535) (end 122.555 90.17) (width 0.635) (layer bottom_copper) (net 21))
(segment (start 131.445 88.9) (end 135.89 88.9) (width 0.4318) (layer bottom_copper) (net 21))
(segment (start 130.175 90.17) (end 132.715 92.71) (width 0.635) (layer bottom_copper) (net 21))
(segment (start 136.525 88.265) (end 136.525 85.725) (width 0.635) (layer bottom_copper) (net 21))
(segment (start 135.89 85.09) (end 136.525 85.725) (width 0.635) (layer bottom_copper) (net 21))
(segment (start 130.175 90.17) (end 131.445 88.9) (width 0.635) (layer bottom_copper) (net 21))
(segment (start 132.715 92.71) (end 134.62 92.71) (width 0.635) (layer bottom_copper) (net 21) (status 420))
(segment (start 135.89 85.09) (end 134.62 85.09) (width 0.635) (layer bottom_copper) (net 21) (status 420))
(segment (start 135.89 88.9) (end 136.525 88.265) (width 0.635) (layer bottom_copper) (net 21))
(segment (start 127 90.17) (end 130.175 90.17) (width 0.635) (layer bottom_copper) (net 21) (status 810))
(segment (start 121.92 92.71) (end 127 92.71) (width 0.635) (layer bottom_copper) (net 22) (status C30))
(segment (start 137.795 97.155) (end 137.795 99.06) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 137.16 96.52) (end 137.795 97.155) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 132.08 96.52) (end 137.16 96.52) (width 0.4318) (layer bottom_copper) (net 23))
(segment (start 140.97 102.87) (end 144.145 99.695) (width 0.635) (layer bottom_copper) (net 23) (status 810))
(segment (start 127 95.25) (end 130.81 95.25) (width 0.635) (layer bottom_copper) (net 23) (status 810))
(segment (start 130.81 95.25) (end 132.08 96.52) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 137.795 102.87) (end 140.97 102.87) (width 0.635) (layer bottom_copper) (net 23) (status 420))
(segment (start 152.4 96.52) (end 152.4 93.98) (width 0.635) (layer bottom_copper) (net 23) (status 420))
(segment (start 150.495 98.425) (end 152.4 96.52) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 137.795 99.06) (end 137.16 99.695) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 144.145 99.695) (end 149.86 99.695) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 137.16 102.235) (end 137.795 102.87) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 149.86 99.695) (end 150.495 99.06) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 150.495 99.06) (end 150.495 98.425) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 137.16 99.695) (end 137.16 102.235) (width 0.635) (layer bottom_copper) (net 23))
(segment (start 151.765 100.965) (end 152.4 100.33) (width 0.635) (layer bottom_copper) (net 24))
(segment (start 145.535 100.965) (end 151.765 100.965) (width 0.635) (layer bottom_copper) (net 24))
(segment (start 145 101.5) (end 145.535 100.965) (width 0.635) (layer bottom_copper) (net 24))
(segment (start 145 102.87) (end 145 101.5) (width 0.635) (layer bottom_copper) (net 24) (status 10))
(segment (start 152.4 100.33) (end 152.4 99.06) (width 0.635) (layer bottom_copper) (net 24) (status 20))
(segment (start 145 102.87) (end 145 103.92) (width 0.635) (layer bottom_copper) (net 24) (status 10))
(segment (start 145 103.92) (end 144.145 104.775) (width 0.635) (layer bottom_copper) (net 24))
(segment (start 134.62 104.14) (end 135.255 104.775) (width 0.635) (layer bottom_copper) (net 24))
(segment (start 135.255 104.775) (end 144.145 104.775) (width 0.635) (layer bottom_copper) (net 24))
(segment (start 134.62 97.79) (end 134.62 104.14) (width 0.635) (layer bottom_copper) (net 24) (status 810))
(segment (start 124.46 78.74) (end 131.445 78.74) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 121.92 77.216) (end 122.936 77.216) (width 0.635) (layer bottom_copper) (net 25) (status 10))
(segment (start 122.936 77.216) (end 124.46 78.74) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 132.08 83.185) (end 132.715 83.82) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 136.525 83.82) (end 137.795 85.09) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 137.795 94.615) (end 137.795 85.09) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 131.445 78.74) (end 132.08 79.375) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 132.08 79.375) (end 132.08 83.185) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 137.795 94.615) (end 137.16 95.25) (width 0.635) (layer bottom_copper) (net 25))
(segment (start 137.16 95.25) (end 134.62 95.25) (width 0.635) (layer bottom_copper) (net 25) (status 420))
(segment (start 132.715 83.82) (end 136.525 83.82) (width 0.4318) (layer bottom_copper) (net 25))
(segment (start 149 102.87) (end 147.32 102.87) (width 0.635) (layer bottom_copper) (net 26) (status 10))
(segment (start 149 102.87) (end 151.765 102.87) (width 0.635) (layer bottom_copper) (net 26) (status 10))
(segment (start 125.73 96.52) (end 128.905 96.52) (width 0.4318) (layer bottom_copper) (net 26))
(segment (start 125.095 94.615) (end 125.095 95.885) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 151.765 102.87) (end 152.4 103.505) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 128.905 96.52) (end 129.54 96.52) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 130.81 104.775) (end 132.08 106.045) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 130.81 97.79) (end 130.81 104.775) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 129.54 96.52) (end 130.81 97.79) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 125.73 96.52) (end 125.095 95.885) (width 0.4318) (layer bottom_copper) (net 26))
(segment (start 152.4 103.505) (end 152.4 105.41) (width 0.635) (layer bottom_copper) (net 26) (status 420))
(segment (start 136.525 93.345) (end 135.89 93.98) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 136.525 90.805) (end 136.525 93.345) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 132.08 106.045) (end 145.415 106.045) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 135.89 90.17) (end 136.525 90.805) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 145.415 106.045) (end 146.685 104.775) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 135.89 93.98) (end 125.73 93.98) (width 0.4318) (layer bottom_copper) (net 26))
(segment (start 125.73 93.98) (end 125.095 94.615) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 134.62 90.17) (end 135.89 90.17) (width 0.635) (layer bottom_copper) (net 26) (status 810))
(segment (start 146.685 103.505) (end 147.32 102.87) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 146.685 104.775) (end 146.685 103.505) (width 0.635) (layer bottom_copper) (net 26))
(segment (start 121.92 80.518) (end 124.333 80.518) (width 0.635) (layer bottom_copper) (net 27) (status 10))
(segment (start 124.333 80.518) (end 124.46 80.645) (width 0.635) (layer bottom_copper) (net 27))
(segment (start 130.81 81.915) (end 129.54 80.645) (width 0.635) (layer bottom_copper) (net 27))
(segment (start 129.54 80.645) (end 124.46 80.645) (width 0.635) (layer bottom_copper) (net 27))
(segment (start 131.445 87.63) (end 134.62 87.63) (width 0.635) (layer bottom_copper) (net 27) (status 420))
(segment (start 130.81 86.995) (end 130.81 81.915) (width 0.635) (layer bottom_copper) (net 27))
(segment (start 131.445 87.63) (end 130.81 86.995) (width 0.635) (layer bottom_copper) (net 27))
(segment (start 121.92 73.025) (end 121.92 73.8632) (width 0.635) (layer bottom_copper) (net 28) (status 20))
(segment (start 121.92 73.025) (end 122.555 72.39) (width 0.635) (layer bottom_copper) (net 28))
(segment (start 122.555 72.39) (end 127 72.39) (width 0.635) (layer bottom_copper) (net 28) (status 420))
(segment (start 105.41 102.87) (end 105.537 102.616) (width 0.635) (layer top_copper) (net 29) (status 430))
(segment (start 109.22 102.87) (end 105.41 102.87) (width 0.635) (layer top_copper) (net 29) (status 20))
(segment (start 105.537 99.949) (end 109.855 99.949) (width 0.635) (layer top_copper) (net 29) (status 810))
(segment (start 109.855 99.949) (end 109.855 100.33) (width 0.635) (layer top_copper) (net 29))
(segment (start 109.855 100.33) (end 109.855 102.235) (width 0.635) (layer top_copper) (net 29))
(segment (start 109.855 102.235) (end 109.22 102.87) (width 0.635) (layer top_copper) (net 29))
(segment (start 109.855 92.329) (end 109.855 100.33) (width 0.635) (layer top_copper) (net 29))
(segment (start 105.537 91.694) (end 109.22 91.694) (width 0.635) (layer top_copper) (net 29) (status 810))
(segment (start 109.22 91.694) (end 109.855 92.329) (width 0.635) (layer top_copper) (net 29))
(zone (net 13) (net_name GND) (layer Dessous) (tstamp 4BF0F951) (hatch edge 0.508)
(zone (net 13) (net_name GND) (layer bottom_copper) (tstamp 5B221AE5) (hatch edge 0.508)
(connect_pads (clearance 0.508))
(min_thickness 0.254)
(fill yes (arc_segments 16) (thermal_gap 0.508) (thermal_bridge_width 0.508))
File diff suppressed because it is too large Load Diff
+46 -46
View File
@@ -1,8 +1,8 @@
(export (version D)
(design
(source F:\kicad-launchpad\git_testing\demos\test_xil_95108\carte_test.sch)
(date "09/05/2018 09:05:23")
(tool "Eeschema (5.0.0-rc2-dev-691-g58f663e)")
(source /home/orson/workspace/kicad-master/demos/test_xil_95108/carte_test.sch)
(date "Fri 29 Jun 2018 12:00:37 PM CEST")
(tool "Eeschema (5.0.0-rc2-442-g5dd786b47)")
(sheet (number 1) (name /) (tstamps /)
(title_block
(title "XC95108PC84 EXPERIMENTATION BOARD")
@@ -18,253 +18,253 @@
(comp (ref J2)
(value DB9FEM)
(footprint Connector_Dsub:DSUB-9_Female_EdgeMount_P2.77mm)
(libsource (lib carte_test_schlib) (part DB9))
(libsource (lib carte_test_schlib) (part DB9) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDEBEA))
(comp (ref D4)
(value 1N4004)
(footprint Diode_THT:D_DO-35_SOD27_P12.70mm_Horizontal)
(libsource (lib carte_test_schlib) (part DIODE))
(libsource (lib carte_test_schlib) (part DIODE) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDCDD))
(comp (ref C13)
(value 10uF)
(footprint Capacitor_THT:CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal)
(libsource (lib carte_test_schlib) (part CP))
(libsource (lib carte_test_schlib) (part CP) (description "Polarised capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDCAD))
(comp (ref U6)
(value LM318N)
(footprint Package_DIP:DIP-8_W7.62mm_LongPads)
(libsource (lib carte_test_schlib) (part LM318N))
(libsource (lib carte_test_schlib) (part LM318N) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDB8B))
(comp (ref R10)
(value 75)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDB6D))
(comp (ref R7)
(value 1,1K)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDB60))
(comp (ref R6)
(value 1,1k)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDB57))
(comp (ref R9)
(value 2,2K)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDB4B))
(comp (ref R8)
(value 2,2K)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDB43))
(comp (ref C14)
(value 10uF)
(footprint Capacitor_THT:CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal)
(libsource (lib carte_test_schlib) (part CP))
(libsource (lib carte_test_schlib) (part CP) (description "Polarised capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3ECDDACB))
(comp (ref P4)
(value CONN_2X2)
(footprint Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Vertical)
(libsource (lib carte_test_schlib) (part CONN_2X2))
(libsource (lib carte_test_schlib) (part CONN_2X2) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3ECB3F5E))
(comp (ref J1)
(value DB25)
(footprint Connector_Dsub:DSUB-25_Female_Horizontal_P2.77x2.84mm_EdgePinOffset9.90mm_Housed_MountingHolesOffset11.32mm)
(libsource (lib carte_test_schlib) (part DB25))
(libsource (lib carte_test_schlib) (part DB25) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC4C60F))
(comp (ref R5)
(value 4,7K)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3EC8B978))
(comp (ref R4)
(value 4,7K)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3EC8B970))
(comp (ref SW2)
(value SW_PUSH)
(footprint Button_Switch_THT:SW_PUSH_6mm_h4.3mm)
(libsource (lib carte_test_schlib) (part SW_PUSH))
(libsource (lib carte_test_schlib) (part SW_PUSH) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC8B882))
(comp (ref SW1)
(value SW_PUSH)
(footprint Button_Switch_THT:SW_PUSH_6mm_h4.3mm)
(libsource (lib carte_test_schlib) (part SW_PUSH))
(libsource (lib carte_test_schlib) (part SW_PUSH) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC8B876))
(comp (ref D3)
(value LED)
(footprint LED_THT:LED_D5.0mm)
(libsource (lib carte_test_schlib) (part LED))
(libsource (lib carte_test_schlib) (part LED) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC4D08F))
(comp (ref R3)
(value 330)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3EC4D082))
(comp (ref D2)
(value LED)
(footprint LED_THT:LED_D5.0mm)
(libsource (lib carte_test_schlib) (part LED))
(libsource (lib carte_test_schlib) (part LED) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 52CEE1D4))
(comp (ref R2)
(value 330)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 52CEE1D3))
(comp (ref C12)
(value 100nF)
(footprint Capacitors_SMD:C_1206)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3EC4C7DB))
(comp (ref C7)
(value 100nF)
(footprint Capacitor_SMD:C_1206_3216Metric_Pad1.24x1.80mm_HandSolder)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 52CEE1C8))
(comp (ref C11)
(value 100nF)
(footprint Capacitor_SMD:C_1206_3216Metric_Pad1.24x1.80mm_HandSolder)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 52CEE1C7))
(comp (ref C10)
(value 100nF)
(footprint Capacitor_SMD:C_1206_3216Metric_Pad1.24x1.80mm_HandSolder)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 52CEE1C9))
(comp (ref C8)
(value 100nF)
(footprint Capacitor_SMD:C_1206_3216Metric_Pad1.24x1.80mm_HandSolder)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 52CEE1CA))
(comp (ref K1)
(value CONN_3)
(footprint Socket_Strips:Socket_Strip_Straight_1x03)
(libsource (lib carte_test_schlib) (part CONN_3))
(libsource (lib carte_test_schlib) (part CONN_3) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC4C49F))
(comp (ref U5)
(value RAM_32KO)
(footprint Sockets_DIP:DIP-28__300__600_ELL)
(libsource (lib carte_test_schlib) (part RAM_32KO))
(libsource (lib carte_test_schlib) (part RAM_32KO) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC4C463))
(comp (ref U4)
(value 74HC04)
(footprint Package_DIP:DIP-14_W7.62mm_LongPads)
(libsource (lib carte_test_schlib) (part 74HC04))
(libsource (lib carte_test_schlib) (part 74HC04) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC4C318))
(comp (ref P3)
(value CONN_2)
(footprint TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal)
(libsource (lib carte_test_schlib) (part CONN_2))
(libsource (lib carte_test_schlib) (part CONN_2) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC2446D))
(comp (ref C6)
(value 47uF)
(footprint Capacitor_THT:CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal)
(libsource (lib carte_test_schlib) (part CP))
(libsource (lib carte_test_schlib) (part CP) (description "Polarised capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3EC243D6))
(comp (ref D1)
(value 1N4004)
(footprint Diode_THT:D_DO-35_SOD27_P12.70mm_Horizontal)
(libsource (lib carte_test_schlib) (part DIODE))
(libsource (lib carte_test_schlib) (part DIODE) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC243C8))
(comp (ref P2)
(value CONN_3)
(footprint TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3-5.08_1x03_P5.08mm_Horizontal)
(libsource (lib carte_test_schlib) (part CONN_3))
(libsource (lib carte_test_schlib) (part CONN_3) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC243AC))
(comp (ref U3)
(value LM7805)
(footprint Package_TO_SOT_THT:TO-220-3_Horizontal_TabDown)
(libsource (lib carte_test_schlib) (part LM7805))
(libsource (lib carte_test_schlib) (part LM7805) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC2436D))
(comp (ref C4)
(value 22pF)
(footprint Capacitors_SMD:C_1206)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3EC242AD))
(comp (ref R1)
(value 100K)
(footprint Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal)
(libsource (lib carte_test_schlib) (part R))
(libsource (lib carte_test_schlib) (part R) (description Resistor))
(sheetpath (names /) (tstamps /))
(tstamp 3EC242C1))
(comp (ref C5)
(value 22pF)
(footprint Capacitors_SMD:C_1206)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 52CEE1C5))
(comp (ref X1)
(value 10MHz)
(footprint Crystal:Crystal_HC18-U_Horizontal)
(libsource (lib carte_test_schlib) (part CRYSTAL))
(libsource (lib carte_test_schlib) (part CRYSTAL) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC2428D))
(comp (ref C3)
(value 10uF)
(footprint Capacitor_THT:CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal)
(libsource (lib carte_test_schlib) (part CP))
(libsource (lib carte_test_schlib) (part CP) (description "Polarised capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3EC23DCD))
(comp (ref C2)
(value 10uF)
(footprint Capacitor_THT:CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal)
(libsource (lib carte_test_schlib) (part CP))
(libsource (lib carte_test_schlib) (part CP) (description "Polarised capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3EC23B98))
(comp (ref C1)
(value 100nF)
(footprint Capacitors_SMD:C_1206)
(libsource (lib carte_test_schlib) (part C))
(libsource (lib carte_test_schlib) (part C) (description "Unpolarized capacitor"))
(sheetpath (names /) (tstamps /))
(tstamp 3EC23ABA))
(comp (ref U1)
(value TDA8702)
(footprint Package_DIP:DIP-16_W7.62mm_Socket_LongPads)
(libsource (lib carte_test_schlib) (part TDA8702))
(libsource (lib carte_test_schlib) (part TDA8702) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 3EC238E5))
(comp (ref U2)
(value XC95108PC84)
(footprint Sockets:PLCC84)
(libsource (lib carte_test_schlib) (part XC95108PC84))
(libsource (lib carte_test_schlib) (part XC95108PC84) (description ""))
(sheetpath (names /) (tstamps /))
(tstamp 5633AE5A)))
(libparts
@@ -599,7 +599,7 @@
(pin (num 84) (name P84) (type BiDi)))))
(libraries
(library (logical carte_test_schlib)
(uri F:\kicad-launchpad\git_testing\demos\test_xil_95108/carte_test_schlib.lib)))
(uri /home/orson/workspace/kicad-master/demos/test_xil_95108/carte_test_schlib.lib)))
(nets
(net (code 1) (name "Net-(K1-Pad2)")
(node (ref U5) (pin 1))
+10209 -9898
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -110,7 +110,7 @@ void SCH_EDIT_FRAME::AnnotateComponents( bool aAnnotateSchematic,
{
wxString msg;
msg.Printf( _( "%d duplicate time stamps were found and replaced." ), count );
aReporter.Report( msg, REPORTER::RPT_WARNING );
aReporter.ReportTail( msg, REPORTER::RPT_WARNING );
}
}
@@ -228,7 +228,7 @@ void SCH_EDIT_FRAME::AnnotateComponents( bool aAnnotateSchematic,
// Final control (just in case ... ).
if( !CheckAnnotate( aReporter, !aAnnotateSchematic ) )
aReporter.Report( _( "Annotation complete." ), REPORTER::RPT_ACTION );
aReporter.ReportTail( _( "Annotation complete." ), REPORTER::RPT_ACTION );
OnModify();
+1 -15
View File
@@ -119,24 +119,10 @@ PART_LIB* LIB_ALIAS::GetLib()
void LIB_ALIAS::SetName( const wxString& aName )
{
name = aName;
ValidateName( name );
name = LIB_ID::FixIllegalChars( aName, LIB_ID::ID_ALIAS );
}
void LIB_ALIAS::ValidateName( wxString& aName )
{
// they are same as illegal filename chars, but the ':' is allowed
// only because it is used to create symbol names in lib cache
static const wxString illegalSymbolNameChars( "\\/\"<>|" );
for( wxString::iterator it = aName.begin(); it != aName.end(); ++it )
{
if( illegalSymbolNameChars.Find( *it ) != wxNOT_FOUND )
*it = '_';
}
}
bool LIB_ALIAS::operator==( const wxChar* aName ) const
{
+6 -5
View File
@@ -105,11 +105,12 @@ int CMP_TREE_NODE::Compare( CMP_TREE_NODE const& aNode1, CMP_TREE_NODE const& aN
CMP_TREE_NODE::CMP_TREE_NODE()
: Parent( nullptr ),
Type( INVALID ),
IntrinsicRank( 0 ),
Score( kLowestDefaultScore ),
Unit( 0 ),
IsRoot( false )
Type( INVALID ),
IntrinsicRank( 0 ),
Score( kLowestDefaultScore ),
SearchTextNormalized( false ),
Unit( 0 ),
IsRoot( false )
{}
+55 -30
View File
@@ -193,7 +193,20 @@ void CMP_TREE_MODEL_ADAPTER_BASE::UpdateSearchString( wxString const& aSearch )
#endif
}
ShowResults() || ShowPreselect() || ShowSingleLibrary();
CMP_TREE_NODE* bestMatch = ShowResults();
if( !bestMatch )
bestMatch = ShowPreselect();
if( !bestMatch )
bestMatch = ShowSingleLibrary();
if( bestMatch )
{
auto item = wxDataViewItem( bestMatch );
m_widget->Select( item );
m_widget->EnsureVisible( item );
}
}
@@ -442,47 +455,51 @@ int CMP_TREE_MODEL_ADAPTER_BASE::WidthFor( wxString const& aHeading, int aCol )
}
bool CMP_TREE_MODEL_ADAPTER_BASE::FindAndExpand(
CMP_TREE_NODE& aNode,
std::function<bool( CMP_TREE_NODE const* )> aFunc )
void CMP_TREE_MODEL_ADAPTER_BASE::FindAndExpand( CMP_TREE_NODE& aNode,
std::function<bool( CMP_TREE_NODE const* )> aFunc,
CMP_TREE_NODE** aHighScore )
{
for( auto& node: aNode.Children )
{
if( aFunc( &*node ) )
{
auto item = wxDataViewItem(
const_cast<void*>( static_cast<void const*>( &*node ) ) );
auto item = wxDataViewItem( &*node );
m_widget->ExpandAncestors( item );
m_widget->EnsureVisible( item );
m_widget->Select( item );
return true;
if( !(*aHighScore) || node->Score > (*aHighScore)->Score )
(*aHighScore) = &*node;
}
else if( FindAndExpand( *node, aFunc ) )
else
{
return true;
FindAndExpand( *node, aFunc, aHighScore );
}
}
return false;
}
bool CMP_TREE_MODEL_ADAPTER_BASE::ShowResults()
CMP_TREE_NODE* CMP_TREE_MODEL_ADAPTER_BASE::ShowResults()
{
return FindAndExpand( m_tree,
[]( CMP_TREE_NODE const* n )
{
return n->Type == CMP_TREE_NODE::TYPE::LIBID && n->Score > 1;
} );
CMP_TREE_NODE* highScore = nullptr;
FindAndExpand( m_tree,
[]( CMP_TREE_NODE const* n )
{
return n->Type == CMP_TREE_NODE::TYPE::LIBID && n->Score > 1;
},
&highScore );
return highScore;
}
bool CMP_TREE_MODEL_ADAPTER_BASE::ShowPreselect()
CMP_TREE_NODE* CMP_TREE_MODEL_ADAPTER_BASE::ShowPreselect()
{
CMP_TREE_NODE* highScore = nullptr;
if( !m_preselect_lib_id.IsValid() )
return false;
return highScore;
return FindAndExpand( m_tree,
FindAndExpand( m_tree,
[&]( CMP_TREE_NODE const* n )
{
if( n->Type == CMP_TREE_NODE::LIBID && ( n->Children.empty() || !m_preselect_unit ) )
@@ -491,16 +508,24 @@ bool CMP_TREE_MODEL_ADAPTER_BASE::ShowPreselect()
return m_preselect_lib_id == n->Parent->LibId && m_preselect_unit == n->Unit;
else
return false;
} );
},
&highScore );
return highScore;
}
bool CMP_TREE_MODEL_ADAPTER_BASE::ShowSingleLibrary()
CMP_TREE_NODE* CMP_TREE_MODEL_ADAPTER_BASE::ShowSingleLibrary()
{
return FindAndExpand( m_tree,
[]( CMP_TREE_NODE const* n )
{
return n->Type == CMP_TREE_NODE::TYPE::LIBID &&
n->Parent->Parent->Children.size() == 1;
} );
CMP_TREE_NODE* highScore = nullptr;
FindAndExpand( m_tree,
[]( CMP_TREE_NODE const* n )
{
return n->Type == CMP_TREE_NODE::TYPE::LIBID &&
n->Parent->Parent->Children.size() == 1;
},
&highScore );
return highScore;
}
+10 -11
View File
@@ -389,27 +389,26 @@ private:
/**
* Find any results worth highlighting and expand them, according to given
* criteria (f(CMP_TREE_NODE const*) -> bool)
*
* @return whether a node was expanded
* The highest-scoring node is written to aHighScore
*/
bool FindAndExpand(
CMP_TREE_NODE& aNode,
std::function<bool( CMP_TREE_NODE const* )> aFunc );
void FindAndExpand( CMP_TREE_NODE& aNode,
std::function<bool( CMP_TREE_NODE const* )> aFunc,
CMP_TREE_NODE** aHighScore );
/**
* Find and expand successful search results
* Find and expand successful search results. Return the best match (if any).
*/
bool ShowResults();
CMP_TREE_NODE* ShowResults();
/**
* Find and expand preselected node
* Find and expand preselected node. Return the best match (if any).
*/
bool ShowPreselect();
CMP_TREE_NODE* ShowPreselect();
/**
* Find and expand a library if there is only one
* Find and expand a library if there is only one. Return the best match (if any).
*/
bool ShowSingleLibrary();
CMP_TREE_NODE* ShowSingleLibrary();
};
#endif // _CMP_TREE_MODEL_ADAPTER_BASE_H
+10 -4
View File
@@ -273,11 +273,15 @@ int SCH_REFERENCE_LIST::CreateFirstFreeRefId( std::vector<int>& aIdList, int aFi
// A helper function to build a full reference string of a SCH_REFERENCE item
wxString buildFullReference( const SCH_REFERENCE& aItem )
wxString buildFullReference( const SCH_REFERENCE& aItem, int aUnitNumber = -1 )
{
wxString fullref;
fullref = aItem.GetRef() + aItem.GetRefNumber();
fullref << ".." << aItem.GetUnit();
if( aUnitNumber < 0 )
fullref << ".." << aItem.GetUnit();
else
fullref << ".." << aUnitNumber;
return fullref;
}
@@ -344,6 +348,7 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
for( SCH_MULTI_UNIT_REFERENCE_MAP::value_type& pair : aLockedUnitMap )
{
unsigned n_refs = pair.second.GetCount();
for( unsigned thisRefI = 0; thisRefI < n_refs; ++thisRefI )
{
SCH_REFERENCE &thisRef = pair.second[thisRefI];
@@ -433,6 +438,8 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
{
// This is the component we're currently annotating. Hold the unit!
componentFlatList[ii].m_Unit = thisRef.m_Unit;
// lock this new full reference
inUseRefs.insert( buildFullReference( componentFlatList[ii] ) );
}
if( thisRef.CompareValue( componentFlatList[ii] ) != 0 )
@@ -447,7 +454,7 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
if( ! thisRef.IsSameInstance( componentFlatList[jj] ) )
continue;
wxString ref_candidate = buildFullReference( componentFlatList[ii] );
wxString ref_candidate = buildFullReference( componentFlatList[ii], thisRef.m_Unit );
// propagate the new reference and unit selection to the "old" component,
// if this new full reference is not already used (can happens when initial
@@ -465,7 +472,6 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
}
}
}
else
{
/* search for others units of this component.
+1 -1
View File
@@ -223,7 +223,7 @@ void DIALOG_ANNOTATE::OnApplyClick( wxCommandEvent& event )
(ANNOTATE_OPTION_T) GetAnnotateAlgo(), GetStartNumber(),
GetResetItems() , true, GetLockUnits(), reporter );
m_MessageWindow->Flush(); // Now update to show all messages
m_MessageWindow->Flush( true ); // Now update to show all messages
m_Parent->GetCanvas()->Refresh();
+28 -16
View File
@@ -62,11 +62,8 @@ DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT( SCH_BASE_FRAME* aParent, const
m_deMorganConvert( aDeMorganConvert >= 0 ? aDeMorganConvert : 0 ),
m_allow_field_edits( aAllowFieldEdits ),
m_show_footprints( aShowFootprints ),
m_load_footprints( aShowFootprints ),
m_external_browser_requested( false )
{
m_fp_list = FOOTPRINT_LIST::GetInstance( Kiway() );
auto sizer = new wxBoxSizer( wxVERTICAL );
// Use a slightly different layout, with a details pane spanning the entire window,
@@ -78,6 +75,9 @@ DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT( SCH_BASE_FRAME* aParent, const
vsplitter ? static_cast<wxWindow *>( vsplitter ) : static_cast<wxWindow *>( this ),
wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_LIVE_UPDATE | wxSP_3DSASH );
//Avoid the splitter window being assigned as the Parent to additional windows
m_splitter_tree_canvas->SetExtraStyle( wxWS_EX_TRANSIENT );
auto details = aShowFootprints ? nullptr : new wxHtmlWindow(
vsplitter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
@@ -100,7 +100,7 @@ DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT( SCH_BASE_FRAME* aParent, const
SetSizer( sizer );
Bind( wxEVT_INIT_DIALOG, &DIALOG_CHOOSE_COMPONENT::OnInitDialog, this );
Bind( wxEVT_IDLE, &DIALOG_CHOOSE_COMPONENT::OnIdle, this );
Bind( wxEVT_ACTIVATE, &DIALOG_CHOOSE_COMPONENT::OnActivate, this );
Bind( wxEVT_TIMER, &DIALOG_CHOOSE_COMPONENT::OnCloseTimer, this, m_dbl_click_timer->GetId() );
Bind( COMPONENT_PRESELECTED, &DIALOG_CHOOSE_COMPONENT::OnComponentPreselected, this );
Bind( COMPONENT_SELECTED, &DIALOG_CHOOSE_COMPONENT::OnComponentSelected, this );
@@ -137,11 +137,21 @@ DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT( SCH_BASE_FRAME* aParent, const
DIALOG_CHOOSE_COMPONENT::~DIALOG_CHOOSE_COMPONENT()
{
Unbind( wxEVT_INIT_DIALOG, &DIALOG_CHOOSE_COMPONENT::OnInitDialog, this );
Unbind( wxEVT_ACTIVATE, &DIALOG_CHOOSE_COMPONENT::OnActivate, this );
Unbind( wxEVT_TIMER, &DIALOG_CHOOSE_COMPONENT::OnCloseTimer, this );
Unbind( COMPONENT_PRESELECTED, &DIALOG_CHOOSE_COMPONENT::OnComponentPreselected, this );
Unbind( COMPONENT_SELECTED, &DIALOG_CHOOSE_COMPONENT::OnComponentSelected, this );
m_sch_view_ctrl->Unbind( wxEVT_LEFT_DCLICK, &DIALOG_CHOOSE_COMPONENT::OnSchViewDClick, this );
m_sch_view_ctrl->Unbind( wxEVT_PAINT, &DIALOG_CHOOSE_COMPONENT::OnSchViewPaint, this );
if( m_fp_sel_ctrl )
m_fp_sel_ctrl->Unbind( EVT_FOOTPRINT_SELECTED, &DIALOG_CHOOSE_COMPONENT::OnFootprintSelected, this );
// I am not sure the following two lines are necessary,
// but they will not hurt anyone
m_dbl_click_timer->Stop();
Unbind( wxEVT_TIMER, &DIALOG_CHOOSE_COMPONENT::OnCloseTimer, this );
delete m_dbl_click_timer;
m_last_dlg_size = GetSize();
@@ -161,8 +171,10 @@ wxPanel* DIALOG_CHOOSE_COMPONENT::ConstructRightPanel( wxWindow* aParent )
if( m_show_footprints )
{
FOOTPRINT_LIST* fp_list = FOOTPRINT_LIST::GetInstance( Kiway() );
if( m_allow_field_edits )
m_fp_sel_ctrl = new FOOTPRINT_SELECT_WIDGET( panel, m_fp_list, true );
m_fp_sel_ctrl = new FOOTPRINT_SELECT_WIDGET( panel, fp_list, true );
m_fp_view_ctrl = new FOOTPRINT_PREVIEW_WIDGET( panel, Kiway() );
@@ -194,17 +206,17 @@ void DIALOG_CHOOSE_COMPONENT::OnInitDialog( wxInitDialogEvent& aEvent )
// This hides the GAL panel and shows the status label
m_fp_view_ctrl->SetStatusText( wxEmptyString );
}
if( m_fp_sel_ctrl )
m_fp_sel_ctrl->Load( Kiway(), Prj() );
}
// Let the dialog display before starting the footprint load
void DIALOG_CHOOSE_COMPONENT::OnIdle( wxIdleEvent& aEvent )
void DIALOG_CHOOSE_COMPONENT::OnActivate( wxActivateEvent& event )
{
if( m_load_footprints && m_fp_sel_ctrl )
{
m_load_footprints = false;
m_fp_sel_ctrl->Load( Kiway(), Prj() );
}
m_tree->SetFocus();
event.Skip(); // required under wxMAC
}
@@ -217,7 +229,7 @@ LIB_ID DIALOG_CHOOSE_COMPONENT::GetSelectedLibId( int* aUnit ) const
void DIALOG_CHOOSE_COMPONENT::OnCloseTimer( wxTimerEvent& aEvent )
{
// Hack handler because of eaten MouseUp event. See
// DIALOG_CHOOSE_COMPONENT::OnDoubleClickTreeActivation for the beginning
// DIALOG_CHOOSE_COMPONENT::OnComponentSelected for the beginning
// of this spaghetti noodle.
auto state = wxGetMouseState();
@@ -276,7 +288,7 @@ void DIALOG_CHOOSE_COMPONENT::ShowFootprintFor( LIB_ID const& aLibId )
void DIALOG_CHOOSE_COMPONENT::ShowFootprint( wxString const& aName )
{
if( !m_fp_view_ctrl )
if( !m_fp_view_ctrl || !m_fp_view_ctrl->IsInitialized() )
{
return;
}

Some files were not shown because too many files have changed in this diff Show More