ISO 10303-21

KROK
Rozszerzenie nazwy pliku
.stp, .step, .stpnc, .p21, .210
Rodzaj mediów internetowych
model/krok, model/krok+xml, model/krok+zip, model/krok-xml+zip
magiczny numer ISO-10303-21
Opracowany przez ISO
Pierwsze wydanie 1994
Strona internetowa Specyfikacja

STEP-File to szeroko stosowana forma wymiany danych STEP . ISO 10303 może reprezentować obiekty 3D w projektowaniu wspomaganym komputerowo (CAD) i powiązane informacje. Ze względu na swoją ASCII , plik STEP jest łatwy do odczytania, zazwyczaj z jedną instancją na linię. Format pliku STEP jest zdefiniowany w normie ISO 10303-21 Clear Text Encoding of the Exchange Structure .

ISO 10303-21 definiuje mechanizm kodowania do reprezentowania danych zgodnych z określonym schematem w języku modelowania danych EXPRESS określonym w ISO 10303-11 . Plik STEP jest również nazywany plikiem p21 i plikiem fizycznym STEP . Rozszerzenia plików .stp i .step wskazują, że plik zawiera dane zgodne z protokołami aplikacyjnymi STEP, podczas gdy rozszerzenie .p21 powinno być używane do wszystkich innych celów.

Zastosowanie ISO 10303-21 nie ogranicza się do STEP. Klasy Industry Foundation i wcześniejszy CIMSteel Integration Standard (CIS/2) definiują schemat EXPRESS dla danych modelowania informacji o budynku i określają ISO 10303-21 jako kodowanie wymiany .

Historia

Niektóre szczegóły, na które należy zwrócić uwagę:

  • Pierwsze wydanie, ISO 10303-21:1994, zawierało pewne błędy, które zostały poprawione w sprostowaniu technicznym. Dlatego zaleca się użytkownikom zapoznanie się z drugim wydaniem (patrz poniżej).
  • Wydanie drugie, ISO 10303-21:2002, zawierało sprostowanie i rozszerzenia kilku sekcji danych.
  • Trzecia edycja, ISO 10303-21: 2016, dodała sekcje zakotwiczenia, odniesienia i podpisu do obsługi odniesień zewnętrznych, obsługę skompresowanych struktur wymiany w archiwum ZIP, podpisy cyfrowe i kodowanie znaków UTF-8.
  • Część 21 zdefiniowała dwie klasy zgodności. Różnią się tylko sposobem kodowania złożonych instancji encji.
    • Stosowana zawsze klasa zgodności 1 wymusza tzw. mapowanie wewnętrzne , które jest bardziej zwarte.
    • Klasa zgodności 2, która w praktyce nie jest stosowana, zawsze wymusza zewnętrzne odwzorowanie . Teoretycznie pozwoliłoby to na lepszą interoperacyjność AP, ponieważ postprocesor może wiedzieć, jak obsługiwać niektóre nadtypy, ale może nie znać określonych podtypów.
  • Wydanie I części 21 wymusza stosowanie tzw. NAZW KRÓTKICH, które w wydaniu II są opcjonalne. W praktyce jednak NAZWY KRÓTKIE są rzadko używane.
  • Druga edycja pozwala na użycie wielu sekcji danych. W praktyce jednak większość implementacji wykorzystuje tylko jedną sekcję danych (kodowanie 1. edycji).

ISO 10303-21 Bloki konstrukcyjne

Przykład

Typowy przykład wygląda tak:

