[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
gEDA-user: Din connector footprints and symbols
- To: geda-user@xxxxxxxx
- Subject: gEDA-user: Din connector footprints and symbols
- From: Colin Ager <colin@xxxxxxxxxxxxxx>
- Date: Mon, 06 Mar 2006 09:31:18 +0000
- Delivered-to: archiver@seul.org
- Delivered-to: geda-user-outgoing@seul.org
- Delivered-to: geda-user@seul.org
- Delivery-date: Mon, 06 Mar 2006 04:30:59 -0500
- Reply-to: geda-user@xxxxxxxx
- Sender: owner-geda-user@xxxxxxxx
- User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007
Hi all.
Over a year ago I used gSchem/PCB to produce a board design for which
footprints/symbols were not part of the supplied sets. After much head
scratching and re-reading the documentation I produced the files
attached here. Unfortunately I chose to produce m4 versions which I then
built into my version of gSchem/PCB. They seem to work as far as I can
tell and I offer them as-is under the GPL. Feel free to modify them in
any way you deem fit. I am not too sure how to contribute these but hope
this is an acceptable method!
I am not a skilled circuit designer but I like to follow the discussions
on the list. Many thanks to all those who contributed code to this
project over the years.
Colin Ager Garboldisham Norfolk UK
# -*-m4-*-
#
# For 32-Pin Type D Type Connectors
# Colin Ager 10/01/05
# Derived from work by Volker Bosch
#
# Note that all odd no pins are omitted in this connector
#
# $1: canonical name
# $2: name on PCB
# $3: value
# $4: requested rows a,c
#
define(`PKG_DIN41_612FEMALE_D_TYPE',
`define(`MAXX', 420)
define(`MAXX1', `eval(MAXX -170)')
define(`MAXX2', `eval(MAXX -40)')
Element(0x00 "$1" "$2" "$3" 50 100 3 200 0x00)
(
# Row a
ifelse(index(`$4', `a'), `-1', ,
forloop(`i', 1, 16, `PIN(200, eval(300 + 200 *i), 60, 30, eval(i*2)a)
'))
# Row c
ifelse(index(`$4', `c'), `-1', , `define(`MAXX', 520)'
forloop(`i', 1, 16, `PIN(400, eval(300 + 200 *i), 60, 30, eval(i*2)c)
'))
# Fixing Holes
Pin(290 180 120 80 "M1" 0x01)
Pin(290 3720 120 80 "M2" 0x01)
# Outline of outer part of moulding
ElementLine( 80 80 MAXX 80 20)
ElementLine(MAXX 80 MAXX 3820 20)
ElementLine(MAXX 3820 80 3820 20)
ElementLine( 80 3820 80 80 20)
# Outline of female part of moulding
ElementLine(120 320 MAXX1 320 10)
ElementLine(MAXX1 320 MAXX1 360 10)
ElementLine(MAXX1 360 MAXX2 360 10)
ElementLine(MAXX2 360 MAXX2 3540 10)
ElementLine(MAXX2 3540 MAXX1 3540 10)
ElementLine(MAXX1 3540 MAXX1 3580 10)
ElementLine(MAXX1 3580 120 3580 10)
ElementLine(120 3580 120 320 10)
# Mark: Pin 2a
Mark(200 500)
)')
# -*- m4 -*-
#
# For 32-Pin Type D Type Connectors
# Colin Ager 10/01/05
# Derived from work by Volker Bosch
#
# Note that all odd no pins are omitted in this connector
#
# $1: canonical name# Derived for 32-Pin Type D Connectors from the same series
# Colin Ager 10/01/05
# $2: name on PCB
# $3: value
# $4: requested rows a,c
#
define(`PKG_DIN41_612MALE_D_TYPE',
`define(`XPOS', `eval(300 + 200 * i)')
define(`MINY', 300)
Element(0x00 "$1" "$2" "$3" 520 550 0 200 0x00)
(
# Row a
ifelse(index(`$4', `a'), `-1', ,
forloop(`i', 1, 16, `PIN(eval(3600 - 200 *i), 300, 60, 30,eval(i*2)a)
'))
# Row c
ifelse(index(`$4', `c'), `-1', , `define(`MINY', 100)'
forloop(`i', 1, 16, `PIN(eval(3600 - 200 *i), 100, 60, 30, eval(i*2)c)
'))
# Reverse side contact pin
forloop(`i', 1, 16, `ElementLine(eval(XPOS-100) MINY eval(XPOS-100) 375 40)
')
# Fixing Holes
Pin( 200 400 120 80 "M1" 0x01)
Pin(3700 400 120 80 "M2" 0x01)
# Boundary of M1
ElementLine( 100 300 320 300 20)
ElementLine( 320 300 320 395 20)
ElementLine( 320 395 320 620 10)
ElementLine( 320 620 200 620 10)
ElementLine( 200 620 100 620 20)
ElementLine( 100 620 100 300 20)
# Boundary of M2
ElementLine(3580 300 3800 300 20)
ElementLine(3800 300 3800 620 20)
ElementLine(3800 620 3700 620 20)
ElementLine(3700 620 3580 620 10)
ElementLine(3580 620 3580 395 10)
ElementLine(3580 395 3580 300 20)
# Pin edge of body
ElementLine( 320 395 3580 395 20)
# Pin area Boundary
ElementLine( 200 620 200 800 20)
ElementLine( 200 800 3700 800 20)
ElementLine(3700 800 3700 620 20)
#Mark Pin 2a
Mark(3400 300)
)')
v 20040111 1
P 400 12500 100 12500 1 0 1
{
T 400 12500 5 10 0 1 0 0 1
pinnumber=1
T 400 12500 5 10 0 1 0 0 1
pinseq=1
T 500 12500 5 10 1 1 0 0 1
pinlabel=2a
}
P 400 11700 100 11700 1 0 1
{
T 400 11700 5 10 0 1 0 0 1
pinnumber=2
T 400 11700 5 10 0 1 0 0 1
pinseq=2
T 500 11700 5 10 1 1 0 0 1
pinlabel=4a
}
P 400 10900 100 10900 1 0 1
{
T 400 10900 5 10 0 1 0 0 1
pinnumber=3
T 400 10900 5 10 0 1 0 0 1
pinseq=3
T 500 10900 5 10 1 1 0 0 1
pinlabel=6a
}
P 400 10100 100 10100 1 0 1
{
T 400 10100 5 10 0 1 0 0 1
pinnumber=4
T 400 10100 5 10 0 1 0 0 1
pinseq=4
T 500 10100 5 10 1 1 0 0 1
pinlabel=8a
}
P 400 9300 100 9300 1 0 1
{
T 400 9300 5 10 0 1 0 0 1
pinnumber=5
T 100 9400 5 10 0 1 0 0 1
pinseq=5
T 500 9300 5 10 1 1 0 0 1
pinlabel=10a
}
P 100 8500 400 8500 1 0 0
{
T 400 8500 5 10 0 1 0 0 1
pinnumber=6
T 100 8500 5 10 0 1 0 0 1
pinseq=6
T 500 8500 5 10 1 1 0 0 1
pinlabel=12a
}
P 100 7700 400 7700 1 0 0
{
T 400 7700 5 10 0 1 0 0 1
pinnumber=7
T 100 7700 5 10 0 1 0 0 1
pinseq=7
T 500 7700 5 10 1 1 0 0 1
pinlabel=14a
}
P 100 6900 400 6900 1 0 0
{
T 400 6900 5 10 0 1 0 0 1
pinnumber=8
T 100 6900 5 10 0 1 0 0 1
pinseq=8
T 500 6900 5 10 1 1 0 0 1
pinlabel=16a
}
P 100 6100 400 6100 1 0 0
{
T 400 6100 5 10 0 1 0 0 1
pinnumber=9
T 100 6100 5 10 0 1 0 0 1
pinseq=9
T 500 6100 5 10 1 1 0 0 1
pinlabel=18a
}
P 100 5300 400 5300 1 0 0
{
T 400 5300 5 10 0 1 0 0 1
pinnumber=10
T 100 5300 5 10 0 1 0 0 1
pinseq=10
T 500 5300 5 10 1 1 0 0 1
pinlabel=20a
}
P 100 4500 400 4500 1 0 0
{
T 400 4500 5 10 0 1 0 0 1
pinnumber=11
T 100 4500 5 10 0 1 0 0 1
pinseq=11
T 500 4500 5 10 1 1 0 0 1
pinlabel=22a
}
P 100 3700 400 3700 1 0 0
{
T 400 3700 5 10 0 1 0 0 1
pinnumber=12
T 100 3700 5 10 0 1 0 0 1
pinseq=12
T 500 3700 5 10 1 1 0 0 1
pinlabel=24a
}
P 100 2900 400 2900 1 0 0
{
T 400 2900 5 10 0 1 0 0 1
pinnumber=13
T 100 2900 5 10 0 1 0 0 1
pinseq=13
T 500 2900 5 10 1 1 0 0 1
pinlabel=26a
}
P 100 2100 400 2100 1 0 0
{
T 400 2100 5 10 0 1 0 0 1
pinnumber=14
T 100 2100 5 10 0 1 0 0 1
pinseq=14
T 500 2100 5 10 1 1 0 0 1
pinlabel=28a
}
P 100 1300 400 1300 1 0 0
{
T 400 1300 5 10 0 1 0 0 1
pinnumber=15
T 100 1300 5 10 0 1 0 0 1
pinseq=15
T 500 1300 5 10 1 1 0 0 1
pinlabel=30a
}
P 100 500 400 500 1 0 0
{
T 400 500 5 10 0 1 0 0 1
pinnumber=16
T 100 500 5 10 0 1 0 0 1
pinseq=16
T 500 500 5 10 1 1 0 0 1
pinlabel=32a
}
P 3400 12500 3700 12500 1 0 1
{
T 3200 12500 5 10 0 1 0 0 1
pinnumber=17
T 3600 12600 5 10 0 1 0 0 1
pinseq=17
T 3100 12500 5 10 1 1 0 0 1
pinlabel=2c
}
P 3400 10100 3700 10100 1 0 1
{
T 3200 10100 5 10 0 1 0 0 1
pinnumber=20
T 3500 10200 5 10 0 1 0 0 1
pinseq=20
T 3100 10100 5 10 1 1 0 0 1
pinlabel=8c
}
P 3700 9300 3400 9300 1 0 0
{
T 3100 9300 5 10 0 1 0 0 1
pinnumber=21
T 3700 9300 5 10 0 1 0 0 1
pinseq=21
T 3000 9300 5 10 1 1 0 0 1
pinlabel=10c
}
P 3700 7700 3400 7700 1 0 0
{
T 3100 7700 5 10 0 1 0 0 1
pinnumber=23
T 3700 7700 5 10 0 1 0 0 1
pinseq=23
T 3000 7700 5 10 1 1 0 0 1
pinlabel=14c
}
P 3700 6900 3400 6900 1 0 0
{
T 3100 6900 5 10 0 1 0 0 1
pinnumber=24
T 3700 6900 5 10 0 1 0 0 1
pinseq=24
T 3000 6900 5 10 1 1 0 0 1
pinlabel=16c
}
P 3700 6100 3400 6100 1 0 0
{
T 3100 6100 5 10 0 1 0 0 1
pinnumber=25
T 3700 6100 5 10 0 1 0 0 1
pinseq=25
T 3000 6100 5 10 1 1 0 0 1
pinlabel=18c
}
P 3700 5300 3400 5300 1 0 0
{
T 3000 5300 5 10 0 1 0 0 1
pinnumber=26
T 3700 5300 5 10 0 1 0 0 1
pinseq=26
T 3000 5300 5 10 1 1 0 0 1
pinlabel=20c
}
P 3700 4500 3400 4500 1 0 0
{
T 3000 4500 5 10 0 1 0 0 1
pinnumber=27
T 3700 4500 5 10 0 1 0 0 1
pinseq=27
T 3000 4500 5 10 1 1 0 0 1
pinlabel=22c
}
P 3700 3700 3400 3700 1 0 0
{
T 3000 3700 5 10 0 1 0 0 1
pinnumber=28
T 3500 3800 5 10 0 1 0 0 1
pinseq=28
T 3000 3700 5 10 1 1 0 0 1
pinlabel=24c
}
P 3700 2900 3400 2900 1 0 0
{
T 3000 2900 5 10 0 1 0 0 1
pinnumber=29
T 3500 3000 5 10 0 1 0 0 1
pinseq=29
T 3000 2900 5 10 1 1 0 0 1
pinlabel=26c
}
P 3400 2100 3700 2100 1 0 1
{
T 3000 2100 5 10 0 1 0 0 1
pinnumber=30
T 3400 2100 5 10 0 1 0 0 1
pinseq=30
T 3000 2100 5 10 1 1 0 0 1
pinlabel=28c
}
P 3400 1300 3700 1300 1 0 1
{
T 3000 1300 5 10 0 1 0 0 1
pinnumber=31
T 3400 1300 5 10 0 1 0 0 1
pinseq=31
T 3000 1300 5 10 1 1 0 0 1
pinlabel=30c
}
P 3400 500 3700 500 1 0 1
{
T 3000 500 5 10 0 1 0 0 1
pinnumber=32
T 3400 500 5 10 0 1 0 0 1
pinseq=32
T 3000 500 5 10 1 1 0 0 1
pinlabel=32c
}
B 400 100 3000 12900 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
{
T 1900 13800 5 10 1 0 0 0 1
slot=0
}
T 2100 13400 8 10 1 1 0 6 1
refdes=J?
P 3700 11700 3400 11700 1 0 0
{
T 3200 11700 5 10 0 1 0 0 1
pinnumber=18
T 3100 11700 5 10 0 1 0 0 1
pinseq=18
T 3100 11700 5 10 1 1 0 0 1
pinlabel=4c
}
P 3700 10900 3400 10900 1 0 0
{
T 3200 10900 5 10 0 1 0 0 1
pinnumber=19
T 3700 10900 5 10 0 1 0 0 1
pinseq=19
T 3100 10900 5 10 1 1 0 0 1
pinlabel=6c
}
P 3700 8500 3400 8500 1 0 0
{
T 3100 8500 5 10 0 1 0 0 1
pinnumber=22
T 3700 8500 5 10 0 1 0 0 1
pinseq=22
T 3000 8500 5 10 1 1 0 0 1
pinlabel=12c
}
T 1200 2400 8 10 1 1 0 0 1
device=DIN41612D32
T 100 100 8 10 0 1 0 0 1
numslots=0