The 3D ACIS® Modeler (ACIS) is Spatial’s prominent 3D solid modeling engine. 3D InterOp is a CAD data translation framework (Interoperability)

InterOp:Connect/ACIS/ACIS Writer

From DocR19

Jump to: navigation, search
Format - ACIS
Other formats

ACIS · CATIA V4 · CATIA V5 · HSF ·
IGES · Inventor · Parasolid · Pro/E · SolidWorks
STEP · Unigraphics · VDA-FS · XML-EBOM

The ACIS Writer component writes ACIS files. This component is in the form of shared libraries. This release supports translation of the following file formats and versions:

Write
File Format File Extension Version Supported
SAT .sat Up to ACIS R19
SAB .sab Up to ACIS R19
ASAT .asat ACIS R19 onwards
ASAB .asab ACIS R19 onwards

Contents

Features

Features of the ACIS Writer component are:

  • Layer, Layer Filter and Selection Set
  • Local Coordinate System (LCS)
  • ACIS Assembly (ASAT/ASAB)
  • Assembly Cut Features from Pro/E to ACIS
  • Manufacturing Information Option

Options for ACIS Writer

Option Default Description
DoSplineResurface true or 1 This option controls the repair of erroneous spline surfaces and extension of short surfaces to the face limits.
DoCheckAcisModel false This option controls whether to check and log the generated ACIS entities.

Document

Layer, Layer Filter, and Selection Set

Provides an enhanced mechanism for handling layers, layer filters, and selection sets. Each layer, layer filter, or selection set is treated as an independent entity and converted to SPAGROUP in ACIS. SPAGROUP is a class provided in ACIS that can contain a collection of entities. An instance of the SPAGROUP class is created for each layer or layer filter or selection set. All entities belonging to a layer are added to the SPAGROUP corresponding to that layer and all SPAGROUPs representing layers of a layer filter are added to the SPAGROUP corresponding to that layer filter. All entities belonging to a selection set are added to the SPAGROUP corresponding to that selection set. Also, all the entities of a layer or selection set can be directly retrieved from corresponding SPAGROUP entity. Properties like name, number, current status of layer, layer filter, or selection set are attached as attributes on respective SPAGROUPs.

Local Coordinate System

Provides support to write LCS or Working Coordinate System (WCS) from other InterOp components as WCS in ACIS. Properties like name, current status of WCS are imported from other components.

Wire Attributes

Line Type

LINE TYPE Generic/Parasolid IGES CATIA V5 STEP
SPAXAT_LINEFONT_UNSET 0 0 0
SPAXAT_LINEFONT_SOLID 1 (solid) 1 (solid) 1 "continuous"(draughting_pre_defined_curve_font)
SPAXAT_LINEFONT_DASH, 2 (dashed) 2 (dashed) 3 "dashed"(draughting_pre_defined_curve_font)
SPAXAT_LINEFONT_DOT 3 (dotted) 5 (dotted) 2 "dotted"(draughting_pre_defined_curve_font)
SPAXAT_LINEFONT_DASH_DOT 4 (dot dashed) 4
SPAXAT_LINEFONT_DASH_DOT_DOT 5
SPAXAT_LINEFONT_DASH_DOT_DOT_DOT 6
SPAXAT_LINEFONT_DASH_DASH_DOT 7
SPAXAT_LINEFONT_DASH_DASH_DOT_DOT 8
SPAXAT_LINEFONT_DASH_DASH_DOT_DOT_DOT 9
SPAXAT_LINEFONT_SHORT_DASH 10
SPAXAT_LINEFONT_LONG_DASH 11
SPAXAT_LINEFONT_MEDIUM_LONG_DASH 12
SPAXAT_LINEFONT_MEDIUM_DASH_SHORT_DASH_SHORT_DASH 13
SPAXAT_LINEFONT_LONG_DASH_SHORT_DASH 14 (centerline) 4 (JIS AXIS) 7 "chain" (draughting_pre_defined_curve_font)
SPAXAT_LINEFONT_LONG_DASH_SHORT_DASH_SHORT_DASH 15 (Phantom) 3 (Phantom) 5 "chain double dash"(draughting_pre_defined_curve_font)
SPAXAT_LINEFONT_LONG_DASH_DOT_DOT 16
SPAXAT_LINEFONT_LONG_DASH_DOT 17
SPAXAT_LINEFONT_MEDIUM_DASH_DOT_SHORT_DASH_DOT 18
SPAXAT_LINEFONT_SPARSE_DOT 19 (small dotted) 6
SPAXAT_LINEFONT_VISIBLE_INVISIBLE 20 curve_style_font_pattern( double vis_len, double invis_len )

