STEP / EXPRESSSTEP / EXPRESS - - Objektově orientovaný ISO Objektově orientovaný ISO
standardstandard pro výměnu výrobních pro výměnu výrobních datdat..
Seznámení se Seznámení se
standardemstandardem Ing. Martin Molhanec, CSc.Ing. Martin Molhanec, CSc.
Ing. Roman MíkIng. Roman Mík
Co je to STEP?Co je to STEP?
STSTandardandard for for EExchange of xchange of
PProduction data.roduction data.
STEP STEP je je standard standard pro výměnu pro výměnu výrobních datvýrobních dat
Je toJe to ISO standard ( ISO standard (ISO 10303ISO 10303))
Hlavní cíle standarduHlavní cíle standardu
vytvoření jednoho mezinárodního standardu pro vytvoření jednoho mezinárodního standardu pro celkovou výměnu dat mezi CAD/CAM systémycelkovou výměnu dat mezi CAD/CAM systémy
snaha o popis výrobku v celém jeho životním snaha o popis výrobku v celém jeho životním cyklucyklu
popis výrobku musí být nezávislý na jakémkoliv popis výrobku musí být nezávislý na jakémkoliv systémusystému
oddělení popisu výrobkových dat od jejich oddělení popisu výrobkových dat od jejich implementaceimplementace
Metody popisuMetody popisu Definují jak popsat reálný svět – výrobní Definují jak popsat reálný svět – výrobní
data.data. Jsou postaveny na analytických Jsou postaveny na analytických
metodách softwarového inženýrství.metodách softwarového inženýrství. Používají objektově orientované Používají objektově orientované
paradigma.paradigma. Základem jeZákladem je EXPRESSEXPRESS language ( language (ISO ISO
10303-1110303-11).).
PPřříklad pouíklad použžití jazyka EXPRESSití jazyka EXPRESS
SCHEMA materials;SCHEMA materials; ENTITY linear_material;ENTITY linear_material; name : STRING;name : STRING; young_modulus : REAL;young_modulus : REAL; coef_thermal_expansion : coef_thermal_expansion : REAL;REAL;
shear_modulus : REAL;shear_modulus : REAL; yield_stress : REAL;yield_stress : REAL; ultimate_stress : REAL;ultimate_stress : REAL; poissons_ratio : REAL;poissons_ratio : REAL; END_ENTITY;END_ENTITY;END_SCHEMA (* materials *);END_SCHEMA (* materials *);
Metody implementaceMetody implementace Popisují mapování mezi formální specifikací a Popisují mapování mezi formální specifikací a
reprezentací použitou pro implementaci reprezentací použitou pro implementaci standardu STEP.standardu STEP.
V současné době existují následující ISO V současné době existují následující ISO 10303 části10303 části::
21 (STEP file format)21 (STEP file format) 22 (Abstract STEP Data Access Interface – SDAI)22 (Abstract STEP Data Access Interface – SDAI) 23 (C++ 23 (C++ Language Binding to the SDAILanguage Binding to the SDAI)) 24 (24 (C Language Binding to the SDAI)C Language Binding to the SDAI) 25 (25 (Late FORTRAN Binding to the SDAI - Late FORTRAN Binding to the SDAI -
nedokončenonedokončeno) ) 26 (Interface Definition Language (IDL) Binding to 26 (Interface Definition Language (IDL) Binding to
SDAI)SDAI) 27 (Java™ language-based SDAI)27 (Java™ language-based SDAI) 28 (STEP data in XML) products are under 28 (STEP data in XML) products are under
developmentdevelopment
Aplikační protokolyAplikační protokoly AplikačníAplikační protokoly protokoly (AP’s, (AP’s, části STEPučásti STEPu 2xx) 2xx)
definují formální modely pro konkrétní definují formální modely pro konkrétní aplikační oblastaplikační oblast
komplexní datové modely používané k popisu komplexní datové modely používané k popisu specifického produktu (výrobku)specifického produktu (výrobku)
obsahuje soubor schémat datových struktur jež obsahuje soubor schémat datových struktur jež mají být již dále používány v konkrétní oblastimají být již dále používány v konkrétní oblasti
Některé příklady aplikačních protokolůNěkteré příklady aplikačních protokolů AP201 - Explicit Draughting (přímé rýsování)AP201 - Explicit Draughting (přímé rýsování) AP202 - Associative Draughting (asociativní AP202 - Associative Draughting (asociativní
rýsování)rýsování) AP203: Configuration controlledAP203: Configuration controlled 3D Design (3D 3D Design (3D
projektování dle zadané konfigurace)projektování dle zadané konfigurace)
Jazyk Jazyk EXPRESEXPRESSS Je objektově orientovanýJe objektově orientovaný
Člověku srozumitelnýČlověku srozumitelný
Vhodný pro počítačové zpracováníVhodný pro počítačové zpracování
Je podobný jiným Je podobný jiným OOPL (OOPL (object oriented object oriented
program languageprogram language)) – zejména – zejména jazykům jazykům definující strukturu objektově definující strukturu objektově orientované databáze orientované databáze
DatDatový ový model model jeje podobnýpodobný ERM (Entity- ERM (Entity-Relationship ModelRelationship Model ))
EXPRESS languageEXPRESS language
EXPRESS-C (EXPRESS with static and EXPRESS-C (EXPRESS with static and behavioural modelling capabilities)behavioural modelling capabilities)
EXPRESS-G (Graphical language)EXPRESS-G (Graphical language) EXPRESS-I (Instantiation language)EXPRESS-I (Instantiation language) EXPRESS-M (Mapping definition EXPRESS-M (Mapping definition
language)language) EXPRESS-P (Process definition language)EXPRESS-P (Process definition language) EXPRESS-V (Extension of EXPRESS EXPRESS-V (Extension of EXPRESS
which enables the creation of views)which enables the creation of views) EXPRESS-X (Merger of M and V)EXPRESS-X (Merger of M and V)
PříkladPříklad jazyka jazyka EXPRESS-EXPRESS-G (Graphical language)G (Graphical language)
SchemaSchema
Je tvořeno souborem mezi sebou navzájem Je tvořeno souborem mezi sebou navzájem svázaných (vzájemně se odkazujících) objektů svázaných (vzájemně se odkazujících) objektů typu ENTITY, jejichž prostřednictvím je možno typu ENTITY, jejichž prostřednictvím je možno popsat danou předmětnou oblast.popsat danou předmětnou oblast.
Je to také objekt nejvyšší úrovně zastřešující Je to také objekt nejvyšší úrovně zastřešující definice dalších objektů, např. entit.definice dalších objektů, např. entit.
Objekt ENTITYObjekt ENTITY Základní informační objekt Základní informační objekt Soubor atributů a metodSoubor atributů a metod FormátFormát
ENTITY name_of_entity;ENTITY name_of_entity;<text definice třídy><text definice třídy>
END_ENTITY;END_ENTITY; Rozlišujeme různé typy atributůRozlišujeme různé typy atributů
explicitní (EXPLICIT)explicitní (EXPLICIT) odvozené (DERIVED)odvozené (DERIVED) inverzní (INVERSE)inverzní (INVERSE)
EXPRESS languageEXPRESS language((definice bodudefinice bodu))
ENTITY Point;ENTITY Point;
x: REAL;x: REAL;
y: REAL;y: REAL;
END_ENTITY;END_ENTITY;
EXPRESS languageEXPRESS language((definice definice 3D 3D bodu bodu))
ENTITY Point3DENTITY Point3D
SUBTYPE OF (Point);SUBTYPE OF (Point);
z : REAL;z : REAL;
END_ENTITY;END_ENTITY;
Typy datTypy dat
Základní datové typyZákladní datové typy prostá data (SIMPLE) prostá data (SIMPLE) agregovaná (AGGREGATE) agregovaná (AGGREGATE) vyjmenovaná (NAMED) vyjmenovaná (NAMED) generická (GENERIC) generická (GENERIC) výčtová (ENUMERATION) výčtová (ENUMERATION) výběrová (SELECT) výběrová (SELECT)
Vazby (Vazby (relace, dědičnostrelace, dědičnost)) Pravidla (Pravidla (UNIQUE, WHERE, RULEUNIQUE, WHERE, RULE))
AgregovanAgregovanéé typy typy BBagag : Netříděná kolekce. : Netříděná kolekce.
Soubor prvků, který může obsahovat jak určitý, tak libovolný počet prvků, které se mohou opakovat. Hodnoty NULL nejsou dovoleny. Duplicitní hodnoty jsou dovoleny.
ListList : Tříděná kolekce. : Tříděná kolekce. Seznam prvků, který je určen pro definovaný nebo libovolný Seznam prvků, který je určen pro definovaný nebo libovolný počet prvků s možností zakázat opakování stejných počet prvků s možností zakázat opakování stejných Hodnoty Hodnoty NULL nejsou dovoleny. Duplicitní hodnoty jsou dovoleny.NULL nejsou dovoleny. Duplicitní hodnoty jsou dovoleny.
SetSet : Netříděná kolekce. : Netříděná kolekce. Nepřipouští se opakování. Nejsou dovoleny ani hodnoty NULL, Nepřipouští se opakování. Nejsou dovoleny ani hodnoty NULL, ani duplicitní hodnoty.ani duplicitní hodnoty.
ArrayArray : Tříděná kolekce pevné velikosti. : Tříděná kolekce pevné velikosti. Jsou dovoleny hodnoty NULL i duplicitní hodnoty, Jsou dovoleny hodnoty NULL i duplicitní hodnoty, možno možno zakázat opakování stejných prvků.zakázat opakování stejných prvků.
a : ARRAY [0:3] OF ARRAY [1:17] OF OPTIONAL INTEGERa : ARRAY [0:3] OF ARRAY [1:17] OF OPTIONAL INTEGER
Více typů dědičnostiVíce typů dědičnosti
ONEOF –ONEOF –potomek může být pouze potomek může být pouze jednoho podtypujednoho podtypu. Je to pouze muž nebo . Je to pouze muž nebo
pouze žena.pouze žena.
AND – AND – potomek je vždy všemi podtypy. potomek je vždy všemi podtypy. Je to student i zaměstnanec.Je to student i zaměstnanec.
ANDOR – ANDOR – nedefinuje žádná pravidla. Je nedefinuje žádná pravidla. Je to student nebo zaměstnanec nebo to student nebo zaměstnanec nebo student i zaměstnanec.student i zaměstnanec.
Složitější příkladSložitější příklad(*(*Somerset house–místo, kde se zaznamenávají údaje o narození, sňatcích a úmrtíchSomerset house–místo, kde se zaznamenávají údaje o narození, sňatcích a úmrtích*)*)SCHEMA somerset_house;SCHEMA somerset_house;
TYPE date = STRING; END_TYPE;TYPE date = STRING; END_TYPE;TYPE official_number = STRING; END_TYPE;TYPE official_number = STRING; END_TYPE;TYPE label = STRING; END_TYPE;TYPE label = STRING; END_TYPE;TYPE male_or_female = ENUMERATION OF (stud, studmuffin); TYPE male_or_female = ENUMERATION OF (stud, studmuffin); END_TYPE;END_TYPE;
(* (* osobaosoba *) *)ENTITY subject;ENTITY subject;
forename : label;forename : label;surname : label;surname : label;sex : male_or_female;sex : male_or_female;birth_date : date;birth_date : date;death_date : OPTIONAL date;death_date : OPTIONAL date;
DERIVEDERIVEdead : BOOLEAN := EXISTS (death_date); dead : BOOLEAN := EXISTS (death_date); (* (* odvozený atribut mrtvýodvozený atribut mrtvý *) *)
WHEREWHERE(* (* pravidlo: osoba není mrtvá nebo zemřela později, než se narodilapravidlo: osoba není mrtvá nebo zemřela později, než se narodila *) *)WR1 : NOT dead OR death_date > birth_date;WR1 : NOT dead OR death_date > birth_date;
END_ENTITY;END_ENTITY;pokračování pokračování
>>>>
Složitější příkladSložitější příklad(* (* všechny registrované sňatkyvšechny registrované sňatky *) *)
ENTITY union;ENTITY union;license : official_number;license : official_number;wife : subject;wife : subject;husband : subject;husband : subject;start_date : date;start_date : date;end_date : optional date;end_date : optional date;
DERIVEDERIVEdivorced : BOOLEAN := EXISTS (end_date); (*divorced : BOOLEAN := EXISTS (end_date); (* odvozený atribut odvozený atribut
rozvedenýrozvedený *) *)WHEREWHERE
WR1 : NOT EXIST (end_date) OR end_date > start_date;WR1 : NOT EXIST (end_date) OR end_date > start_date;WR2 : wife.sex = studmuffin;WR2 : wife.sex = studmuffin;WR3 : husband.sex = stud;WR3 : husband.sex = stud;
END_ENTITY;END_ENTITY; pokračování >>pokračování >>
Složitější příkladSložitější příklad(* (* potomekpotomek *) *)
ENTITY issue;ENTITY issue;
child : subject;child : subject;
mother : subject;mother : subject;
marriage : OPTIONAL union;marriage : OPTIONAL union;
WHEREWHERE
WR1 : NOT EXISTS (marriage) OR marriage.wife :=: mother;WR1 : NOT EXISTS (marriage) OR marriage.wife :=: mother;
WR2 : mother.sex = studmuffin;WR2 : mother.sex = studmuffin;
WR3 : NOT EXISTS (marriage) OR marriage.start_date < WR3 : NOT EXISTS (marriage) OR marriage.start_date < child.birth_date;child.birth_date;
END_ENTITY;END_ENTITY;
END_SCHEMA;END_SCHEMA;
Příklad definice pohledu pomocí EXPRESS-XPříklad definice pohledu pomocí EXPRESS-X
VIEW VIEW mother_in_lawmother_in_law; ; (* (* tchýnětchýně *) *)
FROM FROM him, her : subject, him, her : subject,
birth : issue, birth : issue,
knot : unionknot : union;;
WHEREWHERE
knot.husband :=: him;knot.husband :=: him;
knot.wife :=: her;knot.wife :=: her;
birth.child :=: her;birth.child :=: her;
NOT EXISTS (knot.end_date);NOT EXISTS (knot.end_date);
SELECTSELECT
man : label := him.forename;man : label := him.forename;
woman : label := her.forename;woman : label := her.forename;
mum_in_law : subject := birth.mother;mum_in_law : subject := birth.mother;
END_VIEW;END_VIEW;
Ukázka formátu souboru pro přenos dat Ukázka formátu souboru pro přenos dat (Physical File)(Physical File)
ISO-10303-21;ISO-10303-21;
HEADER;HEADER;/* /* výměnný souborvýměnný soubor */ */
FILE_DESCRIPTION();FILE_DESCRIPTION();FILE_NAME();FILE_NAME();FILE_SCHEMA (('somerset_house'));FILE_SCHEMA (('somerset_house'));ENDSEC;ENDSEC;DATA;DATA;#10=SUBJECT ('George', 'Windsor', .stud., '10-20-1890', '1-13-1957');#10=SUBJECT ('George', 'Windsor', .stud., '10-20-1890', '1-13-1957');#20=SUBJECT ('Queen Mum', 'Something', .studmuffin., '10-21-1903', #20=SUBJECT ('Queen Mum', 'Something', .studmuffin., '10-21-1903',
$);$);#30=SUBJECT ('Queen Elizabeth', 'Windsor', .studmuffin., '5-3-1930', #30=SUBJECT ('Queen Elizabeth', 'Windsor', .studmuffin., '5-3-1930',
$);$);#40=SUBJECT ('Philip', 'Windsor', .stud., '6-1-1925', $);#40=SUBJECT ('Philip', 'Windsor', .stud., '6-1-1925', $);#50=SUBJECT ('Margret', 'Windsor', .studmuffin., '5-3-1932', $);#50=SUBJECT ('Margret', 'Windsor', .studmuffin., '5-3-1932', $);#60=SUBJECT ('Charles', 'Windsor', .stud., '9-6-1947', $);#60=SUBJECT ('Charles', 'Windsor', .stud., '9-6-1947', $);. . .. . .
pokračování >>pokračování >>
Ukázka formátu souboru pro přenos dat Ukázka formátu souboru pro přenos dat (Physical File)(Physical File)
#160=UNION ('123', #20, #10, '5-3-1925', $);#160=UNION ('123', #20, #10, '5-3-1925', $);#170=UNION ('345', #30, #40, '9-6-1942', $);#170=UNION ('345', #30, #40, '9-6-1942', $);. . . . . . #210=ISSUE (#30, #20, #160);#210=ISSUE (#30, #20, #160);#220=ISSUE (#50, #20, #160);#220=ISSUE (#50, #20, #160);#230=ISSUE (#60, #30, #170);#230=ISSUE (#60, #30, #170);. . .. . .#380=MOTHER_IN_LAW ('Philip', 'Queen Mum', #20);#380=MOTHER_IN_LAW ('Philip', 'Queen Mum', #20);
ENDSEC;ENDSEC;
END-ISO-10303-21;END-ISO-10303-21;
Vývojové nástroje Vývojové nástroje 1)1) Nástroje k modelování informacíNástroje k modelování informací poskytují rychlou definici poskytují rychlou definici
produktových modelů pomocí jazyka EXPRESS, který je produktových modelů pomocí jazyka EXPRESS, který je základem STEPu.základem STEPu.
2)2) Vývojářské nástrojeVývojářské nástroje zjednodušují proces komunikace geometrie zjednodušují proces komunikace geometrie STEPu s existujícími databázovými formáty poskytnutím editorů, STEPu s existujícími databázovými formáty poskytnutím editorů, conformance tools, kompilerů EXPRESS a nástrojů pro definici conformance tools, kompilerů EXPRESS a nástrojů pro definici schémat a rozhraní k ostatním běžným formátům produktových schémat a rozhraní k ostatním běžným formátům produktových modelů např. k IGES a k programovacím jazykům jako jsou C++ modelů např. k IGES a k programovacím jazykům jako jsou C++ a Java.a Java.
3)3) Nástroje správy datNástroje správy dat pomáhají zjednodušit proces výměny dat pomáhají zjednodušit proces výměny dat poskytnutím funkcí vizualizace, překladů, verifikace a opravy dat.poskytnutím funkcí vizualizace, překladů, verifikace a opravy dat.
4)4) Nástroje k publikování CAD datNástroje k publikování CAD dat ve formátu STEP na Internetu ve formátu STEP na Internetu pomáhají snížit závislost na hardwarových platformách nebo CAD pomáhají snížit závislost na hardwarových platformách nebo CAD systémech a snižují náklady datové komunikace.systémech a snižují náklady datové komunikace.
EXPRESS/STEP toolsEXPRESS/STEP tools ST-Developer ST-Developer ((aktuální verze 9.0)aktuální verze 9.0)
software firmy STEP Tools, Inc. Slouží pro vytváření aplikací a software firmy STEP Tools, Inc. Slouží pro vytváření aplikací a práci se STEP daty, programování pomocí C/C++.práci se STEP daty, programování pomocí C/C++.
ST-Viewer ST-Viewer ((aktuální verze 4.0aktuální verze 4.0)) software firmy STEP Tools, Inc. Interaktivní nástroj pro software firmy STEP Tools, Inc. Interaktivní nástroj pro
zobrazování 3D dat produktu a poskytuje uživateli levný přístup zobrazování 3D dat produktu a poskytuje uživateli levný přístup k 3D CAD informacímk 3D CAD informacím
WinSTEP (Version 3.0) WinSTEP (Version 3.0) University of the Federal Armed ForcesUniversity of the Federal Armed Forces
J-SDAI J-SDAI LKSoftWare GmbHLKSoftWare GmbH
NIST Expresso NIST Expresso National Institute for Standards and National Institute for Standards and
TechnologyTechnology EzExpressEzExpress
freefree
EzExpress (editor for EzExpress (editor for STEP definition files)STEP definition files)
Ukázka rozhraní programu Ukázka rozhraní programu ST-Developer 9.0 ST-Developer 9.0
Ukázka rozhraní programu Ukázka rozhraní programu ST-Viewer 4.0ST-Viewer 4.0
JSDAI STEP – Book JSDAI STEP – Book AP210AP210
ZávěrZávěr Standard STEP je asi nejvýznamnější krok v Standard STEP je asi nejvýznamnější krok v
oblasti výměny výrobních dat. oblasti výměny výrobních dat. Je podporován těmi nejvýznamnějšími výrobci Je podporován těmi nejvýznamnějšími výrobci
zejména v USA a západní Evropě, např. firmou zejména v USA a západní Evropě, např. firmou General Electric, a dalšími.General Electric, a dalšími.
Objektová bohatost a úplnost jazyka EXPRESSObjektová bohatost a úplnost jazyka EXPRESS Budoucnost zajištěna integrací s informační Budoucnost zajištěna integrací s informační
oblastí – především jazyka XMLoblastí – především jazyka XML Nicméně by tento objektově orientovaný standard Nicméně by tento objektově orientovaný standard
měl být také v oblasti zájmu všech zájemců o měl být také v oblasti zájmu všech zájemců o objektově orientované paradigma, protože rozsah objektově orientované paradigma, protože rozsah a snaha o úplnost objektového modelu je a snaha o úplnost objektového modelu je překvapující.překvapující.
Ing. Martin Molhanec, Ing. Martin Molhanec, CSc.CSc.
České vysoké učení technickéČeské vysoké učení technické
Fakulta elektrotechnickáFakulta elektrotechnická
Katedra elektrotechnologieKatedra elektrotechnologie
Technická Technická 22
166 27 PRAHA 6166 27 PRAHA 6
Tel:. (++420) 224 352 118
Email: [email protected]
WWW: http://martin.feld.cvut.cz/~mmm