X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-TCPREMOTEIP: 207.224.51.38 X-Authenticated-UID: jpd AT noqsi DOT com From: John Doty Content-Type: multipart/mixed; boundary="Apple-Mail=_35AAD520-2B43-4539-9D6D-ACD97A03D008" Message-Id: <3A58F277-5408-4D0D-B138-CCC209397ADF@noqsi.com> Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [geda-user] pcb-rnd: parametric footprints (status update) Date: Sun, 19 Jul 2015 09:31:39 -0600 References: To: geda-user AT delorie DOT com In-Reply-To: X-Mailer: Apple Mail (2.1878.6) Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --Apple-Mail=_35AAD520-2B43-4539-9D6D-ACD97A03D008 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jul 19, 2015, at 8:19 AM, Kai-Martin Knaak = wrote: > Erich Heinzle (a1039181 AT gmail DOT com) [via=20 > geda-user AT delorie DOT com] wrote: >=20 >> in my opinion, one of the biggest hurdles/learning curves for new >> users is getting workable footprints when moving from gschem to pcb. >=20 > +1 >=20 >=20 >> Anything that simplifies generic footprint selection during design >> is good for prospective users. >=20 > The arguably easiest way would be to have footprint attributes set in=20= > the default library. Of course a default footprint cannot suite every=20= > need. But there are certainly standard footprints for standard=20 > components. They can provide a starting point which lets you do a=20 > working layout without having to dive into the depths of footprint /=20= > symbol generation issues.=20 We have a standard for footprint naming that applies to more than 95% of = components: = http://wiki.geda-project.org/geda:pcb_footprint_naming_conventions. = That=92s the place to start. I think these are what belong in library = components. But, as my layout folks remind me constantly, those are package names, = not true footprint names. The footprints depend not only on the package = but on the design rules and manufacturing process. Their names depend on = the library you=92re using. An 0805 resistor footprint may not be the same as an 0805 capacitor = footprint if you=92re being fussy. But, of course, a library symbol = shouldn=92t be that specific: the symbol creator doesn=92t generally = know how the symbol will be used downstream. So, I present a gnetlist script, map-footprints.scm, perhaps a baby step = towards DJ=92s =93database=94. Typical usage: gnetlist -m censor-fix.scm -m map-footprints.scm -m SDPCB-footprints.scm = -g pads -o Driver.pads Driver.1.sch Driver.2.sch Driver.3.sch Stack.psch SDPCB-footprints.scm defines the mapping for a specific downstream = process with a specific footprint library. Ideally, a footprint library curator with an interest in geda-gaf = compatibility would maintain the necessary maps from gEDA standard = footprint names to the actual names of the library footprints. But = perhaps Scheme expressions are not the best representation for the map. = That=92s not hard to change, of course. --Apple-Mail=_35AAD520-2B43-4539-9D6D-ACD97A03D008 Content-Disposition: attachment; filename=map-footprints.scm Content-Type: application/octet-stream; x-unix-mode=0644; name="map-footprints.scm" Content-Transfer-Encoding: 7bit (use-modules (srfi srfi-1)) ;; Constructor for list of prefixes and counts (define footprint-list '()) (define (footprint-name . x) (set! footprint-list (cons x footprint-list))) ;; Wrap gnetlist:get-package-attribute (define footprint-map-wrapped-gpa gnetlist:get-package-attribute) (define (gnetlist:get-package-attribute refdes attribute) (let ((value (footprint-map-wrapped-gpa refdes attribute))) (if (equal? attribute "footprint") (map-footprint (footprint-map-wrapped-gpa refdes "device") value) value))) ;; Find the footprint map entry or #f (define (find-footprint device footprint) (find (lambda (x) (and (equal? device (car x)) (equal? footprint (cadr x)))) footprint-list)) ;; Extract the mapped footprint name from the entry or not (define (map-footprint device footprint) (let ((f (find-footprint device footprint))) (if f (caddr f) footprint))) --Apple-Mail=_35AAD520-2B43-4539-9D6D-ACD97A03D008 Content-Disposition: attachment; filename=SDPCB-footprints.scm Content-Type: application/octet-stream; name="SDPCB-footprints.scm" Content-Transfer-Encoding: 7bit (footprint-name "RESISTOR" "0603" "RESC1608X55N") (footprint-name "RESISTOR" "0805" "RESC2012X70N") (footprint-name "RESISTOR" "1206" "RESC3216X84N") (footprint-name "RESISTOR" "2010" "RESC5025X70N") (footprint-name "RESISTOR" "2512" "RESC6332X70N") (footprint-name "CAPACITOR" "0505" "CAPC1414X145N") (footprint-name "CAPACITOR" "0603" "CAPC1608X87N") (footprint-name "CAPACITOR" "0805" "CAPC2012X135N") (footprint-name "CAPACITOR" "1206" "CAPC3216X190N") (footprint-name "CAPACITOR" "1812" "CAPC4532X270N") (footprint-name "CAPACITOR" "2225" "CAPC5664X155N") (footprint-name "POLARIZED_CAPACITOR" "2711" "CAPPC7234X317N") (footprint-name "POLARIZED_CAPACITOR" "2915" "CAPMP7238X317N") (footprint-name "DIODE" "DO213AA" "DIOMELF3517N") (footprint-name "NPN_TRANSISTOR" "UB" "SOT95P237X122-3N") (footprint-name "PNP_TRANSISTOR" "UB" "SOT95P237X122-3N") (footprint-name "PNP_TRANSISTOR" "UB" "SOT95P237X122-3N") (footprint-name "NMOS_TRANSISTOR" "TO252AA" "TO-252AA_GDS") (footprint-name "PMOS_TRANSISTOR" "TO252AA" "TO-252AA_GDS") (footprint-name "MMBFJ309" "SOT23" "SOT95P240X120-3N") (footprint-name "LM195H" "TO39" "TO254P939H660-3") (footprint-name "REFERENCE" "SO8" "SOIC127P600X175-8N") (footprint-name "DUAL_OPAMP" "SO8" "SOIC127P600X175-8N") (footprint-name "DG403" "SO16" "SOIC127P600X175-16N") (footprint-name "MAX308CSE+" "SO16" "SOIC127P600X175-16N") (footprint-name "AD5328" "TSSOP16" "SOP65P640X120-16N") (footprint-name "MAX4594DCKR" "SC70" "SOT65P210X110-5N") (footprint-name "MAX9180" "SC70-6" "SOT65P210X110-6N") (footprint-name "ADA4805-1AKSZ" "SC70-6" "SOT65P210X110-6N") (footprint-name "AD7984BRMZ" "MSOP10" "MSOP50P490X110-10N") (footprint-name "DS26LV32A" "CFP16" "SOIC127P600X175-16N") (footprint-name "Artix" "BGA484" "BGA484C100P22X22_2300X2300X260") (footprint-name "2104D60M0000YAX" "FP14" "VECTRON_2104") (footprint-name "LED" "0603" "LEDC1608X20N") (footprint-name "EXC-3BB102H" "0603" "INDC1608X100N") (footprint-name "IHLP5050FDER100M01" "IHLP5050" "IND_IHLP5050") (footprint-name "MIL4922" "MIL4922" "INDM12861X584N") (footprint-name "StackConn" "RC422-200-201-3900" "AIRBORN_RC422-200") (footprint-name "HEADER14" "HEADER14SMT2MM" "MOLEX_87832-14") (footprint-name "Header" "HEADER16" "FCI_95278-XXX-16LF") (footprint-name "747467-1" "747467-1" "HARTING_DB9_09641227235") (footprint-name "MDM9S" "MDM9S" "CONN_MDM-9S") (footprint-name "TempConn" "MDM31P" "CONN_MDM-31P") (footprint-name "Flexprint" "NK-2M2-051" "AIRBORN_NK-2M2-051") --Apple-Mail=_35AAD520-2B43-4539-9D6D-ACD97A03D008 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=iso-8859-1 John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ jpd AT noqsi DOT com --Apple-Mail=_35AAD520-2B43-4539-9D6D-ACD97A03D008--