Line Thickness

Modeler Description
ACIS ATTRIB_XACIS_THICKNESS(double/integer)
Generic/Parasolid ATTRIB_XPARASOLID_THICKNESS (double/integer)
STEP Double/integer
IGES Double/integer

0 to the maximum value as defined in parameter 16 of the global section.

CATIA V5 There are 55 values(1-55) in CATIA V5, out of which only 8 are defined by the modeler as defined below.
Value Thickness
1 0.13 mm
2 0.35 mm
3 0.7 mm
4 1.0 mm
5 1.4 mm
6 2.0 mm
7 2.3 mm
8 2.6 mm

Assembly

  • Support for ACIS Assembly (ASAT/ASAB)
Monolithic ACIS assembly is supported. Monolithic refers to a single file holding all the data required to define the assembly. Refer to ACIS assembly for more information.
InterOp ACIS Writer supports the following file formats and versions:
File Format File Extension Version Supported
ASAT .asat ACIS R19 onwards
ASAB .asab ACIS R19 onwards
The following options are required for reading/writing monolithic .ASAT files
Limitations:
The following features are not supported by ACIS assembly(ASAT/ASAB):
  • Atomic assemblies
  • Layer/Layer Filter
  • Color at instance levels
  • Suppress/Hidden
  • Cut/Hole
  • PMI
  • Hybrid assemblies
  • Unit at instance level and FreeParts
Required DLLs:
To support translation of ACIS assembly data, ensure that the following libraries(DLLs) are available in the InterOp and ACIS base directories:
InterOp:
  • SPAXACISASSEMBLYIMPORTER.DLL
  • SPAXACISBASE.DLL
  • SPAXACISKERNEL.DLL
  • SPAXASSEMBLYREP.DLL
  • SPAXBASE.DLL
  • SPAXINTEROP.DLL
ACIS:
  • SPAAASM.DLL
  • SPAACIS.DLL
  • SPABASE.DLL
  • Support for Assembly Cut Features from Pro/E to ACIS
InterOp supports translation of the assembly cut features from Pro/E. Translation of assembly cut features is implemented in two ways:
  • Assembly Route to XML-EBOM (output as XML+SAT)
  • Flatten Route to ACIS (output as list of entities)

XML Route (EBOM)

The XML route involves creating a separate SAT file for each assembly cut features.

Diagrammatic representation of assembly cut translation using XML route
Diagrammatic representation of assembly cut translation using XML route

The main features of translating an assembly cut features using an XML route are:

  • A separate SAT file is created for each assembly cut features.
  • Each SAT file contains tool body (BODY) and hole group (SPAGROUP) information if the cut feature is a Hole or Pattern feature.
  • An additional node, named "SPACutsubassy name" is added at each corresponding subassembly level in the XML file for a cut feature in the source Pro/E subassembly file.
  • In addition to the positioning and reference link, the SPACut# node contains a list of affected assembly instances under a new tag AffectedChildren.

The following sample code shows implementation of XML route translation for assembly cut features:

<Child Name="SPACut1_SubName" Identifier="Id_SPACut1_SubName">
<Position>
<V1>-1.000000000000000</V1> 
...
<T3>700.080000000000040</T3>
</Position>
<RefLink Id="RefIdSPACut1_SubName" />
<AffectedChildren>
<Child Id="pem_nut_10-1"/>
<Child Id="Instance 02"/>
<Child Id="Instance 05"/>
</AffectedChildren>
</Child>


Assembly Cut Feature in Flatten Route

The flatten route method involves translating the assembly cut features from Pro/E as a SPACOLLECTION entity in ACIS. Each SPACOLLECTION entity has a generic attribute (type ATTRIB_GEN_INTEGER) attached to it. The value of this attribute indicates whether the SPACOLLECTION entity is created from an assembly cut features or not. The name of the attribute attached to a SPACOLLECTION entity is ATTRIB_XACIS_GROUP_TYPE. The value of this attribute is 4 for a SPACOLLECTION entity created from an assembly cut features. The following diagram shows translation of a Pro/E file containing three assembly cut features to ACIS:

The members of a SPACOLLECTION entity are:

  • A tool BODY with attached SPAATTRIB_ASSY_CUT_TOOL attribute (type ATTRIB_GEN_INTEGER). The value of this attribute is true, which indicates that the body is a tool body.
  • Bodies that will be intersected for assembly cut.
  • SPAGROUP representing a hole feature/pattern if the cut feature represents a hole/pattern feature and the Manufacturing representation is set.

