At 12:59 PM 11/11/01 -0800, John Williams wrote: >Take a look at this video (254KB download) of Mentor's (was Veribest) >implementation of interactive trace plowing through polygon planes: > > http://www.mentor.com/pcb/video/DynamicAreaFills.exe
The problem with Protel's polygon pour system is that it creates a huge number of individual primitives to accomplish the fill. So plowing can involved moving a lot of primitives to calculate and move. A positive/negative system would involve very few primitives. The fastest polygons would be purely negative, i.e., all that exists in the database is the polygon outline and parameters and the polygon appears as *calculated* in the display and in plotting; the problem with that is that (1) display could be slower -- though I think not -- and (2) determining connectivity is more difficult. (Protel's inner planes are purely negative and they are not checked for connectivity at all except by assuming that a pad of the plane's net is connected if it is within the plane's territory.) A positive-negative plane is stored on two layers, a positive layer which is the only one which implements connections, since it draws copper, and a negative layer which draws only anticopper creating clearance around all primitives except non-pad primitives connected to the plane's net. All pads and vias are clear regardless of net. Then track is placed (or already existed) on the positive layer to implement connections, with that track also obeying the clearance settings for the plane with respect to other nets. This connecting track is invisible both in plot and display except for ties to the plane across thermal reliefs or filling in direct connect pads and vias, or where it may approach closer to a primitive of a different net allowed by a special design rule (or exception allowed as I have suggested elsewhere by the PCB equivalent of a no-ERC marker). Thus a plane may be created which has contiguous connectivity where otherwise it would not, because traces have been added across, for example, the spaces between pads. (Planes are, in good design practice, created with clearances greater than the generic board clearance, because of the fabrication requirements of inner layers where tight clearance *everywhere* can reduce yield. But this greater clearance can cause islands -- or areas connected only by very thin copper -- to appear in the plane because of pad blowouts; thus it is useful to allow lower clearance in a few places where it improves plane connectivity. This is easily implemented under the Protel rule-driven system by setting the plane fill to a greater clearance than the generic board clearance or other relevant clearance; the capability of doing this was introduced in Protel 99 or in one of the service packs, as I recall.) Another advantage of the positive-negative system would be that it would be equally useful for polygon pours or for "inner planes." Right now the positive-negative system can be implemented with Protel using a combination of an inner plane and a positive layer; the inner plane would be set to clear all primitives, and the merge would be through specific instruction to the photoplotters to merge the layers. There is no simple and direct way, however, to generate such a plane on the top or bottom layers because the inner planes are based on hole diameters rather than pad diameters. A mech layer, however, can be created; it would be really simple if Protel's global edits would do math on fields, so that one could, for example, edit all track on a layer to its present value plus or minus a variable. One would enter into the replacement field a number at present, except that it would be preceded with the addition or subtraction operation. This should be simple to implement. Many times for many purposes I have desired such an ability.... One way to create such a blowout layer would be to set a board or layer-scope solder mask rule with the desired expansion, plot it, then import it to the blowout mech layer. The normal solder mask rules would be disabled during the plot and then the blowout rule would be disabled and the others enabled. Protel's ability to name rules can make this self-documenting. Protel does not presently support positive-negative merges directly; direct support would involve using RS-274X polarity commands to plot both the positive and negative simultaneously. But this would be exactly equivalent to a manually merged plot. I used a system like this for many years with Tango DOS. It works. Since the blowout layer is guaranteed by the rules and process to have the proper clearance, no DRC of it for clearance violations is necessary, and since the connections are made by track on the positive layer, those connections are DRC'd for both clearance and connectivity. Any islands will be detected if the plane layer is not allowed to make any actual pad-to-pad connections. There may be some problems related to the Protel floating track/via bug. (Free non-pad primitives assigned to a layer and to a polygon fill net are not checked for actual connectivity; this has been recently discussed; the net assignments of those primitives is sufficient to cause an island not to be cleared even though dead copper removal is enabled in the polygon setup, so this can allow floating islands of copper, undesirable for noise reasons. This cannot cause nets to be split in the DRC, however, because connectivity DRC only checks pad connections.) Methods have been presented recently to detect this condition. All of this only becomes significant or necessary when board complexity grows to the point where manual checking of plane and polygon connectivity is undesirable and error-prone. [EMAIL PROTECTED] Abdulrahman Lomax Easthampton, Massachusetts USA * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * To post a message: mailto:[EMAIL PROTECTED] * * To leave this list visit: * http://www.techservinc.com/protelusers/leave.html * * Contact the list manager: * mailto:[EMAIL PROTECTED] * * Forum Guidelines Rules: * http://www.techservinc.com/protelusers/forumrules.html * * Browse or Search previous postings: * http://www.mail-archive.com/[email protected] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
