CADCAE EXCHANGE OF CSG MODELS VIA ISO 10303

  • Slides: 18
Download presentation
CAD-CAE EXCHANGE OF CSG MODELS VIA ISO 10303 STEP: Approach to alternate STEP pre-processors

CAD-CAE EXCHANGE OF CSG MODELS VIA ISO 10303 STEP: Approach to alternate STEP pre-processors development Peter Shilnikov CIM department, Bauman Moscow State Technical University, Moscow, Russia Yuris Puteinis CAD Scientific-Research Center, Moscow, Russia Sergey Belogurov Institute of Theoretical and Experimental Physics, Moscow, Russia Alexander Institute of Theoretical and Experimental Physics, Semennikov Moscow, Russia Peter. Malzacher Gesellschaft für Schwerionenforschung mb. H, Darmstadt, Germany This work was supported by the INTAS grant 06 -1000012 -8778

Introduction: background of proposed solution • There exist analytical tasks which require export of

Introduction: background of proposed solution • There exist analytical tasks which require export of the CAD models into software packages with rather different geometry representation. In some cases it also makes sense to modify and simplify these models following certain rules. In particular we deal with CATIA v. 5 CAD system and GEANT 4 Monte Carlo package developed at CERN [GEANT]. GEANT 4 is a toolkit for the simulation of the passage of particles through matter. Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science.

What kind of geometry GEANT supports

What kind of geometry GEANT supports

 • Propagation of particles through materials requires a lot of geometrical calculations e.

• Propagation of particles through materials requires a lot of geometrical calculations e. g. distance from the given point along given direction to the nearest boundary. Such calculations are fast enough only if relatively simple analytical formulae can be used. For this reason a solid body should be described as a Boolean combination of predefined primitives having analytical descriptions of all the geometrical features. Besides the CAD models have normally much more details than needed for the physical simulations. Thus our task is to develop a tool integrated into CATIA v. 5 for approximation of a part by a GEANT 4 like Boolean tree and then export the approximated model into GEANT 4. This task can be divided into two quite mutually-independent subtasks: • - to obtain GEANT relevant CAD model of design; • - to communicate this GEANT relevant model to GEANT.

Is it possible to communicate CSG models with STEP? Standard STEP functionality allows to

Is it possible to communicate CSG models with STEP? Standard STEP functionality allows to represent CSG models

What is a problem with CSG communicating via STEP? • The problem is in

What is a problem with CSG communicating via STEP? • The problem is in the absence of commercially available STEP converters generating geometric models represented as Boolean tree, i. e. “Constructive solid geometry” (CSG) model. Following reason of this fact can be mentioned: • • the low reliability of this geometric model: there is no warranty that receiving system will obtain exactly same result after Boolean operations executing; • • while communicating with partners users often want to send final resulting models only, hiding know-how details of model generation process; • • CAD vendors do not wish to increase openness of their software systems because it can facilitate users’ migration to software of other vendors.

Nevertheless, CSG modeling is quite attractive for some purposes For example, CHAPS pilot

Nevertheless, CSG modeling is quite attractive for some purposes For example, CHAPS pilot

The way to compensate low realibity of CSG models – use multiple shape representation

The way to compensate low realibity of CSG models – use multiple shape representation

CSG modeling is vital for our task, and we have to implement STEP pre-

CSG modeling is vital for our task, and we have to implement STEP pre- and post-processors of CSG models

Correspondence between STEP and GEANT 4 solid primitives Here Sxx – solution, needed for

Correspondence between STEP and GEANT 4 solid primitives Here Sxx – solution, needed for primitives mapping

What implementation tool we intend to use? STEP related software tools, developed in Russia

What implementation tool we intend to use? STEP related software tools, developed in Russia

