Re: [Kicad-developers] New Pcbnew file format.

2012-04-16 Thread lajos kamocsay
Hi Wayne-

I deleted the build directory, compiled from scratch and now the issue is
gone. So it must have been a cmake cache problem as you suspected. Lesson
learned ;)

Thanks
Lajos
On Apr 15, 2012 11:21 AM, Wayne Stambaugh stambau...@verizon.net wrote:

 On 4/15/2012 11:08 AM, lajos kamocsay wrote:
  Thanks, Wayne. It might be a configuration cache issue. I'll rebuild it
  tonight when my real world project is done (bathroom tiling).

 I've been there and done that!  Several times.  Have fun!

 
  In general I find the cmake caching very frustrating. The only reliable
  way I found to make sure that the configuration's correct is to delete
  the whole build folder and rebuild from scratch. Or is there a better
 way?

 Not that I have found.  Generally I keep separate build configurations
 around depending on what I am working on.  This is not a terribly
 efficient use of disk space but it prevents the caching problem and I
 know what to expect for each configuration.  Maybe some one else has a
 better idea.

 Wayne

 
  Thanks-
  -lajos
 
  On Apr 15, 2012 10:57 AM, Wayne Stambaugh stambau...@verizon.net
  mailto:stambau...@verizon.net wrote:
 
  On 4/14/2012 11:18 PM, lajos kamocsay wrote:
   Hi-
  
  
   When I build revno 3511, the tracks that I draw in pcbnew are huge
   (wider than the default page) (screenshot attached).
   I use these flags for cmake:
  
   cmake ../kicad.latest -DKICAD_STABLE_VERSION=ON
  -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=/usr
  
   Am I missing a flag? Or is this just a temporary bug?
 
  It could be.  Are you sure that USE_PCBNEW_NANOMETRES=OFF in your
  CMakeCache.txt?  If USE_PCBNEW_NANOMETRES=ON, than you should expect
  some object and units scaling to be broken.  I have already fixed the
  page reference and title block, grid, and zoom scaling for
 nanometers in
  my development branch which I hope to commit some time today.
 
  FYI when building the testing branch, use
 -DKICAD_TESTING_VERSION=ON.  I
  believe -DKICAD_STABLE_VERSION=0N should only be used when building
 the
  stable branch of KiCad.  Although that shouldn't effect the Pcbnew
  internal units.
 
  I cannot duplicate this problem so it may be a build configurations
  issue.
 
  Wayne
 
  
  
   Thanks-
   -lajos
  
  
  
   On Fri, Apr 13, 2012 at 1:42 PM, Dick Hollenbeck d...@softplc.com
  mailto:d...@softplc.com wrote:
   On 04/13/2012 10:18 AM, Wayne Stambaugh wrote:
   On 4/13/2012 8:39 AM, Dick Hollenbeck wrote:
   On 04/13/2012 02:04 AM, jean-pierre charras wrote:
   Le 12/04/2012 20:53, Wayne Stambaugh a écrit :
   On 4/12/2012 9:05 AM, Dick Hollenbeck wrote:
   On 04/11/2012 06:41 PM, Dan Chianucci wrote:
   This new format looks great, I have a few comments/questions
  
 1) in some spots like module pads there is
  (netnutNum  netName) and in other
   spots like track segments it only has (netnetNum).
 2)What do the edge tags represent in the Module
   Exactly.  It might not be the first English tag that comes
  to mind for this. eh?  I'm not
   even sure these are limited to edges.
   This is one of those areas where I am relying on the
 knowledge of
   someone who know about the BOARD_ITEM internals that I do.
   If there is
   a more descriptive name or way to present this information, I
 am
   certainly open to suggestion.
  
 3)Draw arc has tags start and end.  I'm not sure if
  this has changed, but the file
   format before this held onto the center of the arc, and an
  endpoint of the arc...
The file format definitions also say it holds onto
  the starting point and the
   ending point, which caused a lot of headaches when I wrote
  my file format converter
   I've saved the object information as defined in the current
  file format
   document as closely as possible.  If arcs are defined this
 way in
   current file format, then they will be defined that way in
  the new file
   format.  Otherwise, some transformation will have to be made
 when
   reading the file.
  
 4) What are the two (at) tags in module_text for? why
  not only 1
  Is one a position relative to the module and
  one a position relative to
   the board?
   Good question.  It appears that TEXTE_MODULE::m_Pos0 which is
  relative
   to the anchor position of the module is the only position
  saved in the
   current format and EDA_TEXT::m_Pos is the absolute position
  on the board
   which I'm guessing is determined from the position of the
  module.  I'm
   not sure why it was done this way.  Is there any reason not
  to dump
   TEXTE_MODULE::m_Pos0 and just use EDA_TEXT::m_Pos?
   All 

Re: [Kicad-developers] New Pcbnew file format.

2012-04-16 Thread Brian Sidebotham
On 16 April 2012 18:06, lajos kamocsay panka.nos...@gmail.com wrote:
 Hi Wayne-

 I deleted the build directory, compiled from scratch and now the issue is
 gone. So it must have been a cmake cache problem as you suspected. Lesson
 learned ;)

 Thanks
 Lajos


Sorry, I'm coming to the party late... Did you try:

make rebuild_cache

It rebuilds cmake's cache.

Best Regards,

Brian.

___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-16 Thread lajos kamocsay
Thanks for the tip Brian, I'll try that next time.
On Apr 16, 2012 1:36 PM, Brian Sidebotham brian.sidebot...@gmail.com
wrote:

 On 16 April 2012 18:06, lajos kamocsay panka.nos...@gmail.com wrote:
  Hi Wayne-
 
  I deleted the build directory, compiled from scratch and now the issue is
  gone. So it must have been a cmake cache problem as you suspected. Lesson
  learned ;)
 
  Thanks
  Lajos
 

 Sorry, I'm coming to the party late... Did you try:

 make rebuild_cache

 It rebuilds cmake's cache.

 Best Regards,

 Brian.

___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-15 Thread Wayne Stambaugh
On 4/14/2012 11:18 PM, lajos kamocsay wrote:
 Hi-
 
 
 When I build revno 3511, the tracks that I draw in pcbnew are huge
 (wider than the default page) (screenshot attached).
 I use these flags for cmake:
 
 cmake ../kicad.latest -DKICAD_STABLE_VERSION=ON -DCMAKE_BUILD_TYPE=Release \
   -DCMAKE_INSTALL_PREFIX=/usr
 
 Am I missing a flag? Or is this just a temporary bug?

It could be.  Are you sure that USE_PCBNEW_NANOMETRES=OFF in your
CMakeCache.txt?  If USE_PCBNEW_NANOMETRES=ON, than you should expect
some object and units scaling to be broken.  I have already fixed the
page reference and title block, grid, and zoom scaling for nanometers in
my development branch which I hope to commit some time today.

FYI when building the testing branch, use -DKICAD_TESTING_VERSION=ON.  I
believe -DKICAD_STABLE_VERSION=0N should only be used when building the
stable branch of KiCad.  Although that shouldn't effect the Pcbnew
internal units.

I cannot duplicate this problem so it may be a build configurations issue.

Wayne

 
 
 Thanks-
 -lajos
 
 
 
 On Fri, Apr 13, 2012 at 1:42 PM, Dick Hollenbeck d...@softplc.com wrote:
 On 04/13/2012 10:18 AM, Wayne Stambaugh wrote:
 On 4/13/2012 8:39 AM, Dick Hollenbeck wrote:
 On 04/13/2012 02:04 AM, jean-pierre charras wrote:
 Le 12/04/2012 20:53, Wayne Stambaugh a écrit :
 On 4/12/2012 9:05 AM, Dick Hollenbeck wrote:
 On 04/11/2012 06:41 PM, Dan Chianucci wrote:
 This new format looks great, I have a few comments/questions

   1) in some spots like module pads there is (netnutNum  
 netName) and in other
 spots like track segments it only has (netnetNum).
   2)What do the edge tags represent in the Module
 Exactly.  It might not be the first English tag that comes to mind for 
 this. eh?  I'm not
 even sure these are limited to edges.
 This is one of those areas where I am relying on the knowledge of
 someone who know about the BOARD_ITEM internals that I do.  If there is
 a more descriptive name or way to present this information, I am
 certainly open to suggestion.

   3)Draw arc has tags start and end.  I'm not sure if this has 
 changed, but the file
 format before this held onto the center of the arc, and an endpoint of 
 the arc...
  The file format definitions also say it holds onto the 
 starting point and the
 ending point, which caused a lot of headaches when I wrote my file 
 format converter
 I've saved the object information as defined in the current file format
 document as closely as possible.  If arcs are defined this way in
 current file format, then they will be defined that way in the new file
 format.  Otherwise, some transformation will have to be made when
 reading the file.

   4) What are the two (at) tags in module_text for? why not only 1
