Curtis,
     I think Stuart is the moderator, but he doesn't talk to us much 
anymore. :(  Hopefully he'll have a chance to free up your messages.
     DRC is tough to do...no doubt about it.  Another option is to use 
the cairo functions "cairo_in_fill" and "cairo_in_stroke" to do some of 
the work.  They basically tell you if a point is inside one of those 
drawing operations.  You can look at draw.c to see all the base cairo 
calls...it would have to work with that code somehow.
     Speaking of which, cairo draws are basically either a stroke or 
fill operation.  You can tie into the logic in draw.c to effectively 
boil a layer down to a collection of strokes and fills (maybe save your 
own array of these as they are drawn).  You could then step through this 
array of strokes and fills and do the clearances checks on those.  This 
would be much easier than having to handle the actual net objects.

Julian

On 04/01/2011 04:36 PM, Curtis C. Pope wrote:
> Thanks again Julian,
>
> Yes, I got the rendering to work, and upon further inspection, see where
> you are using the same functions in the "easier" method.  I did reply to
> the list with a couple more questions, but I had some attachments and it
> is caught up in moderation.
>
> I'll take a look at DRC.  I have looked at this before and come to the
> same realization that you really need to compare the final polygons that
> are created.  Never thought about rendering to a surface and looking at
> the pixels between objects.
>
> I also thought about the idea of creating the polygons (nets) and then
> expanding each polygon by half the clearance value desired, then
> rendering two nets and looking for overlaps.  I saw in a previous post
> where you talked about using different colors and transparency to
> achieve this.  The problem I have always come up with here is the
> complexity of actually figuring out the final net polygons from the
> 1000s of nets that get created.
>
> I'll take a look at the surface option and see what I can figure out.
> If you are a moderator and can free my other message, that would be great.
>
> I think there might be a copy or two of this message stuck out there in
> moderation as well since I originally sent it a couple times from an
> email that wasn't signed up to the list.  If you can delete those
> duplicates, it would be great.
>
> Thanks,
> Curtis
>
> On 4/1/2011 4:22 PM, Julian Lamb wrote:
>> Curtis,
>>      No, nothing has ever been started on the DRC side.  One option is
>> to write a routine that steps through the netlist of each layer, and
>> then use your own geometry calcs to calculate the clearance between
>> every other net in the layer.  There is a bounding box calculation
>> done for every net already, so you can use that to eliminate 99% of
>> the checks by making sure the two nets are even close.
>>      The width check will basically just involve stepping through the
>> net and looking for the minimum line width for drawn lines.
>>      However, this will honestly be a difficult endeavor.  With macros,
>> polygons, knockouts, step and repeats, etc...this will be very
>> difficult to do.
>>      The other idea is to render the layer to a surface, and then
>> inspect the surface to figure out pixels between objects.
>>
>>      Did you get your cairo PNG rendering to work?  Did the zoom_to_fit
>> function do the trick?
>> Julian
>>
>> On 04/01/2011 03:53 PM, Curtis C. Pope wrote:
>>> Hi everyone.  In searching the list, I found a topic "probe
>>> connectivity?" from back in 2009 where it looked like someone was going
>>> to start prototyping a DRC function.  Does anyone know if there was any
>>> work done on that?  I am looking for basic width/clearance checks and
>>> would love a starting point.  I am using libgerbv to write my own
>>> rendering engine and DRC for my website.
>>>
>>> Any help/info would be greatly appreciated.
>>>
>>> Thanks,
>>> Curtis
>>> HobbyPCB
>>>
>>> ------------------------------------------------------------------------------
>>>
>>> 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

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