This group will have all the hole/pattern information attached as an attribute. The following table lists the attributes attached to an empty SPAGROUP entity representing the Hole feature:

Attribute Name Attribute Type Hole Information
ATTRIB_XACIS_GROUP_TYPE Integer

-1 - undefined type

0 - layer entity

1 - layer filter entity

2 - selection set entity

3 - hole feature

4 - entity created from an assembly cut features

5 - entity created for parameters

Group type
SPAATTRIB_MFGTYPE Integer (-1 to 6)

-1 - Unknown

0 - Simple hole

1 - Tapered

2 - Counter Bore

3 - Counter Sink

4 - Counter drilled

5 - Rectangular Pattern Feature

6 - Circular Pattern Feature

Hole type
SPAATTRIB_HLDIA Double Primary hole diameter
SPAATTRIB_HLDIAMXTL Double Primary diameter maximum tolerance
SPAATTRIB_HLDIAMNTL Double Primary diameter minimum tolerance
SPAATTRIB_HLDPTH Double Hole depth
SPAATTRIB_HLTIPANG Double (in radians) Hole tip angle
SPAATTRIB_HLDIR SPAvector Hole direction
SPAATTRIB_HLTAPANG Double (in radians) Taper hole angle
SPAATTRIB_HLCBDIA Double Counter bore diameter
SPAATTRIB_HLCBDIAMXTL Double Counter bore diameter maximum tolerance
SPAATTRIB_HLCBDIAMNTL Double Counter bore diameter minimum tolerance
SPAATTRIB_HLCBDPTH Double Counter bore depth
SPAATTRIB_HLCSDIA Double Counter sink diameter
SPAATTRIB_HLCSDIAMXTL Double Counter sink diameter maximum tolerance
SPAATTRIB_HLCSDIAMNTL Double Counter diameter minimum tolerance
SPAATTRIB_HLCSTAPANG Double Counter sink taper angle
SPAATTRIB_HASTHREAD Bool Whether the hole is threaded. True, if hole is threaded.
SPAATTRIB_HLTHRDTYPE String Hole thread type, specifies name of the thread type
SPAATTRIB_HLTHRDDIA Double Hole thread diameter
SPAATTRIB_HLTHRDPTCH Double Hole thread pitch
SPAATTRIB_HLTHRDDPTH Double Hole thread depth
SPAATTRIB_HLTHRDMXTL Double Hole thread maximum tolerance
SPAATTRIB_HLTHRDMNTL Double Hole thread minimum tolerance
SPAATTRIB_HLTHRDDIR Bool Hole thread direction. True indicates Right Handed else Left Handed
SPAATTRIB_HLCDDIA1 Double Counter drilled hole diameter1
SPAATTRIB_HLCDDIA2 Double Counter drilled hole diameter2
SPAATTRIB_HLCDDIAMXTL Double Counter drilled diameter maximum tolerance
SPAATTRIB_HLCDDIAMNTL Double Counter drilled diameter minimum tolerance
SPAATTRIB_HLCDDPTH Double Counter drilled hole depth
SPAATTRIB_HLCDTAPANG Double Counter drilled hole taper angle
SPAATTRIB_HLPOS SPAposition Center position of the hole

The following table lists the Pattern attributes attached to the SPAGROUP entity:

Attribute Name Attribute Type Pattern Information
SPAATTRIB_PATRTHL SPAGROUP Base hole in a pattern feature (both for circular and rectangular pattern)
SPAATTRIB_PATANCHPT SPAposition Anchor position of root hole in a pattern (both for circular and rectangular pattern)
SPAATTRIB_PATFDIRPOS int Original position of base hole in first direction in a pattern (both for circular and rectangular pattern)
SPAATTRIB_PATSDIRPOS int Original position of base hole in second direction in a pattern (both for circular and rectangular pattern)
SPAATTRIB_PATFDIRCNT int Number of duplications in first direction in a pattern (both for circular and rectangular pattern)
SPAATTRIB_PATSDIRCNT int Number of duplications in second direction in a pattern (both for circular and rectangular pattern)
SPAATTRIB_PATFDIRSTP double Step between two consecutive duplications in first direction in a pattern (both for circular and rectangular pattern)
SPAATTRIB_PATSDIRSTP double Step between two consecutive duplications in second direction in a pattern
SPAATTRIB_RECPATFDIR SPAvector First direction in a rectangular pattern (Not applicable for circular pattern)
SPAATTRIB_RECPATSDIR SPAvector Second direction in a rectangular pattern (Not applicable for circular pattern)
SPAATTRIB_CIRPATCENOFROT SPAposition Center of rotation of circular pattern (Not applicable for rectangular pattern)
SPAATTRIB_CIRPATAXSOFROT SPAvector Axis of rotation of circular pattern (Not applicable for rectangular pattern)
SPAATTRIB_CIRPATINSTROT logical Circular pattern instance rotation flag, if it is True, duplication keep the same orientation. (Not applicable for rectangular pattern)
ATTRIB_XACIS_GROUP_TYPE Integer, if its value is 3; it's a hole feature. Group Type
SPAATTRIB_MFGTYPE Integer Pattern Type, value of 5 indicates Rectangular Pattern Feature, value of 6 indicates 6 Circular Pattern Feature

