2008-04-14 Copyright LKSoftWare GmbH, 2008 1
ISO 10303 STEP representation and geometry
- a detailed introduction
Lothar Klein,
LKSoftWare GmbH
This work is done as part of the European funded DEPUIS project within the EUROPE INNOVA program.
Some pictures and explanations are taken from Wikipedia
2008-04-14 Copyright LKSoftWare GmbH, 2008 2
ISO 10303-43: Representation structures
• A representation is a collection of elements of representation (representation_item) within a specified context (representation_context)
• Representation_items must exisit within at least one representation_context via a representation, either• directly by being referenced from „representation.items S[1:?]“ or • indirectly by being referenced from a specialization of
representation_item or• indirectly by being referenced from a specialized founded_item
2008-04-14 Copyright LKSoftWare GmbH, 2008 3
ISO 10303-43 Representation structures: Instance example
#1=REPRESENTATION_CONTEXT('iii','ttt');
#2=REPRESENTATION('rrr', (#3,#4), ,#1);
#3=YYY('',…);
#4=XXX('',#5,#6);
#5=YYY('',…);
#6=FFF('',#6)
#7=ZZZ('',…);
2008-04-14 Copyright LKSoftWare GmbH, 2008 4
representation_item with some specializations from other schema
representaion_items have only meaning when used within a representation that applies a context, either directly or indirectly
2008-04-14 Copyright LKSoftWare GmbH, 2008 5
Representation Example (1/2)
Given entity instances:• representations A, B, C• r. contexts X, Y• a graph of several
representation_items• cartesian_points 1, 2
Note:Representation_items forma directed acyclic graph
2008-04-14 Copyright LKSoftWare GmbH, 2008 6
Representation Example (2/2)
Defined distances:• A/1 – A/2 = 1• B/1 – B/2 = 1• B/1 – C/2 = 1• B/1 – C/1 = 0
Undefined distances:• cp_1 – cp_2 = ?• A/1 – B/1 = ?• A/1 – C/2 = ?
2008-04-14 Copyright LKSoftWare GmbH, 2008 7
Generic representation_items (p43)
• Details on measure, value and units are not provided here.
2008-04-14 Copyright LKSoftWare GmbH, 2008 8
Relations between representations
• sharing the same context (see previous slides)
• not definitional but …
• representation_relationship /_with_transformation + item_defined_transformation
• definitional only if within assembly structure or complex with definitional_
• mapped_item + representation_map
• definitional by default
2008-04-14 Copyright LKSoftWare GmbH, 2008 9
Associating representation datawith other product data
• property_definition_representation / shape_definition_representation• default for the geometry model of a product and other property data
• context_dependent_shape_representation• only used for the shape of a product within a product structure
• item_identified_representation_usage• only used for an aspect of a product
2008-04-14 Copyright LKSoftWare GmbH, 2008 10
Instance pattern for mapped_item + representation_map
#1=XXX_REPRESENTATION('',(#3,…),#2);#2=(REPRESENTATION_CONTEXT(….) …);#3=MAPPED_ITEM('',#5,#4);#4=AXIS2_PLACEMENT_3D(…some trans+rot…);#5=REPRESENTATION_MAP(#8,#6);#6=XXX_REPRESENTATION('',(#8,…),#7)#7=(REPRESENTATION_CONTEXT(…) …);#8=AXIS2_PLACEMENT_3D(… typical 0/0/0 no rot…);Note:
• representation #6 is definitional part of representation #1
• representations have different contexts, #2 and #7
• representation_map #5 is not a representation_item and so #8 is not founded via #3 in rep. #1 (it is only founded in rep. #6)
2008-04-14 Copyright LKSoftWare GmbH, 2008 11
Instance pattern (1/2) for representation_relationship_with_transformation
Note:• Not definitional by
default
#1=XXX_REPRESENTATION('',(#3,…),#2);#2=(REPRESENTATION_CONTEXT(….) …);#3=AXIS2_PLACEMENT_3D(…some trans+rot…);#3=REP_REL_WITH_TRANSFORMATION('',#1,#6);#5=ITEM_DEFINED_TRANSFORMATION(#3,#8);#6=XXX_REPRESENTATION('',(#8,…),#7)#7=(REPRESENTATION_CONTEXT(…) …);#8=AXIS2_PLACEMENT_3D(… typical 0/0/0 no rot…);
2008-04-14 Copyright LKSoftWare GmbH, 2008 12
Instance pattern (2/2) for representation_relationship_with_transformation
Note:• cartesian_transformation_operator allows scaling and mirroring• For assembly of parts use only placement because you can't scaled or
mirror the shape of a part !!!
#1=XXX_REPRESENTATION('',(#3,…),#2);#2=(REPRESENTATION_CONTEXT(….) …);#3=CARTESIAN_TRANSFORMATION_OPERATOR_3D(…);#3=REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION('',#1,#3);#6=XXX_REPRESENTATION('',(#8,…),#7)#7=(REPRESENTATION_CONTEXT(…) …);#8=XXX(…);
2008-04-14 Copyright LKSoftWare GmbH, 2008 13
Some special usage from CAX-IF
• Goal is to combine several specialized shape_representations into a single one (left) and then to include it in a bigger one (left) with some transformation
• Used e.g. to combine topological bounded representation:• advanced_brep_shape_representation • manifold_surface_shape_representation • edge_based_wireframe_shape_representation
2008-04-14 Copyright LKSoftWare GmbH, 2008 14
Basic geometric entities,placement and transformation
Note:• In STEP all geometric representation contexts are right hand• All axis and ref_direction attributes are optional.
If not given a default value applies
2008-04-14 Copyright LKSoftWare GmbH, 2008 15
Entities forGeometrically bounded wireframe
• ISO 10303-510: AIC Geometrically bounded wireframeISO/TS 10303-1510: AM Geometrically bounded wireframe
• ISO 10303-503: AIC Geometrically bounded 2D wireframeISO/TS 10303-1347: AM Wireframe 2D
2008-04-14 Copyright LKSoftWare GmbH, 2008 16
Example for Geometrically bounded wireframe with composite_curve (2D)
#10=GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION('',(#30),#20);#20=GEOMETRIC_REPRESENTATION_CONTEXT('','', 2);#30=COMPOSITE_CURVE('',(#40,#80),.T.);#40=COMPOSITE_CURVE_SEGMENT(.CONTINUOUS.,.F.,#50);#50=TRIMMED_CURVE('',#60,(#110),(#120),.F.,.CARTESIAN.);#60=CIRCLE('',#70,1.);#70=AXIS2_PLACEMENT_2D('',#110,$);#80=COMPOSITE_CURVE_SEGMENT(.CONTINUOUS.,.T.,#80);#90=POLYLINE('',(#110,#100,#120));#100=CARTESIAN_POINT('',(0.,0.));#110=CARTESIAN_POINT('',(1.,0.));#120=CARTESIAN_POINT('',(0.,1.));
#100: 0 / 0
#110: 1 / 0
#120: 0 / 1
2008-04-14 Copyright LKSoftWare GmbH, 2008 17
Geometrically bounded surface shape representation
• All surfaces must be bounded, either b_spline_surface or curve_bounded_surface or …
• The boundary_curve is either a pcurve (complex) or …
2008-04-14 Copyright LKSoftWare GmbH, 2008 18
Advanced boundary representation
• For the precise representation of complex objects
• Combination of geometrical and topological elements
• Extensivly tested within the CAX-IF
• Most widely used for STEP geometry exchange
2008-04-14 Copyright LKSoftWare GmbH, 2008 19
Topologically bounded geometry (1/2)
• A vertex_point represents both, a vertex and a point => cartesian_point• An edge_curve connects two vertex_points and associates with a curve. The curve is bounded by the
vertex_points• One or two oriented edges for each edge_curve (for open or closed shell …)• A face_surface is a face with one or more bounds and associated with a surface.
Advanced_face adds constraints for surface, curve, point and bounds
2008-04-14 Copyright LKSoftWare GmbH, 2008 20
Topologically bounded geometry (2/2)
• elementary_-(AIC 513) and advanced_brep_shape_representation (AIC514) are using closed_shell, edge_loop, and advanced_face (AIC 511)
• faceted_brep_shape_representation (AIC 512) is using closed_shell and poly_loop• manifold_surface_shape_representation (AIC 509) is using open_shell, edge_loop and
advanced_face• manifold_subsurface_shape_representation (AIC 521) is similar, but allows also subedge, subface,
and connected_face_sub_set• edge_based_wireframe_shape_representation (AIC 501) uses connected_edge_set • shell_based_wireframe_shape_representation (AIC 502) uses vertex_shell or wire_shell or
open_shell or closed_shell
2008-04-14 Copyright LKSoftWare GmbH, 2008 21
Geometry for neighbouring surfaces
• x
CP - Cartesian_pointC - Curve
Numerical problems:• Cartesian_points are not exactly on the curves• Cartesian_points are not exaclty on the surfaces• Curves are not exactly on the surfacesAs a result the receiver can't be sure what is meant
2008-04-14 Copyright LKSoftWare GmbH, 2008 22
Wrapping geometry by topology
• Topological structure can be verified whether it is closed, open or non-manifold (> 2 )
• Neighbourhood is explicitly expressed without geometrical inaccuracy• Orientation of edge, oriented_edge must be arranged for a unique direction in the edge_loops (not shown here)
VP1
EC3
VP2 VP3
VP4 VP5 VP6
EC4 EC5
EC2EC1
EC6 EC7
OE3a
OE3b
OE1a
OE1b
OE2a
OE2b
OE5b
OE5a
OE6b
OE4a OE4b
OE7a
OE6a OE7a
FB-EL-A FB-EL-A
AF-A AF-B
Closed_shell
VP - Vertex_pointEC - Edge_curveOE - Oriented_edge
FB - Face_boundEL - Edge_loopAF - Advanced_face
2008-04-14 Copyright LKSoftWare GmbH, 2008 23
Example from ISO 10303-521: AIC Manifold subsurface
• The first manifold_subsurface_shape_representation is defined on the shell of an advanced_brep_shape_representation
• The second one is defined within the first one (connected_face_sub_set)
subedge
Second subsurface
First subsurface
subface
Advance BREP
2008-04-14 Copyright LKSoftWare GmbH, 2008 24
Constructive Solid Geometry
2008-04-14 Copyright LKSoftWare GmbH, 2008 25
CSG: Constructive Solid Geometry (3D)
2008-04-14 Copyright LKSoftWare GmbH, 2008 26
Example from ISO 10303-523:AIC Curve swept solid (1/2)
Ruled surface and directrix curveCross-section used to define swept solid
2008-04-14 Copyright LKSoftWare GmbH, 2008 27
Example from ISO 10303-523:AIC Curve swept solid (2/2)
Result as displayed by some from a viewing system
2008-04-14 Copyright LKSoftWare GmbH, 2008 28
Geometry not covered here
• ISO 10303-41 Units & quantities• ISO 10303-42
• Volume models with inner parametric point formulas• …
• ISO 10303-55 Procedural and hybrid representation• ISO 10303-59 Quality of product shape data• ISO 10303-101 Construction history• ISO 10303-108 Parameterization and constraints for explicit geometric
product models
• see http://www.wikistep.org for• ISO 10303-46 Visual presentation• ISO 10303-47 Shape variation tolerance• ISO 10303-101 Draughting• And other presentation related AICs