← Back to team overview

kicad-developers team mailing list archive

Re: New Pcbnew file format.

 

Hi Wayne-


The new file format looks awesome. Very simple and readable.

Would it be possible to standardize the transformation data? Currently
there seems to be a couple different formats, some examples:

 (draw line (pts xy(76.581 47.9425) xy(77.724 47.9425)) (layer 21)
(width 0.127))

 (size 1.016 1.651)

 (at -1.524 0)

 (at (xyz 0 0 0))
 (scale (xyz 0.17 0.16 0.16))
 (rotate (xyz 0 0 0))

I think having a standard format would be very helpful for external
utilities reading/writing kicad data, like:

(object
 (position xyz(1, 1, 1))
 (rotation xyz(0, 0, 0))
 (scale xyz(1, 1, 1))
)

Or if you want shorter names, you could use the p/r/s letters for
position/rotation/scale or t/s/r for translation/rotation/scale and v3
for a 3d vector:

(object
 (t v3(1, 1, 1))
 (r v3(0, 0, 0))
 (s v3(1, 1, 1))
)

Although nowadays storage is usually not an issue, and the file can be
optionally compressed with zlib. So probably the more verbose names
are better. One of the small boards I saved was 28k in the old format,
52k with s-expr, 6k s-expr compressed.

Another alternative would be a 3x3 matrix:

(object
 (transform matrix(1, 1, 1, 0, 0, 0, 1, 1, 1))
)



Thanks-
-lajos




On Sat, Apr 7, 2012 at 2:58 PM, Miguel Angel Ajo Pelayo
<miguelangel@xxxxxxx> wrote:
> nice!!!, I will start trying it.
>
>
> 2012/4/7 Wayne Stambaugh <stambaughw@xxxxxxxxxxx>
>>
>> Oops!  To be able to save to the new file format you must add
>> -DUSE_PCBNEW_SEXPR_FILE_FORMAT=ON and -DUSE_PCBNEW_NANOMETRES=ON when
>> invoking CMake in order to build the new code.
>>
>> On 4/7/2012 2:09 PM, Wayne Stambaugh wrote:
>> > It took long than I anticipated (doesn't always?) but I just committed
>> > the code to allow saving board files to the new s-expression based file
>> > format.  I would like as many folks as possible to save their favorite
>> > board file using File->Save As to the new format and take a look at the
>> > result.  My goal is to get the final file format nailed down as quickly
>> > as possible.  There are few caveats:
>> >
>> > * I still have to convert angles to degrees from the current tenths of
>> > degrees so please ignore the fact that 270° is saved as 2700°.  This fix
>> > is coming soon.
>> >
>> > * The lead developers have decided to drop support for the old segment
>> > filled zones (SEGZONES) which have not been used in quite some time.  I
>> > will be adding a dialog warning the user that they will need to refill
>> > their zones using the current polygon filling.  I doubt this will effect
>> > very many users but I could be wrong.
>> >
>> > * I rearranged the object ordering slightly compared to the current file
>> > format.  I moved the graphic items (items with no net connection) before
>> > the modules.  This way all of the net connectable objects (modules,
>> > traces, zones, etc.) will be grouped together.
>> >
>> > Please take some time to look over the new format.  If you find a token
>> > (key word) that is not clear, let me know so we can choose names that
>> > are as human readable as possible.  Please keep in mind that the file
>> > size is going to increase dramatically over the current format so try to
>> > keep names as brief as possible while still maintaining readability.
>> > Also, if you find any indentation or other formatting errors, let me
>> > know so I can fix it.  I will be working on reading the new file format
>> > over the next few days (weeks?) so I would like to wrap up the file
>> > format definition in a reasonable amount of time.  Thanks in advance for
>> > you help.
>> >
>> > Wayne
>> >
>> >
>> > _______________________________________________
>> > Mailing list: https://launchpad.net/~kicad-developers
>> > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> > Unsubscribe : https://launchpad.net/~kicad-developers
>> > More help   : https://help.launchpad.net/ListHelp
>> >
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>
>
>
>
> --
>
> Miguel Angel Ajo Pelayo
> http://www.nbee.es
> +34 636 52 25 69
> skype: ajoajoajo
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>


Follow ups

References