You can query the SPACOLLECTION entity for information and perform a boolean operation to obtain the cut feature where the tool body is used as a tool and the affected flatten list of entities are treated as targets.

Manufacturing Information

  • Support for Manufacturing Information Option
Provides support for Manufacturing Information such as Product Manufacturing Information (PMI) data and Hole data.

BRep

The ACIS Writer component supports the BRep representation.

Mesh

Connect supports translation of Mesh data to the ACIS format. Mesh data is a collection of triangles that define a shape within the model. To support Mesh data translation, you need to use the Mesh representation. Several APIs are defined in ACIS for translating Mesh data. To support translation of Mesh data, you need to ensure that the SPAXAcisMesh.dll (DLL) is available in the base directory.

Note: Refer to the topic corresponding to the source data format for information on additional DLLs required for supporting Mesh data translation.

APIs in ACIS

InterOp Connect provides a set of APIs to store Mesh data in the generated ACIS files. The following APIs are defined in the Connect interface:

outcome api_xacis_mesh_get_triangle_set (ENTITY *pEntity, 
                                         int    nSetIndex, 
                                         int    &nVertices, 
                                         double *&pVertices, 
                                         int    &nTriangles, 
                                         int    *&pIndices)

This API retrieves the data for a particular mesh contained in the ACIS Mesh ENTITY. The parameters to this API are:

  • pEntity: Pointer to the ACIS entity for verification.
  • bMesh: Indicates whether the ENTITY is a MESHBODY (TRUE) or not (FALSE).
api_xacis_mesh_is_mesh_entity (ENTITY *pEntity, logical &bMesh)

This API determines whether an ACIS ENTITY is a MESHBODY. The parameters to this API are:

  • pEntity: Pointer to the ACIS entity for verification.
  • bMesh: Indicates whether the ENTITY is a MESHBODY (TRUE) or not (FALSE).
outcome api_xacis_mesh_add_triangle_set (ENTITY  *pEntity, 
                                         int     nVertices, 
                                         double  *pVertices, 
                                         int     nTriangles, 
                                         int     *pIndices)

Adds a set of triangles to an existing ACIS Mesh ENTITY. The parameters to this API are:

  • pEntity: Reference pointer to the ACIS Entity, used for storing triangle meshes. If this ENTITY type is incorrect, the API will fail.
  • nVertices: Total number of vertices in the mesh.
  • pVertices: Vertices stored as x,y,z triplets. The total size of the array is 3 * nVertices.
  • nTriangles: Total number of triangles represented in this mesh.
  • pIndices: The triangle connectivity as an index list. Each triangle is made of three indices, one for each vertex of the triangle. Each index is a zero based index into the vertex list. Each x,y,z triplet in the vertex list is considered one vertex, so index 0 is the first x,y,z set, index 1 is the second x,y,z set, etc. The total size of the index list is 3 * nTriangles.
outcome api_xacis_mesh_create_entity(ENTITY *&pEntity)

This API creates an ACIS ENTITY used for storing triangle mesh data. The parameters to this API are:

  • pEntity: Reference pointer to the ACIS Entity, used for storing triangle meshes is returned here, returned by the API.
api_xacis_mesh_get_number_triangle_sets (ENTITY *pEntity, int &nTriangleSets)

This API retrieves the total number of mesh sets contained in an ACIS Mesh ENTITY. The parameters to this API are:

  • pEntity: ACIS Mesh ENTITY that is queried for number of triangle sets. If the ENTITY type is incorrect, the API returns an error result.

Limitations

No limitations on the ACIS Writer.

Personal tools