X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-01-30_05:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 clxscore=1015 suspectscore=5 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1510270003 definitions=main-1601300175 X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=icloud.com; h=content-type : mime-version : subject : from : in-reply-to : date : content-transfer-encoding : message-id : references : to; s=4d515a; bh=xfJZk+nlJs8ejpWqtTN32b/DJdJXllfnpkAg+uGu944=; b=CWvf2f7WOjQCvG5uiFtiFWPpngzemUfqNJi+dYzs60zSnt1KB6OeoWdln8O/gzFSpQR/ 5jJgqiZjwiE1O/pO+RcR8P6OoE2b+L51e6vfBnzYS35zvllx1SEdDNeUzn6u7mgT4O4D G4LTftGLNprZ/vUb2KhHTpXXEm98g3lPHEokCmKF8H4uST4lOV5+eHmhPdK53hXBthEP 9BNyV9sdErASaG63ojnOfk/gOKHgDnfUDa+cSLliD+uf+bHuBuWE9xTnjzBy77B9oYy5 epoKSHVtvVY730to/j6Nx6377wdPZKPUx54Vvq2WBX8rbgWWBTlrDbq54LmslrXcBmrB QQ== Sun-Java-System-SMTP-Warning: Lines longer than SMTP allows found and wrapped. Content-type: text/plain; charset=utf-8 MIME-version: 1.0 (Mac OS X Mail 9.2 \(3112\)) Subject: Re: [geda-user] The nature of gEDA layers From: "Chris Smith (space DOT dandy AT icloud DOT com) [via geda-user AT delorie DOT com]" In-reply-to: <201601282134.u0SLYET7002642@envy.delorie.com> Date: Sat, 30 Jan 2016 10:49:56 +0000 Message-id: <82868AE2-27A4-44AE-92F2-47A2FAA12BB4@icloud.com> References: <20160126233332 DOT dec2f06f5c74354a3841989c AT gmail DOT com> <20160127091746 DOT 1c7a976c2752f913921688ac AT gmail DOT com> <20160127141334 DOT c738feb9dbeb54a7dec3dff8 AT gmail DOT com> <56A8F74B DOT 8080304 AT ecosensory DOT com> <56A961BC DOT 3040405 AT ecosensory DOT com> <56A9E416 DOT 8080500 AT ecosensory DOT com> <20160128200126 DOT 0fe1bb26d5c28e59d56dfd0e AT gmail DOT com> <201601282134 DOT u0SLYET7002642 AT envy DOT delorie DOT com> To: geda-user AT delorie DOT com X-Mailer: Apple Mail (2.3112) Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id u0UAo4Ji011488 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 > On 28 Jan 2016, at 21:34, DJ Delorie wrote: > >>> - Allow more/all things inside Elements, on explicit layers. >> >> This one in particular is not a small incremental step but a fairly >> drastic change. A lot of work is likely to be required to fix all the >> points that make assumptions about Elements. I'm not saying it's a >> bad idea, but it's hard. > > Yeah, hard :-) Internals-wise, the problems are many-fold: > > * The GUI needs a way of letting the user specify a BBvia > * The GUI needs to be able to *draw* a BBvia (+1 in 3D mode) > * The GUI needs a way to let the user specify which layer pairs may have BBVias > * The exporters need to know how to export a BBVia (esp drill files) > * DRC needs BBVia-specific rules > * DRC needs to know where BBVias connect to > * Find, likewise > * Report, likewise > * auto-drc needs to know when to let you go "past" a BBVia > * ...which implies a real physical stackup is needed, and enforced > * ...which implies more GUI changes > * will autoroute use BBVias? > * what about the optimizers? > * We need a way of storing BBVias in a file > * ...and storing them internally > * ...and hooking them up to all the object-oriented code throughout > * ...and hooking them up to the rtrees > * ...and teaching rtrees how to find only BBVias that intersect the layers in question > * ...and define "layers in question" accordingly > * etc > > So let's call this a "drastic incremental change" - it's doable in the > context of the current code set but it's a lot of work. Isn’t this a bit too specific? Why does PCB need to know specifically about BBVias, or any other type of via? Wouldn’t it be better to allow the concept of a ‘foreign’ connection, i.e. a connection that is made outside of PCB’s routing. You would do this by allowing the user to attach one or more connection attributes (call them net names, if you will) to a primitive; PCB would then run its existing geometrical/graphical algorithms to determine connectivity, collecting all explicit connection attributes at the same time. The final connection would then be a logical OR’ing of all graphically connected primitives with common explicit connection attributes. In this way any type of via is simply a group of primitives on a number of layers, with those on copper layers sharing a common connection attribute. DRC and auto-DRC would work as normal, with little to no change. It would also provide a mechanism to do other, similar things, like wire connections, internally connected pins, wrap-around board edge connectors, etc — it would all work in exactly the same way. In terms of GUI you would then ‘only' need: - sub layouts or groups/blocks of primitives - unique connection attribute for each ‘paste’ of a block/group. It would be up to the user to ensure that their via groups are physically manufacturable, but you could also provide a GUI mechanism to cover the common options. Surely this is much cleaner and more flexible than providing Via and BBVia specific functionality? Chris — Chris Smith