Invariant STEP interpreter and generator (mentioned in above slide) {E, R} ▬► {{Fint, Rint}

Invariant STEP interpreter and generator (mentioned in above slide) {E, R} ▬► {{Fint, Rint} + {Fgnr, Rgnr}}, where: E – set of entities; R – set of relationships among entities; Fint – set of interpreter functions; Rint – set of relationships among interpreter functions; Fgnr – set of generator functions; Rgnr – set of relationships among generator functions. Invariant STEP interpreter was debugged and tested in APM Studio CAD

Example of interpreter implementation

Example of interpreter implementation

The top-level architecture of task resolving More detailed representation

The top-level architecture of task resolving More detailed representation

Interpretation of CSG model in GEANT 4 (“Marking” – is assigning to “name” attribute

Interpretation of CSG model in GEANT 4 (“Marking” – is assigning to “name” attribute of CSG nodes description of solid type e. g. “cone”, “twisted trapezoid” etc. This technology facilitates solid type recognition)

Today state of our efforts • For debugging purposes we have developed two converter

Today state of our efforts • For debugging purposes we have developed two converter prototypes: • STEP postprocessor for GEANT 4 • STEP preprocessor for GEANT 4, emulating future CATIA v 5 alternate STEP preprocessor

ISO-10303 -21; HEADER; FILE_DESCRIPTION(('THIS FILE CONTAINS SOME STEP INSTANCES'), '1'); FILE_NAME('S 02. stp', '2007

ISO-10303 -21; HEADER; FILE_DESCRIPTION(('THIS FILE CONTAINS SOME STEP INSTANCES'), '1'); FILE_NAME('S 02. stp', '2007 -11 -13 T 19: 35: 44', ('Unknown'), 'Crp STEP kit utility 1. 0', 'Crp EXPRESS compiler 1. 0', ''); FILE_SCHEMA(('AUTOMOTIVE_DESIGN')); ENDSEC; DATA; #1=PRODUCT_DEFINITION('CSG representation', $, #2, $); #2=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('0', 'no description', #3, . NOT_KNOWN. ); #3=PRODUCT('GB 000', 'GEANT model description', $); #4=ADVANCED_BREP_SHAPE_REPRESENTATION('GB 000', (#12, #22), #5); #5=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( (#9))GLOBAL_UNIT_ASSIGNED_CONTEXT((#6, #7, #8))REPRESENTATION_CONTEXT( 'NONE', 'WORKSPACE')); #6=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(. MILLI. , . METRE. )); #7=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($, . RADIAN. )); #8=(NAMED_UNIT(*)SI_UNIT($, . STERADIAN. )SOLID_ANGLE_UNIT()); #9=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0. 00001), #6, 'distance_accuracy_value', 'NONE'); #10=PRODUCT_DEFINITION_SHAPE($, $, #1); #11=SHAPE_DEFINITION_REPRESENTATION(#10, #4); #12=AXIS 2_PLACEMENT_3 D($, #13, #14, #15); #13=CARTESIAN_POINT($, (0. 0, 0. 0)); #14=DIRECTION($, (1. 0, 0. 0)); #15=DIRECTION($, (0. 0, 1. 0, 0. 0)); #16=CSG_SOLID('CSG Solid', #172); #17=BLOCK($, #18, 3. 1 E+003, 2. 1 E+003, 1. 1 E+003); #18=AXIS 2_PLACEMENT_3 D($, #19, #20, #21); #19=CARTESIAN_POINT($, (0. 0, 0. 0)); #20=DIRECTION($, (0. 0, 1. 0)); #21=DIRECTION($, (1. 0, 0. 0)); #22=MANIFOLD_SOLID_BREP('G 4 Twisted trapezoid', #23); #23=CLOSED_SHELL($, (#24, #64, #95, #126, #148, #160)); #24=ADVANCED_FACE($, (#30), #25, . T. ); #25=B_SPLINE_SURFACE_WITH_KNOTS('', 1, 1, ((#26, #27), (#28, #29)), . UNSPECIFIED. , . U. , (2, 2), (0. 0, 1. 0), . UNSPECIFIED. ); #26=CARTESIAN_POINT($, (-6. 1720525339568172 E+004, -4. 4869092661164141 E+004, -6. 0 E+004)); #27=CARTESIAN_POINT($, (7. 5009984020569445 E+003, 1. 1509520672388091 E+004, 6. 0 E+004)); #28=CARTESIAN_POINT($, (-9. 7590008445528838 E+003, -7. 4869092197062913 E+004, -6. 0 E+004)); #29=CARTESIAN_POINT($, (2. 4821506567062039 E+004, 1. 5095208270884996 E+003, 6. 0 E+004)); #30=FACE_OUTER_BOUND($, #31, . T. ); #31=EDGE_LOOP($, (#32, #42, #50, #58)); #32=ORIENTED_EDGE($, *, *, #33, . F. ); #33=EDGE_CURVE($, #38, #40, #34, . T. ); #34=LINE('Curve for Edge # 9', #35, #37); #35=CARTESIAN_POINT($, (-6. 1720525339568172 E+004, -4. 4869092661164141 E+004, -6. 0 E+004)); #36=DIRECTION($, (0. 462814053606712, 0. 376946550194709, 0. 802318172597649)); #37=VECTOR($, #36, 1. 0); #38=VERTEX_POINT($, #39); #39=CARTESIAN_POINT($, (-6. 1720525339568172 E+004, -4. 4869092661164141 E+004, -6. 0 E+004)); #40=VERTEX_POINT($, #41); #41=CARTESIAN_POINT($, (7. 5009984020569445 E+003, 1. 1509520672388091 E+004, 6. 0 E+004)); #42=ORIENTED_EDGE($, *, *, #43, . F. ); #43=EDGE_CURVE($, #48, #38, #44, . T. ); #44=LINE('Curve for Edge # 4', #45, #47); #45=CARTESIAN_POINT($, (-9. 7590008445528838 E+003, -7. 4869092197062913 E+004, -6. 0 E+004)); #46=DIRECTION($, (-0. 8660254082502548, 0. 4999999922649795, 0. 0)); #47=VECTOR($, #46, 1. 0); #48=VERTEX_POINT($, #49); #49=CARTESIAN_POINT($, (-9. 7590008445528838 E+003, -7. 4869092197062913 E+004, -6. 0 E+004)); #50=ORIENTED_EDGE($, *, *, #51, . T. ); #51=EDGE_CURVE($, #48, #56, #52, . T. ); #52=LINE('Curve for Edge # 12', #53, #55); #53=CARTESIAN_POINT($, (-9. 7590008445528838 E+003, -7. 4869092197062913 E+004, -6. 0 E+004)); #54=DIRECTION($, (0. 2362246976335524, 0. 521753904664804, 0. 8197382235780929) ); #55=VECTOR($, #54, 1. 0); #56=VERTEX_POINT($, #57); #57=CARTESIAN_POINT($, (2. 4821506567062039 E+004, 1. 5095208270884996 E+003, 6. 0 E+004)); #58=ORIENTED_EDGE($, *, *, #59, . T. ); #59=EDGE_CURVE($, #56, #40, #60, . T. ); #60=LINE('Curve for Edge # 8', #61, #63); #61=CARTESIAN_POINT($, (2. 4821506567062039 E+004, 1. 5095208270884996 E+003, 6. 0 E+004)); #62=DIRECTION($, (-0. 8660254082502547, 0. 4999999922649796, 0. 0)); #63=VECTOR($, #62, 1. 0); #64=ADVANCED_FACE($, (#70), #65, . T. ); #65=B_SPLINE_SURFACE_WITH_KNOTS('', 1, 1, ((#66, #67), (#68, #69)), . UNSPECIFIED. , . U. , (2, 2), (0. 0, 1. 0), . UNSPECIFIED. ); #66=CARTESIAN_POINT($, (-4. 2411478554212095 E+004, 3. 6358866803450277 E+004, -6. 0 E+004)); #67=CARTESIAN_POINT($, (1. 5224617116199373 E+004, 4. 4000704458233857 E+004, 6. 0 E+004)); #68=CARTESIAN_POINT($, (-6. 1720525339568172 E+004, -4. 4869092661164141 E+004, -6. 0 E+004)); Result of our efforts: Three CAD systems: Solid. Works 2007, CATIA v 5 & Unigraphics NX 4 can’t read CSG models, but one of CSG nodes, twisted trapezoid was properly interpreted by all these systems: After change #4=CSG_SHAPE_REPRESENTATION ('GB 000', (#12, #16), #5); to #4=ADVANCED_BREP_SHAPE_REPRES ENTATION ('GB 000', (#12, #22), #5); (#22 is manifold_solid_brep instance) CAD systems are able to read our model

Bauman Moscow State Technical University

Bauman Moscow State Technical University