www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2025/01/15/12:55:03

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 50FHqh1E3980336
Authentication-Results: delorie.com; dmarc=none (p=none dis=none) header.from=delorie.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=delorie.com
X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 50FHqg7H3980315
Authentication-Results: delorie.com; dmarc=none (p=none dis=none) header.from=aspodata.se
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=aspodata.se
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 50FHqg7H3980315
X-Recipient: geda-user AT delorie DOT com
X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.7+dev
X-Exmh-Isig-CompType: comp
X-Exmh-Isig-Folder: inbox
From: "karl AT aspodata DOT se [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
To: geda-user AT delorie DOT com
Subject: [geda-user] fp generator update
Mime-Version: 1.0
Message-Id: <20250115175221.C8430807C585@turkos.aspodata.se>
Date: Wed, 15 Jan 2025 18:52:21 +0100 (CET)
X-Virus-Scanned: ClamAV using ClamSMTP
Reply-To: geda-user AT delorie DOT com

  Hello all,
 I have updated my footprint generator:
https://aspodata.se/git/openhw/share/pcb/gen.pl
 so that it doesn't put silk in the mask gap.
 Example result:
https://aspodata.se/git/openhw/share/pcb/_th_radial/kingbright_T-1_5mm_na.fp

///

 I do that by saving a list of bounding boxes, one for each pin or pad.
 Silk lines have round ends and joins, so I can enlarge thoose boxes
 with the silk lines radius and that resulting enlarded box is used as
 a limit for where the silk might be drawn.

 So to make a fp one can do (all measurements in mm)

  element_start("a.fp", "", "test", "M?", 100); # filename, doc, name, refdes, value
  pin( 1, 0, 0.5, 1); # x, y, drill, thickness, pin#
  my @bbw = bb_enlarge($silk_w/2, @bounding_box);
  silk_circle([1,1], 1, 0, 360, \@bbw); # center [x,y], radi, angle, sweep, bounding box refs.
  element_stop();

 Since it is in a programming language (perl) you can easily
 make a row of pin/pad like
 for (my $x = 0; $x < 10; $x+=2) {
   pin( $x, 0, 0.5, 1); # x, y, drill, thickness, pin#
 }

///

Unfortunately gen.pl has grown to a considerable size and I should
split it up.

Regards,
/Karl Hammar


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019