Is one a position relative to the module and one a 
 position relative to
 the board?
 Good question.  It appears that TEXTE_MODULE::m_Pos0 which is relative
 to the anchor position of the module is the only position saved in the
 current format and EDA_TEXT::m_Pos is the absolute position on the board
 which I'm guessing is determined from the position of the module.  I'm
 not sure why it was done this way.  Is there any reason not to dump
 TEXTE_MODULE::m_Pos0 and just use EDA_TEXT::m_Pos?
 All items inside a MODULE have a position on board (m_Pos, m_Start ...
 and the corresponding parameter relative to the module anchor.
 The reason is m_Pos *should always* be calculated from m_Pos0 after a 
 rotation transform,
 due to rounding issues.
 Only 90 degrees rotations do not have rounding issues.
 Therefore, after some rotations (for instance 10 rotations each for 9 
 degrees),
 when using only m_Pos, there is a significant error between one 90 deg 
 rotation
 and 10 x 9 deg rotations.

 Because absolute coordinates are calculated from relative coordinates,
 only relative coordinates need to be saved on files.
 (absolute position and rotation of the MODULE are known)

 I have not a strong opinion about how flipped footprints should store 
 relative coordinates,
 but I am thinking the stored values (coordinates, text mirroring, layers 
 and layer masks) could be
 stored as non flipped values, i.e. a flipped footprint is un-flipped, 
 saved and flipped (restored).
 Actual values will be restored after reading the file.

 Eeschema stores (in lib) shapes in position 0, orientation/mirroring 0,
 and stores the geometric transform for each component.

 This is perhaps not a bad idea to do the same in Pcbnew.

 Some other files format use the same thing,
 and this could make file format conversion more easy.


 We seem to have no extraneous C++ objects.  And this conversation should 
 not diverge into
 changing C++ objects, but should remain largely focused on file format.


 However, I will not let go of the importance of this format's effect on 
 our ability to
 perform clipboard operations later.  From day one going back 4-5 years 
 ago, this has
 always been a main objective 

Re: [Kicad-developers] New Pcbnew file format.

2012-04-13 Thread Solonen Vesa
 Like so many suggestions, they are often good ideas that never get done, 
 because they do
 not rise to a sufficient level of need within an individual capable of doing 
 the work.

 This is especially true in free software, which in fact is never free.

Feature bounties might be a workable solution for boring work. I'm quite 
confident I'm not he only one doing SMPS design on KiCad, and would be willing 
to invest about two hours worth at your rate for a few features (just 
guesstimating from senior sw developers contracting rates). I also feel that 
that two hours is quite small compensation for the actual effort going in, so I 
see there is a need for other investors.

 Another thing you can do with this is add it to the bug list as a wishlist 
 item.

Will do that.

 Otherwise it might get lost on the mailing list.  It is not something we can 
 simply add to
 the board  file, and then hope that PCBNEW magically understands as it reads 
 it.

My intention was not to demand any implementation, but just find ways to 
support the feature in the file format currently being defined. Reasoning is 
commenting on the new file format to avoid a second design round (which would 
probably get a lot of opposition) and save users from the hassle on multiple 
format versions. Error messages like This feature is supported on file format 
version 1.0.2.003b+ might get annoying...

 I'm sure you understand that this is a minor hi-jacking of the subject 
 thread, but not a
 bad idea.

The only reason of pushing it in this thread is above, even though I agree it 
may have been better to start separate feature thread.

I would also like to thank you, Wayne, JP and others for great advances in 
KiCad.
-Vesa
___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-13 Thread Dick Hollenbeck
On 04/13/2012 02:04 AM, jean-pierre charras wrote:
 Le 12/04/2012 20:53, Wayne Stambaugh a écrit :
 On 4/12/2012 9:05 AM, Dick Hollenbeck wrote:
 On 04/11/2012 06:41 PM, Dan Chianucci wrote:
 This new format looks great, I have a few comments/questions

   1) in some spots like module pads there is (netnutNum  netName) 
 and in other
 spots like track segments it only has (netnetNum).
   2)What do the edge tags represent in the Module
 Exactly.  It might not be the first English tag that comes to mind for 
 this. eh?  I'm not
 even sure these are limited to edges.
 This is one of those areas where I am relying on the knowledge of
 someone who know about the BOARD_ITEM internals that I do.  If there is
 a more descriptive name or way to present this information, I am
 certainly open to suggestion.

   3)Draw arc has tags start and end.  I'm not sure if this has 
 changed, but the file
 format before this held onto the center of the arc, and an endpoint of the 
 arc...
  The file format definitions also say it holds onto the starting 
 point and the
 ending point, which caused a lot of headaches when I wrote my file format 
 converter
 I've saved the object information as defined in the current file format
 document as closely as possible.  If arcs are defined this way in
 current file format, then they will be defined that way in the new file
 format.  Otherwise, some transformation will have to be made when
 reading the file.

   4) What are the two (at) tags in module_text for? why not only 1
Is one a position relative to the module and one a position 
 relative to
 the board?
 Good question.  It appears that TEXTE_MODULE::m_Pos0 which is relative
 to the anchor position of the module is the only position saved in the
 current format and EDA_TEXT::m_Pos is the absolute position on the board
 which I'm guessing is determined from the position of the module.  I'm
 not sure why it was done this way.  Is there any reason not to dump
 TEXTE_MODULE::m_Pos0 and just use EDA_TEXT::m_Pos?
 All items inside a MODULE have a position on board (m_Pos, m_Start ...
 and the corresponding parameter relative to the module anchor.
 The reason is m_Pos *should always* be calculated from m_Pos0 after a 
 rotation transform,
 due to rounding issues.
 Only 90 degrees rotations do not have rounding issues.
 Therefore, after some rotations (for instance 10 rotations each for 9 
 degrees),
 when using only m_Pos, there is a significant error between one 90 deg 
 rotation
 and 10 x 9 deg rotations.

 Because absolute coordinates are calculated from relative coordinates,
 only relative coordinates need to be saved on files.
 (absolute position and rotation of the MODULE are known)

 I have not a strong opinion about how flipped footprints should store 
 relative coordinates,
 but I am thinking the stored values (coordinates, text mirroring, layers and 
 layer masks) could be
 stored as non flipped values, i.e. a flipped footprint is un-flipped, saved 
 and flipped (restored).
 Actual values will be restored after reading the file.

 Eeschema stores (in lib) shapes in position 0, orientation/mirroring 0,
 and stores the geometric transform for each component.

 This is perhaps not a bad idea to do the same in Pcbnew.

 Some other files format use the same thing,
 and this could make file format conversion more easy.



We seem to have no extraneous C++ objects.  And this conversation should not 
diverge into
changing C++ objects, but should remain largely focused on file format.


However, I will not let go of the importance of this format's effect on our 
ability to
perform clipboard operations later.  From day one going back 4-5 years ago, 
this has
always been a main objective of the s-expression format of mine.


Within a BOARD C++ object, there are two kinds of text C++ objects, two kinds 
of line C++
objects, two kinds of arc objects, etc, with one relative to the board and one 
relative to
the module/footprint.  This is status quo.


We need:


1) to differentiate these later when pulling them off the clipboard,
2) to create different C++ objects at file load and at clipboard parsing time.
3) to augment them with different trailing s-expression elements.


So I suggest:

pcb_text, pcb_line, pcb_arc, pcb_circle, pcb_poly


fp_text, fp_line, fp_arc, fp_circle, fp_poly


This provides symmetry in naming yet provides the freedom to give different 
trailing
attributes in the expression, again, used both for *clipboard* and *.kicad_pcb 
file.

It also reduces the number of parsing tokens down from (draw line )  to 
(pcb_line ...)



Dick



