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
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
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
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
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 form a directed acyclic graph 2008-04-14 Copyright LKSoftWare GmbH, 2008
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
Generic representation_items (p43) Details on measure, value and units are not provided here. 2008-04-14 Copyright LKSoftWare GmbH, 2008
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
Associating representation data with 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
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
Copyright LKSoftWare GmbH, 2008 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
Copyright LKSoftWare GmbH, 2008 Instance pattern (2/2) for representation_relationship_with_transformation #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(…); 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 !!! 2008-04-14 Copyright LKSoftWare GmbH, 2008
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
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
Entities for Geometrically bounded wireframe ISO 10303-510: AIC Geometrically bounded wireframe ISO/TS 10303-1510: AM Geometrically bounded wireframe ISO 10303-503: AIC Geometrically bounded 2D wireframe ISO/TS 10303-1347: AM Wireframe 2D 2008-04-14 Copyright LKSoftWare GmbH, 2008
Example for Geometrically bounded wireframe with composite_curve (2D) #110: 1 / 0 #100: 0 / 0 #120: 0 / 1 #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.)); 2008-04-14 Copyright LKSoftWare GmbH, 2008
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
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
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
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
Geometry for neighbouring surfaces CP - Cartesian_point C - 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 surfaces As a result the receiver can't be sure what is meant x 2008-04-14 Copyright LKSoftWare GmbH, 2008
Wrapping geometry by topology VP - Vertex_point EC - Edge_curve OE - Oriented_edge FB - Face_bound EL - Edge_loop AF - Advanced_face OE1a OE2a VP1 EC1 VP2 EC2 VP3 OE1b OE2b OE3b OE5a EC3 OE3a FB-EL-A OE4a EC4 OE4b FB-EL-A OE5b EC5 AF-A AF-B OE6b OE7a VP4 EC6 VP5 EC7 VP6 OE6a Closed_shell OE7a 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) 2008-04-14 Copyright LKSoftWare GmbH, 2008
Example from ISO 10303-521: AIC Manifold subsurface subedge subface Second subsurface Advance BREP First 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) 2008-04-14 Copyright LKSoftWare GmbH, 2008
Constructive Solid Geometry 2008-04-14 Copyright LKSoftWare GmbH, 2008
CSG: Constructive Solid Geometry (3D) 2008-04-14 Copyright LKSoftWare GmbH, 2008
Example from ISO 10303-523: AIC Curve swept solid (1/2) Cross-section used to define swept solid Ruled surface and directrix curve 2008-04-14 Copyright LKSoftWare GmbH, 2008
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
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 2008-04-14 Copyright LKSoftWare GmbH, 2008