Re: [Kicad-developers] Kicad Library Concept Ideas
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
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
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.
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
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.
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
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.
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