___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-13 Thread Dick Hollenbeck
On 04/13/2012 02:32 AM, Solonen Vesa wrote:
 Like so many suggestions, they are often good ideas that never get done, 
 because they do
 not rise to a sufficient level of need within an individual capable of doing 
 the work.
 This is especially true in free software, which in fact is never free.
 Feature bounties might be a workable solution for boring work. I'm quite 
 confident I'm not he only one doing SMPS design on KiCad, and would be 
 willing to invest about two hours worth at your rate for a few features (just 
 guesstimating from senior sw developers contracting rates). I also feel that 
 that two hours is quite small compensation for the actual effort going in, so 
 I see there is a need for other investors.

 Another thing you can do with this is add it to the bug list as a wishlist 
 item.
 Will do that.

 Otherwise it might get lost on the mailing list.  It is not something we can 
 simply add to
 the board  file, and then hope that PCBNEW magically understands as it reads 
 it.
 My intention was not to demand any implementation, but just find ways to 
 support the feature in the file format currently being defined. Reasoning is 
 commenting on the new file format to avoid a second design round (which 
 would probably get a lot of opposition) and save users from the hassle on 
 multiple format versions. Error messages like This feature is supported on 
 file format version 1.0.2.003b+ might get annoying...

The s-expression format consists of both syntax and grammar.  The grammar 
portion will
evolve over time.  There is no way to anticipate all future needs.  
s-expression is very
flexible, you can always change the grammar, and elements not understood within 
a new file
can in theory be ignored by an older parser, if it so choses.


Maybe if you write a specification you could get more investors to buy into your
proposal.  This might include proposed s-expression elements to hold the 
constructs that
you need.  However, I would not think there is any particular urgency in doing 
this before
we get rolling on this new file format.  We won't be doing the switch over for 
several
more weeks, and want to try and get the internal nano-meter support fully 
working before a
switch over.


Dick


___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-13 Thread Dick Hollenbeck

 This is one of those areas where I am relying on the knowledge of
 someone who know about the BOARD_ITEM internals that I do.  If there is
   ^ knows more^ than

 I really need to get away from my computer :)

 Wayne

That will only make you worse at typing.



___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-13 Thread Wayne Stambaugh
On 4/13/2012 8:39 AM, Dick Hollenbeck wrote:
 On 04/13/2012 02:04 AM, jean-pierre charras wrote:
 Le 12/04/2012 20:53, Wayne Stambaugh a écrit :
 On 4/12/2012 9:05 AM, Dick Hollenbeck wrote:
 On 04/11/2012 06:41 PM, Dan Chianucci wrote:
 This new format looks great, I have a few comments/questions

   1) in some spots like module pads there is (netnutNum  netName) 
 and in other
 spots like track segments it only has (netnetNum).
   2)What do the edge tags represent in the Module
 Exactly.  It might not be the first English tag that comes to mind for 
 this. eh?  I'm not
 even sure these are limited to edges.
 This is one of those areas where I am relying on the knowledge of
 someone who know about the BOARD_ITEM internals that I do.  If there is
 a more descriptive name or way to present this information, I am
 certainly open to suggestion.

   3)Draw arc has tags start and end.  I'm not sure if this has 
 changed, but the file
 format before this held onto the center of the arc, and an endpoint of 
 the arc...
  The file format definitions also say it holds onto the starting 
 point and the
 ending point, which caused a lot of headaches when I wrote my file format 
 converter
 I've saved the object information as defined in the current file format
 document as closely as possible.  If arcs are defined this way in
 current file format, then they will be defined that way in the new file
 format.  Otherwise, some transformation will have to be made when
 reading the file.

   4) What are the two (at) tags in module_text for? why not only 1
Is one a position relative to the module and one a 
 position relative to
 the board?
 Good question.  It appears that TEXTE_MODULE::m_Pos0 which is relative
 to the anchor position of the module is the only position saved in the
 current format and EDA_TEXT::m_Pos is the absolute position on the board
 which I'm guessing is determined from the position of the module.  I'm
 not sure why it was done this way.  Is there any reason not to dump
 TEXTE_MODULE::m_Pos0 and just use EDA_TEXT::m_Pos?
 All items inside a MODULE have a position on board (m_Pos, m_Start ...
 and the corresponding parameter relative to the module anchor.
 The reason is m_Pos *should always* be calculated from m_Pos0 after a 
 rotation transform,
 due to rounding issues.
 Only 90 degrees rotations do not have rounding issues.
 Therefore, after some rotations (for instance 10 rotations each for 9 
 degrees),
 when using only m_Pos, there is a significant error between one 90 deg 
 rotation
 and 10 x 9 deg rotations.

 Because absolute coordinates are calculated from relative coordinates,
 only relative coordinates need to be saved on files.
 (absolute position and rotation of the MODULE are known)

 I have not a strong opinion about how flipped footprints should store 
 relative coordinates,
 but I am thinking the stored values (coordinates, text mirroring, layers and 
 layer masks) could be
 stored as non flipped values, i.e. a flipped footprint is un-flipped, 
 saved and flipped (restored).
 Actual values will be restored after reading the file.

 Eeschema stores (in lib) shapes in position 0, orientation/mirroring 0,
 and stores the geometric transform for each component.

 This is perhaps not a bad idea to do the same in Pcbnew.

 Some other files format use the same thing,
 and this could make file format conversion more easy.
 
 
 
 We seem to have no extraneous C++ objects.  And this conversation should not 
 diverge into
 changing C++ objects, but should remain largely focused on file format.
 
 
 However, I will not let go of the importance of this format's effect on our 
 ability to
 perform clipboard operations later.  From day one going back 4-5 years ago, 
 this has
 always been a main objective of the s-expression format of mine.
 
 
 Within a BOARD C++ object, there are two kinds of text C++ objects, two kinds 
 of line C++
 objects, two kinds of arc objects, etc, with one relative to the board and 
 one relative to
 the module/footprint.  This is status quo.
 
 
 We need:
 
 
 1) to differentiate these later when pulling them off the clipboard,
 2) to create different C++ objects at file load and at clipboard parsing time.
 3) to augment them with different trailing s-expression elements.
 
 
 So I suggest:
 
 pcb_text, pcb_line, pcb_arc, pcb_circle, pcb_poly
 
 
 fp_text, fp_line, fp_arc, fp_circle, fp_poly

Sounds reasonable.  I'm assuming fp is short for footprint.  If we drop
the module prefix from the file format, I think we should internally
rename all things MODULE to FOOTPRINT for the same symmetry reasoning.
This gives developers a clearer understanding between the file format
and the objects they are related to.  If we keep module concept in
source code and footprint in the file format, that will just add to the
confusion.  A simple global search and replace can resolve this issue.
If no one objects, I'll go ahead and rename the board 

Re: [Kicad-developers] New Pcbnew file format.

2012-04-13 Thread Dick Hollenbeck
On 04/13/2012 10:18 AM, Wayne Stambaugh wrote:
 On 4/13/2012 8:39 AM, Dick Hollenbeck wrote:
 On 04/13/2012 02:04 AM, jean-pierre charras wrote:
 Le 12/04/2012 20:53, Wayne Stambaugh a écrit :
 On 4/12/2012 9:05 AM, Dick Hollenbeck wrote:
 On 04/11/2012 06:41 PM, Dan Chianucci wrote:
 This new format looks great, I have a few comments/questions

   1) in some spots like module pads there is (netnutNum  
 netName) and in other
 spots like track segments it only has (netnetNum).
   2)What do the edge tags represent in the Module
 Exactly.  It might not be the first English tag that comes to mind for 
 this. eh?  I'm not
 even sure these are limited to edges.
 This is one of those areas where I am relying on the knowledge of
 someone who know about the BOARD_ITEM internals that I do.  If there is
 a more descriptive name or way to present this information, I am
 certainly open to suggestion.

   3)Draw arc has tags start and end.  I'm not sure if this has 
 changed, but the file
 format before this held onto the center of the arc, and an endpoint of 
 the arc...
  The file format definitions also say it holds onto the starting 
 point and the
 ending point, which caused a lot of headaches when I wrote my file 
 format converter
 I've saved the object information as defined in the current file format
 document as closely as possible.  If arcs are defined this way in
 current file format, then they will be defined that way in the new file
 format.  Otherwise, some transformation will have to be made when
 reading the file.

   4) What are the two (at) tags in module_text for? why not only 1
Is one a position relative to the module and one a 
 position relative to
 the board?
 Good question.  It appears that TEXTE_MODULE::m_Pos0 which is relative
 to the anchor position of the module is the only position saved in the
 current format and EDA_TEXT::m_Pos is the absolute position on the board
 which I'm guessing is determined from the position of the module.  I'm
 not sure why it was done this way.  Is there any reason not to dump
 TEXTE_MODULE::m_Pos0 and just use EDA_TEXT::m_Pos?
 All items inside a MODULE have a position on board (m_Pos, m_Start ...
 and the corresponding parameter relative to the module anchor.
 The reason is m_Pos *should always* be calculated from m_Pos0 after a 
 rotation transform,
 due to rounding issues.
 Only 90 degrees rotations do not have rounding issues.
 Therefore, after some rotations (for instance 10 rotations each for 9 
 degrees),
 when using only m_Pos, there is a significant error between one 90 deg 
 rotation
 and 10 x 9 deg rotations.

 Because absolute coordinates are calculated from relative coordinates,
 only relative coordinates need to be saved on files.
 (absolute position and rotation of the MODULE are known)

 I have not a strong opinion about how flipped footprints should store 
 relative coordinates,
 but I am thinking the stored values (coordinates, text mirroring, layers 
 and layer masks) could be
 stored as non flipped values, i.e. a flipped footprint is un-flipped, 
 saved and flipped (restored).
 Actual values will be restored after reading the file.

 Eeschema stores (in lib) shapes in position 0, orientation/mirroring 0,
 and stores the geometric transform for each component.

 This is perhaps not a bad idea to do the same in Pcbnew.

 Some other files format use the same thing,
 and this could make file format conversion more easy.


 We seem to have no extraneous C++ objects.  And this conversation should not 
 diverge into
 changing C++ objects, but should remain largely focused on file format.


 However, I will not let go of the importance of this format's effect on our 
 ability to
 perform clipboard operations later.  From day one going back 4-5 years ago, 
 this has
 always been a main objective of the s-expression format of mine.


 Within a BOARD C++ object, there are two kinds of text C++ objects, two 
 kinds of line C++
 objects, two kinds of arc objects, etc, with one relative to the board and 
 one relative to
 the module/footprint.  This is status quo.


 We need:


 1) to differentiate these later when pulling them off the clipboard,
 2) to create different C++ objects at file load and at clipboard parsing 
 time.
 3) to augment them with different trailing s-expression elements.


 So I suggest:

 pcb_text, pcb_line, pcb_arc, pcb_circle, pcb_poly


 fp_text, fp_line, fp_arc, fp_circle, fp_poly
 Sounds reasonable.  I'm assuming fp is short for footprint.  If we drop
 the module prefix from the file format, I think we should internally
 rename all things MODULE to FOOTPRINT for the same symmetry reasoning.
 This gives developers a clearer understanding between the file format
 and the objects they are related to.  If we keep module concept in
 source code and footprint in the file format, that will just add to the
 confusion.  A simple global search and replace can resolve this issue.
 If no one 

Re: [Kicad-developers] New Pcbnew file format.

2012-04-12 Thread Dick Hollenbeck
On 04/11/2012 06:41 PM, Dan Chianucci wrote:
 This new format looks great, I have a few comments/questions

  1) in some spots like module pads there is (net nutNum netName) and 
 in other
 spots like track segments it only has (net netNum).
  2)What do the edge tags represent in the Module

Exactly.  It might not be the first English tag that comes to mind for this. 
eh?  I'm not
even sure these are limited to edges.

  3)Draw arc has tags start and end.  I'm not sure if this has changed, 
 but the file
 format before this held onto the center of the arc, and an endpoint of the 
 arc...
 The file format definitions also say it holds onto the starting point 
 and the
 ending point, which caused a lot of headaches when I wrote my file format 
 converter
  4) What are the two (at) tags in module_text for? why not only 1
   Is one a position relative to the module and one a position 
 relative to
 the board?
  5) Why does Modules have a different text tag than the pcb itself?  Why 
 not just
 have a single text tag which can be placed anywhere?



___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-12 Thread Dick Hollenbeck
On 04/11/2012 07:14 AM, Solonen Vesa wrote:
 Some salt on the popcorn?

 Regarding net classes handling... Flexible automatic design rules would need 
 differential net classes that means different rules for a net depending on 
 surrounding nets.

 As an example I'll explain the problem of a traditional power electronics 
 half bridge circuit:

 HV 400V 10A
 |
 Gh--|0-415V   1A0  V(Gh)-V(Sh)  15
 |
 Sh- Out0-400V   10A
 |
 Gl---|0-15V 1A
 |
 GND--  0V  10A

 HV net needs power class clearance and width towards all nets as does Out. 
 Sh needs power class clearance towards all nets, but Gh and width according 
 to control class. Gh needs the same, but control clearance towards Sh. Gl 
 needs control class clearance and width.

 Curently this system is unrealisable using KiCad DRC. I propose adding a 
 potential class description to net class design rules to address this 
 problem.

 -Vesa

Like so many suggestions, they are often good ideas that never get done, 
because they do
not rise to a sufficient level of need within an individual capable of doing 
the work.

This is especially true in free software, which in fact is never free.


Another thing you can do with this is add it to the bug list as a wishlist 
item.

Otherwise it might get lost on the mailing list.  It is not something we can 
simply add to
the board  file, and then hope that PCBNEW magically understands as it reads it.

I'm sure you understand that this is a minor hi-jacking of the subject thread, 
but not a
bad idea.

Dick


___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-12 Thread Wayne Stambaugh
On 4/12/2012 9:05 AM, Dick Hollenbeck wrote:
 On 04/11/2012 06:41 PM, Dan Chianucci wrote:
 This new format looks great, I have a few comments/questions

  1) in some spots like module pads there is (net nutNum netName) and 
 in other
 spots like track segments it only has (net netNum).
  2)What do the edge tags represent in the Module
 
 Exactly.  It might not be the first English tag that comes to mind for this. 
 eh?  I'm not
 even sure these are limited to edges.

This is one of those areas where I am relying on the knowledge of
someone who know about the BOARD_ITEM internals that I do.  If there is
a more descriptive name or way to present this information, I am
certainly open to suggestion.

 
  3)Draw arc has tags start and end.  I'm not sure if this has changed, 
 but the file
 format before this held onto the center of the arc, and an endpoint of the 
 arc...
 The file format definitions also say it holds onto the starting 
 point and the
 ending point, which caused a lot of headaches when I wrote my file format 
 converter

I've saved the object information as defined in the current file format
document as closely as possible.  If arcs are defined this way in
current file format, then they will be defined that way in the new file
format.  Otherwise, some transformation will have to be made when
reading the file.

  4) What are the two (at) tags in module_text for? why not only 1
   Is one a position relative to the module and one a position 
 relative to
 the board?

Good question.  It appears that TEXTE_MODULE::m_Pos0 which is relative
to the anchor position of the module is the only position saved in the
current format and EDA_TEXT::m_Pos is the absolute position on the board
which I'm guessing is determined from the position of the module.  I'm
not sure why it was done this way.  Is there any reason not to dump
TEXTE_MODULE::m_Pos0 and just use EDA_TEXT::m_Pos?

  5) Why does Modules have a different text tag than the pcb itself?  Why 
 not just
 have a single text tag which can be placed anywhere?

I agree.  Any text definition within a module grouping obviously is an
TEXTE_MODULE object and a text definition anywhere else is a TEXTE_PCB
object.


Wayne


 
 
 ___
 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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-12 Thread Cirilo Bernardo




- Original Message -
From: Wayne Stambaugh stambau...@verizon.net
To: kicad-developers@lists.launchpad.net
Cc: 
Sent: Friday, April 13, 2012 4:53 AM
Subject: Re: [Kicad-developers] New Pcbnew file format.

[snip]
      4) What are the two (at) tags in module_text for? why not only 1
               Is one a position relative to the module and one a position 
relative to
 the board?

Good question.  It appears that TEXTE_MODULE::m_Pos0 which is relative
to the anchor position of the module is the only position saved in the
current format and EDA_TEXT::m_Pos is the absolute position on the board
which I'm guessing is determined from the position of the module.  I'm
not sure why it was done this way.  Is there any reason not to dump
TEXTE_MODULE::m_Pos0 and just use EDA_TEXT::m_Pos?

      5) Why does Modules have a different text tag than the pcb itself?  
