Fix svg orientation and improve OrCAD rendering
This commit is contained in:
parent
be8371c7bc
commit
8ffa7c1b76
15 changed files with 49947 additions and 25 deletions
|
|
@ -39,6 +39,7 @@ from .cam import FileSettings, LazyCamFile
|
|||
from .layer_rules import MATCH_RULES
|
||||
from .utils import sum_bounds, setup_svg, MM, Tag, convex_hull
|
||||
from . import graphic_objects as go
|
||||
from . import apertures as ap
|
||||
from . import graphic_primitives as gp
|
||||
|
||||
|
||||
|
|
@ -273,7 +274,7 @@ def _layername_autoguesser(fn):
|
|||
elif re.search('film', fn):
|
||||
use = 'copper'
|
||||
|
||||
elif re.search('out(line)?|board.?geometry', fn):
|
||||
elif re.search('out(line)?|board.?geom(etry)?', fn):
|
||||
use = 'outline'
|
||||
side = 'mechanical'
|
||||
|
||||
|
|
@ -303,6 +304,9 @@ def _sort_layername(val):
|
|||
assert side.startswith('inner_')
|
||||
return int(side[len('inner_'):])
|
||||
|
||||
def convex_hull_to_lines(points, unit=MM):
|
||||
for (x1, y1), (x2, y2) in zip(points, points[1:] + points):
|
||||
yield go.Line(x1, y1, x2, y2, aperture=ap.CircleAperture(unit(0.1, MM), unit=unit), unit=unit)
|
||||
|
||||
class LayerStack:
|
||||
""" :py:class:`LayerStack` represents a set of Gerber files that describe different layers of the same board.
|
||||
|
|
@ -949,7 +953,7 @@ class LayerStack:
|
|||
id=f'l-mechanical-outline', **stroke_attrs, **inkscape_attrs(f'outline'),
|
||||
transform=layer_transform))
|
||||
|
||||
sc_y, tl_y = -1, (bounds[0][1] + bounds[1][1])
|
||||
sc_y, tl_y = 1, 0
|
||||
if side == 'bottom':
|
||||
sc_x, tl_x = -1, (bounds[0][0] + bounds[1][0])
|
||||
else:
|
||||
|
|
@ -1184,22 +1188,6 @@ class LayerStack:
|
|||
polys.append(' '.join(poly.path_d()) + ' Z')
|
||||
return ' '.join(polys)
|
||||
|
||||
def outline_convex_hull(self, tol=0.01, unit=MM):
|
||||
points = []
|
||||
for obj in self.outline.instance.objects:
|
||||
if isinstance(obj, go.Line):
|
||||
line = obj.as_primitive(unit)
|
||||
points.append((line.x1, line.y1))
|
||||
points.append((line.x2, line.y2))
|
||||
|
||||
elif isinstance(obj, go.Arc):
|
||||
for obj in obj.approximate(tol, unit):
|
||||
line = obj.as_primitive(unit)
|
||||
points.append((line.x1, line.y1))
|
||||
points.append((line.x2, line.y2))
|
||||
|
||||
return convex_hull(points)
|
||||
|
||||
def outline_polygons(self, tol=0.01, unit=MM):
|
||||
""" Iterator yielding this boards outline as a list of ordered :py:class:`~.graphic_objects.Arc` and
|
||||
:py:class:`~.graphic_objects.Line` objects. This method first sorts all lines and arcs on the outline layer into
|
||||
|
|
@ -1214,6 +1202,14 @@ class LayerStack:
|
|||
:param tol: :py:obj:`float` setting the tolerance below which two points are considered equal
|
||||
:param unit: :py:class:`.LengthUnit` or str (``'mm'`` or ``'inch'``). SVG document unit. Default: mm
|
||||
"""
|
||||
|
||||
if not self.outline:
|
||||
warnings.warn("Board has no outline layer, or the outline layer could not be identified by file name. Using the copper layers' convex hull instead.")
|
||||
points = sum((layer.instance.convex_hull(tol, unit) for (_side, _use), layer in self.copper_layers), start=[])
|
||||
yield list(convex_hull_to_lines(convex_hull(points), unit))
|
||||
return
|
||||
|
||||
maybe_allegro_hint = '' if self.generator != 'allegro' else ' This file looks like it was generated by Allegro/OrCAD. These tools produce quite mal-formed gerbers, and often export text on the outline layer. If you generated this file yourself, maybe try twiddling with the export settings.'
|
||||
polygons = []
|
||||
lines = [ obj.as_primitive(unit) for obj in self.outline.instance.objects if isinstance(obj, (go.Line, go.Arc)) ]
|
||||
|
||||
|
|
@ -1242,13 +1238,14 @@ class LayerStack:
|
|||
j = 0 if d1 < d2 else 1
|
||||
|
||||
if (nearest, j) in joins and joins[(nearest, j)] != (cur, i):
|
||||
warnings.warn(f'Three-way intersection on outline layer at: {(nearest, j)}; {(cur, i)}; and {joins[(nearest, j)]}. Falling back to returning the convex hull of the outline layer.')
|
||||
return self.outline_convex_hull(tol, unit)
|
||||
warnings.warn(f'Three-way intersection on outline layer at: {(nearest, j)}; {(cur, i)}; and {joins[(nearest, j)]}. Falling back to returning the convex hull of the outline layer.{maybe_allegro_hint}')
|
||||
yield list(convex_hull_to_lines(self.outline.instance.convex_hull(tol, unit), unit))
|
||||
return
|
||||
|
||||
if (cur, i) in joins and joins[(cur, i)] != (nearest, j):
|
||||
warnings.warn(f'three-way intersection on outline layer at: {(nearest, j)}; {(cur, i)}; and {joins[(nearest, j)]}. Falling back to returning the convex hull of the outline layer.')
|
||||
return self.outline_convex_hull(tol, unit)
|
||||
|
||||
warnings.warn(f'Three-way intersection on outline layer at: {(nearest, j)}; {(cur, i)}; and {joins[(nearest, j)]}. Falling back to returning the convex hull of the outline layer.{maybe_allegro_hint}')
|
||||
yield list(convex_hull_to_lines(self.outline.instance.convex_hull(tol, unit), unit))
|
||||
return
|
||||
|
||||
joins[(cur, i)] = (nearest, j)
|
||||
joins[(nearest, j)] = (cur, i)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import dataclasses
|
|||
import functools
|
||||
|
||||
from .cam import CamFile, FileSettings
|
||||
from .utils import MM, Inch, units, InterpMode, UnknownStatementWarning
|
||||
from .utils import MM, Inch, units, InterpMode, UnknownStatementWarning, convex_hull
|
||||
from .aperture_macros.parse import ApertureMacro, GenericMacros
|
||||
from . import graphic_primitives as gp
|
||||
from . import graphic_objects as go
|
||||
|
|
@ -376,7 +376,25 @@ class GerberFile(CamFile):
|
|||
""" Invert the polarity (color) of each object in this file. """
|
||||
for obj in self.objects:
|
||||
obj.polarity_dark = not p.polarity_dark
|
||||
|
||||
|
||||
def convex_hull(self, tol=0.01, unit=None):
|
||||
unit = unit or self.unit
|
||||
points = []
|
||||
|
||||
for obj in self.objects:
|
||||
if isinstance(obj, go.Line):
|
||||
line = obj.as_primitive(unit)
|
||||
points.append((line.x1, line.y1))
|
||||
points.append((line.x2, line.y2))
|
||||
|
||||
elif isinstance(obj, go.Arc):
|
||||
for obj in obj.approximate(tol, unit):
|
||||
line = obj.as_primitive(unit)
|
||||
points.append((line.x1, line.y1))
|
||||
points.append((line.x2, line.y2))
|
||||
|
||||
return convex_hull(points)
|
||||
|
||||
|
||||
class GraphicsState:
|
||||
""" Internal class used to track Gerber processing state during import and export.
|
||||
|
|
|
|||
8586
gerbonara/tests/resources/orcad/Assembly.art
Normal file
8586
gerbonara/tests/resources/orcad/Assembly.art
Normal file
File diff suppressed because it is too large
Load diff
12207
gerbonara/tests/resources/orcad/BOTTOM.art
Normal file
12207
gerbonara/tests/resources/orcad/BOTTOM.art
Normal file
File diff suppressed because it is too large
Load diff
2756
gerbonara/tests/resources/orcad/GND2.art
Normal file
2756
gerbonara/tests/resources/orcad/GND2.art
Normal file
File diff suppressed because it is too large
Load diff
5553
gerbonara/tests/resources/orcad/LAYER_1.art
Normal file
5553
gerbonara/tests/resources/orcad/LAYER_1.art
Normal file
File diff suppressed because it is too large
Load diff
2374
gerbonara/tests/resources/orcad/LAYER_2.art
Normal file
2374
gerbonara/tests/resources/orcad/LAYER_2.art
Normal file
File diff suppressed because it is too large
Load diff
2330
gerbonara/tests/resources/orcad/PWR.art
Normal file
2330
gerbonara/tests/resources/orcad/PWR.art
Normal file
File diff suppressed because it is too large
Load diff
1
gerbonara/tests/resources/orcad/README
Normal file
1
gerbonara/tests/resources/orcad/README
Normal file
|
|
@ -0,0 +1 @@
|
|||
Files from https://github.com/floesche/LED-Display_G4_Hardware_Arena
|
||||
1539
gerbonara/tests/resources/orcad/Solder_Mask_Bottom.art
Normal file
1539
gerbonara/tests/resources/orcad/Solder_Mask_Bottom.art
Normal file
File diff suppressed because it is too large
Load diff
1003
gerbonara/tests/resources/orcad/Solder_Mask_Top.art
Normal file
1003
gerbonara/tests/resources/orcad/Solder_Mask_Top.art
Normal file
File diff suppressed because it is too large
Load diff
5591
gerbonara/tests/resources/orcad/TOP.art
Normal file
5591
gerbonara/tests/resources/orcad/TOP.art
Normal file
File diff suppressed because it is too large
Load diff
884
gerbonara/tests/resources/orcad/arena_12-12_v6_L1-L6.drl
Normal file
884
gerbonara/tests/resources/orcad/arena_12-12_v6_L1-L6.drl
Normal file
|
|
@ -0,0 +1,884 @@
|
|||
M48
|
||||
METRIC
|
||||
T01C.3302
|
||||
T02C1.016
|
||||
T03C4.3053
|
||||
T04C139.7
|
||||
T05C1.19126
|
||||
;LEADER: 12
|
||||
;HEADER:
|
||||
;CODE : ASCII
|
||||
;FILE : arena_12-12_v2-1-6.1 for ... layers TOP and BOTTOM
|
||||
;DESIGN: arena_12-12_v2.1.brd
|
||||
;T01 Holesize 1. = 0.330200 Tolerance = +0.000000/-0.000000 PLATED MM Quantity = 668
|
||||
;T02 Holesize 2. = 1.016000 Tolerance = +0.000000/-0.000000 PLATED MM Quantity = 180
|
||||
;T03 Holesize 3. = 4.305300 Tolerance = +0.000000/-0.000000 PLATED MM Quantity = 8
|
||||
;T04 Holesize 4. = 139.700000 Tolerance = +0.000000/-0.000000 PLATED MM Quantity = 1
|
||||
;T05 Holesize 5. = 1.191260 Tolerance = +0.000000/-0.000000 NON_PLATED MM Quantity = 2
|
||||
%
|
||||
G90
|
||||
T01
|
||||
X-108128Y-012014
|
||||
X-102514Y-012090
|
||||
X-112370Y007048
|
||||
X-102921Y007048
|
||||
X-101359Y-006477
|
||||
X-101356Y-005827
|
||||
X-109388Y-001278
|
||||
X-109388Y-000627
|
||||
X-103563Y-005177
|
||||
X-109388Y000023
|
||||
X-109388Y000673
|
||||
X-106957Y-005827
|
||||
X-106959Y-006477
|
||||
X-110541Y042926
|
||||
X-102870Y042926
|
||||
X-083617Y069520
|
||||
X-070439Y043602
|
||||
X-072502Y057328
|
||||
X-069230Y056914
|
||||
X-069713Y062154
|
||||
X-075842Y050744
|
||||
X-070609Y040767
|
||||
X-071631Y023759
|
||||
X-071460Y026594
|
||||
X-071290Y029428
|
||||
X-071120Y032263
|
||||
X-070950Y035098
|
||||
X-070780Y037932
|
||||
X-087528Y025464
|
||||
X-086093Y041059
|
||||
X-088773Y018875
|
||||
X-091478Y018928
|
||||
X-091250Y-000673
|
||||
X-090297Y-000023
|
||||
X-081534Y000000
|
||||
X-090297Y-001323
|
||||
X-091250Y-001974
|
||||
X-090297Y-002624
|
||||
X-091250Y-003274
|
||||
X-090297Y-003924
|
||||
X-091250Y-004575
|
||||
X-077724Y-007620
|
||||
X-078994Y-005080
|
||||
X-080264Y-002540
|
||||
X-082804Y002540
|
||||
X-091478Y013355
|
||||
X-088773Y014602
|
||||
X-092113Y006213
|
||||
X-073914Y-015240
|
||||
X-075184Y-012700
|
||||
X-076454Y-010160
|
||||
X-087528Y-015811
|
||||
X-083909Y-031732
|
||||
X-088704Y-029731
|
||||
X-086042Y-028034
|
||||
X-070609Y-040767
|
||||
X-068240Y-042332
|
||||
X-072979Y-039202
|
||||
X-085921Y-034557
|
||||
X-081852Y-040086
|
||||
X-068237Y-107145
|
||||
X-069190Y-106495
|
||||
X-068237Y-105844
|
||||
X-069190Y-105194
|
||||
X-068237Y-104544
|
||||
X-069190Y-107795
|
||||
X-069190Y-109096
|
||||
X-068237Y-108445
|
||||
X-046647Y-103896
|
||||
X-046647Y-107798
|
||||
X-047600Y-107147
|
||||
X-046647Y-106497
|
||||
X-047600Y-105847
|
||||
X-046647Y-105197
|
||||
X-052862Y-107127
|
||||
X-053691Y-106477
|
||||
X-052862Y-105829
|
||||
X-053691Y-105179
|
||||
X-052862Y-104529
|
||||
X-053691Y-103878
|
||||
X-052862Y-108428
|
||||
X-053691Y-107777
|
||||
X-053061Y-103228
|
||||
X-053061Y-102578
|
||||
X-049926Y-093203
|
||||
X-047409Y-095926
|
||||
X-047600Y-108448
|
||||
X-047600Y-104546
|
||||
X-048758Y-089408
|
||||
X-053061Y-109728
|
||||
X-049911Y-109078
|
||||
X-055512Y-109728
|
||||
X-055512Y-103878
|
||||
X-057086Y-097650
|
||||
X-051486Y-097866
|
||||
X-045108Y-092291
|
||||
X-045108Y-087122
|
||||
X-051928Y-091074
|
||||
X-053276Y-094551
|
||||
X-058661Y-102578
|
||||
X-058661Y-103228
|
||||
X-055410Y-076949
|
||||
X-055410Y-072911
|
||||
X-043602Y-070439
|
||||
X-047409Y-081750
|
||||
X-057556Y-073022
|
||||
X-057079Y-069713
|
||||
X-047109Y-077447
|
||||
X-060777Y-067574
|
||||
X-062382Y-070234
|
||||
X-056391Y-050155
|
||||
X-058760Y-048590
|
||||
X-061130Y-047026
|
||||
X-063500Y-045461
|
||||
X-065870Y-043896
|
||||
X-050155Y056391
|
||||
X-048590Y058760
|
||||
X-047026Y061130
|
||||
X-045461Y063500
|
||||
X-043896Y065870
|
||||
X-067092Y060612
|
||||
X-042332Y068240
|
||||
X-060338Y086804
|
||||
X-040767Y070609
|
||||
X-039202Y072979
|
||||
X-016561Y087582
|
||||
X-034353Y085730
|
||||
X-031656Y083795
|
||||
X-027958Y085928
|
||||
X-029528Y088514
|
||||
X-040137Y081534
|
||||
X-040767Y-070609
|
||||
X-023759Y-071631
|
||||
X-026594Y-071460
|
||||
X-029428Y-071290
|
||||
X-032263Y-071120
|
||||
X-035098Y-070950
|
||||
X-037932Y-070780
|
||||
X-021758Y-084671
|
||||
X-022730Y-083800
|
||||
X-022880Y-084872
|
||||
X-028562Y-103868
|
||||
X-018834Y-104521
|
||||
X-025324Y-110274
|
||||
X-019939Y-110274
|
||||
X-019939Y-105435
|
||||
X-026746Y-109563
|
||||
X-020726Y-109563
|
||||
X-016815Y-103657
|
||||
X-027389Y-107767
|
||||
X-028562Y-101918
|
||||
X-028562Y-102568
|
||||
X-012903Y-113767
|
||||
X-010858Y-113779
|
||||
X-008801Y-113779
|
||||
X-006731Y-113779
|
||||
X-004674Y-113792
|
||||
X-002629Y-113792
|
||||
X-000584Y-113805
|
||||
X001473Y-113817
|
||||
X007658Y-113868
|
||||
X005588Y-113843
|
||||
X003518Y-113830
|
||||
X-026162Y-108471
|
||||
X-014961Y-113754
|
||||
X-030772Y-108417
|
||||
X-030772Y-109068
|
||||
X-036373Y-109068
|
||||
X-034163Y-103218
|
||||
X-039688Y-094602
|
||||
X-039738Y-089383
|
||||
X-018953Y-091427
|
||||
X-018913Y-088481
|
||||
X-036373Y-101918
|
||||
X-036373Y-102568
|
||||
X-041692Y-099223
|
||||
X-026901Y-099223
|
||||
X003518Y-109817
|
||||
X006744Y-097622
|
||||
X001664Y-107582
|
||||
X004204Y-107582
|
||||
X004204Y-097622
|
||||
X-014976Y-104912
|
||||
X-027000Y-111252
|
||||
X-019444Y-111252
|
||||
X007658Y-109855
|
||||
X005588Y-109830
|
||||
X-014961Y-109741
|
||||
X001473Y-109804
|
||||
X-000584Y-109792
|
||||
X-002629Y-109779
|
||||
X-004674Y-109779
|
||||
X-006731Y-109766
|
||||
X-008801Y-109766
|
||||
X-010858Y-109766
|
||||
X005474Y-097622
|
||||
X-012903Y-109753
|
||||
X008014Y-097622
|
||||
X007607Y-091491
|
||||
X005486Y-091491
|
||||
X-011036Y-097622
|
||||
X-009766Y-097622
|
||||
X-008496Y-097622
|
||||
X-007226Y-097622
|
||||
X-005956Y-097622
|
||||
X-004686Y-097622
|
||||
X-003416Y-097622
|
||||
X-002146Y-097622
|
||||
X-000876Y-097622
|
||||
X000394Y-097622
|
||||
X001664Y-097622
|
||||
X002934Y-097622
|
||||
X-012090Y-092240
|
||||
X-014641Y-088481
|
||||
X-013381Y-091427
|
||||
X-006251Y-091630
|
||||
X-016284Y-099223
|
||||
X-012306Y-097622
|
||||
X000000Y-081534
|
||||
X007620Y-077724
|
||||
X005080Y-078994
|
||||
X002540Y-080264
|
||||
X-002540Y-082804
|
||||
X000000Y081534
|
||||
X-015240Y073914
|
||||
X-012700Y075184
|
||||
X-010160Y076454
|
||||
X-007620Y077724
|
||||
X-005080Y078994
|
||||
X-002540Y080264
|
||||
X002540Y082804
|
||||
X006175Y091034
|
||||
X023759Y071631
|
||||
X026594Y071460
|
||||
X029428Y071290
|
||||
X032263Y071120
|
||||
X014602Y088862
|
||||
X013355Y091681
|
||||
X018928Y091681
|
||||
X018875Y088862
|
||||
X015240Y-073914
|
||||
X012700Y-075184
|
||||
X010160Y-076454
|
||||
X031694Y-084074
|
||||
X026159Y-104503
|
||||
X025603Y-103853
|
||||
X025603Y-102552
|
||||
X026159Y-103203
|
||||
X026159Y-101902
|
||||
X010554Y-097622
|
||||
X011824Y-097622
|
||||
X015977Y-109830
|
||||
X013881Y-109842
|
||||
X011811Y-109817
|
||||
X009741Y-109842
|
||||
X021374Y-110185
|
||||
X009284Y-097622
|
||||
X013805Y-091491
|
||||
X011722Y-091478
|
||||
X009665Y-091478
|
||||
X015900Y-091491
|
||||
X025603Y-105153
|
||||
X025603Y-106454
|
||||
X026159Y-105804
|
||||
X029489Y-089035
|
||||
X027996Y-086208
|
||||
X044712Y-101326
|
||||
X044120Y-103924
|
||||
X043980Y-086169
|
||||
X043386Y-088118
|
||||
X043980Y-088768
|
||||
X019583Y-110909
|
||||
X044714Y-105875
|
||||
X044120Y-105225
|
||||
X044714Y-104574
|
||||
X043386Y-085519
|
||||
X043386Y-086817
|
||||
X043980Y-087467
|
||||
X013881Y-113856
|
||||
X011811Y-113830
|
||||
X009741Y-113856
|
||||
X015977Y-113843
|
||||
X044003Y-100675
|
||||
X041885Y-100025
|
||||
X043980Y-090068
|
||||
X043386Y-089418
|
||||
X037109Y-088824
|
||||
X036284Y-107175
|
||||
X041885Y-107175
|
||||
X036284Y-101326
|
||||
X041885Y-106525
|
||||
X037414Y-095479
|
||||
X045110Y-095466
|
||||
X042990Y-095479
|
||||
X050711Y-095504
|
||||
X034315Y-086251
|
||||
X049337Y-089418
|
||||
X051943Y-090068
|
||||
X038519Y-100025
|
||||
X038519Y-100675
|
||||
X043386Y-084219
|
||||
X043980Y-084869
|
||||
X040767Y-070609
|
||||
X047026Y-061130
|
||||
X045461Y-063500
|
||||
X043896Y-065870
|
||||
X042332Y-068240
|
||||
X039202Y-072979
|
||||
X043386Y-082918
|
||||
X043980Y-083569
|
||||
X040124Y-081686
|
||||
X050155Y-056391
|
||||
X048590Y-058760
|
||||
X056391Y050155
|
||||
X058760Y048590
|
||||
X040767Y070609
|
||||
X035098Y070950
|
||||
X037932Y070780
|
||||
X043602Y070439
|
||||
X040297Y080797
|
||||
X057366Y072984
|
||||
X056914Y069472
|
||||
X048811Y076660
|
||||
X062192Y070195
|
||||
X060612Y067333
|
||||
X080056Y042903
|
||||
X061130Y047026
|
||||
X063500Y045461
|
||||
X065870Y043896
|
||||
X068240Y042332
|
||||
X070609Y040767
|
||||
X072979Y039202
|
||||
X083668Y031821
|
||||
X081623Y040188
|
||||
X081534Y000000
|
||||
X073914Y015240
|
||||
X075184Y012700
|
||||
X076454Y010160
|
||||
X077724Y007620
|
||||
X078994Y005080
|
||||
X080264Y002540
|
||||
X082804Y-002540
|
||||
X071631Y-023759
|
||||
X071460Y-026594
|
||||
X071290Y-029428
|
||||
X071120Y-032263
|
||||
X082702Y-032080
|
||||
X070609Y-040767
|
||||
X070950Y-035098
|
||||
X070780Y-037932
|
||||
X070439Y-043602
|
||||
X069319Y-057028
|
||||
X072578Y-057353
|
||||
X075689Y-050909
|
||||
X062141Y-084864
|
||||
X074994Y-081966
|
||||
X074358Y-081966
|
||||
X073724Y-081966
|
||||
X073088Y-081966
|
||||
X072453Y-081966
|
||||
X071818Y-081966
|
||||
X074994Y-082601
|
||||
X074358Y-082601
|
||||
X073724Y-082601
|
||||
X073088Y-082601
|
||||
X072453Y-082601
|
||||
X071818Y-082601
|
||||
X074994Y-083236
|
||||
X074358Y-083236
|
||||
X073724Y-083236
|
||||
X073088Y-083236
|
||||
X072453Y-083236
|
||||
X071818Y-083236
|
||||
X073952Y-066451
|
||||
X074905Y-065801
|
||||
X073952Y-065151
|
||||
X074905Y-064501
|
||||
X078562Y-067704
|
||||
X078676Y-066383
|
||||
X062141Y-083563
|
||||
X062735Y-084214
|
||||
X066535Y-066980
|
||||
X083109Y-081102
|
||||
X083109Y-080467
|
||||
X083109Y-079832
|
||||
X082118Y-081077
|
||||
X081483Y-081077
|
||||
X080848Y-081077
|
||||
X082118Y-080442
|
||||
X082118Y-079807
|
||||
X081483Y-080442
|
||||
X081483Y-079807
|
||||
X080848Y-080442
|
||||
X080848Y-079807
|
||||
X083109Y-078562
|
||||
X083109Y-079197
|
||||
X082118Y-079172
|
||||
X082118Y-078537
|
||||
X081483Y-079172
|
||||
X081483Y-078537
|
||||
X080848Y-079172
|
||||
X080848Y-078537
|
||||
X084379Y-081102
|
||||
X083744Y-081102
|
||||
X084379Y-080467
|
||||
X084379Y-079832
|
||||
X083744Y-080467
|
||||
X083744Y-079832
|
||||
X084379Y-078562
|
||||
X083744Y-078562
|
||||
X084379Y-079197
|
||||
X083744Y-079197
|
||||
X083109Y-081737
|
||||
X082118Y-081712
|
||||
X081483Y-081712
|
||||
X080848Y-081712
|
||||
X084379Y-081737
|
||||
X083744Y-081737
|
||||
X079223Y-084582
|
||||
X078588Y-084582
|
||||
X077953Y-084582
|
||||
X079223Y-083947
|
||||
X079223Y-083312
|
||||
X078588Y-083947
|
||||
X078588Y-083312
|
||||
X077953Y-083947
|
||||
X077953Y-083312
|
||||
X068379Y-079743
|
||||
X069789Y-062179
|
||||
X067180Y-060726
|
||||
X062735Y-085514
|
||||
X062141Y-086164
|
||||
X062735Y-086815
|
||||
X062141Y-087465
|
||||
X062735Y-088115
|
||||
X083998Y-100457
|
||||
X084633Y-100457
|
||||
X083998Y-099822
|
||||
X084633Y-099822
|
||||
X083998Y-099187
|
||||
X084633Y-099187
|
||||
X083985Y-102679
|
||||
X084620Y-102679
|
||||
X083985Y-102044
|
||||
X084620Y-102044
|
||||
X083985Y-101409
|
||||
X084620Y-101409
|
||||
X084023Y-096063
|
||||
X084658Y-096063
|
||||
X084023Y-095428
|
||||
X084658Y-095428
|
||||
X084023Y-098196
|
||||
X084658Y-098196
|
||||
X084023Y-097561
|
||||
X084658Y-097561
|
||||
X084023Y-096926
|
||||
X084658Y-096926
|
||||
X084023Y-094793
|
||||
X084658Y-094793
|
||||
X079223Y-085217
|
||||
X078588Y-085217
|
||||
X077953Y-085217
|
||||
X079223Y-086487
|
||||
X079223Y-085852
|
||||
X078588Y-086487
|
||||
X078588Y-085852
|
||||
X077953Y-086487
|
||||
X077953Y-085852
|
||||
X068885Y-101841
|
||||
X068250Y-101841
|
||||
X067615Y-101841
|
||||
X066980Y-101841
|
||||
X066345Y-101841
|
||||
X065710Y-101841
|
||||
X068885Y-102476
|
||||
X068250Y-102476
|
||||
X067615Y-102476
|
||||
X066980Y-102476
|
||||
X066345Y-102476
|
||||
X065710Y-102476
|
||||
X068885Y-103111
|
||||
X068250Y-103111
|
||||
X067615Y-103111
|
||||
X066980Y-103111
|
||||
X066345Y-103111
|
||||
X065710Y-103111
|
||||
X065748Y-100774
|
||||
X066383Y-100774
|
||||
X067018Y-100774
|
||||
X067653Y-100774
|
||||
X068288Y-100774
|
||||
X068923Y-100774
|
||||
X065748Y-100140
|
||||
X066383Y-100140
|
||||
X067018Y-100140
|
||||
X067653Y-100140
|
||||
X068288Y-100140
|
||||
X068923Y-100140
|
||||
X065748Y-099504
|
||||
X066383Y-099504
|
||||
X067018Y-099504
|
||||
X067653Y-099504
|
||||
X068288Y-099504
|
||||
X068923Y-099504
|
||||
X065786Y-098514
|
||||
X066421Y-098514
|
||||
X067056Y-098514
|
||||
X067691Y-098514
|
||||
X068326Y-098514
|
||||
X068961Y-098514
|
||||
X065786Y-097879
|
||||
X066421Y-097879
|
||||
X067056Y-097879
|
||||
X067691Y-097879
|
||||
X068326Y-097879
|
||||
X068961Y-097879
|
||||
X065786Y-097244
|
||||
X066421Y-097244
|
||||
X067056Y-097244
|
||||
X067691Y-097244
|
||||
X068326Y-097244
|
||||
X068961Y-097244
|
||||
X071933Y-104902
|
||||
X072568Y-104902
|
||||
X073203Y-104902
|
||||
X073838Y-104902
|
||||
X074473Y-104902
|
||||
X075108Y-104902
|
||||
X071933Y-104267
|
||||
X072568Y-104267
|
||||
X073203Y-104267
|
||||
X073838Y-104267
|
||||
X074473Y-104267
|
||||
X075108Y-104267
|
||||
X071933Y-103632
|
||||
X072568Y-103632
|
||||
X073203Y-103632
|
||||
X073838Y-103632
|
||||
X074473Y-103632
|
||||
X075108Y-103632
|
||||
X071984Y-107048
|
||||
X072619Y-107048
|
||||
X073254Y-107048
|
||||
X073889Y-107048
|
||||
X074524Y-107048
|
||||
X075159Y-107048
|
||||
X071984Y-106413
|
||||
X072619Y-106413
|
||||
X073254Y-106413
|
||||
X073889Y-106413
|
||||
X074524Y-106413
|
||||
X075159Y-106413
|
||||
X071984Y-105778
|
||||
X072619Y-105778
|
||||
X073254Y-105778
|
||||
X073889Y-105778
|
||||
X074524Y-105778
|
||||
X075159Y-105778
|
||||
X068872Y-107518
|
||||
X068237Y-107518
|
||||
X067602Y-107518
|
||||
X068872Y-106883
|
||||
X068872Y-106248
|
||||
X068872Y-105613
|
||||
X068872Y-104978
|
||||
X068872Y-104343
|
||||
X068237Y-106883
|
||||
X068237Y-106248
|
||||
X068237Y-105613
|
||||
X068237Y-104978
|
||||
X068237Y-104343
|
||||
X067602Y-106883
|
||||
X067602Y-106248
|
||||
X067602Y-105613
|
||||
X067602Y-104978
|
||||
X067602Y-104343
|
||||
X085268Y-100457
|
||||
X085903Y-100457
|
||||
X085268Y-099822
|
||||
X085903Y-099822
|
||||
X085268Y-099187
|
||||
X085903Y-099187
|
||||
X085255Y-102679
|
||||
X085890Y-102679
|
||||
X085255Y-102044
|
||||
X085890Y-102044
|
||||
X085255Y-101409
|
||||
X085890Y-101409
|
||||
X085293Y-096063
|
||||
X085928Y-096063
|
||||
X085293Y-095428
|
||||
X085928Y-095428
|
||||
X085293Y-098196
|
||||
X085928Y-098196
|
||||
X085293Y-097561
|
||||
X085928Y-097561
|
||||
X085293Y-096926
|
||||
X085928Y-096926
|
||||
X085293Y-094793
|
||||
X085928Y-094793
|
||||
X087173Y-100457
|
||||
X087173Y-099822
|
||||
X087173Y-099187
|
||||
X087160Y-102679
|
||||
X087160Y-102044
|
||||
X087160Y-101409
|
||||
X086538Y-100457
|
||||
X086538Y-099822
|
||||
X086538Y-099187
|
||||
X086525Y-102679
|
||||
X086525Y-102044
|
||||
X086525Y-101409
|
||||
X086563Y-096063
|
||||
X087198Y-096063
|
||||
X086563Y-095428
|
||||
X087198Y-095428
|
||||
X086563Y-098196
|
||||
X087198Y-098196
|
||||
X086563Y-097561
|
||||
X087198Y-097561
|
||||
X086563Y-096926
|
||||
X087198Y-096926
|
||||
X086563Y-094793
|
||||
X087198Y-094793
|
||||
X089967Y-081242
|
||||
X085992Y-063210
|
||||
X085992Y-062560
|
||||
X086601Y-081115
|
||||
X085966Y-081115
|
||||
X085331Y-081115
|
||||
X086601Y-080480
|
||||
X086601Y-079845
|
||||
X085966Y-080480
|
||||
X085966Y-079845
|
||||
X085331Y-080480
|
||||
X085331Y-079845
|
||||
X086601Y-078575
|
||||
X085966Y-078575
|
||||
X085331Y-078575
|
||||
X086601Y-079210
|
||||
X085966Y-079210
|
||||
X085331Y-079210
|
||||
X086601Y-081750
|
||||
X085966Y-081750
|
||||
X085331Y-081750
|
||||
X094386Y-069710
|
||||
X094386Y-069060
|
||||
X088786Y-063861
|
||||
X094386Y-068410
|
||||
X094386Y-067760
|
||||
X094386Y-062560
|
||||
X094386Y-063210
|
||||
X088903Y-058994
|
||||
X092977Y-057658
|
||||
X109258Y-010020
|
||||
X100546Y-010020
|
||||
X088252Y-014641
|
||||
X091199Y-013381
|
||||
X088252Y-018913
|
||||
X091199Y-018953
|
||||
X087325Y015850
|
||||
X091542Y-006200
|
||||
X101054Y036347
|
||||
X085641Y034760
|
||||
X085801Y028123
|
||||
X088425Y029934
|
||||
X087325Y057226
|
||||
X110985Y036347
|
||||
T02
|
||||
X-067528Y053652
|
||||
X-068798Y051453
|
||||
X-070068Y049253
|
||||
X-071338Y047053
|
||||
X-072608Y044854
|
||||
X-073878Y042654
|
||||
X-075148Y040455
|
||||
X-076418Y038255
|
||||
X-077688Y036055
|
||||
X-078958Y033856
|
||||
X-080228Y031656
|
||||
X-081498Y029456
|
||||
X-082768Y027257
|
||||
X-085308Y017780
|
||||
X-085308Y015240
|
||||
X-085308Y012700
|
||||
X-085308Y010160
|
||||
X-085308Y007620
|
||||
X-085308Y005080
|
||||
X-085308Y002540
|
||||
X-085308Y000000
|
||||
X-085308Y-002540
|
||||
X-085308Y-005080
|
||||
X-085308Y-007620
|
||||
X-082768Y-027257
|
||||
X-081498Y-029456
|
||||
X-080228Y-031656
|
||||
X-078958Y-033856
|
||||
X-085308Y-010160
|
||||
X-085308Y-012700
|
||||
X-085308Y-015240
|
||||
X-085308Y-017780
|
||||
X-077688Y-036055
|
||||
X-076418Y-038255
|
||||
X-075148Y-040455
|
||||
X-073878Y-042654
|
||||
X-072608Y-044854
|
||||
X-071338Y-047053
|
||||
X-070068Y-049253
|
||||
X-068798Y-051453
|
||||
X-067528Y-053652
|
||||
X-058052Y-064988
|
||||
X-055852Y-066258
|
||||
X-053652Y-067528
|
||||
X-051453Y-068798
|
||||
X-049253Y-070068
|
||||
X-047053Y-071338
|
||||
X-044854Y-072608
|
||||
X-042654Y-073878
|
||||
X-066258Y-055852
|
||||
X-064988Y-058052
|
||||
X-064988Y058052
|
||||
X-066258Y055852
|
||||
X-055852Y066258
|
||||
X-058052Y064988
|
||||
X-042654Y073878
|
||||
X-044854Y072608
|
||||
X-047053Y071338
|
||||
X-049253Y070068
|
||||
X-051453Y068798
|
||||
X-053652Y067528
|
||||
X-017780Y085308
|
||||
X-027257Y082768
|
||||
X-029456Y081498
|
||||
X-031656Y080228
|
||||
X-033856Y078958
|
||||
X-036055Y077688
|
||||
X-038255Y076418
|
||||
X-040455Y075148
|
||||
X-040455Y-075148
|
||||
X-038255Y-076418
|
||||
X-036055Y-077688
|
||||
X-033856Y-078958
|
||||
X-031656Y-080228
|
||||
X-029456Y-081498
|
||||
X-027257Y-082768
|
||||
X-017780Y-085308
|
||||
X-015240Y-085308
|
||||
X-012700Y-085308
|
||||
X-010160Y-085308
|
||||
X-007620Y-085308
|
||||
X-005080Y-085308
|
||||
X-002540Y-085308
|
||||
X000000Y-085308
|
||||
X002540Y-085308
|
||||
X005080Y-085308
|
||||
X007620Y-085308
|
||||
X007620Y085308
|
||||
X005080Y085308
|
||||
X002540Y085308
|
||||
X000000Y085308
|
||||
X-002540Y085308
|
||||
X-005080Y085308
|
||||
X-007620Y085308
|
||||
X-010160Y085308
|
||||
X-012700Y085308
|
||||
X-015240Y085308
|
||||
X017780Y085308
|
||||
X015240Y085308
|
||||
X012700Y085308
|
||||
X010160Y085308
|
||||
X033856Y078958
|
||||
X031656Y080228
|
||||
X029456Y081498
|
||||
X027257Y082768
|
||||
X027257Y-082768
|
||||
X029456Y-081498
|
||||
X031656Y-080228
|
||||
X033856Y-078958
|
||||
X010160Y-085308
|
||||
X012700Y-085308
|
||||
X015240Y-085308
|
||||
X017780Y-085308
|
||||
X036055Y-077688
|
||||
X038255Y-076418
|
||||
X040455Y-075148
|
||||
X042654Y-073878
|
||||
X044854Y-072608
|
||||
X047053Y-071338
|
||||
X049253Y-070068
|
||||
X051453Y-068798
|
||||
X053652Y-067528
|
||||
X055852Y-066258
|
||||
X058052Y-064988
|
||||
X058052Y064988
|
||||
X055852Y066258
|
||||
X053652Y067528
|
||||
X051453Y068798
|
||||
X049253Y070068
|
||||
X047053Y071338
|
||||
X044854Y072608
|
||||
X042654Y073878
|
||||
X040455Y075148
|
||||
X038255Y076418
|
||||
X036055Y077688
|
||||
X073878Y042654
|
||||
X072608Y044854
|
||||
X071338Y047053
|
||||
X070068Y049253
|
||||
X068798Y051453
|
||||
X067528Y053652
|
||||
X066258Y055852
|
||||
X064988Y058052
|
||||
X082768Y027257
|
||||
X081498Y029456
|
||||
X080228Y031656
|
||||
X078958Y033856
|
||||
X077688Y036055
|
||||
X076418Y038255
|
||||
X075148Y040455
|
||||
X078958Y-033856
|
||||
X080228Y-031656
|
||||
X081498Y-029456
|
||||
X082768Y-027257
|
||||
X064988Y-058052
|
||||
X066258Y-055852
|
||||
X067528Y-053652
|
||||
X068798Y-051453
|
||||
X070068Y-049253
|
||||
X071338Y-047053
|
||||
X072608Y-044854
|
||||
X073878Y-042654
|
||||
X075148Y-040455
|
||||
X076418Y-038255
|
||||
X077688Y-036055
|
||||
X085308Y-017780
|
||||
X085308Y-015240
|
||||
X085308Y-012700
|
||||
X085308Y-010160
|
||||
X085308Y-007620
|
||||
X085308Y-005080
|
||||
X085308Y-002540
|
||||
X085308Y000000
|
||||
X085308Y002540
|
||||
X085308Y005080
|
||||
X085308Y007620
|
||||
X085308Y010160
|
||||
X085308Y012700
|
||||
X085308Y015240
|
||||
X085308Y017780
|
||||
T03
|
||||
X-110490Y-110490
|
||||
X-101600Y-101600
|
||||
X-110490Y110490
|
||||
X-101600Y101600
|
||||
X101600Y-101600
|
||||
X101600Y101600
|
||||
X110490Y110490
|
||||
X110490Y-110490
|
||||
T04
|
||||
X000000Y000000
|
||||
T05
|
||||
X-013846Y-102601
|
||||
X013383Y-102601
|
||||
M30
|
||||
5976
gerbonara/tests/resources/orcad/silk_screen_bottom.art
Normal file
5976
gerbonara/tests/resources/orcad/silk_screen_bottom.art
Normal file
File diff suppressed because it is too large
Load diff
1107
gerbonara/tests/resources/orcad/silk_screen_top.art
Normal file
1107
gerbonara/tests/resources/orcad/silk_screen_top.art
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue