On Tue, Dec 6, 2016 at 4:56 PM, Wayne Stambaugh <stambau...@gmail.com> wrote:
> On 12/6/2016 2:22 AM, Kevin Bortis wrote:
>> Hi
>>
>> I try to figure out how it would be possible to create a central
>> storage for symbols, footprints and other design data. With central I
>> mean something like a design data server, where it is possible to
>> assign workflows with sign-offs, make proper versioning, assign order
>> numbers and define second sources. (PDM ultra light for KiCad).
>>
>> I currently work on some projects where we need to be sure that each
>> change on current products gets a proper review and documentation.
>> This always starts with a "Change Request", followed by a "Change
>> Order". To make sure everything is right, we currently use a very
>> expensive EDA suite with even more expensive PDM[2] software. Even if
>> this seems overkill for private projects, a little more lighter
>> version of this workflow makes sens for every company and even for
>> some bigger private projects. I helps to grantees some quality and
>> data integrity.
>
> I'm fine with this but I will resist anything that imposes a work flow
> on users.  Features like this tend to be very personal so I would
> request that it be implemented as a plugin or a python script.  Python
> scripting would require the schematic code to be swigged.  It's on our
> list of things to do but it wont happen until after the new schematic
> and symbol library file formats are completed.
>

Almost all logic would be implemented on server side inclusive
workflow stuff. Even when the topic sounds complex, the client does
not need a lot to support proper integration in such a tool. The
"normal" workflow would not be touched in any case. Implemented as a
plugin or not I see only the following things that would change:

  1. Additional KiCad settings for activating and setting "network
sources" for design data (One or more)

The following points should only be accessible if the settings in 1.
are modified and at least one "network source" is activated.

  2. Additional menu to verify data integrity of local cached data
  3. Additional context menu items for different actions

As you see, a normal user would in any case not be affected.
Disclaimer: The following statements are made from someone that has
just started to analyse the KiCad file formats and design decisions.
At some points I could be totally wrong or write just nonsense.

This sounds promising. I think you refer to the SWEET data format. [4]
I saw some commits and mailing list entries from 2011. Are there any
newer specifications or discussions that I have overseen? The drawing
in [3] does suggest, that there is even planned to add some remote
http library stuff. When I read the SWEET spec, there is a NAME_HINT
parameter specified that can be in different formats depending on the
context from which the SWEET part came from. To be exact, the file
format for all parts stored in a schematic and layout file need the
following features:

  * Object-ID that is the same in schematic and layout file. This must
be different to the designator and unique. It helps to quickly find
the same part in schematic and layout and allows neat features like
simultaneous highlighting, back and fort annotation and other great
stuff. This could be used to get around file based net list generation
and import to.
  * Definition of the origin or "where is the original stored". It
will be used to check the remote location if the part has a new
version or if the local cached version is unmodified. (Just hash and
compare S-expression blocks?)

Based on [4], i would then ask for two additional and optional
parameters: "objectid" and "origin". The "objectid" would be assigned
on the fly for every part placed on a schematic sheet. It will stay
the same, even if a property like the designator changes. The
parameter gets passed to the layout the same way other properties get
passed through. It would change however if the part gets copied. The
"origin" parameter would then be something like:
remote1/16fd2706-8baf-433b-82eb-8c7fada847da . If not htere the part
is not considered as versioned. The same two parameters are needed not
only for parts, but for schematics, footprints to. These two
properties get assigned during placement and do not preexist in the
library.

I see only one single glitch where it gets a little weird. The file
format for the footprint as descibed in [5] does directly specfiy the
3D-model whithin the footprint module itself. For network based
libraries, the 3D-model would be saved as a separate model (same level
like schematic symbol, footprint or a datasheet) in the database. This
means that after the footprint is created and 3D-model is placed, the
user would then first commit the 3D-model get an ID back for it (if
not already there) and then store only the reference to this object
along the at, scale and rotate position. I have not found that the
"model" property allows parameters like
remote1/32fd2706-8baf-433b-82eb-8c7fada847ab instead of a local file
source . To get around, there would be a possibility to just at an
other optional parameter "origin" at the same level as at, scale and
the rotate parameter.

  [3] https://github.com/KiCad/kicad-source-mirror/blob/master/new/drawing.png
  [4] 
https://github.com/KiCad/kicad-source-mirror/blob/master/new/sweet_spec_for_schematic_parts_EN.fodt
  [5] 
http://bazaar.launchpad.net/~stambaughw/kicad/doc-read-only/download/head:/1115%4016bec504-3128-0410-b3e8-8e38c2123bca:trunk%252Fkicad-doc%252Fdoc%252Fhelp%252Ffile_formats%252Ffile_formats.pdf/file_formats.pdf


>>
>> After retrival from the central storage, I would save the symbol as
>> libs/somelibrary/symbol1 locally in the project tree. This would have
>> almost no impact on the KiCad code I think. A command can be
>> implemented to verifiy data integrity by getting file hashes of each
>> component from the central server and checking if everything is in
>> sync. A second command to check if a newer version of the symbol is
>> available with the option to update it. To make this work, KiCad would
>> need to track the origin of every 3D model, symbol, footprint...
>>
>> I would appreciate if some one has some input on this topic.
>>
>>   [1] https://lists.launchpad.net/kicad-developers/msg26901.html
>>   [2] https://en.wikipedia.org/wiki/Product_data_management
>>
>> Regards
>> Kevin
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to