Why not just
 have a single text tag which can be placed anywhere?

I agree.  Any text definition within a module grouping obviously is an
TEXTE_MODULE object and a text definition anywhere else is a TEXTE_PCB
object.

[snip]

I would think that the module has its own text because that is the easiest way 
to associate the text with a particular module and to manipulate the file 
(delete part, rotate part). If you make all PCB text equal, you will lose the 
association with the part.  Consider a module placed at (X,Y).  The text would 
be placed at (X+dX, Y+dY); if you rotate or move the module it is trivial to 
calculate the new (correct) position of the text. However, if the text has 
global coordinates then you need to perform many unnecessary operations - at 
the least you will need to subtract the offset (X,Y) and determine if there 
were any rotations previously applied.

- Cirilo

___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-12 Thread Dick Hollenbeck
On 04/12/2012 01:53 PM, Wayne Stambaugh wrote:
 On 4/12/2012 9:05 AM, Dick Hollenbeck wrote:
 On 04/11/2012 06:41 PM, Dan Chianucci wrote:
 This new format looks great, I have a few comments/questions

  1) in some spots like module pads there is (net nutNum netName) 
 and in other
 spots like track segments it only has (net netNum).
  2)What do the edge tags represent in the Module
 Exactly.  It might not be the first English tag that comes to mind for this. 
 eh?  I'm not
 even sure these are limited to edges.
 This is one of those areas where I am relying on the knowledge of
 someone who know about the BOARD_ITEM internals that I do.  If there is
 a more descriptive name or way to present this information, I am
 certainly open to suggestion.

class EDGE_MODULE is derived from DRAWSEGMENT and comes in types
S_SEGMENT, S_CIRCLE, S_ARC, S_POLYGON.

So it is basically a graphical line, circle, arc, or polygon.

Basically a graphic, so that word is one candidate.  It is not confined to 
the module's
edge, but is often used to delineate the bounds of the footprint.

However you would use one of these to designate PIN 1 on the footprint.

It is nearly the same discussion we had about (draw line  ) before.

You could go with gr_line for S_SEGMENT, gr_circle for S_CIRCLE, etc.


The discussion about why not (text..) for both BOARD and MODULE is almost the 
same
discussion about (draw...)  [now edge] for BOARD and MODULE.

There is an argument to try and unify them.

There is also an argument to keep in mind some solution for the case where you 
pull this
text off the clipboard, and now you have to know whether it is for a BOARD or 
MODULE, and
one way to do this is to have unique keywords, but not the only way.

Off the top of my head I do not know what class EDGE_MODULE does differently 
than DRAWSEGMENT.



  3)Draw arc has tags start and end.  I'm not sure if this has changed, 
 but the file
 format before this held onto the center of the arc, and an endpoint of the 
 arc...
 The file format definitions also say it holds onto the starting 
 point and the
 ending point, which caused a lot of headaches when I wrote my file format 
 converter
 I've saved the object information as defined in the current file format
 document as closely as possible.  If arcs are defined this way in
 current file format, then they will be defined that way in the new file
 format.  Otherwise, some transformation will have to be made when
 reading the file.

If it can be or is readily computed, then perhaps we don't need to save it?

Jean-Pierre?  (I am too busy to check code right now.)



___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-12 Thread Dan Chianucci
 class EDGE_MODULE is derived from DRAWSEGMENT and comes in types
 S_SEGMENT, S_CIRCLE, S_ARC, S_POLYGON.

 So it is basically a graphical line, circle, arc, or polygon.

 Basically a graphic, so that word is one candidate.  It is not confined to 
 the module's
 edge, but is often used to delineate the bounds of the footprint.

 However you would use one of these to designate PIN 1 on the footprint.

 It is nearly the same discussion we had about (draw line  ) before.

 You could go with gr_line for S_SEGMENT, gr_circle for S_CIRCLE, etc.

calling it gr_line etc. seems more intuitive to me.  I was confused
and thought that there was board edges (the board outline)  inside of
modules for some reason.
Or that the modules held on to a bounding box called edges.

 The discussion about why not (text..) for both BOARD and MODULE is almost the 
 same
 discussion about (draw...)  [now edge] for BOARD and MODULE.

 There is also an argument to keep in mind some solution for the case where 
 you pull this
 text off the clipboard, and now you have to know whether it is for a BOARD  
 or MODULE, and
 one way to do this is to have unique keywords, but not the only way.

My two cents would be to unify the objects inside of the stored file.
This way everything can be read the same way.  For instance there
would only need to be a single readText function which would get
various information about the text, line, or whatever it is that is
being loaded.  The same argument holds for writing it to disk, and
even to the function which actually draws it on screen.

Additionally, having the objects be saved differently depending on
where they are encourages having the different limitation on the
object internally to the program.  For example, right now depending on
where text  is on the board, the user has different amounts of control
over it.  For instance in a Module, text is centered over the center,
and can only be rotated at 0 or 90 degrees.  On the Board itself
however it can be justified to the left, right or center, and it can
be rotated in 90 degree increments.  If it was unified internally it
would make it a lot easier to add functionality to each type of bboard
object.


       3)Draw arc has tags start and end.  I'm not sure if this has 
  changed, but the file
  format before this held onto the center of the arc, and an endpoint of 
  the arc...
          The file format definitions also say it holds onto the starting 
  point and the
  ending point, which caused a lot of headaches when I wrote my file format 
  converter
  I've saved the object information as defined in the current file format
  document as closely as possible.  If arcs are defined this way in
  current file format, then they will be defined that way in the new file
  format.  Otherwise, some transformation will have to be made when
  reading the file.

 If it can be or is readily computed, then perhaps we don't need to save it?

 Jean-Pierre?  (I am too busy to check code right now.)

I didn't word what I was trying to say correctly.  If you look closely
at the current file format you will find that even though the file
format definitions says that it holds on to the endpoints of the arc,
and the center is computed internally, in actuality it doe the
opposite.  What is actually saved is the center of the arc and an
endpoint of the arc.  Prove it by drawing an arc in the board, record
the points where the endpoints and the center are located, then save
it and look at the file  startX startY is actually centerX and
centerY.

To Cirilo:
I agree with what you are saying, about being difficult to associate
individual pieces to a single module if they were all saved the same
way.  However the module text will still be inside of a module 'tag
block'.  I would say that the parts that make up a module should be
saved as if the module were centered at (0,0) with a rotation of 0.
Then the module itself would hold onto where it is on the board, and
at what rotation. Internally, it would be trivial to calculate the
actual positions of the each module's pieces.

___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-12 Thread Cirilo Bernardo




- Original Message -
From: Dan Chianucci trump211...@gmail.com
To: Dick Hollenbeck d...@softplc.com
Cc: kicad-developers@lists.launchpad.net
Sent: Friday, April 13, 2012 9:58 AM
Subject: Re: [Kicad-developers] New Pcbnew file format.

[snip]

To Cirilo:
I agree with what you are saying, about being difficult to associate
individual pieces to a single module if they were all saved the same
way.  However the module text will still be inside of a module 'tag
block'.  I would say that the parts that make up a module should be
saved as if the module were centered at (0,0) with a rotation of 0.
Then the module itself would hold onto where it is on the board, and
at what rotation. Internally, it would be trivial to calculate the
actual positions of the each module's pieces.

Ah, OK - I probably misunderstood.  So the issue is really one of generalizing 
an object 'text' rather than having an object such as 'pcb_text' and 
'module_text'.  In that case I agree with you 100% - they are all text but will 
behave differently when plotted depending on what their parent object is.  Even 
in the old format the context is clear and the tool I am working on to produce 
STEP assemblies from a (old format) pcb file uses a generic text object 
rather than separate specialized objects.

- Cirilo

___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-11 Thread Brian Sidebotham
Sorry for top-posting! Just wanted to say well done Wayne! Again,
excellent work that is so beneficial to the project! And don't think
your UI changes have gone unnoticed, KiCad is a lot more together
since you started work on the UI tidy up.

Thanks for your continued efforts! :D

Best Regards,

Brian.

On 7 April 2012 19:09, Wayne Stambaugh stambau...@verizon.net 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@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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-11 Thread Dick Hollenbeck
On 04/09/2012 03:52 PM, Miguel Angel Ajo Pelayo wrote:
 I love the plan, it matches and extends the tiny idea I had but it's well 
 planned!!, 

   About the SWEET_HTTP_LIB source and even SWEET servers, and web apps, 
 I propose that we could use our (future) new python powers, that are 
 proficient 
 in handling XML-RPC, Databases, and similar things with very very few lines 
 and 
 effort. 

 I have a lot of experience about python+networking+xml-rpc+web apps, and 
 if using the underlying python scripting could fit on the plan, then we will 
 just run ...
 and enjoy our popcorn more happily.

Do you prefer Miguel or Mike?

I appreciate your enthusiasm for this work and the offer to help with it.

It is not going unnoticed, I just need a little time to time slice in my actual 
real job
right now.

Will get back to you about how you can help soon.

Dick


___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-11 Thread Wayne Stambaugh
On 4/11/2012 4:02 AM, Brian Sidebotham wrote:
 Sorry for top-posting! Just wanted to say well done Wayne! Again,
 excellent work that is so beneficial to the project! And don't think
 your UI changes have gone unnoticed, KiCad is a lot more together
 since you started work on the UI tidy up.
 
 Thanks for your continued efforts! :D
 
 Best Regards,
 
 Brian.

Thanks.  It's nice when you efforts get recognized.  KiCad development
is starting to pick up some momentum which is great for both the users
and the developers.

Cheers,

Wayne

 
 On 7 April 2012 19:09, Wayne Stambaugh stambau...@verizon.net 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@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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread hauptmech
Human readability/usability/ease of learning would also be helped with
some standardization.


On 8/04/2012 8:23 p.m., Dick Hollenbeck wrote:
 On 04/08/2012 11:38 AM, lajos kamocsay wrote:
 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:

 Without diminishing your point about standardization, I suggest that Miquel's 
 scripting
 interface will soon be the recommended way to write external tools.

 And as such, folks writing directly to the KiCad file formats will be missing 
 the point of
 the scripting API, so they will not get any of my attention, at least.

 Back to the transformation data, we have both 3d and 2d transforms, and it 
 would be
 sensible to allow them to be different.  Also, the SWEET parser is already 
 written, works
 on 2d transform data, and I assume Wayne took that into consideration.  
 Changing the 2d
 SWEET stuff is something I would not embrace easily. 

 I am not taking such a position on this new BOARD format yet however, but 
 rather keeping
 an open mind.  However, achieving some 2d transform similarly between SWEET 
 and BOARD
 might have at least some value.


 Dick



 ___
 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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread jean-pierre charras

On 8/04/2012 8:23 p.m., Dick Hollenbeck wrote:

On 04/08/2012 11:38 AM, lajos kamocsay wrote:

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))



Thanks, Wayne for your work.
Here is my first thoughts

(layer 21)

uses an internal pcbnew value to identify a layer.
I am thinking something like

(layer SILKSCREEN_FRONT)

is better.

Also I am thinking inside the brd file, a field giving current units is good:
something like (unit millimeter)



--
Jean-Pierre CHARRAS

___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread Wayne Stambaugh
On 4/9/2012 6:28 AM, jean-pierre charras wrote:
 On 8/04/2012 8:23 p.m., Dick Hollenbeck wrote:
 On 04/08/2012 11:38 AM, lajos kamocsay wrote:
 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))

 
 Thanks, Wayne for your work.
 Here is my first thoughts
 
 (layer 21)
 
 uses an internal pcbnew value to identify a layer.
 I am thinking something like
 
 (layer SILKSCREEN_FRONT)
 
 is better.

JP,

Thanks for looking at this.  I agree that the layer number is not
readable.  Do we have any code in place to select the layer number by
the description?  If not, I'll have to add that in order to load the file.

 
 Also I am thinking inside the brd file, a field giving current units is
 good:
 something like (unit millimeter)
 
 
 

Either that or a comment that the units used within the file are in
millimeters.  I don't think the design goal was to support different
units in the file itself unless I missed something.

Wayne

___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread lajos kamocsay
Hi Wayne-


I've had a conversation with Dick, and he asked me to clarify my
suggestion about standardizing the transformation data.

Standardizing would save you work and debugging time because you would
only need to write the encoder and decoder (parser) once. Instead of
every object taking care of the work, they could just call two
external functions (I don't have the code with me, but let's say
S_EXPR::EncodeTransformation() and S_EXPR::DecodeTransformation()).
The same functions could read/write transformation data for modules,
pads, polygon points etc.

As a side effect, the data files would be easier to read and write.
And I don't necessarily mean footprint makers, but opening the brd
files in emacs. But this is just bonus, the biggest win is less coding
and more decoupling.

You don't need to pick 1d vs 2d vs 3d vectors. It can easily be a
mixture, for example:

(object
  (position (vector2 1 1))
  (rotation (vector1 1))
  (scale (vector1 1))
)

If certain properties are default value, you might not even need to
write them (no rotation, 100% scale):

(object
  (position (vector3 1 1 1))
)

You could also separate out the vector encoder and decoder functions,
like S_EXPR::EncodeVector3() and S_EXPR::DecodeVector3(). (Again, I
don't have the code with me, so class and function names are just
examples, and possibly this is how it's already implemented.)

Naming is a secondary issue, point3 vs vector3 vs xyz doesn't matter
much (although point or vector seems a bit more generic and reusable).




Thanks-
-lajos




On Mon, Apr 9, 2012 at 10:45 AM, Wayne Stambaugh stambau...@verizon.net wrote:
 On 4/8/2012 12:38 PM, lajos kamocsay wrote:
 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))
 )

 Lajos,

 Thank you for your comments.  I carried over the at token from the new
 schematic and schematic library file formats.  For 2D transforms I want
 to keep this notation so that it is the same between the schematic and
 board file formats.  I'm fine with using a different notation for 3D
 transforms.  My original though was just to use (scale X Y Z) since this
 is inside a 3D object it may clear enough to the user that 3D transforms
 require XYZ.


 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))
 )

 I want to avoid abbreviations that are not obvious.  The file format
 must be human readable not developer readable.  Most of the developers
 will know what t/r/s means but a normal user shouldn't be expected to
 wade thought the source code to find out what t/r/s means.  The goal is
 the minimum verbosity to achieve human readability.

 Thanks,

 Wayne


 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
 miguelan...@nbee.es wrote:
 nice!!!, I will start trying it.


 2012/4/7 Wayne Stambaugh stambau...@verizon.net

 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 

Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread jean-pierre charras

Le 09/04/2012 17:02, Wayne Stambaugh a écrit :

On 4/9/2012 6:28 AM, jean-pierre charras wrote:

On 8/04/2012 8:23 p.m., Dick Hollenbeck wrote:

On 04/08/2012 11:38 AM, lajos kamocsay wrote:

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))



Thanks, Wayne for your work.
Here is my first thoughts

(layer 21)

uses an internal pcbnew value to identify a layer.
I am thinking something like

(layer SILKSCREEN_FRONT)

is better.


JP,

Thanks for looking at this.  I agree that the layer number is not
readable.  Do we have any code in place to select the layer number by
the description?  If not, I'll have to add that in order to load the file.


No code to do that.





Also I am thinking inside the brd file, a field giving current units is
good:
something like (unit millimeter)





Either that or a comment that the units used within the file are in
millimeters.  I don't think the design goal was to support different
units in the file itself unless I missed something.

Wayne


Could be just a comment.


--
Jean-Pierre CHARRAS


___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread Dick Hollenbeck
On 04/09/2012 10:07 AM, Wayne Stambaugh wrote:
 On 4/9/2012 9:43 AM, Dick Hollenbeck wrote:
 Wayne and all,


 I feel better now about PCBNEW loading a BOARD with USE_PCBNEW_NANOMETRES 
 defined after
 some work I did this weekend.
 Dick,

 Great work!  Thanks for fixing this so we can keep the new file format
 compiled in and still use Pcbnew without having to build a separate
 version with nanometers disabled.  


Sorry, I did not do this, at least not intentionally.  :)  Therefore if you're 
seeing it,
it probably does not work  :)

Mostly I added DMils2iu( int_constant ) so that the PAD margins would not blow 
up since
they were not being scaled.

A hard coded

   100 became DMils2iu( 100 )

