----- Original Message ----- > From: jp charras <jp.char...@wanadoo.fr> > To: Cirilo Bernardo <cirilo_berna...@yahoo.com>; > "kicad-developers@lists.launchpad.net" <kicad-developers@lists.launchpad.net> > Cc: > Sent: Friday, January 3, 2014 6:53 PM > Subject: Re: [Kicad-developers] various patches > > Le 02/01/2014 22:33, Cirilo Bernardo a écrit : >> ----- Original Message ----- >> >>> From: jp charras <jp.char...@wanadoo.fr> >>> To: kicad-developers@lists.launchpad.net >>> Cc: >>> Sent: Thursday, January 2, 2014 8:29 PM >>> Subject: Re: [Kicad-developers] various patches >>> >>> Le 02/01/2014 04:27, Cirilo Bernardo a écrit : >>>> Hi folks, >>>> >>>> I have put two sets of patches onto github for anyone to review > or apply. >>>> >>>> The (bzr) patches: >>>> export_idf3.patch : Adds basic IDF3 export (board and cutouts / > holes >>> only) >>>> >>>> export_vrml.patch : Improved VRML export; includes more > realistic >>> coloring scheme, zone fills, improved eye candy. This patch is better > than the >>> patch I previously posted here; this patch fixes a number of bugs, > eliminates a >>> redundant class, and provides features such as the zone fills and > silver pads. >>>> >>>> URL: https://github.com/cbernardo/kicad-patches >>>> >>>> The patches are against Rev 4598. >>>> >>>> I would appreciate any comments on the patches. Personally I > would like to >>> see the patches incorporated with the bzr source. The vrml patch > includes a >>> major rewrite of export_vrml.cpp and I'm confident users will find > the >>> results to their liking. >>>> >>>> - Cirilo >>> >>> I committed the IDF patch >>> >>> vrml patch needs to be tested. >>> >>> Thanks. >>> >>> -- >>> Jean-Pierre CHARRAS >>> >> >> >> Thanks Jean-Pierre, >> >> What kind of testing is required for the VRML patch? I'm happy to do > whatever I can. >> >> I tested the VRML export on 3 boards which I designed, some test boards to > ensure certain features are tested such as oval pad at angles different from > 0, > 90, and on all the boards in the demo directory. Almost everything is OK > except > for a few erratic issues with rendering some features, but so far I can find > no > big problems. The erratic features I noticed so far include: >> >> 1. On the pic_programmer demo board, some of the resistor silkscreen > outlines have a cone at the end rather than being flat. >> >> 2. On one of my own boards, the silk outline of a connector has a line > forming a triangle rather than a rectangle; all other of the same connectors > on > the board have the outline rendered correctly. I suspect this is related to > (1) >> >> 3. On the video demo board some of the thru holes and pads are rendered > strangely - the track extends two points into the pad and the pad has a > 'V' shape cutout on either side of the track. >> >> I have been looking into these issues and will spend more time trying to > create a simple board which replicates the problems. In general the erratic > features are not very obvious and will not harm the appearance. The resulting > files load into the whitedune viewer and Blender. >> >> - Cirilo >> >> > > In fact it needs 2 changes in vrml_board to be compiled on mingw (I > exactly use TDM-GCC-32, with differs slightly from mingw 4.7, and uses > gcc 4.8.1) > > 1 - in void SetGLError( GLenum errno ), errno collides a define in some > mingw header. So change all occurrences of errno to something like error_id > > 2 - the callback functions like: > void vrml_tess_begin( GLenum cmd, void* user_data ) > are incorrectly defined. > > they must use the CALLBACK type modifier > (see for instance 3d_basic_functions.cpp): > static void CALLBACK vrml_tess_begin( GLenum cmd, void* user_data ) > > I included fctsys.h to define CALLBACK (defined in a mingw include file) > #include <fctsys.h> > > I changed them to: > > #ifndef CALLBACK > #define CALLBACK // On linux, CALLBACK is not used, and not defined > #endif > > #define GLCALLBACK(x) (( void (CALLBACK*)() )&(x)) > > static void CALLBACK vrml_tess_begin( GLenum cmd, void* user_data ) > { > VRML_LAYER* lp = (VRML_LAYER*) user_data; > > lp->glStart( cmd ); > } > > and later for each callback function: > // set up the tesselator callbacks > gluTessCallback( tess, GLU_TESS_BEGIN_DATA, GLCALLBACK(vrml_tess_begin) ); > > > After that, all works fine for me. > > I suggest you to add holes defined by the board outlines. > If you are using: > BOARD::GetBoardPolygonOutlines() returns the external outline polygon, > and a separate list of holes (polygons) > (see 3d_draw.cpp) > >
Thanks for all your comments Jean-Pierre. I have made the changes to vrml_board as requested. The board cutouts were meant to be rendered but I overlooked it while testing and did not realize there were bugs. I fixed the bugs and the cutouts now render. I also fixed another bug (PCB text not rendered) I found while checking the VRML output against what I expected from my test board. The latest patch has been pushed to github and is against Rev. 4601 I could not get any later revision to build (latest attempted: 4608). I will try to set up MinGW as well so I can test in that environment as well. Cheers, 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