X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Subject: Re: [geda-user] A new PCB file format To: geda-user AT delorie DOT com References: From: "Dan McMahill (dan AT mcmahill DOT net) [via geda-user AT delorie DOT com]" Message-ID: <568E93BC.9010804@mcmahill.net> Date: Thu, 7 Jan 2016 11:35:08 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1452184520; bh=CqHb/FJ7SF6Hvsuj1iqZ7mbWBVMWfBtSVM0DHERN3JI=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=Ft5hC3UroFKMdIglHFrsvnlOgQg0lpX8a4F/M3Chqr8ZzWuQqwKhzmwzWSWLWrh2I 4+5foMJ5lvqBhHHO5IEWpGvJI9pIKw1RdaJ4Rtqt+3KuQaizUtNwB4PM3DPvJDhTno OS2Eo0f0HAWwyBQvb85WNAe/uSo2c1k2M1nkUFW5KWUq7FJYjTQ4OMDLzohz7ucQX3 00sokK4VYWZNG3Zx/j/DP+7HA5QUnVocVz8+KMAPpvEm6ZSvrzL2q+hSKbUrx0Pi8z iNk0bYM3FD2ZYLA2sc5mWRmTSepgIxMOUW0VLOxO76sJQVVVeMA3M1XTz9tltITgOw ZqrKPNOG7FSRQ== 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 1/7/2016 12:20 AM, Marvin Dickens (mpdickens AT gmail DOT com) [via geda-user AT delorie DOT com] wrote: > Hi Everybody, > > If your looking at tuning up or otherwise redesigning the file format > for PCB > I would really like gschem to understand the PCB file format and visa-versa. > What I would like to be able to do is have a PCB layout up at the same > time I > have the schematic for that design up in gschem. If I select any part or > portion > of the layout in PCB that part or portion is visually highlighted in > gschem and > visa-versa. > people probably aren't aware of this, but I prototyped that functionality and the code has been in gschem for 5 or 6 years now. You can select an element in the schematic and have it select in pcb. I may have even gotten the opposite working too but can't recall. Feel free to try it out and move the ball forwards. Maybe it is time to mention one of my wishes and what steps I had taken to get there. gschem has scheme embedded in it. Setting aside the question of if scheme is the right language, the important piece is we have a script interface into the compiled portion. With the script interface, you can define additional menus and menu items. You can also add hooks that get executed when things happen. What sort of thing? Component Selection! The idea is gschem stays flexible and not tied to a particular backend but you provide enough of an API (scheme or other) to where you can load a module at run-time which puts gschem into a mode targetted at a particular backend (pcb, spice, gnucap, etc). By isolating the details of the particular backend into a module which is loaded when the user requests it, we can do all sorts of cool things. Picture a simulation environment where the simulator module has a list of all the supported analysis types and the associated parameters. Now suppose gschem includes a dynamic attribute editor dialog. The plug in just says "here gschem, here is a list of simulations and the setup variables they need, give me a dialog for the user". At least some code has been written to make this possible. Note that we have an existance proof in PCB for that. The export dialog boxes are built on the fly based on a particular struct that the HIDs use. Anyway, take a look at: gschem/scheme/pcb.scm load it and try. It is not perfect for sure but I think it was a step in the right direction. Again, one of the guiding principles was to make sure gschem includes functions that are needed (like a file selection dialog, hooks to select/deselect, generic attribute editor dialog, etc). Then use those features to allow a particular flow to be customized. This maintains the current workflows, maintains flexibility, doesn't tie gschem to any particular backend, but ENABLES flow specific functionality as add in's. One barrier is the one of nets. gschem unfortunately does not know about connectivity (or didn't last I checked). That makes it harder to select a net on the schematic and try to then select that rats in a pcb layout, plot the simulated voltage on that node, or other things of this nature. This is a failure in the data model used by gschem. Good data model is important. More so than the file format used to represent the data. -Dan