This file is indexed.

/usr/share/pcb/m4/bourns.inc is in pcb-common 20110918-9.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# -*- m4 -*-
#
# $Id$
#                            COPYRIGHT
#
#   PCB, interactive printed circuit board design
#   Copyright (C) 2003, 2005 Dan McMahill
#
#   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 2 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, write to the Free Software
#   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# 
# 
#
#  Bourns Specific Footprints


# Surface mount trim pots, such as the 3224 series.
#
# $1: canonical name
# $2: name on PCB
# $3: value
# $4: pin 1,3 width (1/100 mm)     width is in the direction parallel to the
# $5: pin 1,3 length (1/100 mm)    line which intersects pins 1 and 3
# $6: pin 2 width (1/100 mm)
# $7: pin 2 length (1/100 mm)
# $8: spacing from pad center to pad center between 2 and 1,3 (1/100 mm)
# $9: spacing from pad center to pad center between 1 and 3 (1/100 mm)
# $10: package width (1/100 mm)

define(`PKG_BOURNS_GENERIC_POT',
       `
	# pin 1,3 width, length (1/100 mm)
	define(`W13',  `$4')
	define(`L13',  `$5')

	# pin 2 width, length (1/100 mm)
	define(`W2',  `$6')
	define(`L2',  `$7')

	# spacing from pad center to pad center between 2 and 1,3 (1/100 mm)
	define(`S12', `$8')
	# spacing from pad center to pad center between 1 and 3 (1/100 mm)
	define(`S13', `$9')
	
	# package width (1/100 mm)
	define(`WIDTH', `$10')

	# silkscreen width (mils)
	define(`SILKW', `10')

	# how much space to leave around the part before the
	# silk screen (mils)
	define(`SILKS', `8')
	# lower right corner for silk screen (mil)
	ifelse(eval(L2 > L13), 1
		define(`SILKX', `eval((S12+L2)*50/254 + SILKS + SILKW/2)'),
		define(`SILKX', `eval((S12+L13)*50/254 + SILKS + SILKW/2)')
	)
	define(`SILKY', `eval((WIDTH/2)*100/254 + SILKS + SILKW/2)')

	# refdes text size (mil)
	define(`TEXTSIZE', 100)
	# x,y coordinates for refdes label (mil)
	define(`TEXTX', -SILKX)
	define(`TEXTY', `eval(-SILKY - 10 - TEXTSIZE/2)')

Element(0x00 "$1" "`$2'" "$3" TEXTX TEXTY 0 TEXTSIZE 0x00)
(

# pin 1
ifelse(0, eval(W13>L13),
	# Pads which have the perpendicular pad dimension less
	# than or equal to the parallel pad dimension 	
	Pad(eval( (S12 - L13 + W13)*50/254) eval( S13*50/254) 
            eval( (S12 + L13 - W13)*50/254) eval( S13*50/254) eval(W13*100/254) "1" 0x100)
        ,
	# Pads which have the perpendicular pad dimension greater
	# than or equal to the parallel pad dimension 
	Pad(eval( (S12 + L13)*50/254) eval((-S13 - W13 + L13)*50/254)
            eval( (S12 + L13)*50/254) eval((-S13 + W13 - L13)*50/254) eval(L13*100/254) "1" 0x100)
	)

# pin 2
ifelse(0, eval(W2>L2),
	# Pads which have the perpendicular pad dimension less
	# than or equal to the parallel pad dimension 	
	Pad(eval( (-S12 - L2 + W2)*50/254) 0 
            eval( (-S12 + L2 - W2)*50/254) 0 eval(W2*100/254) "2" 0x100)
        ,
	# Pads which have the Y (width) pad dimension greater
	# than or equal to the X (length) pad dimension 
	Pad(eval( -S12*50/254) eval((- W2 + L2)*50/254)
            eval( -S12*50/254) eval((  W2 - L2)*50/254) eval(L2*100/254) "2" 0x100)
	)

# pin 3
ifelse(0, eval(W13>L13),
	# Pads which have the perpendicular pad dimension less
	# than or equal to the parallel pad dimension 	
	Pad(eval( (S12 - L13 + W13)*50/254) eval(-S13*50/254) 
            eval( (S12 + L13 - W13)*50/254) eval(-S13*50/254) eval(W13*100/254) "3" 0x100)
        ,
	# Pads which have the perpendicular pad dimension greater
	# than or equal to the parallel pad dimension 
	Pad(eval( (S12 + L13)*50/254) eval((-S13 - W13 + L13)*50/254)
            eval( (S12 + L13)*50/254) eval((-S13 + W13 - L13)*50/254) eval(L13*100/254) "3" 0x100)
	)

# Silk screen around package
ElementLine( SILKX  SILKY  SILKX -SILKY SILKW)
ElementLine( SILKX -SILKY -SILKX -SILKY SILKW)
ElementLine(-SILKX -SILKY -SILKX  SILKY SILKW)
ElementLine(-SILKX  SILKY  SILKX  SILKY SILKW)

# Mark at the center of the part
Mark(0 0)
)')

# -------------------------------------------------------------------

# EXTRACT_BEGIN


#
##  Bourns 3224 Series SMT Trim Pot
#

define(`PKG_BOURNS_3224G',  `PKG_BOURNS_GENERIC_POT(`$1',`$2',`$3',
	`127', `127', `200', `127', `520', `230', `480')')
define(`PKG_BOURNS_3224J',  `PKG_BOURNS_GENERIC_POT(`$1',`$2',`$3',
	`130', `200', `200', `200', `400', `230', `480')')
define(`PKG_BOURNS_3224W',  `PKG_BOURNS_GENERIC_POT(`$1',`$2',`$3',
	`130', `160', `200', `160', `290', `254', `480')')
define(`PKG_BOURNS_3224X',  `PKG_BOURNS_GENERIC_POT(`$1',`$2',`$3',
	`132', `190', `200', `190', `510', `254', `480')')

# EXTRACT_END