ISO-10303-21; NAGŁÓWEK; FILE_DESCRIPTION( /* opis */ („Minimalny przykład AP214 z pojedynczą częścią”), /* poziom_implementacji */ '2;1'); FILE_NAME( /* nazwa */ 'demo', /* znacznik czasu */ '2003-12-27T11:57:53', /* autor */ ('Lothar Klein'), /* organizacja */ ('LKSoft') , /* wersja_preprocesora */ ' ', /* system_początkowy */ 'IDA-STEP', /* autoryzacja */ ' '); FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 2 1 1}')); KONIEC; DANE; #10=ORGANIZACJA('O0001','LKSoft','firma'); #11=PRODUCT_DEFINITION_CONTEXT('definicja części',#12,'produkcja'); #12=APPLICATION_CONTEXT('projekt mechaniczny'); #13=APPLICATION_PROTOCOL_DEFINITION('','automotive_design',2003,#12); #14=PRODUKT_DEFINITION('0',$,#15,#11); #15=PRODUCT_DEFINITION_FORMATION('1',$,#16); #16=PRODUCT('A0001','Test Część 1','',(#18)); #17=PRODUCT_RELATED_PRODUCT_CATEGORY('część',$,(#16)); #18=PRODUCT_CONTEXT('',#12,''); #19=APPLIED_ORGANIZATION_ASSIGNMENT(#10,#20,(#16)); #20=ORGANIZATION_ROLE('identyfikator właściciela'); KONIEC; END-ISO-10303-21;

Sekcja NAGŁÓWEK

Jak widać w powyższym przykładzie, plik jest podzielony na dwie sekcje następujące po początkowym słowie kluczowym ISO-10303-21; :

Sekcja HEADER ma stałą strukturę składającą się z 3 do 6 grup w podanej kolejności. Z wyjątkiem pól data_stamp i FILE_SCHEMA wszystkie pola mogą zawierać puste ciągi znaków.

  • OPIS PLIKU
    • opis
    • poziom_implementacji . Opcja wersji i zgodności tego pliku. Możliwe wersje to „1” dla pierwotnej normy z 1994 r., „2” dla sprostowania technicznego z 1995 r. i „3” dla drugiego wydania. Opcja zgodności to „1” dla wewnętrznego i „2” dla zewnętrznego mapowania złożonych wystąpień encji. Często można tu znaleźć wartość __'2;1'__. Wartość „2;2” wymuszająca zewnętrzne mapowanie jest również możliwa, ale używana bardzo rzadko. Wartości „3;1” i „3;2” oznaczają rozszerzone pliki STEP zdefiniowane w standardzie 2001 z kilkoma sekcjami DATA, wieloma schematami i obsługą FILE_POPULATION.
  • NAZWA PLIKU
    • nazwa tej struktury wymiany. Może odpowiadać nazwie pliku w systemie plików lub odzwierciedlać dane w tym pliku. Nie ma ścisłej zasady korzystania z tego pola.
    • znacznik_czasu wskazuje czas utworzenia tego pliku. Czas jest podany w międzynarodowym formacie danych czasowych ISO 8601 , np. 2003-12-27T11:57:53 dla 27 grudnia 2003 r., 2 minuty do południa.
    • autor imię i nazwisko oraz adres pocztowy osoby tworzącej tę strukturę wymiany
    • organizacja organizacja, do której należy dana osoba
    • preprocessor_version nazwa systemu i jego wersja, która tworzy ten plik STEP
    • originating_system nazwa systemu i jego wersja, która pierwotnie utworzyła informacje zawarte w tym pliku STEP.
    • upoważnienie nazwisko i adres pocztowy osoby, która autoryzowała ten plik.
  • FILE_SCHEMAT. Określa jeden lub kilka Express regulujących informacje w sekcjach danych. W przypadku plików pierwszego wydania można tu wymienić tylko jeden schemat EXPRESS wraz z opcjonalnym identyfikatorem obiektu ASN.1 wersji schematu. Pliki drugiego wydania mogą określać kilka schematów EXPRESS.

