Re: [Kicad-developers] Kicad Library Concept Ideas

2011-02-03 Thread Wayne Stambaugh
On 2/3/2011 6:17 PM, Martijn Kuipers wrote:
> 
> On Feb 3, 2011, at 19:13 PM, Dick Hollenbeck wrote:
> 
>> On 02/03/2011 12:37 AM, Dick Hollenbeck wrote:
>>> Start by conceptually, i.e. algorithmically walking through:
>>>  PART* LIB_TABLE::LookupPart( const LPID& aLPID, LIB* aLocalLib )
>>>
>>> and conceptually step through that until you end up in
>>>
>>>  DIR_LIB_SOURCE::ReadPart()
>>>
>>>
>>> This path is basically a matter of resolving the four elements of the LPID.
>>>
>>>
>>> LookupPart does work already, and there are some lazy operations that happen
>>> only once and only when needed.
>>>
>>> When I have more time I will make a main test program for the DSO/DLL.
>>
>>
>> Man I love CMake and Linux.  It took only about 5 minutes to park a test
>> program on top of libsweet.so.  So now you can single step through the code
>> if you are on Linux.  Windows/Mingw might need some additional work but
>> nothing significant.
>>
>> The test data are generated with a script called
>> make-dir-lib-source-test-data.sh, invoked first.
>> Then the test program is run from the same directory simply with
>> $ ./test_sch_lib_table
>>
>> The reported error is correct, since value has not yet been taught to the
>> parser, and the parser is that last thing that had run:
>>
>>
>> (part tigers/ears (value 22)(footprint SM0805))
>>   ^
>>
>> =
>> dick@dick-intel:/svn/kicad/work/new$ ./make-dir-lib-source-test-data.sh
>>
>> dick@dick-intel:/svn/kicad/work/new$ md build
>> dick@dick-intel:/svn/kicad/work/new$ cd build
>>
>> dick@dick-intel:/svn/kicad/work/new/build$ cmake -DCMAKE_BUILD_TYPE=Debug ../
>> -- The C compiler identification is GNU
>> -- The CXX compiler identification is GNU
>> -- Check for working C compiler: /usr/bin/gcc
>> -- Check for working C compiler: /usr/bin/gcc -- works
>> -- Detecting C compiler ABI info
>> -- Detecting C compiler ABI info - done
>> -- Check for working CXX compiler: /usr/bin/c++
>> -- Check for working CXX compiler: /usr/bin/c++ -- works
>> -- Detecting CXX compiler ABI info
>> -- Detecting CXX compiler ABI info - done
>> -- Found Doxygen: /usr/bin/doxygen
>> -- Check for installed wxWidgets -- found
>> -- Found PythonLibs: /usr/lib/libpython2.6.so
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to: /svn/kicad/work/new/build
>>
>>
>> dick@dick-intel:/svn/kicad/work/new/build$ make
>> Scanning dependencies of target sweet
>> [  7%] Building CXX object CMakeFiles/sweet.dir/sch_lib_table.cpp.o
>> [ 14%] Building CXX object CMakeFiles/sweet.dir/sch_lib_table_keywords.cpp.o
>> [ 21%] Building CXX object CMakeFiles/sweet.dir/sch_lib.cpp.o
>> [ 28%] Building CXX object CMakeFiles/sweet.dir/sch_lpid.cpp.o
>> [ 35%] Building CXX object CMakeFiles/sweet.dir/sch_dir_lib_source.cpp.o
>> [ 42%] Building CXX object CMakeFiles/sweet.dir/sch_part.cpp.o
>> [ 50%] Building CXX object CMakeFiles/sweet.dir/sweet_keywords.cpp.o
>> [ 57%] Building CXX object
>> CMakeFiles/sweet.dir/svn/kicad/work/common/richio.cpp.o
>> [ 64%] Building CXX object
>> CMakeFiles/sweet.dir/svn/kicad/work/common/dsnlexer.cpp.o
>> Linking CXX shared library libsweet.so
>> [ 78%] Built target sweet
>> [ 85%] Swig source
>> /svn/kicad/work/new/sch_lib_table.h:202: Warning(312): Nested class not
>> currently supported (ignored).
>> Scanning dependencies of target _sweet
>> [ 92%] Building CXX object CMakeFiles/_sweet.dir/sweetPYTHON_wrap.cxx.o
>> Linking CXX shared module _sweet.so
>> [ 92%] Built target _sweet
>> Scanning dependencies of target test_sch_lib_table
>> [100%] Building CXX object
>> CMakeFiles/test_sch_lib_table.dir/test_sch_lib_table.cpp.o
>> Linking CXX executable test_sch_lib_table
>> [100%] Built target test_sch_lib_table
>>
>>
>>
>> dick@dick-intel:/svn/kicad/work/new/build$ ./test_sch_lib_table
>> test 'Parse() <-> Format()' round tripping:
>> (lib_table
>>  (lib (logical meparts)(type dir)(full_uri /tmp/eeschema-lib)(options
>> useVersioning))
>>  (lib (logical old-project)(type schematic)(full_uri
>> /tmp/old-schematic.sch)(options ""))
>>  (lib (logical www)(type http)(full_uri http://kicad.org/libs)(options ""))
>> )
>>
>> test a lookup of 'www':
>>  (lib (logical www)(type http)(full_uri http://kicad.org/libs)(options ""))
>>
>> list of logical libraries:
>> logicalName: meparts
>> logicalName: old-project
>> logicalName: www
>> lookupPart:kitties/ears
>> lookupPart:kitties/eyes
>> lookupPart:kitties/feet
>> lookupPart:lions/ears
>> lookupPart:lions/eyes
>> lookupPart:lions/feet
>> lookupPart:tigers/ears
>> lookupPart:tigers/eyes
>> lookupPart:tigers/feet
>> lookupPartRev:rev10
>> lookupPartRev:rev5
>> lookupPartRev:rev1
>> PART::PART(tigers/ears/rev10)
>> lookupPartLatestRev:tigers/ears/rev10
>> PARSE_ERROR: Expecting 'anchor|value|footprint|model|keywords|alternates
>> |property
>>  |property_del
>> |pin
>>  |pin_merge|pin_swap|pin_renum|pin_rename|route_pin_swap
>> |polyline|line|rectangle|circle|arc|b

Re: [Kicad-developers] Kicad Library Concept Ideas

2011-02-03 Thread Martijn Kuipers

On Feb 3, 2011, at 19:13 PM, Dick Hollenbeck wrote:

> On 02/03/2011 12:37 AM, Dick Hollenbeck wrote:
>> Start by conceptually, i.e. algorithmically walking through:
>>  PART* LIB_TABLE::LookupPart( const LPID& aLPID, LIB* aLocalLib )
>> 
>> and conceptually step through that until you end up in
>> 
>>  DIR_LIB_SOURCE::ReadPart()
>> 
>> 
>> This path is basically a matter of resolving the four elements of the LPID.
>> 
>> 
>> LookupPart does work already, and there are some lazy operations that happen
>> only once and only when needed.
>> 
>> When I have more time I will make a main test program for the DSO/DLL.
> 
> 
> Man I love CMake and Linux.  It took only about 5 minutes to park a test
> program on top of libsweet.so.  So now you can single step through the code
> if you are on Linux.  Windows/Mingw might need some additional work but
> nothing significant.
> 
> The test data are generated with a script called
> make-dir-lib-source-test-data.sh, invoked first.
> Then the test program is run from the same directory simply with
> $ ./test_sch_lib_table
> 
> The reported error is correct, since value has not yet been taught to the
> parser, and the parser is that last thing that had run:
> 
> 
> (part tigers/ears (value 22)(footprint SM0805))
>   ^
> 
> =
> dick@dick-intel:/svn/kicad/work/new$ ./make-dir-lib-source-test-data.sh
> 
> dick@dick-intel:/svn/kicad/work/new$ md build
> dick@dick-intel:/svn/kicad/work/new$ cd build
> 
> dick@dick-intel:/svn/kicad/work/new/build$ cmake -DCMAKE_BUILD_TYPE=Debug ../
> -- The C compiler identification is GNU
> -- The CXX compiler identification is GNU
> -- Check for working C compiler: /usr/bin/gcc
> -- Check for working C compiler: /usr/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Found Doxygen: /usr/bin/doxygen
> -- Check for installed wxWidgets -- found
> -- Found PythonLibs: /usr/lib/libpython2.6.so
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /svn/kicad/work/new/build
> 
> 
> dick@dick-intel:/svn/kicad/work/new/build$ make
> Scanning dependencies of target sweet
> [  7%] Building CXX object CMakeFiles/sweet.dir/sch_lib_table.cpp.o
> [ 14%] Building CXX object CMakeFiles/sweet.dir/sch_lib_table_keywords.cpp.o
> [ 21%] Building CXX object CMakeFiles/sweet.dir/sch_lib.cpp.o
> [ 28%] Building CXX object CMakeFiles/sweet.dir/sch_lpid.cpp.o
> [ 35%] Building CXX object CMakeFiles/sweet.dir/sch_dir_lib_source.cpp.o
> [ 42%] Building CXX object CMakeFiles/sweet.dir/sch_part.cpp.o
> [ 50%] Building CXX object CMakeFiles/sweet.dir/sweet_keywords.cpp.o
> [ 57%] Building CXX object
> CMakeFiles/sweet.dir/svn/kicad/work/common/richio.cpp.o
> [ 64%] Building CXX object
> CMakeFiles/sweet.dir/svn/kicad/work/common/dsnlexer.cpp.o
> Linking CXX shared library libsweet.so
> [ 78%] Built target sweet
> [ 85%] Swig source
> /svn/kicad/work/new/sch_lib_table.h:202: Warning(312): Nested class not
> currently supported (ignored).
> Scanning dependencies of target _sweet
> [ 92%] Building CXX object CMakeFiles/_sweet.dir/sweetPYTHON_wrap.cxx.o
> Linking CXX shared module _sweet.so
> [ 92%] Built target _sweet
> Scanning dependencies of target test_sch_lib_table
> [100%] Building CXX object
> CMakeFiles/test_sch_lib_table.dir/test_sch_lib_table.cpp.o
> Linking CXX executable test_sch_lib_table
> [100%] Built target test_sch_lib_table
> 
> 
> 
> dick@dick-intel:/svn/kicad/work/new/build$ ./test_sch_lib_table
> test 'Parse() <-> Format()' round tripping:
> (lib_table
>  (lib (logical meparts)(type dir)(full_uri /tmp/eeschema-lib)(options
> useVersioning))
>  (lib (logical old-project)(type schematic)(full_uri
> /tmp/old-schematic.sch)(options ""))
>  (lib (logical www)(type http)(full_uri http://kicad.org/libs)(options ""))
> )
> 
> test a lookup of 'www':
>  (lib (logical www)(type http)(full_uri http://kicad.org/libs)(options ""))
> 
> list of logical libraries:
> logicalName: meparts
> logicalName: old-project
> logicalName: www
> lookupPart:kitties/ears
> lookupPart:kitties/eyes
> lookupPart:kitties/feet
> lookupPart:lions/ears
> lookupPart:lions/eyes
> lookupPart:lions/feet
> lookupPart:tigers/ears
> lookupPart:tigers/eyes
> lookupPart:tigers/feet
> lookupPartRev:rev10
> lookupPartRev:rev5
> lookupPartRev:rev1
> PART::PART(tigers/ears/rev10)
> lookupPartLatestRev:tigers/ears/rev10
> PARSE_ERROR: Expecting 'anchor|value|footprint|model|keywords|alternates
> |property
>  |property_del
> |pin
>  |pin_merge|pin_swap|pin_renum|pin_rename|route_pin_swap
> |polyline|line|rectangle|circle|arc|bezier|text' in input/source
> "meparts:tigers/ears", line 1, offset 20
> from /svn/kicad/work/common/dsnlexer.cpp : Expecting : 291
> (part tigers/ears (v

Re: [Kicad-developers] Kicad Library Concept Ideas

2011-02-03 Thread Dick Hollenbeck
On 02/03/2011 12:37 AM, Dick Hollenbeck wrote:
> Start by conceptually, i.e. algorithmically walking through:
>   PART* LIB_TABLE::LookupPart( const LPID& aLPID, LIB* aLocalLib )
>
> and conceptually step through that until you end up in
>
>   DIR_LIB_SOURCE::ReadPart()
>
>
> This path is basically a matter of resolving the four elements of the LPID.
>
>
> LookupPart does work already, and there are some lazy operations that happen
> only once and only when needed.
>
> When I have more time I will make a main test program for the DSO/DLL.


Man I love CMake and Linux.  It took only about 5 minutes to park a test
program on top of libsweet.so.  So now you can single step through the code
if you are on Linux.  Windows/Mingw might need some additional work but
nothing significant.

The test data are generated with a script called
make-dir-lib-source-test-data.sh, invoked first.
Then the test program is run from the same directory simply with
$ ./test_sch_lib_table

The reported error is correct, since value has not yet been taught to the
parser, and the parser is that last thing that had run:


(part tigers/ears (value 22)(footprint SM0805))
   ^

=
dick@dick-intel:/svn/kicad/work/new$ ./make-dir-lib-source-test-data.sh

dick@dick-intel:/svn/kicad/work/new$ md build
dick@dick-intel:/svn/kicad/work/new$ cd build

dick@dick-intel:/svn/kicad/work/new/build$ cmake -DCMAKE_BUILD_TYPE=Debug ../
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found Doxygen: /usr/bin/doxygen
-- Check for installed wxWidgets -- found
-- Found PythonLibs: /usr/lib/libpython2.6.so
-- Configuring done
-- Generating done
-- Build files have been written to: /svn/kicad/work/new/build


dick@dick-intel:/svn/kicad/work/new/build$ make
Scanning dependencies of target sweet
[  7%] Building CXX object CMakeFiles/sweet.dir/sch_lib_table.cpp.o
[ 14%] Building CXX object CMakeFiles/sweet.dir/sch_lib_table_keywords.cpp.o
[ 21%] Building CXX object CMakeFiles/sweet.dir/sch_lib.cpp.o
[ 28%] Building CXX object CMakeFiles/sweet.dir/sch_lpid.cpp.o
[ 35%] Building CXX object CMakeFiles/sweet.dir/sch_dir_lib_source.cpp.o
[ 42%] Building CXX object CMakeFiles/sweet.dir/sch_part.cpp.o
[ 50%] Building CXX object CMakeFiles/sweet.dir/sweet_keywords.cpp.o
[ 57%] Building CXX object
CMakeFiles/sweet.dir/svn/kicad/work/common/richio.cpp.o
[ 64%] Building CXX object
CMakeFiles/sweet.dir/svn/kicad/work/common/dsnlexer.cpp.o
Linking CXX shared library libsweet.so
[ 78%] Built target sweet
[ 85%] Swig source
/svn/kicad/work/new/sch_lib_table.h:202: Warning(312): Nested class not
currently supported (ignored).
Scanning dependencies of target _sweet
[ 92%] Building CXX object CMakeFiles/_sweet.dir/sweetPYTHON_wrap.cxx.o
Linking CXX shared module _sweet.so
[ 92%] Built target _sweet
Scanning dependencies of target test_sch_lib_table
[100%] Building CXX object
CMakeFiles/test_sch_lib_table.dir/test_sch_lib_table.cpp.o
Linking CXX executable test_sch_lib_table
[100%] Built target test_sch_lib_table



dick@dick-intel:/svn/kicad/work/new/build$ ./test_sch_lib_table
test 'Parse() <-> Format()' round tripping:
(lib_table
  (lib (logical meparts)(type dir)(full_uri /tmp/eeschema-lib)(options
useVersioning))
  (lib (logical old-project)(type schematic)(full_uri
/tmp/old-schematic.sch)(options ""))
  (lib (logical www)(type http)(full_uri http://kicad.org/libs)(options ""))
)

test a lookup of 'www':
  (lib (logical www)(type http)(full_uri http://kicad.org/libs)(options ""))

list of logical libraries:
logicalName: meparts
logicalName: old-project
logicalName: www
lookupPart:kitties/ears
lookupPart:kitties/eyes
lookupPart:kitties/feet
lookupPart:lions/ears
lookupPart:lions/eyes
lookupPart:lions/feet
lookupPart:tigers/ears
lookupPart:tigers/eyes
lookupPart:tigers/feet
lookupPartRev:rev10
lookupPartRev:rev5
lookupPartRev:rev1
PART::PART(tigers/ears/rev10)
lookupPartLatestRev:tigers/ears/rev10
PARSE_ERROR: Expecting 'anchor|value|footprint|model|keywords|alternates
|property
  |property_del
|pin
  |pin_merge|pin_swap|pin_renum|pin_rename|route_pin_swap
|polyline|line|rectangle|circle|arc|bezier|text' in input/source
"meparts:tigers/ears", line 1, offset 20
 from /svn/kicad/work/common/dsnlexer.cpp : Expecting : 291
(part tigers/ears (value 22)(footprint SM0805))
   ^
dick@dick-intel:/svn/kicad/work/new/build$

==



___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-develop

Re: [Kicad-developers] Cursor position improvements.

2011-02-03 Thread Wayne Stambaugh
On 2/3/2011 11:50 AM, Vesa Solonen wrote:
> On Thu, 3 Feb 2011, Wayne Stambaugh wrote:
> 
>> Another option is to not snap the
>> cursor at all.  Only snap the item being drawn as the cursor approaches the
>> nearest grid position.  This way it is obvious snapping is turned on (which 
>> is
>> currently the only option) without the annoyance of warping the cursor to the
>> nearest grid position.
> 
> That's a common approach in other drawing tools so I think this is at least an
> obvius choice to offer regarding snapping behavior. For EESchema, highlighting
> a pin or connection to be snapped is one fast way to tell where the connection
> is going without actually pulling the cursor there.

Highlighting has other useful purposes as well.  But that is a task for another
day.  There is a lot of code that needs cleaned up before I would even think
about changing the cursor behavior so it wouldn't be something that happens in
the near future.  I'm just getting some ideas on how other developers felt
about the cursor behavior before I head off in the wrong direction.  Thanks for
your input.

Wayne

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

___
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] [PATCH] Saving plot dialog settings

2011-02-03 Thread Marco Mattila
On Thu, Feb 3, 2011 at 6:32 PM, Jerry Jacobs
 wrote:
> For me the dialog is very very good, and works as expected. Still the issue
> remains that the dialog can't be closed with the window button and the
> cancel button. I hacked a class function DIALOG_PLOT_BASE::OnQuit with
> EndModal(0); and it worked. Maybe the virtual functions need be implemented?

I committed a small patch. It seems that the name of a callback was
wrong. Is it any better now?

marco

___
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] Cursor position improvements.

2011-02-03 Thread Vesa Solonen

On Thu, 3 Feb 2011, Wayne Stambaugh wrote:


Another option is to not snap the
cursor at all.  Only snap the item being drawn as the cursor approaches the
nearest grid position.  This way it is obvious snapping is turned on (which is
currently the only option) without the annoyance of warping the cursor to the
nearest grid position.


That's a common approach in other drawing tools so I think this is at 
least an obvius choice to offer regarding snapping behavior. For EESchema, 
highlighting a pin or connection to be snapped is one fast way to tell 
where the connection is going without actually pulling the cursor there.


-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] [PATCH] Saving plot dialog settings

2011-02-03 Thread Jerry Jacobs
For me the dialog is very very good, and works as expected. Still the 
issue remains that the dialog can't be closed with the window button and 
the cancel button. I hacked a class function DIALOG_PLOT_BASE::OnQuit 
with EndModal(0); and it worked. Maybe the virtual functions need be 
implemented?


I saw also the eeschema postscript dialog is derived from the 
wxFormBuilder base class and there are the virtual functions implemented 
and have not problem with this.


Sorry, but I'm not to got yet with C++ so don't blame my bad thinking.

Jerry


On 2/2/11 8:26 AM, jean-pierre charras wrote:

Le 02/02/2011 00:15, Marco Mattila a écrit :

Now there should be a little something for everyone in the latest
revision. It was possible to make the plot dialog a little smaller by
getting rid of the radio buttons and moving the output directory field
(although I'm not sure it's in the right place now...). I also agree
that the dialog is a bit too square. It's hard to make the height
smaller. And it doesn't make sense to make the window wider than
necessary. I can later take a look at how using wxCheckListBox affects
the layout. Wayne, you did mean that width>height, right?

Jerry asked about saving the outputdirectory in the board file. That's
the way it has been for a few revisions already.

marco



Plot dialog looks good!
Is the dialog is a bit too square ?
Remember it size depend on platform:
You cannot have *exactly* the right size, because the actual size of a
dialog depend on system settings and the system itself
(Language, font size, how widgets are drawn by the window manager...)



___
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] Cursor position improvements.

2011-02-03 Thread Wayne Stambaugh
On 2/3/2011 2:34 AM, Lorenzo Marcantonio wrote:
> On Wed, 2 Feb 2011, Dick Hollenbeck wrote:
> 
>>> you make the cursor snap to the grid? It can be quite irritating if
>>> there's some kind of hysteresis in the movement and the cursor doesn't
>>> move continuously (i.e. a pixel at a time) when one moves the mouse on
>>> the table.
> 
> Also right-click/keyboard operations are possible even on non-aligned
> object: in fact, most of the time, off-grid can pick an ambiguous
> selection. A thing I really hate in acad is that osnaps *are* grid
> snapped before object snapping!

That was why I suggested using the cursor position before snapping to grid to
prevent location issues for items off grid.  Another option is to not snap the
cursor at all.  Only snap the item being drawn as the cursor approaches the
nearest grid position.  This way it is obvious snapping is turned on (which is
currently the only option) without the annoyance of warping the cursor to the
nearest grid position.

> 
> I'd vote for nonwarping (the technical term in X :D) system cursor and
> snapping drawn crosshair (big or small depending on preferences).

I'm not terribly thrilled about the drawn cross hairs unless the orphaning
issues can be solved ( preferably without doing a full screen redraws which can
be very costly on PCBNew ).  It is rather annoying when the cross hair ends up
one side of the screen and the cursor on the other side and on the next cursor
movement the cross hair jumps all the way to the cursor position.

It's definitely an interesting problem.  Obviously, everyone has their own
preferences for cursor behavior.  Maybe I'm wrong (wouldn't be the first time),
but it seems to me that the cursor handling could and should be improved.

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