STEP-File es una forma de intercambio de datos [1] ampliamente utilizada de STEP . ISO 10303 puede representar objetos 3D en diseño asistido por computadora (CAD) e información relacionada. Debido a su estructura ASCII , un archivo STEP es fácil de leer, normalmente con una instancia por línea. El formato de un archivo STEP se define en ISO 10303-21 Codificación de texto claro de la estructura de intercambio . [2]
Extensión de nombre de archivo | .paso, .stp, .p21 |
---|---|
Tipo de medio de Internet | aplicación / secuencia de octetos |
número mágico | ISO-10303-21 |
Desarrollado por | YO ASI |
Versión inicial | 1994 |
Sitio web | Especificación |
ISO 10303-21 define el mecanismo de codificación para representar datos conforme a un esquema particular en el lenguaje de modelado de datos EXPRESS especificado en ISO 10303-11 . A PASO-File es también llamada p21-Archivo y el PASO archivo físico . Las extensiones de archivo .stp y .step indican que el archivo contiene datos que cumplen con los protocolos de aplicación STEP, mientras que la extensión .p21 debe usarse para todos los demás propósitos. [3]
Historia
Algunos detalles a tener en cuenta:
- La primera edición, ISO 10303-21: 1994, tenía algunos errores, que fueron corregidos por una corrección técnica. Por lo tanto, se recomienda que los usuarios estudien la segunda edición (ver más abajo).
- La segunda edición, ISO 10303-21: 2002, incluyó la corrección y extensiones para varias secciones de datos.
- La tercera edición, ISO 10303-21: 2016, agregó secciones de anclaje, referencia y firma para admitir referencias externas, soporte para estructuras de intercambio comprimidas en un archivo ZIP, firmas digitales y codificación de caracteres UTF-8. [4]
- La Parte 21 definió dos clases de conformidad. Solo difieren en cómo codificar instancias de entidades complejas.
- La clase de conformidad 1 siempre se utiliza para hacer cumplir el llamado mapeo interno , que es más compacto.
- La clase de conformidad 2, que no se utiliza en la práctica, siempre impone el mapeo externo . En teoría, esto permitiría una mejor interoperabilidad de AP, ya que un posprocesador puede saber cómo manejar algunos supertipos, pero puede que no conozca los subtipos especificados.
- La 1ª edición de la parte 21 impone el uso de los denominados NOMBRES CORTOS, que son opcionales en la 2ª edición. En la práctica, sin embargo, los NOMBRES CORTOS rara vez se utilizan.
- La segunda edición permite utilizar múltiples secciones de datos. Sin embargo, en la práctica, la mayoría de las implementaciones solo utilizan una sección de datos (codificación de la 1ª edición).
ISO 10303-21 Bloques de construcción
Ejemplo
Un ejemplo típico se ve así:
ISO-10303-21;ENCABEZAMIENTO;DESCRIPCIÓN DEL ARCHIVO(/ * descripción * / ('Un ejemplo mínimo de AP214 con una sola parte'),/ * nivel_de_implementación * / '2; 1');NOMBRE DEL ARCHIVO(/ * nombre * / 'demo',/ * marca_hora * / '2003-12-27T11: 57: 53',/ * autor * / ('Lothar Klein'),/ * organización * / ('LKSoft'),/ * preprocessor_version * / '',/ * sistema_origen * / 'IDA-STEP',/ * autorización * / '');FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 2 1 1}'));ENDSEC;DATOS;# 10 = ORGANIZACIÓN ('O0001', 'LKSoft', 'empresa');# 11 = PRODUCT_DEFINITION_CONTEXT ('definición de pieza', # 12, 'fabricación');# 12 = APPLICATION_CONTEXT ('diseño mecánico');# 13 = APPLICATION_PROTOCOL_DEFINITION ('', 'diseño_automotriz', 2003, # 12);# 14 = PRODUCTO_DEFINICIÓN ('0', $, # 15, # 11);# 15 = PRODUCT_DEFINITION_FORMATION ('1', $, # 16);# 16 = PRODUCTO ('A0001', 'Parte de prueba 1', '', (# 18));# 17 = PRODUCT_RELATED_PRODUCT_CATEGORY ('parte', $, (# 16));# 18 = PRODUCT_CONTEXT ('', # 12, '');# 19 = ASIGNACIÓN_ORGANIZACIÓN_APLICADA (# 10, # 20, (# 16));# 20 = ORGANIZATION_ROLE ('id propietario');ENDSEC;END-ISO-10303-21;
Sección HEADER
Como se ve en el ejemplo anterior, el archivo se divide en dos secciones siguiendo la palabra clave inicial ISO-10303-21; :
La sección HEADER tiene una estructura fija que consta de 3 a 6 grupos en el orden dado. A excepción de los campos de datos time_stamp y FILE_SCHEMA, todos los campos pueden contener cadenas vacías.
- DESCRIPCIÓN DEL ARCHIVO
- descripción
- nivel_de_implementación . La versión y la opción de conformidad de este archivo. Las posibles versiones son "1" para la norma original en 1994, "2" para la corrección técnica en 1995 y "3" para la segunda edición. La opción de conformidad es "1" para el mapeo interno y "2" para el mapeo externo de instancias de entidades complejas. A menudo, uno encontrará aquí el valor __ '2; 1' __. El valor '2; 2' que impone el mapeo externo también es posible, pero solo se usa muy raramente. Los valores '3; 1' y '3; 2' indican archivos STEP extendidos como se define en el estándar de 2001 con varias secciones de DATOS, múltiples esquemas y soporte FILE_POPULATION.
- NOMBRE DEL ARCHIVO
- nombre de esta estructura de intercambio. Puede corresponder al nombre del archivo en un sistema de archivos o reflejar datos en este archivo. No existe una regla estricta sobre cómo utilizar este campo.
- time_stamp indica la hora en que se creó este archivo. La hora se indica en el formato de hora de datos internacional ISO 8601 , por ejemplo, 2003-12-27T11: 57: 53 para el 27 de diciembre de 2003, 2 minutos hasta el mediodía.
- autor el nombre y la dirección postal de la persona que crea esta estructura de intercambio
- organización la organización a la que pertenece la persona
- preprocessor_version el nombre del sistema y su versión que produce este archivo STEP
- originating_system el nombre del sistema y su versión que creó originalmente la información contenida en este archivo STEP.
- autorización el nombre y la dirección postal de la persona que autorizó este archivo.
- FILE_SCHEMA. Especifica uno o varios esquemas Express que rigen la información en las secciones de datos. Para los archivos de la primera edición, solo se puede enumerar aquí un esquema EXPRESS junto con un identificador de objeto ASN.1 opcional de la versión del esquema. Los archivos de la segunda edición pueden especificar varios esquemas EXPRESS.
Los últimos tres grupos de encabezados solo son válidos en archivos de segunda edición.
- FILE_POPULATION, que indica una población válida (conjunto de instancias de entidad) que se ajusta a un esquema EXPRESS. Esto se hace recopilando datos de varias secciones de datos e instancias referenciadas de otras secciones de datos.
- Governance_schema , el esquema EXPRESS al que pertenece la población indicada y por el cual se puede validar.
- método_determinación para averiguar qué instancias pertenecen a la población. Hay tres métodos predefinidos: SECTION_BOUNDARY, INCLUDE_ALL_COMPATIBLE e INCLUDE_REFERENCED.
- Governned_sections , las secciones de datos cuyas instancias de entidad pertenecen completamente a la población.
- El concepto de FILE_POPULATION está muy cerca del esquema_instancia de SDAI. Desafortunadamente, durante el proceso de estandarización, no fue posible llegar a un acuerdo para fusionar estos conceptos. Por lo tanto, JSDAI agrega más atributos a FILE_POPULATION como comentarios inteligentes para cubrir toda la información faltante de schema_instance. Esto es compatible tanto para la importación como para la exportación.
- SECTION_LANGUAGE permite la asignación de un idioma predeterminado para todos o una sección de datos específica. Esto es necesario para aquellos esquemas Express que no brindan la capacidad de especificar en qué idioma se dan los atributos de cadena de entidades como el nombre y la descripción.
- SECTION_CONTEXT proporciona la capacidad de especificar información de contexto adicional para todas o secciones de datos individuales. Esto se puede utilizar, por ejemplo, para STEP-AP para indicar qué clase de conformidad está cubierta por una sección de datos en particular.
Sección de DATOS
La sección DATOS contiene datos de la aplicación de acuerdo con un esquema expreso específico. La codificación de estos datos sigue algunos principios simples.
- Nombre de instancia: a cada instancia de entidad en la estructura de intercambio se le asigna un nombre único en la forma "# 1234". El nombre de la instancia debe constar de un número positivo (> 0) y normalmente es menor que 2 63 . El nombre de la instancia solo es válido localmente dentro del archivo STEP. Si el mismo contenido se exporta nuevamente desde un sistema, los nombres de las instancias pueden ser diferentes para las mismas instancias. El nombre de la instancia también se usa para hacer referencia a otras instancias de entidad a través de valores de atributo o miembros agregados. La instancia referenciada puede definirse antes o después de la instancia actual.
- Las instancias de tipos de datos de entidad única se representan escribiendo el nombre de la entidad en letras mayúsculas y luego seguido de los valores de atributo en el orden definido entre paréntesis. Consulte, por ejemplo, "# 16 = PRODUCTO (...)" más arriba.
- Las instancias de tipos de datos de entidad complejos se representan en el archivo STEP mediante el mapeo interno o el mapeo externo.
- El mapeo externo siempre debe usarse si la instancia de entidad compleja consta de más de una entidad hoja. En este caso, todos los valores de instancia de entidad única se dan independientemente unos de otros en orden alfabético como se definió anteriormente con todos los valores de entidad agrupados entre paréntesis.
- El mapeo interno se utiliza de forma predeterminada para la opción de conformidad 1 cuando la instancia de entidad compleja consta de una sola entidad hoja. La codificación es similar a la de una instancia de entidad única con el orden adicional dado por la definición de subtipo.
- Mapeo de valores de atributos:
- Solo se asignan atributos explícitos. Los atributos inversos, derivados y re-declarados no se enumeran ya que sus valores se pueden deducir de los demás.
- Los valores de atributo no definidos se dan como " $ ".
- Los atributos explícitos que se volvieron a declarar como derivados en un subtipo se codifican como " * " en la posición del atributo de supertipo.
- Mapeo de otros tipos de datos:
- Los valores lógicos, booleanos y de enumeración se dan en letras mayúsculas con un punto inicial y final como " .TRUE ".
- Los valores de cadena se dan en " ". Para caracteres con un código superior a 126 se utiliza una codificación especial. Se admiten los juegos de caracteres definidos en ISO 8859 y 10646. Tenga en cuenta que los conjuntos de caracteres típicos de 8 (por ejemplo, Europa occidental) o 16 (Unicode) bits no pueden tomarse directamente para cadenas de archivos STEP. Deben decodificarse de una manera muy especial.
- Los números enteros y los valores reales se utilizan de forma idéntica a los lenguajes de programación típicos
- Los valores binarios (secuencias de bits) se codifican como hexadecimales y están rodeados por comillas dobles, con un carácter inicial que indica el número de bits no utilizados (0, 1, 2 o 3) seguido de la codificación de datos hexadecimal en mayúsculas. Es importante tener en cuenta que todo el valor binario se codifica como un único número hexadecimal, con los bits de orden más alto en el primer carácter hexadecimal y los bits de orden más bajo en el último.
- Los elementos de los agregados (SET, BAG, LIST, ARRAY) se dan entre paréntesis, separados por " , ".
- Se debe tener cuidado para seleccionar tipos de datos basados en tipos de datos definidos. Aquí también se asigna el nombre del tipo de datos definido.
- Consulte también "Mapeo de Express a Java" para obtener más detalles al respecto. [ aclaración necesaria ]
Crítica
Posiblemente, la única ventaja de los archivos STEP es que se adoptan ampliamente en muchos software CAD. Por otro lado, su formato, y especialmente el EXPRESS tiene algunas desventajas:
- la especificación no está disponible gratuitamente (debe pagar por ella)
- no es posible leer secuencialmente un archivo STEP. Las entidades pueden estar en cualquier orden y pueden hacer referencia a otras entidades hacia adelante y hacia atrás en el archivo (vea la entidad # 14 en el ejemplo anterior). Por lo tanto, todo el archivo debe leerse en la memoria y convertirse en token antes de analizarlo.
- el formato no es de almacenamiento eficiente. Por ejemplo, asignar un código de color RGB a un borde requiere al menos otras 6 entidades, y especificar una transformación requiere al menos 5 entidades adicionales (PLANE, AXIS2_PLACEMENT_3D, un CARTESIAN_POINT y 2 DIRECTION entidades)
- el formato no está bien definido. Por ejemplo, el mismo triángulo se puede codificar en un archivo STEP de muchas formas diferentes (con FACET_BREP, ADVANCED_FACE, POLY_LOOP, EDGE_LOOP, como MANIFOLD_SOLID_REPRESENTATION o como SHELL_BASED_REPRESENTATION, etc.). Un importador debe reconocer todas las variantes para poder leer un archivo STEP de forma coherente. La mayoría del software CAD no admite el conjunto completo de entradas STEP y, como tal, está limitado a un subconjunto específico de entidades STEP. Por ejemplo, Autodesk Knowledge Base, lista de entidades STEP compatibles .
- Como resultado, la mayoría de los programas CAD tienen algún tipo de función "Reparar datos geométricos después de la importación", que puede funcionar o no.
Ver también
- Clases fundamentales de la industria (IFC)
- Representación de límites
- IGES
- STL (formato de archivo)
- DXF
- Tecnología Open CASCADE : una biblioteca STEP de código abierto que se utilizó para construir FreeCAD
enlaces externos
- ANSI ISO-10303-21 - Especificación oficial en ANSI
- Analizador y visor de archivos STEP : analice y visualice un archivo STEP ISO 10303 Parte 21
- Visor de archivos STEP en línea
- Visores de archivos STEP
- STEPcode : sucesor de la biblioteca de clases STEP de NIST, la biblioteca oficial de C ++ para crear importadores y exportadores de archivos STEP
Referencias
- ^ https://www.loc.gov/preservation/digital/formats/fdd/fdd000448.shtml
- ^ ISO 10303-21: 2002 Integración y sistemas de automatización industrial - Representación e intercambio de datos de productos - Parte 21: Métodos de implementación: Codificación de texto claro de la estructura de intercambio
- ^ Secretaria ISO TC184 / SC4 "Lista acumulada de resoluciones" Resolución 583 (Stuttgart, Alemania, - junio de 2003) "Registro de tipos MIME SC4", [1]
- ^ ISO 10303-21: 2016. Integración y sistemas de automatización industrial. Representación e intercambio de datos de productos. Parte 21: Métodos de implementación: Codificación de texto claro de la estructura de intercambio [2]