Ostatnie trzy grupy nagłówków obowiązują tylko w plikach drugiego wydania.

  • FILE_POPULATION, wskazując poprawną populację (zbiór instancji encji), która jest zgodna ze schematami EXPRESS. Odbywa się to poprzez zbieranie danych z kilku sekcji danych i odwołań z innych sekcji danych.
    • schemat_regulacji , schemat EXPRESS, do którego należy wskazana populacja i za pomocą którego można ją zweryfikować.
    • determination_method, aby dowiedzieć się, które instancje należą do populacji. Wstępnie zdefiniowane są trzy metody: SECTION_BOUNDARY, INCLUDE_ALL_COMPATIBLE i INCLUDE_REFERENCED.
    • regulowane_sekcje , sekcje danych, których instancje jednostek w pełni należą do populacji.
    • Koncepcja FILE_POPULATION jest bardzo zbliżona do schema_instance SDAI. Niestety w trakcie procesu standaryzacji nie udało się dojść do porozumienia w sprawie połączenia tych pojęć. Dlatego JSDAI dodaje dalsze atrybuty do FILE_POPULATION jako inteligentne komentarze, aby pokryć wszystkie brakujące informacje z instancji_schematu. Jest to obsługiwane zarówno w przypadku importu, jak i eksportu.
  • SECTION_LANGUAGE umożliwia przypisanie domyślnego języka dla wszystkich lub określonej sekcji danych. Jest to potrzebne w przypadku tych schematów Express, które nie zapewniają możliwości określenia, w jakim języku podane są atrybuty ciągów encji, takie jak nazwa i opis.
  • SECTION_CONTEXT zapewnia możliwość określenia dodatkowych informacji kontekstowych dla wszystkich lub pojedynczych sekcji danych. Można to wykorzystać np. w STEP-AP do wskazania, która klasa zgodności jest objęta określoną sekcją danych.

Sekcja DANYCH

Sekcja DATA zawiera dane aplikacji według jednego konkretnego schematu ekspresowego. Kodowanie tych danych opiera się na kilku prostych zasadach.

  • Nazwa instancji: Każda instancja encji w strukturze wymiany otrzymuje unikalną nazwę w postaci "#1234". Nazwa instancji musi składać się z liczby dodatniej (>0) i zazwyczaj jest mniejsza niż 2 63 . Nazwa instancji jest ważna tylko lokalnie w pliku STEP. Jeśli ta sama treść zostanie ponownie wyeksportowana z systemu, nazwy instancji mogą być różne dla tych samych instancji. Nazwa wystąpienia jest również używana do odwoływania się do innych wystąpień encji za pośrednictwem wartości atrybutów lub członków agregacji. Instancja, do której istnieje odwołanie, może być zdefiniowana przed lub po bieżącej instancji.
  • Instancje typów danych pojedynczej jednostki są reprezentowane przez wpisanie nazwy jednostki wielkimi literami, a następnie wartości atrybutów w zdefiniowanej kolejności w nawiasach. Patrz np. "#16=PRODUKT(...)" powyżej.
  • Instancje złożonych typów danych encji są reprezentowane w pliku STEP przy użyciu mapowania wewnętrznego lub zewnętrznego.
    • Mapowanie zewnętrzne musi być zawsze używane, jeśli złożona instancja encji składa się z więcej niż jednej encji liścia. W tym przypadku wszystkie wartości instancji pojedynczej jednostki są podane niezależnie od siebie w porządku alfabetycznym, jak zdefiniowano powyżej, ze wszystkimi wartościami jednostki zgrupowanymi razem w nawiasach.
    • Mapowanie wewnętrzne jest używane domyślnie dla opcji zgodności 1, gdy złożona instancja encji składa się tylko z jednej encji-liścia. Kodowanie jest podobne do kodowania pojedynczej instancji jednostki z dodatkową kolejnością nadaną przez definicję podtypu.
  • Mapowanie wartości atrybutów:
    • Mapowane są tylko jawne atrybuty. Atrybuty odwrotne, pochodne i ponownie zadeklarowane nie są wymienione, ponieważ ich wartości można wywnioskować z pozostałych.
    • Nieustawione wartości atrybutów są podawane jako „ $ ”.
    • Jawne atrybuty, które zostały ponownie zadeklarowane jako pochodne w podtypie, są kodowane jako „ * ” na pozycji atrybutu typu nadrzędnego.
  • Mapowanie innych typów danych:
    • Wyliczenia, wartości logiczne i logiczne są podawane wielkimi literami z kropką na początku i na końcu, np. „ .PRAWDA. ”.
    • Wartości ciągów są podane w " ". Dla znaków o kodzie większym niż 126 stosowane jest specjalne kodowanie. Obsługiwane są zestawy znaków określone w normach ISO 8859 i 10646. Należy zauważyć, że typowych zestawów znaków 8 (np. zachodnioeuropejskich) lub 16 (Unicode) bitowych nie można bezpośrednio przyjąć jako łańcuchów plików STEP. Trzeba je rozszyfrować w bardzo szczególny sposób.
    • Liczby całkowite i rzeczywiste są używane identycznie jak w typowych językach programowania
    • Wartości binarne (sekwencje bitów) są kodowane w postaci szesnastkowej i otoczone podwójnymi cudzysłowami, przy czym znak wiodący wskazuje liczbę nieużywanych bitów (0, 1, 2 lub 3), po których następuje kodowanie danych w postaci szesnastkowej wielkich liter. Należy zauważyć, że cała wartość binarna jest zakodowana jako pojedyncza liczba szesnastkowa, z bitami najwyższego rzędu w pierwszym znaku szesnastkowym i bitami najniższego rzędu w ostatnim.
    • Elementy agregatów (ZESTAW, BAG, LISTA, TABLICA) podane są w nawiasach okrągłych, oddzielone znakami „ , ”.
    • Należy uważać na wybrane typy danych w oparciu o zdefiniowane typy danych. Tutaj również mapowana jest nazwa zdefiniowanego typu danych.
  • Zobacz także „Mapowanie Express to Java”, aby uzyskać więcej informacji na ten temat. [ wymagane wyjaśnienie ]

