delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2018/09/10/03:08:33

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Date: Mon, 10 Sep 2018 09:06:50 +0200 (CEST)
X-X-Sender: igor2 AT igor2priv
To: geda-user AT delorie DOT com
X-Debug: to=geda-user AT delorie DOT com from="gedau AT igor2 DOT repo DOT hu"
From: gedau AT igor2 DOT repo DOT hu
Subject: [geda-user] slots and 2d drafting (was: Re: Component Cut-outs in PCB)
Message-ID: <alpine.DEB.2.00.1809100842580.21900@igor2priv>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
Reply-To: geda-user AT delorie DOT com

Hi Stephen,

I'm replying to this old thread started at:

http://www.delorie.com/archives/browse.cgi?p=geda-user/2015/07/22/14:31:22

Stephen Besch <sbesch AT buffalo DOT edu> wrote:

> Several years back there was a lot of discussion about the occasional 
> need for odd shaped cut-outs. Even though several suggestions were made

Yup, I've found some of the early discussions and feature reqs tracing 
back to 2005 and 2007:

http://archives.seul.org/geda/user/Feb-2005/msg00050.html

http://archives.seul.org/geda/user/Nov-2007/msg00154.html

> none worked - in some cases at all, or even when they did the results 
> were marginal.  This is still a problem today. The only work around is

I have good news for you! Following our good old tradition at pcb-rnd, 
fixing decade old misfeatures, I've recently added:

- a minor layer model extension so we can properly capture the little 
differences between board outline and slots and also understand which 
layers would be plated and unplated; this is all explicit, there's no 
trickery and hackery, pcb-rnd just understands these details from now on

- support for slots in padstacks - that is, you can make an oval/oblong 
"pin", with a short plated slot in it, for your power jack connector.

Example, with screenshot:

http://repo.hu/cgi-bin/pool.cgi?cmd=show&node=slot_ann

> to draw them directly on some unused layer - for example "Spare" works 
> for me. This is however not a really good solution. Nevertheless it's 
> better than drawing them on the outline layer. First off, every board 
> shop that I deal with want cut-outs in a separate gerber file. If you 
> use the outline layer then you can't have a separate board layout - 
> unless of course you put the outline on some other unused layer.

I agree. Thus pcb-rnd now allows you to set up each of these in separate 
layer groups. At the end, multi-file exporters would normally output each 
layer group in a separate file, but with our cam plugin you can instruct 
them to merge groups.

So it's better to have multiple layers and draw cutouts separately from 
board outline and then if your fab requires every routing info in one 
file, it's easy to tell pcb-rnd to merge them using the cam syntax on 
export.

> However, this solves only part of the problem. As long as the cutout is 
> only straight lines it's simple. If you need arcs - or worse, full 
> circles or linked arcs it gets really hard. This is largely due to 
> problems with the ARC tool in PCB:  1) you can't control/change Radius; 
> 2) you can't control degrees of arc, and 4) you can't control start 
> angle. This is really weird because the arc[...] item in PCB allows 
> control of all of these items.

This also got fixed in pcb-rnd long ago:

- if you are using the GUI, you have a property editor dialog that shows 
all properties of the selected objects. This includes radius, stard angle, 
delta angle of arc. For screenshot see: 
http://repo.hu/cgi-bin/pool.cgi?cmd=show&node=propedit

- from cli you have the propset() action that can change any of these 
properties; for (selectively) selecting your arcs you can use the query() 
action that provides a minimalistic query language for picking which 
objects to select, looking at object properties. The query language has 
access to radius and start and delta angles too, so you can search and 
select by those.

> 
> I have found only one way to get this to work. First select the target 
> layer. Then let's say you have a cutout consisting of a closed loop that 
> requires 6 linked arcs and 2 lines. Just draw them on the selected layer 
> (Spare for example) more or less where you think that they will need to 
> be. The arcs will have to be in more or less random locations owing to 
> the severe limitations of the Arc tool.

By the last stable release, pcb-rnd also got a 2d drafting plugin. It has 
a trim() action. You can draw your lines and arcs, make sure they 
intersect and then just trim off the excess segments beyond the 
intersection point. This is guaranteed to result in objects with matching 
endpoints.

<snip>

> it has to be there anyway or PCB will throw an error. In fact you must 
> be extremely careful when editing these parameters since PCB is very 
> intolerant of formatting errors.

Then you'd probably like pcb-rnd's native file format, lihata, where we 
have explicitly named field (no positional parameters) and we tolerate 
(and can even preserve on a load/save cycle) your numerical format (and 
comments and indentation).

<snip>

> This is extremely tedious and annoying but when you are desperate for a 
> cutout I'm afraid that it's the only way.

There's another, easier way, tho: just use the right tool that supports 
the features you need!


HTH,

Igor2

- Raw text -


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