OK...I'm making progress.  I was able to identify the geometry and store 
the nets in an array.  I wrote the following snippet to try to draw the 
path and clip:

     j = 0;
     cairo_new_path(cr);
     draw_cairo_move_to(cr, border[0]->start_x, border[0]->start_y, FALSE);
     while ( border[j] != NULL){
         draw_cairo_line_to(cr, border[j]->stop_x, border[j]->stop_y);
         j++;
     }
     cairo_clip(cr);

It is clipping, but it is clipping everything.  I have a feeling that 
there is some translation of the gerber coordinates to cairo coordinates 
going on in other routines before these draw operations would normally 
be called and my border isn't being set properly in the screen.  The 
coordinates look like this:

Border 0: sX=0.010100, sY=0.010100, eX=0.010100, eY=2.097100
Border 1: sX=0.010100, sY=2.097100, eX=1.209300, eY=2.097100
Border 2: sX=1.209300, sY=2.097100, eX=1.209300, eY=0.010100
Border 3: sX=1.209300, sY=0.010100, eX=0.010100, eY=0.010100

where sX/Y = StartX/Y and eX/Y = StopX/Y

Obviously this is inches where cairo is probably looking for something else.

Any pointers in the right direction would help.

Thanks,
Curtis

On 4/2/2011 11:52 AM, Julian Lamb wrote:
> Curtis,
>> With that array of segments, I could then use cairo to draw the
>> background before rendering the layers.  I could tell it to "subtract"
>> the soldermask from the background as the first step and then continue
>> placing the other layers.
>       I don't think the overall board clipping would be that hard, since
> cairo will do it quite simply.  Once you extract the geometry you want
> for the edge, you create a cairo target, draw a path along the outside
> of the board, and then call cairo_clip.  Then you just pass that cairo
> target to the normal rendering routines and nothing will be drawn
> outside of the board edges.  You may have to review the gerbv code and
> figure out which translation "frame" to draw the edge in, though (the
> current transform matrix will have to be zoomed in to the correct level,
> etc).  I think that will give you the appearance you desire.
>
> Julian
>
> ------------------------------------------------------------------------------
> Create and publish websites with WebMatrix
> Use the most popular FREE web apps or write code yourself;
> WebMatrix provides all the features you need to develop and
> publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
> _______________________________________________
> Gerbv-devel mailing list
> Gerbv-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gerbv-devel
>
>


------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Gerbv-devel mailing list
Gerbv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gerbv-devel

Reply via email to