which then is a sensible internal unit, equal in length to 100 deci-mils.


As I said last week, do not save your BOARD in legacy format with a 
USE_KICAD_NANOMETER
build, since it will be saved in millimeters.  Yet your footprints will be in 
deci-mils
and you will have a mess. 


The flag USE_KICAD_NANOMETER tells LEGACY_PLUGIN to convert old board units to 
nanometers,
in RAM during Load() and on disk during Save().  This special build is only for 
generating
the s-expression file, then recompile please.

Dick




 Maybe we can get this fairly well
 tested over the next few weeks and make it the default build.




 Thanks again,

 Wayne



 I was a little nervous about that.  It is still slow to load, I think this 
 has to do with
 zone calculations being done in the higher resolutions, hopefully 
 Jean-Pierre can help
 with that.


 To see Wayne's marvelous work, you can now load, then immediately save using 
 Wayne's
 alternative file type in the save dialog window.  Then check out the new 
 file in a text
 editor.



 ___
 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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread Miguel Angel Ajo Pelayo
Now that may be we're still in time (well in fact, now I think that could
be added lately without big impact..)

  What do you think about adding a UUID (I see now that you used 'LPID'
for SWEET) to the PCB files, and also a revision number (that goes
incrementally on every modified save).

 Also adding LPID to module/footprints would be great, think of the
concept for one moment:


You could be able to keep your brd files in a database (also
distributed), and check if your board version is the latest available, even
ask for upgrade from kicad.

Also, with LPID + rev number in the modules/footprints, you could
ask KiCad to interactively update your footprints from the
ones you have in the database. For example, somebody in your company could
have updated certain footprint to enhance manufacturability or fix a silly
orientation bug... etc.

   I see a world of opportunities just adding:

* LPID (or UUID)
* File Revision Number (automatical/autoincremental)

 And also keeping inside the .brd file:  LPID + Rev Number of every
module.


 I really love this idea, and I see that you already thought of it for
sch / lib parts.




2012/4/9 Dick Hollenbeck d...@softplc.com

 On 04/09/2012 10:07 AM, Wayne Stambaugh wrote:
  On 4/9/2012 9:43 AM, Dick Hollenbeck wrote:
  Wayne and all,
 
 
  I feel better now about PCBNEW loading a BOARD with
 USE_PCBNEW_NANOMETRES defined after
  some work I did this weekend.
  Dick,
 
  Great work!  Thanks for fixing this so we can keep the new file format
  compiled in and still use Pcbnew without having to build a separate
  version with nanometers disabled.


 Sorry, I did not do this, at least not intentionally.  :)  Therefore if
 you're seeing it,
 it probably does not work  :)

 Mostly I added DMils2iu( int_constant ) so that the PAD margins would not
 blow up since
 they were not being scaled.

 A hard coded

   100 became DMils2iu( 100 )

 which then is a sensible internal unit, equal in length to 100 deci-mils.


 As I said last week, do not save your BOARD in legacy format with a
 USE_KICAD_NANOMETER
 build, since it will be saved in millimeters.  Yet your footprints will be
 in deci-mils
 and you will have a mess.


 The flag USE_KICAD_NANOMETER tells LEGACY_PLUGIN to convert old board
 units to nanometers,
 in RAM during Load() and on disk during Save().  This special build is
 only for generating
 the s-expression file, then recompile please.

 Dick




  Maybe we can get this fairly well
  tested over the next few weeks and make it the default build.




  Thanks again,
 
  Wayne



  I was a little nervous about that.  It is still slow to load, I think
 this has to do with
  zone calculations being done in the higher resolutions, hopefully
 Jean-Pierre can help
  with that.
 
 
  To see Wayne's marvelous work, you can now load, then immediately save
 using Wayne's
  alternative file type in the save dialog window.  Then check out the
 new file in a text
  editor.
 
 
 
  ___
  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




-- 

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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread Dick Hollenbeck
On 04/09/2012 02:55 PM, Miguel Angel Ajo Pelayo wrote:
 Now that may be we're still in time (well in fact, now I think that could be 
 added
 lately without big impact..)

   What do you think about adding a UUID (I see now that you used 'LPID' 
 for SWEET)
 to the PCB files, and also a revision number (that goes incrementally on 
 every modified
 save).

  Also adding LPID to module/footprints would be great, think of the 
 concept for one
 moment:


 You could be able to keep your brd files in a database (also 
 distributed), and
 check if your board version is the latest available, even ask for upgrade 
 from kicad.

 Also, with LPID + rev number in the modules/footprints, you could ask 
 KiCad to
 interactively update your footprints from the
 ones you have in the database. For example, somebody in your company could 
 have updated
 certain footprint to enhance manufacturability or fix a silly orientation 
 bug... etc.

I see a world of opportunities just adding:

 * LPID (or UUID)
 * File Revision Number (automatical/autoincremental)
  
  And also keeping inside the .brd file:  LPID + Rev Number of every 
 module.


  I really love this idea, and I see that you already thought of it for 
 sch / lib parts.


Welcome to a 4 year old conversation.  Your conceptual grasp is large.   But the
conversation is old.   I thought about a UUID, but I invested money in an LPID. 
 Does that
answer your first question adequately?


To summarize my feelings: 


a) what we have in SWEET is revolutionary, since we bring in inheritance, 
distributed
LIBs, and versioning.  Please watch for bullshit patents popping up on it to 
help me out.


b) the opportunity and needs in PCBNEW are comparable or greater than in 
EESCHEMA, I have
tended to think of the task as bigger than EESCHEMA.  This is a reason why I 
started
with EESCHEMA, because I was certain that we'd learn things there that would be 
helpful
when PCBNEW was re-worked.   I have no interest in deviating from this original 
strategy
because of that single reason.


c) Once you add a logical library name, you can then abstract its 
implementation and location.


d) Just last week, Jean-Pierre, Wayne and I exchanged emails on bringing in a 
logical
library name into the *.kicad_brd to better identify the origin of a footprint 
within a
board.  I think there is support for just this little bit for now.   The prior 
sentence is
the most important one in this email, please read it again.  Certainly doing 
more would
require more brain cycles than are available at this time, and can always be 
done down the
road in PCBNEW.  I was hoping to abstract the library access methodology in the 
PLUGIN
API, without going to the extent that I am in SWEET.   For s-expression 
libraries, we are
currently thinking of simply having a directory of s-expression (module) files, 
rather
than a file of footprints.  So a footprint library is merely a directory.



This is a scouting report, it does not preclude conquering the world at some 
future
point.  But please realize that my commitment never even extended to even 
completing SWEET
myself, let alone anything to do with PCBNEW.  Said differently, my SWEET 
design needs
implementors beyond myself to complete.   SWEET does not apply and cannot apply 
directly
to PCBNEW, although much that is learned there could eventually be used in 
PCNEW.


The only reason we are cramming in the new file format now was the avalanche of 
the
nanometers entering PCBNEW, did not want to disrupt user's lives 
inconsiderately with
multiple file format changes.


In summary, we are left dreaming and imagining, but get to each a little 
popcorn while we
are doing it.

My commitments are pretty well documented, and trying to commit resources that 
I do not
have control over is foolish.

In lose terms, given *current resources* this is what I see:

 PCBNEW minimally --- EESCHEMA radically --- PCBNEW better much later


There are many things where we need help:

nanometers:

  UI, DRC, dialogs, zoom, grid, status display of perhaps increasing drill down 
resolution
as we zoom in. 
  specctra export, gerber testing, etc.


EAGLE PLUGIN:


SWEET HTTP_LIB_SOURCE, which is likely to be a hell of a lot of fun.


Dick



___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-09 Thread Miguel Angel Ajo Pelayo
I love the plan, it matches and extends the tiny idea I had but it's well
planned!!,

  About the SWEET_HTTP_LIB source and even SWEET servers, and web apps,
I propose that we could use our (future) new python powers, that are
proficient
in handling XML-RPC, Databases, and similar things with very very few lines
and
effort.

I have a lot of experience about python+networking+xml-rpc+web
apps, and
if using the underlying python scripting could fit on the plan, then we
will just run ...
and enjoy our popcorn more happily.


   Cheers,
Mike


2012/4/9 Dick Hollenbeck d...@softplc.com

 On 04/09/2012 02:55 PM, Miguel Angel Ajo Pelayo wrote:
  Now that may be we're still in time (well in fact, now I think that
 could be added
  lately without big impact..)
 
