ECAD Import Module User Guide
ECAD Import Module User Guide
User’s Guide
ECAD Import Module User’s Guide
© 1998–2024 COMSOL
Protected by patents listed on [Link]/patents, or see Help > About COMSOL Multiphysics on
the File menu in the COMSOL Desktop for less detailed lists of U.S. Patents that may apply. Patents
pending.
This Documentation and the Programs described herein are furnished under the COMSOL Software License
Agreement ([Link]/sla) and may be used or copied only under the terms of the license
agreement.
Support for implementation of the ODB++ Format was provided by Mentor Graphics Corporation pursuant
to the ODB++ Solutions Development Partnership General Terms and Conditions. ODB++ is a trademark
of Mentor Graphics Corporation.
COMSOL, the COMSOL logo, COMSOL Multiphysics, COMSOL Desktop, COMSOL Compiler,
COMSOL Server, and LiveLink are either registered trademarks or trademarks of COMSOL AB. All other
trademarks are the property of their respective owners, and COMSOL AB and its subsidiaries and products
are not affiliated with, endorsed by, sponsored by, or supported by those trademark owners. For a list of such
trademark owners, see [Link]/trademarks.
Version: COMSOL 6.3
Contact Information
Visit the Contact COMSOL page at [Link]/contact to submit general inquiries
or search for an address and phone number. You can also visit the Worldwide Sales Offices
page at [Link]/contact/offices for address and contact information.
If you need to contact Support, an online request form is located on the COMSOL Access
page at [Link]/support/case. Useful links:
Chapter 1: Introduction
Commands 36
Import of ECAD Files . . . . . . . . . . . . . . . . . . . . . 36
Exporting Geometry to OASIS (2D) . . . . . . . . . . . . . . . 44
CONTENTS |3
4 | CONTENTS
1
Introduction
Welcome to the ECAD Import Module. This User’s Guide details features and
functionality available with the product.
5
About This Guide
This documentation covers the ECAD Import Module.
The import capabilities cover the GDS II, ODB++®, and IPC-2581 file formats and include
the creation of 3D geometry during the import operation. The export capabilities cover
OASIS file format.
If you are reading the documentation as a PDF file on your computer, the
blue links do not work to open an application or content referenced in a
different guide. However, if you are using the Help system in COMSOL
Multiphysics, these links work to other modules (as long as you have a
license), application examples, and documentation sets.
6 | CHAPTER 1: INTRODUCTION
about that feature (or click a node in the Model Builder followed by the Help button ( ).
This is called topic-based (or context) help.
• In the Model Builder or Physics Builder click a node or window and then
press F1.
• In the main toolbar, click the Help ( ) button.
• From the main menu, select Help>Help.
• Press Ctrl+F1.
• From the File menu select Help>Documentation ( ).
• Press Ctrl+F1.
• In the main toolbar, click the Documentation ( ) button.
• From the main menu, select Help>Documentation.
Once the Application Libraries window is opened, you can search by name or browse under
a module folder name. Click to view a summary of the application and its properties, including
options to open it or a PDF document.
8 | CHAPTER 1: INTRODUCTION
Opening the Application Libraries Window
To open the Application Libraries window ( ):
To include the latest versions of model examples, from the File>Help menu
select ( ) Update COMSOL Application Libraries.
To include the latest versions of model examples, from the Help menu
select ( ) Update COMSOL Application Libraries.
To receive technical support from COMSOL for the COMSOL products, please contact your
local COMSOL representative or send your questions to support@[Link]. An automatic
notification and case number is sent to you by email.
10 | CHAPTER 1: INTRODUCTION
2
ECAD file formats have been designed to transfer information necessary for the
manufacturing of printed circuit boards (PCBs), integrated circuits (ICs), and
microelectromechanical systems (MEMS) devices. You can import data from
ECAD files to generate geometry for simulation. During the import of an ECAD
file, geometry objects are generated based on the 2D layouts and stackup
information found in the files.
In this section:
11
Importing PCB File Formats
In this section:
• Import Settings for IPC-2581 and ODB++ FilesImport Settings for IPC-2581 and
ODB++ Files
• Preparing PCB Geometries for Simulation
The length unit in the file is detected and displayed in the Settings window. To use the
unit in the file as the length unit for the geometry sequence select the Update geometry
unit checkbox. The checkbox is selected by default if the Import node is added as the
first node in the geometry sequence. The length unit of the geometry sequence is set
to inch when the length unit mil is detected in the selected file.
LAYERS
Grouping of Geometries
To determine the extrusion method used for generating the 3D geometry from the 2D
layouts select one of the available alternatives from the Grouping of geometries list in the
Layers section of the Settings window:
• All. This alternative is available only in 3D. The import algorithm extrudes in one
operation all imported copper and dielectric layers into a single 3D geometry object.
From each copper layer, the imported symbols, such as lines, pads, and surfaces, are
combined before extrusion. The copper and dielectric layers become domains in the
resulting object. To be able to connect the layers, the algorithm requires that the
2D layouts fulfill certain rules. If the import fails, switch to the By layer grouping
option.
When using the No grouping alternative you have the option to import line symbols as
curve objects by selecting the Ignore line width checkbox.
Note: Using the ignore line width option you can sometimes be useful to construct
geometry objects from the information on other layers than copper and dielectric. To
do this configure an Import node to import the layer using the No grouping method,
and with the Ignore line width checkbox selected. Also, from the Elevations list select
Manual, and set the elevation to an appropriate value, but keep the default zero layer
thickness. After the import use geometry operations to convert the imported curve
objects to surface objects, and extrude those to 3D components.
The Full 3D option imports all copper layers with a thickness according to the table in
the Layers section of the Settings window. The layer elevations are determined
according to Elevations, see in the next section Controlling The Layer Stackup. With
the Metal shell option copper layers are imported as embedded boundaries between
dielectric regions. As illustrated in the figure above, switching to Metal shell changes
For 3D imports, when the geometry grouping All and the import type
Metal shells are used together, an isolated copper layer cannot be imported
if the import also includes another solid (dielectric) layer. In this case use
the By layer grouping, or add two Import features to the geometry
sequence, one to import the copper layer, and a second one for the solid
layers.
To decide how elevations are calculated for the imported layers, select one of the
options for Elevations:
• Select Metal layer inside dielectric layer above to position interior copper layers inside
the dielectric layer immediately above the copper layer. The layer elevations in the
table are calculated automatically from the layer Thickness values. Using this option
together with Type of Import set to Full 3D, the total thickness of the board is
calculated as the sum of the dielectric layer thicknesses, plus the thickness of the top
and bottom copper layers.
• Select Metal layer between dielectric layers to position interior copper layers between
the dielectric layers immediately below and above the copper layer. The layer
elevations in the table are calculated automatically from the layer Thickness values.
Using this option together with Type of Import set to Full 3D, all copper layers,
including the interior copper layers, contribute to the total thickness of the circuit
board, which is the sum of the thicknesses of all copper and dielectric layers. Extra
dielectric layers are created for each copper layer at their respective z-extents and
with the same shape as other dielectric layers to pad the gap between the main
dielectrics. These are called in-layer dielectric.
• Select Manual to enable the manual repositioning of layers in the stackup. The
Elevation column appears in the table where you can enter values for the lower z
positions of the layers. Any changes to the Elevation column in the table are lost
When Grouping of geometries is set to By layer with the Metal layer between dielectric
layers option for calculating elevations, the checkbox Unite metal layer and in-layer
dielectric appears and is selected by default. If checkbox is selected, unites each copper
layer with their respective in-layer dielectric. If checkbox is cleared, you get the copper
and in-layer dielectric as separate objects.
Select the Show names from file checkbox to display the layer names as included in the
PCB file. This is useful after assigning new layer names that are used in the COMSOL
application.
• The Name column displays the layer names from the file. You can edit the entries to
give more descriptive names to the layers. The names that appear here are used to
name the resulting geometry objects and the selections when the Layer selections
checkbox is selected under Selections of Resulting Entities.
• The Name in file column is visible only when you select the Show names from file
checkbox above the table. The Name in file column always displays the layer name
from the PCB file, even after editing the Name column.
• The Type column declares the type of layers. Depending on their type, the import
treats layers differently during import. For example, the geometry from a layer of
type Metal is extruded only if the Type of import is set to Full 3D. Layers of type
Dielectric are extruded, when selected in the Import column, according to the
thickness and elevation data in the table. A union of the objects from the Outline
layer is used as the PCB outline to determine the extent of the dielectric layers. The
Drill layer type means that the objects in the layer define drilled holes in the PCB.
ODB++ files may sometimes contain copper layers with the context set to MISC.
To save the layers table to a text file, click the Save to File button ( ) under the table.
To load layer table information from a text file, click the Load from File button ( )
under the table. Only the editable data in the table is affected when loading from file.
Layer data in the file that does not match the existing layers in the table is ignored. To
reset the thickness and elevation values in the table to the last read data from the PCB
file click the Reset Thickness and Elevation button ( ). To select the Import checkbox
in the table for all copper and dielectric layers click the Select All Metal and Dielectric
Layers for Import button ( ). Click the Clear All Imports button ( ) to clear all
checkboxes in the Import column. To reload the layer information from the PCB file
to the table click the Reload Layers button ( ). This will replace all content in the
table with data from the PCB file.
Dielectric Layers
When the PCB file includes the outline of the PCB board in the file the dielectric
regions are generated to the shape of the board. Even if the dielectric layers are selected
for import in the Layers to import table, the import and extrusion of the corresponding
objects or domains can be turned off by clearing the Import dielectric regions checkbox.
DRILL HOLES
Most printed circuit boards have three types of drilling holes: Plated Through Holes,
Non-Plated Through Holes, and Vias. Choose from the Drill layer handling list
• Modify layer objects (default) – This option unites/subtracts the drill layers with/
from the layers it intersects. When this is selected, the following checkboxes appear:
- Create domains for the cores of vias (selected by default). When this is selected, the
cores of the vias become domains. When this is cleared, the cores of the vias
become void.
- Via cores through metal layers (cleared by default). When this is selected, the vias
will go through the metal layers. When this is cleared, the vias will not affect the
metal layers.
- Create domains for the cores of plated holes (selected by default). When this is
selected, the cores of the plated holes will become domains. When this is cleared,
the cores of the plated holes will become void.
- Plated hole cores through metal layers (selected by default). When this is selected,
the plated holes will go through the metal layers. When this is cleared, the plated
holes will not affect the metal layers.
- Create domains for non-plated holes (cleared by default). When this is selected, the
non-plated holes will become domains. When this is cleared, the non-plated holes
will become void. Note that non-plated holes always go through all the layers.
• Create separate objects — This option creates one object for each metal and
dielectric layer the drill layers intersects. When this is selected, the following
checkboxes appear:
- Via cores through metal layers (cleared by default). When cleared, you get no
objects for intersections of vias with metal layers.
- Plated hole cores through metal layers (selected by default). When cleared, you get
no objects for intersections of plated holes with metal layers.
Specify the plating thickness of the plated holes and vias in the field Plating thickness
(default 0) in 3D. When you set a positive thickness value, each drill hole will be
surrounded by a cylindrical layer with the given thickness, except for non-plated drill
holes. The plating will always be united with or become a part of the drill layer object.
You will get no extra object for the plating if you choose Create separate objects. Note
that the plating thickness is also available if Grouping of geometries is set to No grouping,
in which case the platings become separate objects from their respective cores.
Component outlines are positioned by default on the top copper layer or below the
bottom copper layer. You can specify an offset for the vertical component placement
in the Elevation offset for top components field for components on the top copper layer
and the Elevation offset for bottom components field for the components on the bottom
copper layer.
The components will be assigned an attribute, where the values are the component
names and are assigned to their respective component’s domain or surface (depending
on if the component is 2D or 3D). This attribute also has the field “package” whose
value is the package for each component. The attribute tag is controlled in the text field
Component attribute tag. If there are multiple import features, their component
attributes will be renamed after their respective import features, for example,
[Link] and [Link]. If desired, these features could contribute to
a single attribute by changing both attribute tags to have the same name, for example,
component.
Interior Boundaries
By default the Keep interior boundaries checkbox is cleared to instruct the import to
remove all interior boundaries on the imported layers. Interior boundaries on the
copper layers are the result of the union of the individual symbols that make up the
traces. Ignoring the interior boundaries keeps the geometry complexity to a minimum
and can also make the import more robust in some situations.
Select the Ignore text objects checkbox to skip all objects in a PCB file that have the
TEXT tag set. To prevent objects outside the board from being imported select the
checkbox Ignore objects outside of board. Objects that are positioned outside the board,
at a distance greater than that specified by the offset in the Offset from boundary field,
are ignored by the import. The default value for the offset is 0.1 mm, which means
that objects that are further into the board than 0.1 mm from the board boundary are
imported. The offset should only be taken as an approximation. It is only checked
where the object has its defining points, which are not necessarily the same points that
can be seen on an object after it has been imported. For example, a trace is defined by
its start and end points, which lie on the centerline of the trace. Similarly, a circle might
be defined by four points (south, north, east, and west). Thus, an object might be
ignored even if an edge is further inside the board than the specified offset, as long as
all the points that define the object are farther away from the boundary than the offset.
Repair
Geometry repair is controlled via the Repair imported objects checkbox and the Repair
tolerance list. Change the Repair tolerance from Automatic to Relative to manually
specify a tolerance in the Relative repair tolerance field. Automatic means a relative repair
tolerance of 106.
When selected, the geometry repair is active when combining the objects to generate
the 2D geometry of each layer, and also when the layers are combined together after
extrusion. By increasing the repair tolerance, problems with short edges arising when
combining the objects can sometimes be circumvented. A repair tolerance that is too
high may however lead to breaking the geometry. As a guideline, the relative tolerance
should be kept between 105 to 108. Values at the lower end of this interval may
result in faster import at the cost of a higher number of short edges being present in
the imported geometry. Read about how to remove short edges in the next section.
Select the Layer selections checkbox to create predefined selections — for domains,
boundaries, and objects — in subsequent nodes in the geometry sequence for each
imported layer in the PCB file. The boundary selection for all layers include all
boundaries of the objects.
To make the resulting entities that the layers consist of available as selections in all
applicable selection lists (in physics and materials settings, for example), choose an
option from the Show in physics list: All levels, Domain selection, or Boundary selection.
The default is All levels, which makes predefined selections available on all applicable
levels, suitable for use with materials and physics defined in domains and boundaries.
For use with a boundary condition, for example, choose Boundary selection. These
selections do not appear as separate selection nodes in the model tree. Select Off to not
make any selection available outside of the geometry sequence.
When the Layer selections checkbox is enabled, one selection will be created for each
layer and for each geometric entity level, object, domain and boundary, for example:
SIG1, DIEL_1, GND, DIEL_2, SIG2.
- When Create domains for the cores of vias or Create Separate objects is selected: A
domain and a boundary selection for the vias, for example [Link].
Domain and boundary selections for the plating thickness of the vias, for
example, [Link]. Note that boundary selection includes all the
boundaries of the vias.
- When Create domains for the cores of plated holes or Create separate objects is
selected: A domain and a boundary selection for the plated holes, for example,
[Link]. Domain and boundary selections for the plating thickness
of the plated holes, for example [Link]. Note that boundary
selection includes all the boundaries of the plated holes.
- When Create domains for non-plated holes or Create separate objects is selected: A
domain and a boundary selection for the non-plated holes, for example,
[Link]. Note that boundary selection includes all the boundaries of
the non-plated holes.
When the checkbox Unite metal layer and in-layer dielectric is selected, the selections
for all geometric levels are available for metal, for example INNER (which selects the
entities corresponding to the metal). For the domain and boundary levels, in-layer
dielectric selections are available, for example, [Link] (which selects entities
corresponding to the dielectric). Note that the object selection is not available for
in-layer dielectric. All boundary selections include all external boundaries of the layer.
When the checkbox Import component outlines is selected, two selections are created
for top and bottom components for all geometric levels (object, domain, and
boundary), for example, COMP_BOT and COMP_TOP, referring to the bottom and top
components, respectively.
Additionally, the import creates domain selection Metal, which selects all the metal
layers. If there is no drill hole plating, the drill hole cores are also included, or if plating
exists, it instead includes the plating domains. It does not include non-plated holes.
The domain selection for Dielectric selects everything else except the components. The
boundary selection Metal is always created and all external boundaries of the metal
domains are selected.
If you want to make the resulting entities contribute to a cumulative selection, select
a cumulative selection from the Contribute to list (the default, None, gives no
contribution), or click the New button to create a new cumulative selection (see
Cumulative Selections in the COMSOL Multiphysics Reference Manual).
NET SELECTIONS
The sections Domain Net Selections (in 2D and 3D) and Boundary Net Selections (in
3D), contain a table that lists the generated selections for the imported nets. Net
selections are generated when importing IPC-2581 and ODB++ files. The tables
contain the following columns, ordered from left to right:
Click the New Cumulative Selection button under the tables to create a new cumulative
selection (see Cumulative Selections in the COMSOL Multiphysics Reference
Manual).
The entities in a selection are highlighted in yellow in the Graphics window when the
selection is clicked in the table. To zoom in on the selection use the Zoom to Selection
button in the Graphics toolbar.
The net selection names are derived from the net and layer names imported from the
PCB file. Generated net selections are one for each net and then selections for each
intersection between the net selections and all other selection generated from the
import. For example, for the default behavior of the drill holes handling, importing a
board with three copper layers (SIG1, GND, SIG2), two dielectric layers (SIG1_DIEL,
GND_DIEL), and one drill layer (DRILL1), that contains a net named NET, the following
selections are generated: NET, NET.SIG1, [Link], NET.SIG2, NET.SIG1_DIEL,
NET.GND_DIEL, NET.DRILL1_PLATED, NET.DRILL1_VIA. The selection NET is the
union of all other selections for this net. If the name of a net is the same as the name
of a layer, for example GND, the suffix _N is attached to the name of the net selection to
avoid a name clash between net and layer selections.
Empty net selections are not generated; that is, a selection for the net is generated only
when the intersection of the net and the layer contains entities. For entities that do not
belong to a net, the selection NONET is generated.
The boundary net selections include all the boundaries for the copper, dielectric and
drill layers. Note that edge and vertex selections are not generated for nets.
To view the list of all objects, you can use the Selection List window, that
you can access from the Geometry toolbar. The top part of the Selection
List window lists all geometry objects in the geometry sequence. The
bottom part of the window lists all named selections, including the kept
net selections.
An ECAD file for PCBs may also include layers with 2D layouts that specify, for
example, the component outlines on the board. You can also import these layers. In a
file, the 2D layouts consist of shapes, also called symbols, which build the geometry of
copper traces and pads. A large number of symbols are specified by the supported PCB
formats — lines, circles, rectangles, and surfaces to name a few.
The ODB++ import reads the layer list and the first step in the file. From the first step,
the layer features, the board outline and package information are extracted. Multiple
step files are not supported.
When importing to 3D, the import code can extrude the 2D layouts created from the
imported data. Alternatively, you can let the import generate surface objects or import
the layers onto a work plane in 3D. This can be useful if you want to modify the
imported 2D layouts before extruding them.
Before meshing the geometry created from imported ECAD files, it can be helpful to
eliminate short edges during the import. Do this by selecting the checkboxes Ignore
vertices with continuous tangent and Eliminate short edges in the import settings. Note
that you can also remove short edges from the geometry by using the automatic
Geometry Cleanup or by manually adding a Remove Details feature; see Remove
Details and Geometry Cleanup in the COMSOL Multiphysics Reference Manual.
The imported geometry often consists of objects with very high aspect ratios, which
are hard to mesh with a tetrahedral mesh generator. As a result, it is usually necessary
to use interactive meshing of the imported geometry in a by-layer fashion. Assume that
the top and bottom layers are metal layers. All metal layers can often be meshed using
swept meshing, but dielectric layers usually cannot be meshed that way because the
source and target boundaries do not look the same. Begin by meshing from the
bottom or top layer, starting with a triangular or quadrilateral boundary mesh. Then,
mesh layer by layer, where each metal layer gets a swept mesh, and each dielectric layer
(with vias) gets an unstructured tetrahedral mesh. When starting with a quadrilateral
boundary mesh, the swept mesher generates hex elements, and pyramid elements are
automatically inserted when the tetrahedral mesher generates the mesh for the
dielectric layers. Finally, if there is a surrounding air domain mesh it using the
tetrahedral mesher.
Another possibility is to create the geometry for meshing and physics by forming the
assembly of the metal and dielectric objects generated by the import. This can be
controlled by the Form Union/Assembly node in the Geometry branch of the model tree.
When forming an assembly, identity pairs connect the touching faces between the
layers. To generate the mesh for the individual layers, use the swept mesher. By this
method it can be easier to resolve details on the copper layers while limiting the
number of element layers in the extrusion direction.
For the length unit in the file m is always displayed, since GDS-II files do not specify
a unit. To use the displayed unit as the length unit for the geometry sequence select
the Update geometry unit checkbox. The checkbox is selected by default if the Import
node is added as the first node in the geometry sequence.
CELL SELECTION
Data contained in GDS-II files is organized in hierarchical structure consisting of cells.
Select a cell name from the Cell to import list to limit the import to the selected cell
beneath the top cell in the hierarchy. Use the default choice in this list to import the
top cell. By default all subcells below the selected cell are imported. To import only
one subcell type, select the cell from the Filter by subcell list. The difference between
selecting a cell and filtering the top cell by the same cell is that the latter alternative
includes all instances of the selected cell, whereas the first case only includes the
selected instance of the cell.
GROUPING OF GEOMETRIES
The import operation can import each layer into its own geometry object, or import
each object from the layers in the file into its own geometry object. To determine
• By layer. Use this alternative to combine the imported objects from each layer into
a single geometry object. Several geometry objects, one for each imported layer, are
output by the import.
• No grouping. Use this alternative to import each object from the layers into
individual geometry objects. To construct the geometry objects the import
performs a union of all the segments.
With the Type of import setting the extrusion of layers can be switched on or off. The
Full 3D option imports all layers with a thickness, as specified in the Layers to import
table. With the Metal shell option layers are imported as one surface object per layer
(with grouping By layer), or one surface object per imported object (with grouping No
grouping).
Select the Manual control of elevations checkbox to position the layers in the z direction.
When Manual control of elevations is not selected, the z positions of the layers are
calculated automatically from the layer Thickness values.
Select the Show names from file checkbox to display the layer names as included in the
GDS-II file. This is useful after assigning new layer names that are used in the
COMSOL application.
If the datatype record is used in the file for grouping of objects on a layer you can select
the Split by datatype checkbox to treat geometry objects of the same datatype as a
separate layer. The parent layer is then split into as many separate layers as there are
datatypes defined. For example, a layer that contains objects that are grouped into two
datatypes will be split into two separate layers after selecting the checkbox. The name
of the new layers is obtained by appending the datatype to the name of the parent layer.
Note: When the Split by datatype checkbox is selected the import will generate the
geometry only for those layers that contain objects with the datatype record set in the
file.
• The Name column displays the layer names from the file. You can edit the entries to
give more descriptive names to the layers. The names that appear here are used to
name the resulting geometry objects and the selections when the Layer selections
checkbox is selected under Selections of Resulting Entities.
• The Name in file column is visible only when you select the Show names from file
checkbox above the table. The Name in file column always displays the layer name
from the GDS-II file, even after editing the Name column.
• The Type column declares the type of layers. GDS-II files do not specify layer types,
and the layer type is always set to Metal.
• The values in the Thickness column are used as the extrusion distances for the layers.
Layer elevations are also calculated based on these values when Manual control of
elevations is not enabled. The values in the layer Thickness column can always be
changed prior to import. Note that GDS-II files do not contain layer thickness (nor
elevation) data.
• The values in the Elevation column control the lower z positions of the layers. By
adjusting the values you can adjust the position of layers in the stackup. The
Elevation column is only displayed when Manual control of elevations is enabled.
• The Import column. Clear the checkbox for layers that do not need to be imported.
To save the layers table to a text file, click the Save to File button ( ) under the table.
To load layer table information from a text file, click the Load from File button ( )
under the table. Only the editable data in the table is affected when loading from file.
Layer data in the file that does not match the existing layers in the table is ignored. To
reset the thickness and elevation values in the table to the last read data from the GDS
file click the Reset Thickness and Elevation button ( ). To select the Import checkbox
in the table for all layers click the Select All Metal and Dielectric Layers for Import button
( ). Click the Clear All Imports button ( ) to clear all checkboxes in the Import
column. To reload the layer information from the GDS file to the table click the Reload
Layers button ( ). This is useful in case the GDS file has changed since the last time
it was read, and includes additional layers. By clicking Reload Layers you can load the
information for the new layers into the table, while keeping any edits you have done in
the table for layers that are also found in the new file. Note that layers that are not
found in the new file are removed from the table.
ARC RECOGNITION
Recognition of arcs and straight lines can significantly reduce the complexity of
imported layouts from GDS files. With the Recognize arcs set to Automatic, all polygon
chains that represent arcs are identified and replaced with more efficient curve objects,
and polygon segments that lie on a single straight line are recognized and joined into
a single straight segment.
With Recognize arcs set to Manual, the following settings will help you fine tune the
process of the merging of segments into a single circular arc:
• Minimum angle between segments: this parameter prohibits merging of two adjacent
polygon segments to a circular arc if the angle between them is less than the
provided number.
• Maximum angle between segments: this prohibits merging of two adjacent polygon
segments to a circular arc if the angle between them is greater than the provided
number.
• Maximum curvature deviation: this prohibits merging a polygon segment to the
constructed circular arc if that would (relatively) change the curvature by more than
the provided number.
• Maximum length deviation: this prohibits merging of two adjacent polygon segments
to a circular arc if the relative difference between the lengths is greater than the
provided number.
• Maximum deviation from circle: the allowed maximum relative error between the
polygon segments and the constructed circular arc.
In manual arc recognition mode, the Find straight lines checkbox controls whether to
convert several polygon segments that lie on a straight line into a single straight
segment. This option uses the number in the Minimum angle between segments field to
determine if a group of segments lie on the same straight line.
Short polygon segments that are difficult to eliminate using arc recognition can usually
be removed as described in the section Ignore Vertices in Layers.
If selected, the geometry repair is also active when combining the imported objects in
a cell or layer. By increasing the repair tolerance, problems with short edges arising
when combining the objects can sometimes be circumvented.
Select the Eliminate short edges checkbox (cleared by default), to eliminate, by ignoring
one or both of their adjacent vertices, edges that are shorter than the Maximum edge
length.
Select the Resulting objects selection checkbox to create predefined selections (for all
levels — objects, domains, boundaries, edges, and points — that are applicable) in
subsequent nodes in the geometry sequence. To also make all or one of the types of
resulting entities (domains, boundaries, edges, and points) that the resulting objects
consist of available as selections in all applicable selection lists (in physics and materials
settings, for example), choose an option from the Show in physics list: All levels, Domain
selection, Boundary selection, Edge selection, or Point selection. The default is Domain
selection, which is suitable for use with materials and physics defined in domains. For
use with a boundary condition, for example, choose Boundary selection. These
selections do not appear as separate selection nodes in the model tree. Select Off to not
make any selection available outside of the geometry sequence.
Select the Layer selections checkbox to create predefined selections — for domains,
boundaries, and objects — in subsequent nodes in the geometry sequence for each
imported layer in the GDS file. To also make all of one of the resulting entities that the
layers consist of available as selections in all applicable selection lists (in physics and
Select the Cell selections checkbox to create predefined selections — for domains and
boundaries — in subsequent nodes in the geometry sequence for each imported cell
in the GDS file. To also make all of one of the resulting entities that the cells consist
of available as selections in all applicable selection lists (in physics and materials
settings, for example), choose an option from the Show in physics list: All levels, Domain
selection, or Boundary selection. The default is Domain selection, if available, which is
suitable for use with materials and physics defined in domains. For use with a boundary
condition, for example, choose Boundary selection. These selections do not appear as
separate selection nodes in the model tree. Select Off to not make any selection available
outside of the geometry sequence.
Exporting OASIS
With a license for the ECAD Import Module you can export 2D geometry objects to
the OASIS (*.oas) format. To do this:
Then, in the Export window, the File type list, select OASIS (*.oas). Use the Browse
( ) button to choose the filename, or enter a filename including the path in the
Filename field.
Next, select Export selected objects to export only chosen geometry objects or select
Export entire finalized geometry to export the resulting geometry of a Form Union or
Form Assembly operation. Note that Export entire finalized geometry is not available
when exporting from 3D components and the Selection list will only show geometry
objects that come from work plane features.
To export the geometry to the selected file, click the Export ( ) button. A
confirmation message appears in the Messages window.
• As in Graphics preference Detail (default). This takes the rendering mesh from the
Graphics window, which is controlled by the Graphics preference Detail.
• Coarse. This uses a rendering mesh with detail Coarse.
• Normal. This uses a rendering mesh with detail Normal.
• Fine. This uses a rendering mesh with detail Fine.
When exporting from 3D components the exported file will contain corresponding 2D
geometry objects in the local coordinate system of the corresponding work plane. In
this case a table with each work plane will appear. The table consists of three columns
representing:
• Work plane - It contains the tags of all work planes in the geometry. If no object from
work plane is selected in the Selection list, the corresponding row will be grayed out.
• Layer number - The number assigned to each layer in the file. You can edit this
number.
• Layer name - The name assigned to each layer. The default names use the
corresponding feature labels and they can be edited.
During export the selected objects that belong to a specific work plane will be saved in
the file, and they will be assigned to the layer specified for that work plane in the table.
It is possible to assign multiple work planes to the same layer by entering the same layer
number in multiple rows. Rows with the same Layer number must also have the same
Layer name.
FILE EXTENSION
The file extension of the GDS-II format is usually .gds, and the ECAD import
requires it to be so, otherwise it cannot identify the file as a GDS-II file. If the file has
a different extension, it must be changed to .gds before importing the file.
SUPPORTED FEATURES
There are several record types in a GDS-II file that are of no interest in a geometry
import and these are ignored. There are also a few record types that actually could be
imported as a geometry object, but are also ignored. One such example is the Text
record, which produce a lot of mesh elements and is usually of no interest in a
simulation. Below is a list of the supported record types:
Several layers on the same height is common for semiconductor layouts, where the
fabrication process includes deposition followed by etching and then redepositing of a
different layer. To handle such a process scheme, after the import, you can do etching
by removing a layer from other objects, by using the Difference button from the Boolean
Operations submenu in the Geometry toolbar. You can find the various import options
described under the section Grouping of Geometries.
In this section you find detailed COMSOL API reference information for the
geometry features in the ECAD Import Module.
In this section:
• Commands
35
Commands
Import of ECAD Files
PURPOSE
Import geometry objects from an ECAD file in 2D and 3D using the ECAD Import
Module
SYNTAX
[Link](<tag>).feature().create(<ftag>,"Import");
[Link](<tag>).feature(<ftag>).set(property,<value>);
[Link](<tag>).feature(<ftag>).getType(property);
[Link](<tag>).feature(<ftag>).getStringMatrix("layerprop");
[Link](<tag>).feature(<ftag>).importData();
DESCRIPTION
Use [Link](<tag>).feature().create(<ftag>,"Import") to create a
geometry import feature.
When the property filename is set to a file recognized as an ECAD file, the property
ecadtype is automatically initialized to either gds, ipc2581, or odb++. The following
properties are available:
TABLE 3-1: VALID PROPERTY/VALUE PAIRS.
COMMANDS | 37
TABLE 3-1: VALID PROPERTY/VALUE PAIRS.
The property ecadtype determines which properties are available, see Table 3-2 for
supported types. The property ecadtype is read only, and it is automatically initialized
from the property filename, according to Table 3-2.
[Link](<tag>).feature(<ftag>).getStringMatrix("layerprop");
It returns a String[][], with the same number of rows as the number of layers, that
contains information about each layer.
The property height determines the height of all layers. It is a string array of the same
length as the number of layers, holding string representations of the layer height, for
example 1[mm]. The property is initialized with a valid default when setting the
property filename.
The property elevation determines the Z-position of all layers. It is a string array of
the same length as the number of layers, holding string representations of the layer
elevation. Read more about how this property is initialized with a valid default for the
supported formats in the following sections:
If selresult is set to on, a selection is created for all resulting entities of each type
(object, domain, boundary, edge, and point), for use in the geometry sequence. To
access the object selection, use [Link](<tag>).selection(<ftag>), where
<tag> is the geometry tag and <ftag> is the feature tag. To access the other selections,
use [Link](<tag>).selection(<ftag>.<lvl>), where <tag> is the geometry
COMMANDS | 39
tag, <ftag> is the feature tag, and <lvl> is one of dom, bnd, edg, or pnt. If, in
addition, selresultshow is set to a value other than off, all or some of these
selections appear for use outside the geometry sequence. To access these selections, use
[Link](<tag>_<ftag>_<lvl>), where <tag> is the geometry tag,
<ftag> is the feature tag, and <lvl> is one of dom, bnd, edg, or pnt.
If sellayer is set to on, a selection is created for all resulting entities of the types
object, domain, and boundary, of each layer, for use in the geometry sequence. To
access the object selections, use [Link](<tag>).selection(<ftag>_<otag>),
where <otag> is a tag derived from the name of the imported layer. <otag> is derived
by replacing space and dot characters with underscore characters and removing other
characters that are not numbers or uppercase or lowercase English characters (A–Z and
a–z). Additionally, if required to make <otag> unique, _<m> is appended, where <m>
is an integer. To access the other selections, use [Link](<tag>).
selection(<ftag>_<otag>.dom) or [Link](<tag>).
selection(<ftag>_<otag>.bnd), where <otag> is a tag derived from the name of
the imported layer. If, in addition, sellayershow is set to a value other than off, all
or some of these selections appear for use outside the geometry sequence.
COMMANDS | 41
TABLE 3-3: VALID PROPERTY/VALUE PAIRS FOR IPC-2581 AND ODB++.
You can use the net selection tag as a key when setting array elements in the other
properties by using set(property,<ntag>, value), where <ntag> is a tag derived
from the name of the net selection.
COMMANDS | 43
TABLE 3-4: VALID PROPERTY/VALUE PAIRS FOR GDS.
When findarcs is auto or manual, line segments are combined to form arcs. If
findarcs is manual, the properties arcdistancetol, arcradiustol, arcminangle,
arcmaxangle, and findlines can be used to tune the arc recognition algorithm,
otherwise the algorithm tries to determine optimal parameters.
where <filename> is a string for a file system path or a file location URI referencing
a file version in a Model Manager database.
To export selected geometry objects to a file, first select the objects to export using
[Link](<ctag>).geom(<tag>).export().selection().
set(<objnames>);
[Link](<ctag>).geom(<tag>).export().setType(<format>);
[Link](<ctag>).geom(<tag>).export(<filename>);
[Link](<ctag>).geom(<tag>).export().
setOasisApproxDetail(<detail>);
[Link](<ctag>).geom(<tag>).export().
getOasisApproxDetail();
Get the Work plane column in Layers table for Oasis export in 3D (read only) using
[Link](<ctag>).geom(<tag>).export().
getLayerWorkPlanes();
Set the Layer number for a work plane in Layers table for OASIS export in 3D using
[Link](<ctag>).geom(<tag>).export().
setLayerNumber(<index>,<layer>);
where <index> is the index number of the row in the table and <layer> is the Layer
number you want to assign to that row.
Get the Layer number column in Layers table for OASIS export in 3D using
[Link](<ctag>).geom(<tag>).export().getLayerNumbers();
COMMANDS | 45
The method returns an int[] value.
Set the Layer name for a work plane in Layers table for OASIS export in 3D using
[Link](<ctag>).geom(<tag>).export().
setLayerName(<index>,<name>);
where <index> is the index number of the row in the table and <name> is a String of
the Layer name you want to assign to that row.
Get the Layer name column in Layers table for OASIS export in 3D using
[Link](<ctag>).geom(<tag>).export().getLayerNames();