# Presentation: 316432

## STEP Tutorial:“How a Software Developer Implements STEP”Tony Ranger, Theorem SolutionsJanuary 16, 2001

## Who am I ?

- A “developer” develops the standard
- An “implementor” implements the developed standard
- A “user” uses the implemented standard
- I am an implementor  (I know my place!)

## What is STEP ?

- A Neutral Format for Product Data
- An International Standard - ISO 10303
- A Computer Interpretable Definition

- Designed to avoid known problems and limitations of IGES
- Designed to have the capability of covering the full range of product data

## A Neutral Format

**#1723=CARTESIAN_POINT(“PT1”,(1.0,2.0,3.0));**

## A Computer Interpretable Definition  :  Part 21 

**#1723=CARTESIAN_POINT(“PT1”,(1.0,2.0,3.0));**

**ENTITY_INSTANCE = ENTITY_INSTC_NAME “=“ **
**	****	****	****	****SIMPLE_RECORD “;”**

**ENTITY_INSTC_NAME = “#” DIGIT [DIGIT [DIGIT [DIGIT**
** ****	****     ****[DIGIT [DIGIT [DIGIT [DIGIT [DIGIT [DIGIT ]]]]]]] .**

**SIMPLE_RECORD = KEYWORD “(“ [ PARAMETER_LIST ] “)” **

## A Computer Interpretable Definition   :  Express

**#1723=CARTESIAN_POINT(“PT1”,(1.0,2.0,3.0));**

- ENTITY cartesian_point
-   SUBTYPE OF (point);
-   coordinates : LIST[1:3] OF length_measure;
-  END_ENTITY;

- ENTITY point
-   SUPERTYPE OF (cartesian_point)
-   SUBTYPE OF (geometric_representation_item);
-  END_ENTITY;

## A Computer Interpretable Definition  :  Express (2)

- ENTITY geometric_representation_item
-   SUPERTYPE OF (ONEOF(point,direction,vector,placement, etc))
-   SUBTYPE OF (representation_item);
-   DERIVE
-    dim : dimension_count := dimension_of(SELF);
-   WHERE
-    wr1 : SIZEOF(QUERY(using_rep <* using_representations(SELF) | NOT (
-          'PDM_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep
-          .context_of_items)))) = 0;
-  END_ENTITY;

## A Computer Interpretable Definition  :  Express (3)

**#1723=CARTESIAN_POINT(“PT1”,(1.0,2.0,3.0));**

- ENTITY cartesian_point
-   SUBTYPE OF (point);
-   coordinates : LIST[1:3] OF length_measure;
-  END_ENTITY;

- ENTITY representation_item;
-   name : label;
-   WHERE
-    wr1 : SIZEOF(using_representations(SELF)) > 0;
-  END_ENTITY;

## A Computer Interpretable Definition  :  Part 11

**entity_decl=entity_head entity_body END_ENTITY ‘;’**

- ENTITY cartesian_point
-   SUBTYPE OF (point);
-   coordinates : LIST[1:3] OF length_measure;
-  END_ENTITY;

**entity_head = ENTITY entity_id [subsuper] ‘;’ **

**entity_body = {explicit_attr} [derive_clause] **
**   ****[inverse_clause] [unique_clause] [where_clause]  **

## Do I  need to know all this stuff ?

- No - If I only want to dabble
- Yes - If I want to understand what is going on

## Why STEP ?

- It addresses all product data - meta data as well as technical
- It is becoming a global standard
- It has 10+ years of development
- The e-world needs standards
- Modular architecture allows wide range of interoperability

- It has warts
- Development is at ISO-speed
- Industry requirements always moving ahead

**Pros and Cons**

**but it works**

## What does the market want ?

- Data Exchange
- Data Sharing
- Data Archiving
- Standards : STEP, OMG, XML
- Interoperability
- Involvement with standards development
-  PDES, Inc., OMG

## What do our customers really really want ?

- Conformance
- Full Implementation
-                                         ?
- Robustness
- Consistent Implementation
- It has to satisfy my business need
- IT HAS TO WORK!

## Conformance Testing ?

**Eye halve a spelling chequer**
**It came with my pea sea**
**It plainly marques four my revue**
**Miss steaks eye kin knot sea**

## Conformance Testing ?

**Eye have run this poem threw it**
**I am shore your pleased two no**
**Its letter perfect awl the weigh**

**Eye strike a key and type a word**
**And weight four it two say**
**Weather eye am wrong oar write**
**It shows me strait a weigh.**
**As soon as a mist ache is maid**
**It nose bee fore two long**
**And eye can put the error rite**
**Its rare lea ever wrong.**

**My chequer tolled me sew.**

## Full Implementation ?

- ENTITY degenerate_pcurve
-   SUBTYPE OF (point);
-   basis_surface      : surface;
-   reference_to_curve : definitional_representation;
- WHERE
-   WR1: SIZEOF(reference_to_curve\representation.items) = 1;
-   WR2: 'CONFIG_CONTROL_DESIGN.CURVE' IN
-        TYPEOF (reference_to_curve\representation.items[1]);
-   WR3: reference_to_curve\representation.items[1]\
-        geometric_representation_item.dim = 2;
- END_ENTITY; -- degenerate_pcurve

**Nobody is expected to use this -**
** ****so it has not been implemented**

## IT HAS TO WORK!

- Compatibility with other translators
- Equivalent Implementation
- Sympathetic Implementation
- Implementors Agreements
- Testing Forums - CAx-IF, PDM-IF
- Pilot Projects -
- PDES, Inc. Engineering Analysis Pilot (AP209)
- Electro-Mechanical Pilot (AP210)

## Where do I start ?

- Understand the framework - Express, Part 21, Schema
- Understand the application - select an AP
- Read the recommended practices
- Select your tools
- STEP Tools, Inc. ST-Developer
- ProSTEP STEP ToolKit
- homegrown ?
- Join PDES, Inc.
- Access to training, expertise, consultancy
- Join an appropriate implementors forum
- Check the implementors agreements

## How do I test my program ?

- Implementors Forum - access to library of test parts
- but beware really old parts
-  Syntax Checkers
-  Conformance Checkers
-  Other vendors translators

## How do I deliver it ?

- STEP translators cannot be considered as fully independent processors
- Functionality releases need to be coordinated
- Functionality needs to be backwards compatible
- Functionality needs to be ‘forwards’ compatible
- Robustness to guard against change needs to be built in

## How do I maintain it ?

- STEP as a standard is here for the long haul
- As the standard evolves it needs to be supportive of REALLY old data
- Processors too need to be supportive of ANCIENT data

## Where is STEP going ?

- Modular STEP
- STEP ML
- SDAI
- STEP Based Repositories
- New Application Protocols
- New Disciplines
- etc

## Conclusions

- STEP Implementors have a hard time
- They need your sympathy (if you’re a user or developer)
- STEP processes provide a business benefit to users
- STEP on the web  (e-STEP) will grow
- This is where data exchange is @
-                                                            ? Questions ?