Krytyka

Prawdopodobnie jedyną zaletą plików STEP jest to, że są one szeroko stosowane w wielu programach CAD. Z drugiej strony jego format, a zwłaszcza EXPRESS ma kilka wad: [ opinia ]

  • specyfikacja nie jest ogólnodostępna (trzeba za nią zapłacić)
  • nie jest możliwe sekwencyjne odczytanie pliku STEP. Jednostki mogą być w dowolnej kolejności i mogą odwoływać się do innych jednostek w przód iw tył w pliku (zobacz element nr 14 w powyższym przykładzie). Dlatego cały plik musi zostać wczytany do pamięci i poddany tokenizacji przed analizowaniem. [ potrzebne źródło ]
  • format nie jest wydajny pod względem przechowywania. Na przykład przypisanie kodu koloru RGB do krawędzi wymaga co najmniej 6 innych elementów, a określenie transformacji wymaga co najmniej 5 dodatkowych elementów (PLANE, AXIS2_PLACEMENT_3D, CARTESIAN_POINT i 2 elementy DIRECTION) [ potrzebne źródło ]
  • format nie jest dobrze zdefiniowany. Na przykład ten sam trójkąt można zakodować w pliku STEP na wiele różnych sposobów (za pomocą FACET_BREP, ADVANCED_FACE, POLY_LOOP, EDGE_LOOP, jako MANIFOLD_SOLID_REPRESENTATION lub jako SHELL_BASED_REPRESENTATION itp.). Importer musi rozpoznać wszystkie warianty, aby spójnie odczytać plik STEP. Większość oprogramowania CAD nie obsługuje pełnego zestawu wpisów STEP i jako takie jest ograniczone do określonego podzbioru elementów STEP. Na przykład Autodesk Knowledge Base, lista obsługiwanych jednostek STEP . [ potrzebne źródło ]
  • W rezultacie większość programów CAD ma funkcję „Napraw dane geometrii po imporcie”, która może działać lub nie. [ potrzebne źródło ]

Zobacz też

Linki zewnętrzne