3Di Web Page Header

3Di Geometry Section

Geometries form the core of the 3Di file. This section starts with the keyword GEOMETRIES. Each geometry starts with the keyword GEOM.

3Di geometry section block diagram extrusion 2D Circle 2D Polygon 2D Parc 2D Path barrel sphere wire 3D Poly ID attribute direct attribute table attribute

Click on any block to go the specific topic.

Geometry Types

Four classes of 3D geometries are supported which have been developed for PCB and IC package layouts

Geometry Properties/Attributes

Associating properties or attributes with each geometry is what gives the 3Di database intelligence. There are two types of attributes: direct and table.

Example of a GEOM and Attribute/Properties

ID 100001

Direct vs. Table Attributes

Direct attributes are generally used only once or a few times. They take the form: ATTRIBUTE_NAME VALUE. An example of a direct attribute would be the ID (or handle) These ID's are used to correlate 3D geometries with the 2D geometries that generated them. (Cadence Allegro) Since they are, by definition, unique, there would be no reason to build a table of IDs and then refer to them by the table index.

On the other hand, a net label is likely to be used to multiple conductor geometries. In such a case a TABLE NET would be created and geometries would be labeled using the index to the appropriate net.

This is why it is required to create a list of tables at the beginning of the 3Di file. Only in that fashion can the 3Di parser determine whether an attribute is direct (i.e. the property name does not appear in the list of tables) or table based. The tables themselves can be placed at the end of the 3Di database.


Recommended Minimum Attributes

While it is technically legal to write geometries with no attributes, we recommend that the 3Di writer includes these attributes at a minimum:

PADSTACK Attribute

Some of our customers have requested that Artwork support the concept of padstacks in the 3Di architecture. However this concept does not work with 3Di since it doesn't "place" objects in 3Di; a pad stack is essentially a collection of nested pads and via elements. However we have recently added a PADSTACK attribute so that a 3Di parser could identify all objects associated with a particular padstack and then process them as a group.

padstacks can be easily identified if each pad is a circle entity and each element of the padstack has the same ID.

Further, when writing a 3Di output from a layout tool that does support padstacks, we recommend that all elements of the padstack be assigned the same ID attribute. In that manner, a postprocessor can use the ID attribute to "understand" that these elements constitute a pad stack.