What do you think about adding a UUID (I see now that you used
 'LPID' for SWEET)
  to the PCB files, and also a revision number (that goes incrementally on
 every modified
  save).
 
   Also adding LPID to module/footprints would be great, think of the
 concept for one
  moment:
 
 
  You could be able to keep your brd files in a database (also
 distributed), and
  check if your board version is the latest available, even ask for
 upgrade from kicad.
 
  Also, with LPID + rev number in the modules/footprints, you
 could ask KiCad to
  interactively update your footprints from the
  ones you have in the database. For example, somebody in your company
 could have updated
  certain footprint to enhance manufacturability or fix a silly
 orientation bug... etc.
 
 I see a world of opportunities just adding:
 
  * LPID (or UUID)
  * File Revision Number (automatical/autoincremental)
 
   And also keeping inside the .brd file:  LPID + Rev Number of every
 module.
 
 
   I really love this idea, and I see that you already thought of it
 for sch / lib parts.


 Welcome to a 4 year old conversation.  Your conceptual grasp is large.
 But the
 conversation is old.   I thought about a UUID, but I invested money in an
 LPID.  Does that
 answer your first question adequately?


 To summarize my feelings:


 a) what we have in SWEET is revolutionary, since we bring in inheritance,
 distributed
 LIBs, and versioning.  Please watch for bullshit patents popping up on it
 to help me out.


 b) the opportunity and needs in PCBNEW are comparable or greater than in
 EESCHEMA, I have
 tended to think of the task as bigger than EESCHEMA.  This is a reason
 why I started
 with EESCHEMA, because I was certain that we'd learn things there that
 would be helpful
 when PCBNEW was re-worked.   I have no interest in deviating from this
 original strategy
 because of that single reason.


 c) Once you add a logical library name, you can then abstract its
 implementation and location.


 d) Just last week, Jean-Pierre, Wayne and I exchanged emails on bringing
 in a logical
 library name into the *.kicad_brd to better identify the origin of a
 footprint within a
 board.  I think there is support for just this little bit for now.   The
 prior sentence is
 the most important one in this email, please read it again.  Certainly
 doing more would
 require more brain cycles than are available at this time, and can always
 be done down the
 road in PCBNEW.  I was hoping to abstract the library access methodology
 in the PLUGIN
 API, without going to the extent that I am in SWEET.   For s-expression
 libraries, we are
 currently thinking of simply having a directory of s-expression (module)
 files, rather
 than a file of footprints.  So a footprint library is merely a directory.



 This is a scouting report, it does not preclude conquering the world at
 some future
 point.  But please realize that my commitment never even extended to even
 completing SWEET
 myself, let alone anything to do with PCBNEW.  Said differently, my SWEET
 design needs
 implementors beyond myself to complete.   SWEET does not apply and cannot
 apply directly
 to PCBNEW, although much that is learned there could eventually be used in
 PCNEW.


 The only reason we are cramming in the new file format now was the
 avalanche of the
 nanometers entering PCBNEW, did not want to disrupt user's lives
 inconsiderately with
 multiple file format changes.


 In summary, we are left dreaming and imagining, but get to each a little
 popcorn while we
 are doing it.

 My commitments are pretty well documented, and trying to commit resources
 that I do not
 have control over is foolish.

 In lose terms, given *current resources* this is what I see:

  PCBNEW minimally --- EESCHEMA radically --- PCBNEW better much later


 There are many things where we need help:

 nanometers:

  UI, DRC, dialogs, zoom, grid, status display of perhaps increasing drill
 down resolution
 as we zoom in.
  specctra export, gerber testing, etc.


 EAGLE PLUGIN:


 SWEET HTTP_LIB_SOURCE, which is likely to be a hell of a lot of fun.


 Dick





-- 

Miguel Angel Ajo Pelayo

Re: [Kicad-developers] New Pcbnew file format.

2012-04-08 Thread lajos kamocsay
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
miguelan...@nbee.es wrote:
 nice!!!, I will start trying it.


 2012/4/7 Wayne Stambaugh stambau...@verizon.net

 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@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




 --

 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@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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-08 Thread Dick Hollenbeck
On 04/08/2012 11:38 AM, lajos kamocsay wrote:
 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:


Without diminishing your point about standardization, I suggest that Miquel's 
scripting
interface will soon be the recommended way to write external tools.

And as such, folks writing directly to the KiCad file formats will be missing 
the point of
the scripting API, so they will not get any of my attention, at least.

Back to the transformation data, we have both 3d and 2d transforms, and it 
would be
sensible to allow them to be different.  Also, the SWEET parser is already 
written, works
on 2d transform data, and I assume Wayne took that into consideration.  
Changing the 2d
SWEET stuff is something I would not embrace easily. 

I am not taking such a position on this new BOARD format yet however, but 
rather keeping
an open mind.  However, achieving some 2d transform similarly between SWEET and 
BOARD
might have at least some value.


Dick



___
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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-08 Thread Miguel Angel Ajo Pelayo
I must be doing something very silly

   just pulled from bzr, and then
   mkdir building
   cd building
   cmake -i ../
   make

and make says nothing at all, and exists :-?
I must re-read the compiling guide ':-)

2012/4/8 Dick Hollenbeck d...@softplc.com

 On 04/08/2012 11:38 AM, lajos kamocsay wrote:
  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:


 Without diminishing your point about standardization, I suggest that
 Miquel's scripting
 interface will soon be the recommended way to write external tools.

 And as such, folks writing directly to the KiCad file formats will be
 missing the point of
 the scripting API, so they will not get any of my attention, at least.

 Back to the transformation data, we have both 3d and 2d transforms, and it
 would be
 sensible to allow them to be different.  Also, the SWEET parser is already
 written, works
 on 2d transform data, and I assume Wayne took that into consideration.
  Changing the 2d
 SWEET stuff is something I would not embrace easily.

 I am not taking such a position on this new BOARD format yet however, but
 rather keeping
 an open mind.  However, achieving some 2d transform similarly between
 SWEET and BOARD
 might have at least some value.


 Dick



 ___
 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




-- 

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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] New Pcbnew file format.

2012-04-08 Thread lajos kamocsay
Hi Miguel-

You probably figured it out already, but here's my super simple build
script for the latest. Assuming you already have the bzr branch in
this structure:

42
|- build_latest# build script, chmod a+x
|- kicad.latest# as it says
|- build.latest # this folder the script makes automatically


-lajos






#/bin/zsh -f

mkdir -p build.latest  cd build.latest

cmake ../kicad.latest -DKICAD_STABLE_VERSION=ON -DCMAKE_BUILD_TYPE=Release \
   -DUSE_PCBNEW_SEXPR_FILE_FORMAT=ON -DUSE_PCBNEW_NANOMETRES=ON \
   -DCMAKE_INSTALL_PREFIX=/usr
make





On Sun, Apr 8, 2012 at 3:25 PM, Miguel Angel Ajo Pelayo
miguelan...@nbee.es wrote:
 I must be doing something very silly

    just pulled from bzr, and then
    mkdir building
    cd building
    cmake -i ../
    make

 and make says nothing at all, and exists :-?
 I must re-read the compiling guide ':-)

 2012/4/8 Dick Hollenbeck d...@softplc.com

 On 04/08/2012 11:38 AM, lajos kamocsay wrote:
  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:


 Without diminishing your point about standardization, I suggest that
 Miquel's scripting
 interface will soon be the recommended way to write external tools.

 And as such, folks writing directly to the KiCad file formats will be
 missing the point of
 the scripting API, so they will not get any of my attention, at least.

 Back to the transformation data, we have both 3d and 2d transforms, and it
 would be
 sensible to allow them to be different.  Also, the SWEET parser is already
 written, works
 on 2d transform data, and I assume Wayne took that into consideration.
  Changing the 2d
 SWEET stuff is something I would not embrace easily.

 I am not taking such a position on this new BOARD format yet however, but
 rather keeping
 an open mind.  However, achieving some 2d transform similarly between
 SWEET and BOARD
 might have at least some value.


 Dick



 ___
 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




 --

 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@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


Re: [Kicad-developers] New Pcbnew file format.

2012-04-07 Thread Wayne Stambaugh
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@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