Skip to content
This repository has been archived by the owner on Oct 7, 2020. It is now read-only.

add Texas SO-20 PowerPAD #340

Closed
wants to merge 257 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
257 commits
Select commit Hold shift + click to select a range
4ccdb75
Add offset for EDGELOCK
asukiaaa Oct 29, 2018
0852197
Support multiple pin numbers for EDGELOCK
asukiaaa Oct 29, 2018
4865475
Add Inductors/Murata_DEM35xxC
asukiaaa Nov 25, 2018
f1757fa
Remove a polarity mark from Murata_DEM35xxC
asukiaaa Dec 23, 2018
73bb991
Change CrtYd clearance as 0.25 for Murata_DEM35xxC
asukiaaa Dec 23, 2018
7d40830
add size definition for Mini-Circuits XX112 SO package
hvraven Jan 12, 2019
9846a2d
integrate review feedback
hvraven Jan 18, 2019
4a0d47f
Merge remote-tracking branch 'upstream/master' into xx112
hvraven Jan 18, 2019
8acfe88
Mini-Circuits XX112: add comment for package-y size
hvraven Jan 20, 2019
fc75cb2
Merge remote-tracking branch 'upstream/master' into xx112
hvraven Jan 20, 2019
7c45cd7
Added DIP-8-16 foot print
Misca1234 Jan 31, 2019
7440140
size definition for WSON-8-1EP-3x2.5mm-1.2x1.5mmEP
hvraven Feb 15, 2019
5f459c3
Changed target directory for 3D models for DIPs from Housings_DIP to …
Misca1234 Feb 23, 2019
2a5388b
Fix footprint naming
jneiva08 Mar 9, 2019
42fd5a4
Hirose DF12E DP.
jneiva08 Mar 9, 2019
9fb5fdc
Add some comments
jneiva08 Mar 10, 2019
d1f63b6
Extend dimension parser and fix imperial handling
poeschlr Mar 26, 2019
19b81a5
Add ADF7021 footprint entry
evanshultz Apr 5, 2019
47166bb
move entry to CSP file
evanshultz Apr 5, 2019
210eefa
Update datasheet link
jneiva08 Apr 11, 2019
d35da11
Add 3.5x3.5mm QFN-20 with 2mm pad.
ObKo Apr 11, 2019
15a78c0
add Texas SO-20 PowerPAD
aewallin Apr 12, 2019
b845054
replacement of all yaml.load with yaml.safe_load. CVE-2017-18342
eeyrjmr Apr 22, 2019
b48b0e4
Merge pull request #342 from eeyrjmr/CVE-2017-18342_fix
pointhi Apr 22, 2019
54c675a
Merge pull request #339 from ObKo/qfn-3.5
pointhi Apr 23, 2019
ed9b1f0
adds xilinx artix 7 based bga footprints and functionality to add add…
herostrat Apr 24, 2019
0588bda
corrects footprint name in notes
herostrat Apr 26, 2019
056091a
fixes various errors from first review
herostrat Apr 26, 2019
b79ee42
removes wrong spelled file
herostrat Apr 26, 2019
86b908b
fixes additional issues during review
herostrat Apr 27, 2019
3b5d6dd
Merge pull request #343 from herostrat/xilinx_bga_artix
pointhi Apr 30, 2019
ce6bab1
adds dimensions for spartan-7 series FPGA BGA packages
herostrat Apr 30, 2019
4addf1e
corrects errors from first review
herostrat Apr 30, 2019
881207e
fix deleted lines
herostrat Apr 30, 2019
70248b2
Merge pull request #327 from poeschlr/extend_dimension_parser
pointhi May 4, 2019
507ba84
Merge pull request #345 from herostrat/master
pointhi May 6, 2019
06126dd
adds footprint definition for Xilinx Virtex-7 BGA
herostrat May 8, 2019
96a4cfb
Merge pull request #349 from herostrat/virtex_7_2
pointhi May 8, 2019
189a688
adds definition for Xilinx Kintex-7 BGA FPGAs
herostrat May 8, 2019
1829761
copper only ring pad prototype
poeschlr May 8, 2019
08f04bf
Workaround for mask margin bugs
poeschlr May 8, 2019
43d3007
Workaround for single paste zone (kicad bug)
poeschlr May 8, 2019
e7a2549
add interface to rotate a vector2d around a given origin
poeschlr May 8, 2019
64d2f17
handle solder paste parameters
poeschlr May 8, 2019
98603c8
use rotate function instead of calculating coordinates
poeschlr May 8, 2019
684e006
added polar coordinate handling to Vector2D
poeschlr May 9, 2019
b1c455b
extended arc interface
poeschlr May 9, 2019
a64340f
ensure -0 is not created by float formater
poeschlr May 10, 2019
19f3de8
More arc testcases
poeschlr May 10, 2019
03bd06c
ode style
poeschlr May 10, 2019
7a50885
python 2 compatibility
poeschlr May 10, 2019
12bc2f6
add rotation interface for basic nodes
poeschlr May 10, 2019
53b59eb
Add translation and intersection
poeschlr May 11, 2019
e008043
Add docstrings
poeschlr May 11, 2019
01a5f19
intersection supports arcs
poeschlr May 11, 2019
2957b34
cut line implemented
poeschlr May 11, 2019
244847b
Introduced geometric base clases for lines, circles and arcs
poeschlr May 12, 2019
0e158a0
Merge branch 'master' of https://github.com/pointhi/kicad-footprint-g…
hvraven May 12, 2019
9d31f5b
add size definition for TQFP-100 with 5x5 EP
hvraven Feb 25, 2019
91a2c19
TQFP-100-5x5mmEP: add overall_height
hvraven May 12, 2019
273117f
WSON-8-3x2.5EP: add _PullBack and lead_to_edge
hvraven May 12, 2019
6719d3f
Add cut functionallity to arcs
poeschlr May 12, 2019
d4bc9b0
Add TI DWV dimensions
evanshultz May 13, 2019
f942451
arc pad primitive used for paste parts of ring pad
poeschlr May 13, 2019
b1c9f55
Merge pull request #350 from herostrat/kintex-7
pointhi May 14, 2019
cc8c66e
adds package definitions for Xilinx Zynq-7000 series BGAs
herostrat May 14, 2019
fa10e2d
Merge pull request #355 from herostrat/zynq-7000
pointhi May 14, 2019
4ddd2c3
Finish paste pad handling for ring pads
poeschlr May 14, 2019
1af2b07
Move Package_BGA folder under Package folder
evanshultz May 14, 2019
64b545c
Rename YAML file extensions to *.yaml
evanshultz May 14, 2019
0ee5425
Update script for folder move
evanshultz May 14, 2019
3dca632
cleanups and docu
poeschlr May 14, 2019
6c78c68
Build description from input params
evanshultz May 14, 2019
877d044
Change package sizes to X and Y
evanshultz May 14, 2019
eac800b
Removed "NSMD" suffix
evanshultz May 14, 2019
8c03728
Add IPC ball size info (currently unused)
evanshultz May 14, 2019
ed3269b
Package_SO: Add new SOIC 8 definition
May 16, 2019
a653346
Merge master
May 16, 2019
b85cd68
Add WQFN-24
ObKo May 22, 2019
6054da3
Add footprint generator usage instructions
yankee14 May 23, 2019
3afb7ac
Merge pull request #362 from yankee14/README.md_usage
pointhi May 23, 2019
3bda5f9
Correct overlap, paste radius and arc width calculation
poeschlr May 25, 2019
de61209
correct handling of paste to paste clearance
poeschlr May 26, 2019
c159b56
Add commandline interface script for generating ring pads
poeschlr May 26, 2019
f2a46bb
Add wuerth smt mouniting hardware with inner through hole
poeschlr May 26, 2019
ac37b7f
klc fixes
poeschlr May 26, 2019
191f472
fix ring pad paste for 2 zones
poeschlr May 27, 2019
3c2728b
Add M1.6 (including blind hole) and new naming convention
poeschlr May 27, 2019
9e7cb69
add reverse type
poeschlr May 27, 2019
f127438
add snap rivet version
poeschlr May 27, 2019
961ca20
script renamed to reflect the fact that it is generic
poeschlr May 28, 2019
23be404
add external thread version
poeschlr May 28, 2019
9f6bfe5
add maximum round radius to ring pad
poeschlr May 28, 2019
cb79753
handle 0 inner diameter
poeschlr May 28, 2019
6385473
add non npth version
poeschlr May 28, 2019
e12a59c
rename script folder to reflect the generic content
poeschlr May 29, 2019
a0706d7
Improved naming and description
poeschlr May 29, 2019
b32630f
Merge pull request #295 from lorem-ipsum/mpds4000
pointhi Jun 1, 2019
eff0782
Merge pull request #175 from jneiva08/hirose_df12c
pointhi Jun 1, 2019
ad770be
Merge pull request #361 from ObKo/wqfn-24
pointhi Jun 1, 2019
18d0077
Merge pull request #353 from evanshultz/ti-dwv
pointhi Jun 1, 2019
4e677e6
Merge pull request #336 from evanshultz/cp-48-5
pointhi Jun 1, 2019
8772730
Merge pull request #301 from lorem-ipsum/sv-100-4
pointhi Jun 1, 2019
3c08149
Add QFN-28-1EP_4x4mm_P0.4mm_EP2.3x2.3mm
fauxpark Jun 1, 2019
11584cc
Use Arc for lines on Edge.Cuts for molex_EDGELOCK
asukiaaa Jun 2, 2019
a156b90
Add lines and a comment about chamfer for molex_EDGELOCK
asukiaaa Jun 2, 2019
b73fc8f
Change layer of lines about chamfer as Dwgs.User for molex_EDGELOCK
asukiaaa Jun 2, 2019
c33d2dc
Exclude tests from codeclimate analysis
poeschlr Jun 2, 2019
0eb11de
use suggestion from codeclimate docu
poeschlr Jun 2, 2019
9f94ebe
Merge pull request #366 from poeschlr/patch-1
pointhi Jun 2, 2019
062b40c
add definition for cp-32-2 LFCSP-32 package
hvraven Feb 21, 2019
fece357
Merge pull request #297 from lorem-ipsum/cp-32-2
pointhi Jun 2, 2019
35b1912
Use min/nom/max body values from datasheet, remove EP size overwrite
fauxpark Jun 2, 2019
dacbe6c
two size_source PDF links
aewallin Jun 2, 2019
7f68758
add overall_height
aewallin Jun 2, 2019
7e2795f
ep size and overwrite
aewallin Jun 2, 2019
e4e16a5
pin lengths
aewallin Jun 2, 2019
4b9e21f
fix typos
aewallin Jun 2, 2019
07a114a
comma-separated size_source URLs
aewallin Jun 3, 2019
6267c45
mask cut-out size to max ep size
aewallin Jun 3, 2019
34f5ee9
Add VQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mm
cronJ Jun 3, 2019
9dd5fba
Merge pull request #365 from fauxpark/qfn-28-4x4-ep2_3
pointhi Jun 3, 2019
b1fdb0b
Merge pull request #283 from Misca1234/DIP-8-16
pointhi Jun 3, 2019
309504f
Merge pull request #268 from lorem-ipsum/xx112
pointhi Jun 3, 2019
0342b3b
Merge pull request #215 from asukiaaa/feature/add-molex-EDGELOCK
pointhi Jun 3, 2019
e85c6ba
Package_SO: Add SOIC-8 overall height info
antoniovazquezblanco Jun 3, 2019
17324e9
Package_SO: SOIC-8 datasheet link now redirects to page
antoniovazquezblanco Jun 3, 2019
b054416
Merge branch 'master' into dev/mem
antoniovazquezblanco Jun 3, 2019
ce8c625
Merge pull request #225 from asukiaaa/feature/add-Murata-DEM35xxC
pointhi Jun 3, 2019
2048d17
Merge pull request #356 from evanshultz/bga-update
pointhi Jun 3, 2019
c57d99f
Add QFN-40 footprint for IS31FL3736/7
fauxpark Jun 3, 2019
857915f
Add page number for datasheet
cronJ Jun 4, 2019
aa23114
Fix indentation issue
cronJ Jun 4, 2019
f884cd2
Merge pull request #357 from antoniovazquezblanco/dev/mem
pointhi Jun 4, 2019
0677b66
Force EP size to maximum
fauxpark Jun 4, 2019
8c66ee2
Add page to url
cronJ Jun 5, 2019
c397d7e
Merge pull request #368 from fauxpark/qfn-40-is31fl3736
pointhi Jun 6, 2019
d2d42a0
Merge pull request #367 from cronJ/VQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mm
pointhi Jun 6, 2019
5cbd71a
Fix no lead courtyard handling for pull back versions
poeschlr Jun 6, 2019
32cd813
Add size definition for SOIC-8 5.23x5.23mm. (#313)
matthuszagh Jun 6, 2019
47f39b9
Add size definition for LFCSP-16 (EP 1.7x1.7) (#305)
matthuszagh Jun 6, 2019
29e6650
Add Texas RGE0024C definition (#290)
chemicstry Jun 6, 2019
77c9007
Added size definition for QFN-32-1EP_5x5mm_P0.5mm_EP3.7x3.7mm (#279)
Misca1234 Jun 6, 2019
a96e8aa
add definition for LFCSP-8 3x3mm from Analog (#255)
hvraven Jun 6, 2019
33adfea
Merge pull request #369 from poeschlr/fix_no-lead_crtyd
pointhi Jun 6, 2019
81c9862
LQFP-64 with 5mmx5mm EP (#307)
twam Jun 7, 2019
f77c4c5
Addition of size definition for MSOP-16 (#281)
JacobEFO Jun 7, 2019
06bfe7d
Removed rounded corners on TDK inductor (#254)
Misca1234 Jun 7, 2019
4b4fcc8
added QFN-72-1EP_10x10mm_P0.5mm_EP6x6mm (#370)
Shackmeister Jun 7, 2019
86e11f2
Add SOP-24_7.5x15.4mm_P1.27mm
fauxpark Jun 10, 2019
7417d39
add NPT hole unconditionally
jhalmen Jun 11, 2019
4c6d2b6
add Texas_S-PVQFN-N16_EP2.1x2.1mm footprint
nivekg Jun 11, 2019
bf04e55
correct manufacturer
jhalmen Jun 11, 2019
f3d3fc3
specify connector is vertical
jhalmen Jun 12, 2019
abd48d6
Molex 52991 (#377)
Shackmeister Jun 13, 2019
8585463
Add Linear/ADI DD DFN-10 entry
evanshultz Jun 14, 2019
1b4bb1f
Add readme to gullwing generator
poeschlr Jun 15, 2019
eb2f552
renamed footprint to Texas_RGV_S-PVQFN-N16_EP2.1x2.1mm
nivekg Jun 15, 2019
21b0d1f
correct footprint size for single pin connector
jhalmen Jun 15, 2019
9a67dd3
implement R form creation
jhalmen Jun 15, 2019
2b2b2af
specify type M, as type '' is being deprecated
jhalmen Jun 16, 2019
9f8be7e
make type check clearer
jhalmen Jun 18, 2019
e7e6782
add LFCSP-20-1EP-4x4mm_P0.5mm_EP2.6x2.6mm
hvraven Jun 20, 2019
09e836b
correct minimum -> maximum
hvraven Jun 20, 2019
7451524
reduce paste coverage
hvraven Jun 20, 2019
0504e6c
fixed some of the comments
nivekg Jun 20, 2019
e6b3af6
Allowed paste over vias and change paste coverage to 0.75
nivekg Jun 21, 2019
d85b2ba
Merge pull request #374 from fauxpark/sop-24
pointhi Jun 21, 2019
811c217
respect type name and pin count
jhalmen Jun 21, 2019
ea5111a
Merge pull request #382 from nivekg/Texas_S-PVQFN-N16_EP2.1x2.1mm
pointhi Jun 22, 2019
a793240
Merge pull request #385 from lorem-ipsum/cp-20-8
pointhi Jun 22, 2019
a5856ea
use pins instead of pins_per_row in description
jhalmen Jun 24, 2019
ef03172
Added format string without series
evanshultz Jun 18, 2019
7b2a5fa
add up to date datasheet to script
jhalmen Jun 25, 2019
6f0cafe
use series variable, use fp_name_no_series
jhalmen Jun 25, 2019
b4efece
Add Infineon QFN 64 footprint
evanshultz Jun 27, 2019
aebd3b8
Merge pull request #379 from evanshultz/lt3471-dfn10
pointhi Jul 3, 2019
6e524fb
Merge pull request #391 from evanshultz/infineon-qfn64
pointhi Jul 4, 2019
0f2c3e5
Merge pull request #376 from jhalmen/hirose_df63
pointhi Jul 9, 2019
6843712
Add the ability to mirror Text.
Jul 10, 2019
1f26bc2
Add QFN-20-1EP_5x5mm_P0.65mm_EP3.1x3.1mm
chschlue Jul 25, 2019
290ad64
Remove unnecessary lines, rename and move to TQFN
chschlue Jul 25, 2019
ce203f2
Merge pull request #400 from chschlue/qfn2031
pointhi Jul 26, 2019
b7e2597
Add QFN-48 for FT232HQ (#401)
jneiva08 Jul 26, 2019
de18fd6
add Molex MicroClasp 55935-xx10 and 55935-xx30 (#405)
rckTom Jul 28, 2019
c913f71
Better explanation and a graphic explaining the major dimensions of a…
poeschlr Aug 1, 2019
dd9b7f1
add graphic for exposed pad handling
poeschlr Aug 1, 2019
38871ba
Improve documentation further
poeschlr Aug 2, 2019
b9cba75
add better descriptions to image
poeschlr Aug 12, 2019
fd49e97
Improved documentation further
poeschlr Sep 1, 2019
3244af2
typo in description
poeschlr Sep 1, 2019
b9a880b
Updated dfn.yaml script with TDFN-6 footprints (#383)
TiZed Sep 1, 2019
15307db
Add size definition for VQFN-32-1EP_5x5mm_P0.5mm_EP3.5x3.5mm (#414)
jonas-schievink Sep 5, 2019
1a061eb
Add size definition for WQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mm (#412)
jonas-schievink Sep 5, 2019
f84ae65
SMD_chip_devices: add L_1008_2520Metric (#409)
hvraven Sep 5, 2019
e3f5926
Add script for Connector_Audio/Jack_3.5mm_Switronic_ST005_horizontal …
asukiaaa Sep 8, 2019
56245b8
Python 3.3 seems to be EOL in travis, remove it
pointhi Sep 8, 2019
913ba21
fixes suggested by evan
poeschlr Sep 21, 2019
311c99d
Adding: SOP-8_3.9x4.9mm_P1.27mm, SOP-8_5.28x5.23mm_P1.27mm (#358)
ki5libs Sep 22, 2019
bd3e3fd
QFP_SOIC_SO: add size definition for TSOP-6 in 1.5x2.9mm package (#328)
zonque Sep 22, 2019
391167a
Imporvements as per comments
poeschlr Sep 26, 2019
7fb5e94
Add size definition for Infineon_PG-DSO-8-27 (#372)
poeschlr Sep 27, 2019
7dd5280
Add new wuerth connectors (#393)
antoniovazquezblanco Sep 27, 2019
25fd749
Changed footpint name to be more generic (#347)
jneiva08 Sep 27, 2019
cd11212
Harwin hotfix (#322)
evanshultz Sep 27, 2019
61c42ba
TE 826576 (#384)
evanshultz Sep 27, 2019
3b1128e
add size definition for Analog cp-16-40 (#398)
hvraven Sep 27, 2019
46138ea
add QFN-28-1EP 4x4mm with 2.6x2.6mm pad (#406)
hvraven Sep 27, 2019
3fe40ac
addLineWithKeepout wasn't drawing last segment for horizontal/vertica…
mignon-p Sep 27, 2019
0539645
Added DFN-8-1EP_4x4mm_P0.8mm_EP2.3x3.24mm (#431)
JeppeSRC Sep 28, 2019
41f2c2e
Added QFN-16-1EP_4x4mm_P0.65mm_EP2.5x2.5mm (#430)
JeppeSRC Sep 28, 2019
09d4604
Adding Texas_VSON-HR_1.5x2mm_P0.5mm (#429)
ki5libs Sep 28, 2019
40a657d
Fix bug in tantal definition of SMD_chip_package (#408)
hvraven Sep 28, 2019
e0411e8
Add HTSSOP-28-1EP_4.4x9.7mm_P0.65mm_EP2.85x5.4mm (#416)
chschlue Sep 28, 2019
ce19cad
BMI-S-230-F RF shield frame (#310)
dlharmon Sep 28, 2019
d19a301
Add QFN 14 for SKY13575-639LF. (#304)
matthuszagh Sep 28, 2019
c50413b
Fix Wago 236 naming, drill diameters, differentiate between 1 and 2 p…
chschlue Sep 28, 2019
613f745
document exclude pad option
poeschlr Sep 29, 2019
a905f6d
fix further comments
poeschlr Sep 29, 2019
5e204a5
Merge pull request #380 from poeschlr/docu
pointhi Oct 5, 2019
a1ba4a9
Merge pull request #351 from poeschlr/ring_pad
pointhi Oct 5, 2019
a032cd6
Merge pull request #132 from TheTwix/mirror_text
pointhi Oct 5, 2019
2bb95e0
Update AUTHORS.md
pointhi Oct 5, 2019
53548ba
Add QFN-64-1EP 9x9mm with 3.8x3.8mm EP (#426)
joshtyler Oct 6, 2019
b29ff13
JST VH script update (#389)
evanshultz Oct 6, 2019
536295b
Add definition for Hirose DF3EA-xxP-2H to generic connector generato…
jneiva08 Oct 6, 2019
fe0efa7
Add conn_molex_SPOX_tht_side.py (#441)
waschhauser Oct 6, 2019
98fe9ca
size definitions Tantal AVX F72/F65 series (#440)
hvraven Oct 6, 2019
bc23c61
Add QFN-64 (#399)
jneiva08 Oct 7, 2019
1e57ef6
Add MSOP-8_3x3mm_P0.65mm (#443)
chschlue Oct 8, 2019
7ab5acf
Generator for molex sl171971 (#442)
waschhauser Oct 21, 2019
f5601e0
Added VQFN-48-1EP_7x7mm_P0.5mm_EP5.15x5.15mm (#338)
ppielorz Oct 26, 2019
7e2c466
Add LFCSP-24 (#448)
jneiva08 Oct 26, 2019
28b6112
Add LFCSP_WD-10 (#447)
jneiva08 Oct 26, 2019
d94e65d
Adding TE 1734839 connectors (#449)
ki5libs Oct 27, 2019
14665e9
Add VQFN-46 (#445)
rleh Oct 27, 2019
ac84bfa
Support 43045-xx2x MPNs (#437)
evanshultz Nov 9, 2019
78c8158
Add Molex KK 41791 series (#424)
jabdoa2 Nov 9, 2019
5c5ec71
Add script for Microchip TFBGA, 14 x 14 196 pin, 11 x 11mm package, 0…
yankee14 Nov 20, 2019
1c1399b
Upload mounting hole
pointhi Dec 19, 2019
45c4fd7
add Texas SO-20 PowerPAD
aewallin Apr 12, 2019
11fead5
two size_source PDF links
aewallin Jun 2, 2019
0cd1ecd
add overall_height
aewallin Jun 2, 2019
dcae4c9
ep size and overwrite
aewallin Jun 2, 2019
8c09d71
pin lengths
aewallin Jun 2, 2019
45560d5
fix typos
aewallin Jun 2, 2019
547e1c4
comma-separated size_source URLs
aewallin Jun 3, 2019
82f02bb
mask cut-out size to max ep size
aewallin Jun 3, 2019
fe136fc
Merge branch 'PowerPAD' of github.com:aewallin/kicad-footprint-genera…
aewallin Dec 22, 2019
9be49eb
revise mask-dimensions and thermal vias
aewallin Dec 22, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ ratings:
exclude_paths:
- doc/**/*
- scripts/**/*
- "**/tests/"
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ cache:
language: python
python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"
- "3.6"
- "3.7"
install:
- ./manage.sh update_dev_packages
script:
Expand Down
62 changes: 58 additions & 4 deletions AUTHORS.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
**Maintainer:**

* Thomas Pointhuber <thomas.pointhuber@gmx.at> @pointhi

* Rene Pöschl, @poeschlr
* @evanshultz

**Contributors:**

People who have submitted patches, reported bugs, consulted features or generally made KicadModTree better

* Oliver, @SchrodingersGat
* Jan W. Krieger, @jkriege2
* Rene Pöschl, @poeschlr
* Frank, @Frankkkkk
* @Hackscribble
* @stoth
* Patrick Pelletier, @ppelleti
* @DASFrank
* Dominik Baack, @matyro
* Jordi Orlando, @0xdec
* @evanshultz
* Jordi Pakey-Rodriguez, @0xdec
* George, @grob6000
* Tobias Müller, @twam
* Terje Io, @terjeio
Expand All @@ -27,3 +26,58 @@ People who have submitted patches, reported bugs, consulted features or generall
* Trevor Vannoy, @tvannoy
* Kari Hautio, @kh4
* Stefan, @Misca1234
* Antonio Vazquez, @antoniovazquezblanco
* Hendrik v. Raven, @lorem-ipsum
* Asuki Kono, @asukiaaa
* Xathar, @jneiva08
* @matthuszagh
* @ferdymercury
* @jhalmen
* @herostrat
* @fauxpark
* @matthijskooijman
* Clara Hobbs, @Ratfink
* @MRQ
* Stefan Krüger, @s-light
* John Whitmore, @johnfwhitmore
* Daniel Mack, @zonque
* @dominformant
* @tpambor
* @nivekg
* Joel, @myfreescalewebpage
* JonRB, @eeyrjmr
* Alexander Ransmann, @cronJ
* Christian Schlüter, @chschlue
* Chase Patterson, @chapatt
* Rolf Schäuble, @rschaeuble
* @penoud
* @ki5libs
* @fvollmer
* @cp-aquila
* Anders Wallin, @aewallin
* Jonas Schievink, @jonas-schievink
* Diego Herranz, @diegoherranz
* Alexandre Oliveira, @RockyTV
* Konstantin Oblaukhov, @ObKo
* Jesper, @JeppeSRC
* Jacob E. F. Overgaard @JacobEFO
* Ed Peguillan III, @yankee14
* Thomas Schmid, @rckTom
* @mitch354
* Jan Krueger, @einball
* @dogtopus
* Darrell Harmon, @dlharmon
* David Imhoff, @dimhoff
* marble, @cyber-murmel
* @chemicstry
* @awygle
* @TiZed
* Sean Leavey, @SeanDS
* @Schlumpf
* Daniel Giesbrecht, @DanSGiesbrecht
* Caleb Reister, @calebreister
* Greg Cormier, @gcormier
* Ilya Elenskiy, @EvilMav
* Mathias Walter, @tolot27
* Michael Munch, @Munken
* @waschhauser
19 changes: 11 additions & 8 deletions KicadModTree/KicadFileHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ def _serialize_Arc(self, node):

def _serialize_CirclePoints(self, node):
center_pos = node.getRealPosition(node.center_pos)
end_pos = node.getRealPosition(node.end_pos)
end_pos = node.getRealPosition(node.center_pos + (node.radius, 0))

return [
['center', center_pos.x, center_pos.y],
Expand Down Expand Up @@ -238,13 +238,16 @@ def _serialize_Text(self, node):
sexpr.append('hide')
sexpr.append(SexprSerializer.NEW_LINE)

sexpr.append(['effects',
['font',
['size', node.size.x, node.size.y],
['thickness', node.thickness]
]
]
) # NOQA
effects = [
'effects',
['font',
['size', node.size.x, node.size.y],
['thickness', node.thickness]]]

if node.mirror:
effects.append(['justify', 'mirror'])

sexpr.append(effects)
sexpr.append(SexprSerializer.NEW_LINE)

return sexpr
Expand Down
31 changes: 31 additions & 0 deletions KicadModTree/PolygonPoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,37 @@ def cut(self, other):

self.nodes.insert(idx_self+1, other[idx_other])

def rotate(self, angle, origin=(0, 0), use_degrees=True):
r""" Rotate points around given origin

:params:
* *angle* (``float``)
rotation angle
* *origin* (``Vector2D``)
origin point for the rotation. default: (0, 0)
* *use_degrees* (``boolean``)
rotation angle is given in degrees. default:True
"""

for p in self.nodes:
p.rotate(angle=angle, origin=origin, use_degrees=use_degrees)
return self

def translate(self, distance_vector):
r""" Translate points

:params:
* *distance_vector* (``Vector2D``)
2D vector defining by how much and in what direction to translate.
"""

for p in self.nodes:
p += distance_vector
return self

def __copy__(self):
return PolygonPoints(nodes=self.nodes)

def __iter__(self):
for n in self.nodes:
yield n
Expand Down
102 changes: 100 additions & 2 deletions KicadModTree/Vector.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import warnings

from KicadModTree.util.kicad_util import formatFloat
from math import sqrt
from math import sqrt, sin, cos, hypot, atan2, degrees, radians


class Vector2D(object):
Expand Down Expand Up @@ -85,7 +85,8 @@ def distance_to(self, value):
:return: distance between self and other point
"""
other = Vector2D.__arithmetic_parse(value)
return sqrt((other.x - self.x)**2 + (other.y - self.y)**2)
d = other - self
return hypot(d.x, d.y)

@staticmethod
def __arithmetic_parse(value):
Expand Down Expand Up @@ -191,6 +192,90 @@ def __iter__(self):
def __copy__(self):
return Vector2D(self.x, self.y)

def rotate(self, angle, origin=(0, 0), use_degrees=True):
r""" Rotate vector around given origin

:params:
* *angle* (``float``)
rotation angle
* *origin* (``Vector2D``)
origin point for the rotation. default: (0, 0)
* *use_degrees* (``boolean``)
rotation angle is given in degrees. default:True
"""

op = Vector2D(origin)

if use_degrees:
angle = radians(angle)

temp = op.x + cos(angle) * (self.x - op.x) - sin(angle) * (self.y - op.y)
self.y = op.y + sin(angle) * (self.x - op.x) + cos(angle) * (self.y - op.y)
self.x = temp

return self

def to_polar(self, origin=(0, 0), use_degrees=True):
r""" Get polar representation of the vector

:params:
* *origin* (``Vector2D``)
origin point for polar conversion. default: (0, 0)
* *use_degrees* (``boolean``)
angle in degrees. default:True
"""

op = Vector2D(origin)

diff = self - op
radius = hypot(diff.x, diff.y)

angle = atan2(diff.y, diff.x)
if use_degrees:
angle = degrees(angle)

return (radius, angle)

@staticmethod
def from_polar(radius, angle, origin=(0, 0), use_degrees=True):
r""" Generate a vector from its polar representation

:params:
* *radius* (``float``)
lenght of the vector
* *angle* (``float``)
angle of the vector
* *origin* (``Vector2D``)
origin point for polar conversion. default: (0, 0)
* *use_degrees* (``boolean``)
angle in degrees. default:True
"""

if use_degrees:
angle = radians(angle)

x = radius * cos(angle)
y = radius * sin(angle)

return Vector2D({'x': x, 'y': y})+Vector2D(origin)

def to_homogeneous(self):
r""" Get homogeneous representation
"""

return Vector3D(self.x, self.y, 1)

@staticmethod
def from_homogeneous(source):
r""" Recover 2d vector from its homogeneous representation

:params:
* *source* (``Vector3D``)
3d homogeneous representation
"""

return Vector2D(source.x/source.z, source.y/source.z)


class Vector3D(Vector2D):
r"""Representation of a 3D Vector in space
Expand Down Expand Up @@ -264,6 +349,19 @@ def round_to(self, base):

return Vector3D([round(v / base) * base for v in self])

def cross_product(self, other):
other = Vector3D.__arithmetic_parse(other)

return Vector3D({
'x': self.y*other.z - self.z*other.y,
'y': self.z*other.x - self.x*other.z,
'z': self.x*other.y - self.y*other.x})

def dot_product(self, other):
other = Vector3D.__arithmetic_parse(other)

return self.x*other.x + self.y*other.y + self.z*other.z

@staticmethod
def __arithmetic_parse(value):
if isinstance(value, Vector3D):
Expand Down
58 changes: 35 additions & 23 deletions KicadModTree/nodes/base/Arc.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,29 @@
from KicadModTree.Vector import *
from KicadModTree.nodes.Node import Node
import math
from KicadModTree.util.geometric_util import geometricArc, BaseNodeIntersection


class Arc(Node):
class Arc(Node, geometricArc):
r"""Add an Arc to the render tree

:param \**kwargs:
See below

:Keyword Arguments:
* *geometry* (``geometricArc``)
alternative to using geometric parameters
* *center* (``Vector2D``) --
center of arc
* *start* (``Vector2D``) --
start point of arc
* *midpoint* (``Vector2D``) --
alternative to start point
point is on arc and defines point of equal distance to both arc ends
arcs of this form are given as midpoint, center plus angle
* *end* (``Vector2D``) --
alternative to angle
arcs of this form are given as start, end and center
* *angle* (``float``) --
angle of arc
* *layer* (``str``) --
Expand All @@ -44,13 +54,34 @@ class Arc(Node):

def __init__(self, **kwargs):
Node.__init__(self)
self.center_pos = Vector2D(kwargs['center'])
self.start_pos = Vector2D(kwargs['start'])
self.angle = kwargs['angle']
geometricArc.__init__(self, **kwargs)

self.layer = kwargs.get('layer', 'F.SilkS')
self.width = kwargs.get('width')

def copyReplaceGeometry(self, geometry):
return Arc(geometry=geometry, layer=self.layer, width=self.width)

def copy(self):
return Arc(
center=self.center_pos, start=self.start_pos, angle=self.angle,
layer=self.layer, width=self.width
)

def cut(self, *other):
r""" cut line with given other element

:params:
* *other* (``Line``, ``Circle``, ``Arc``)
cut the element on any intersection with the given geometric element
"""
result = []
garcs = geometricArc.cut(self, *other)
for g in garcs:
result.append(self.copyReplaceGeometry(g))

return result

def calculateBoundingBox(self):
# TODO: finish implementation
min_x = min(self.start_pos.x, self._calulateEndPos().x)
Expand All @@ -76,25 +107,6 @@ def calculateBoundingBox(self):

return Node.calculateBoundingBox({'min': Vector2D((min_x, min_y)), 'max': Vector2D((max_x, max_y))})

def _calulateEndPos(self):
radius = self._calculateRadius()

angle = self._calculateStartAngle() + math.radians(self.angle)

return Vector2D(math.sin(angle)*radius, math.cos(angle)*radius)

def _calculateRadius(self):
x_size = self.start_pos.x - self.center_pos.x
y_size = self.start_pos.y - self.center_pos.y

return math.sqrt(math.pow(x_size, 2) + math.pow(y_size, 2))

def _calculateStartAngle(self):
x_size = self.start_pos.x - self.center_pos.x
y_size = self.start_pos.y - self.center_pos.y

return math.atan2(y_size, x_size)

def _getRenderTreeText(self):
render_strings = ['fp_arc']
render_strings.append(self.center_pos.render('(center {x} {y})'))
Expand Down
Loading