While a file is being read, tests for reentrant or otherwise strange polygons are normally performed. A polygon that is reentrant overlaps itself. This can be a problem since the polygon may be rendered differently on different CAD systems, as the presentation of the polygon may become ambiguous. The test is performed on physical data only. This adds a little overhead. The test is skipped if the boolean variable NoPolyCheck is set (with the !set command). This test can also be turned off from the Setup page of the Import Control panel.
There will also be a warning message added to the log if a polygon vertex list is modified by Xic. The checking function will remove duplicate, inline, and ``needle'' vertices. This does not change the shape of the polygon, but reduces complexity and memory use. If the file is written back to disk, the warnings will not reappear when reading the new file.
Similarly, wire objects are also tested for rendering difficulties. Wire objects consist of a vertex list, a width parameter, and an end style parameter. To render or otherwise process a wire, a polygon representing the actual shape has to be generated internally, making use of these parameters. With some parameter sets, this can be difficult or impossible. In addition, ambiguity arises between different tools in how (for example) acute angles are rendered, and how the ``rounded'' end style is implemented.
Wires that are impossible or difficult to render are logged. Wires that are impossible to render are never added to memory. Wires that are difficult to render are listed as ``questionable'' in the log file. These may or may not look ``good'' in the Xic display. It is possible that wires that look good in Xic will not be processed correctly in another tool, and vice-versa, so the user should be aware of the presence of these wires.
If when reading a file a warning message about ``badly formed polygons'' appears in the log file, here is how to proceed. Note the cell that contained the polygon, and edit it. Use the !polycheck command to select the bad polygons. The Info command in the View Menu can be used to obtain the vertex list. In many cases, the polygon will not cause problems, however it is wise to recreate one that is flagged as bad. The Create Cell command can be used to save the bad polygons to a separate cell for further inspection. A !split operation followed by a !join should effectively repair a degenerate polygon.
Similarly, there is a !wirecheck command that can be used to identify ``questionable'' wires in the current cell. To avoid problems down-stream, these should probably be converted to polygons. This can be done with !split/!join, or with the polygon creation command in the side menu.
By default, Xic checks for identical, coincident objects when reading input files, and prints a warning message in the log file if such objects are found. The Duplicate item handling menu in the Setup page of the Import Control panel can be used to set the action to perform on duplicates. Choices are no checking at all, warn only, or warn and remove duplicates.