El archivo STEP es un formato de intercambio de datos de STEP ampliamente utilizado [1] . La norma 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, con típicamente una instancia por línea. El formato de un archivo STEP se define en la norma ISO 10303-21 Codificación de texto claro de la estructura de intercambio . [2]
La norma ISO 10303-21 define el mecanismo de codificación para representar datos que se ajustan a un esquema particular en el lenguaje de modelado de datos EXPRESS especificado en la norma ISO 10303-11 . Un archivo STEP también se denomina archivo p21 y archivo físico STEP . Las extensiones de archivo .stp y .step indican que el archivo contiene datos que se ajustan a los protocolos de aplicación STEP, mientras que la extensión .p21 debe utilizarse para todos los demás fines. [3]
El uso de la norma ISO 10303-21 no se limita a STEP. Las clases de base de la industria y el estándar de integración CIMSteel (CIS/2) anterior definen un esquema EXPRESS para los datos de modelado de información de construcción y especifican la norma ISO 10303-21 como codificación de intercambio .
Historia
Algunos detalles a tener en cuenta:
- La primera edición, ISO 10303-21:1994, tenía algunos errores que se corrigieron mediante un corrigendum técnico. Por lo tanto, se recomienda que los usuarios estudien la segunda edición (ver a continuación).
- La segunda edición, ISO 10303-21:2002, incluyó la corrección de errores 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 basado en ZIP, firmas digitales y codificación de caracteres UTF-8. [4]
- La Parte 21 define dos clases de conformidad. Se diferencian únicamente en la forma de codificar instancias de entidades complejas.
- La clase de conformidad 1 siempre se utiliza para aplicar el llamado mapeo interno , que es más compacto.
- La clase de conformidad 2, que no se utiliza en la práctica, siempre aplica el mapeo externo . En teoría, esto permitiría una mejor interoperabilidad de AP, ya que un postprocesador puede saber cómo manejar algunos supertipos, pero puede no conocer los subtipos especificados.
- La primera edición de la parte 21 impone el uso de los denominados nombres cortos , que son opcionales en la segunda edición. Sin embargo, en la práctica, rara vez se utilizan nombres cortos .
- La segunda edición permite utilizar varias secciones de datos. Sin embargo, en la práctica, la mayoría de las implementaciones solo utilizan una única sección de datos (codificación de la primera edición).
Bloques de construcción de la norma ISO 10303-21
Ejemplo
Un ejemplo típico sería el siguiente:
Norma ISO-10303-21;
ENCABEZAMIENTO;
DESCRIPCION_DE_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 de tiempo */ '2003-12-27T11:57:53',
/* autor */ ('Lothar Klein'),
/* organización */ ('LKSoft'),
/* versión_del_preprocesador */ ' ',
/* sistema_de_origen */ 'IDA-STEP',
/* autorización */ ' ');
ESQUEMA_DE_ARCHIVO (('DISEÑO_AUTOMOTOR { 1 0 10303 214 2 1 1}'));
FIN SEC;
DATOS;
#10=ORGANIZACIÓN('O0001','LKSoft','empresa');
#11=CONTEXTO_DE_DEFINICIÓN_DE_PRODUCTO('definición de la pieza',#12,'fabricación');
#12=CONTEXTO_DE_APLICACIÓN('diseño mecánico');
#13=DEFINICIÓN_DE_PROTOCOLO_DE_APLICACIÓN('','diseño_automotriz',2003,#12);
#14=DEFINICIÓN_DE_PRODUCTO('0',$,#15,#11);
#15=FORMACIÓN_DE_DEFINICIÓN_DE_PRODUCTO('1',$,#16);
#16=PRODUCTO('A0001','Prueba Parte 1','',(#18));
#17=PRODUCTO_CATEGORÍA_DE_PRODUCTO_RELACIONADO('parte',$,(#16));
#18=CONTEXTO_PRODUCTO('',#12,'');
#19=ASIGNACIÓN_DE_ORGANIZACIÓN_APLICADA(#10,#20,(#16));
#20=ORGANIZACIÓN_ROLE('id propietario');
FIN SEC;
FIN-ISO-10303-21;
Sección de ENCABEZADO
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 indicado. 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
- implementation_level . La versión y la opción de conformidad de este archivo. Las versiones posibles son "1" para el estándar original de 1994, "2" para la corrección técnica de 1995 y "3" para la segunda edición. La opción de conformidad es "1" para la asignación interna y "2" para la asignación externa de instancias de entidades complejas. A menudo, se encontrará aquí el valor __'2;1'__. El valor '2;2' que aplica la asignación externa también es posible, pero se utiliza muy raramente. Los valores '3;1' y '3;2' indican archivos STEP extendidos, tal como se define en el estándar de 2001, con varias secciones DATA, múltiples esquemas y compatibilidad con 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 la que se creó este archivo. La hora se indica en el formato de datos internacionales ISO 8601 , p. ej. 2003-12-27T11:57:53 para el 27 de diciembre de 2003, 2 minutos antes del 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 originalmente creó 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. En el caso de los archivos de la primera edición, aquí solo se puede incluir 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 cumple con un esquema EXPRESS. Esto se hace recopilando datos de varias secciones de datos e instancias referenciadas de otras secciones de datos.
- governor_schema , el esquema EXPRESS al que pertenece la población indicada y mediante el cual puede ser validada.
- método_determinación para determinar qué instancias pertenecen a la población. Hay tres métodos predefinidos: SECTION_BOUNDARY, INCLUDE_ALL_COMPATIBLE e INCLUDE_REFERENCED.
- governmented_sections , las secciones de datos cuyas instancias de entidad pertenecen completamente a la población.
- El concepto de FILE_POPULATION es muy similar al de schema_instance de SDAI. Lamentablemente, 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 asignar un idioma predeterminado para todas las secciones de datos o para una sección específica. Esto es necesario para aquellos esquemas Express que no ofrecen la capacidad de especificar en qué idioma se proporcionan 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 las secciones de datos o para secciones individuales. Esto se puede utilizar, por ejemplo, para STEP-APs para indicar qué clase de conformidad cubre una sección de datos en particular.
Sección de DATOS
La sección DATOS contiene datos de la aplicación según un esquema exprés 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 con el formato "#1234". El nombre de instancia debe constar de un número positivo (>0) y, por lo general, es menor que 2 63 . El nombre de instancia solo es válido localmente dentro del archivo STEP. Si se vuelve a exportar el mismo contenido desde un sistema, los nombres de instancia pueden ser diferentes para las mismas instancias. El nombre de instancia también se utiliza para hacer referencia a otras instancias de entidad a través de valores de atributo o miembros agregados. La instancia a la que se hace referencia 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 por los valores de los atributos en el orden definido entre paréntesis. Véase, por ejemplo, "#16=PRODUCT(...)" más arriba.
- Las instancias de tipos de datos de entidades complejas se representan en el archivo STEP mediante el uso de la asignación interna o la asignación externa.
- Siempre se debe utilizar la asignación externa si la instancia de entidad compleja consta de más de una entidad de hoja. En este caso, todos los valores de instancia de entidad única se proporcionan de forma independiente entre sí en orden alfabético, como se definió anteriormente, con todos los valores de entidad agrupados entre paréntesis.
- La asignación interna se utiliza de forma predeterminada para la opción de conformidad 1 cuando la instancia de entidad compleja consta de una sola entidad de hoja. La codificación es similar a la de una instancia de entidad única con el orden adicional dado por la definición del subtipo.
- Asignación de valores de atributos:
- Solo se asignan los atributos explícitos. Los atributos inversos, derivados y redeclarados no se enumeran, ya que sus valores se pueden deducir de los demás.
- Los valores de atributos no establecidos se dan como " $ ".
- Los atributos explícitos que se declararon nuevamente como derivados en un subtipo se codifican como " * " en la posición del atributo de supertipo.
- Mapeo de otros tipos de datos:
- Los valores de enumeración, booleanos y lógicos se dan en letras mayúsculas con un punto inicial y final, como " .TRUE. ".
- Los valores de cadena se indican en [ aclaración necesaria ] . Para los caracteres con un código mayor que 126 se utiliza una codificación especial. Se admiten los conjuntos 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 se pueden tomar 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 en formato hexadecimal y se encierran entre comillas dobles, con un carácter inicial que indica la cantidad de bits no utilizados (0, 1, 2 o 3) seguido de la codificación hexadecimal en mayúsculas de los datos. 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 al seleccionar tipos de datos según los 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 sobre esto. [ Aclaración necesaria ]
Crítica
Posiblemente la única ventaja de los archivos STEP es que son ampliamente adoptados en muchos programas CAD. Por otro lado, su formato, y en especial el lenguaje de modelado de datos EXPRESS, tiene algunas desventajas: [ opinión ]
- La especificación no está disponible gratuitamente (hay que pagar por ella)
- No es posible leer un archivo STEP de forma secuencial. Las entidades pueden estar en cualquier orden y pueden hacer referencia a otras entidades hacia adelante y hacia atrás en el archivo (consulte la entidad n.° 14 en el ejemplo anterior). Por lo tanto, se debe leer todo el archivo en la memoria y convertirlo en tokens antes de analizarlo. [ cita requerida ]
- El formato no es eficiente en términos de almacenamiento. 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 entidades DIRECTION) [ cita requerida ]
- El formato no está bien definido. Por ejemplo, el mismo triángulo se puede codificar en un archivo STEP de muchas maneras 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 manera consistente. 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 admitidas. [ cita requerida ]
- Como resultado, la mayoría del software CAD tiene algún tipo de función de "reparar datos geométricos después de la importación", que puede funcionar o no. [ cita requerida ]
Véase también
- Clases de Fundamentos de la Industria (IFC)
- Representación de límites
- IGES
- STL (formato de archivo)
- Archivo DXF
- Tecnología CASCADE abierta : una biblioteca STEP de código abierto que se utilizó para crear FreeCAD
Enlaces externos
- ANSI ISO-10303-21 - Especificación oficial en ANSI
- Analizador y visualizador de archivos STEP: analice y visualice un archivo STEP según la norma ISO 10303 Parte 21
- Visor de archivos STEP en línea
- Visores de archivos STEP
- STEPcode: sucesor de la biblioteca de clases STEP del NIST, la biblioteca oficial de C++ para crear importadores y exportadores de archivos STEP
Referencias
- ^ "Archivo STEP, ISO 10303-21". Biblioteca del Congreso . 3 de enero de 2017.
- ^ ISO 10303-21:2002 Sistemas de automatización industrial e integración -- 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
- ^ ISO TC184/SC4 Secretary "Lista acumulativa de resoluciones" Resolución 583 (Stuttgart, Alemania, - junio de 2003) "Registro de tipos MIME SC4", [1]
- ^ ISO 10303-21:2016. Sistemas de automatización industrial e integración. 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]