Expedition provides component clearance checking based on the Package Clearance Type rules defined in CES. Those rules support a hierarchy of clearance values that are applied, from a general outline-to-outline rule through a package type to package clearance type rule that considers the board side and placement orientation.
However, when one or both components are placed at non-orthogonal rotations, the clearance value reverts to the general outline-to-outline rule value, causing the incorrect clearance value to be used. In cases where the Package Clearance Type to Package Clearance Type rule value is larger than the general Placement Outline to Placement Outline, no placement hazards are reported when the components violate the larger clearance requirement.
An example of this type of currently undetected violation is given here:
The default Placement Outline to Placement Outline is 10th, so the components can be placed at 45 degree angles as close as 10th apart, regardless of alignment. However, there are rules defined in CES that require Side-to-Side and Side-to-End clearances of 16th.
The placement clearance checking algorithm considers the relative location and orientation to determine which alignment-based rule to use. The algorithm would become exceedingly complex if it were enhanced to support non-orthogonal angles of one or both components.
The attached script does the following:
1. Adds a menu to perform batch checking of rotated components
2. Batch checking routine will report potential clearance violations to the output window
3. Clearance violation reports have hyperlinks to click and visit the two components, as well as a detailed listing of the package clearance types and clearance rule values involved
4. Interactive checking will be performed when a component is placed at non-orthogonal rotations, and feedback will be reported to the output window.
The algorithm for checking clearances will be:
For each component in design
If component is rotated to non-orthogonal
Find maximum package clearance type value
Pick neighboring components within the max clearance window
For each neighboring component
Find maximum pkg to pkg clearance value (all alignments)
Report any actual min clearance less than maximum
The script can result in reporting some cases where the actual minimum clearance meets the required clearance for the given alignment (such as Side-to-End or Side-to-Side), but fails to meet the required clearance for a different alignment. The script will not attempt to determine which alignment value should be used, due to the complexity of handling all possible permutations of cell rotations and relative placements. A verbose message will display the required clearance values for each alignment specified in CES, and the layout designer can determine whether the placement is valid or not.
Load the script into Expedition on startup using the scripts.ini file, and click the Analysis -> Check Rotated Component Clearances menu to perform the clearance checking.