[step-manufacturing] STEP-NC and XML as standard

Vincent Marchetti vmarchetti at ameritech.net
Sun Jun 13 23:15:17 EDT 2010


I am Vince Marchetti and am responsible for the website (http://spri.kshell.com 
) that Per-Arne Carlsson mentioned in his June 10 note to the group. I  
would like to add to some of the points he made.

Per-Arne discussed the possibility of using XSLT to read the XML (Part  
28) encoding of STEP files. I recall having seen a published paper on  
this approach but I cannot recall or find by searching the actual  
reference. I'm sure it's true in a theoretical way that you can do  
anything with XSLT operating on the XML encoding that you can in any  
other programming language or discipline, but this approach becomes  
difficult because of the mismatch between the information models that  
XML/XSLT are intended for and the structure of a STEP file based on an  
EXPRESS schema. XML/XSLT works well with information that is  
fundamentally hierarchical; with things (parent-nodes) containing  
other things (children-nodes) that in turn contain other things  
(grandchildren, etc). More general relations can be implemented with  
the special xml:id attribute; but built-in support is shallow (for  
example, it's tricky to have a collection of references to other  
things). On the other hand, the information is a STEP file tends to be  
a wide-open network of things (entities); there are in fact a large  
number of entities whose only information content is links  
(references) to other entities. In short, I am skeptical about the  
practicality of using XSLT to directly work with Part 28 encodings of  
files except for very basic processing (for example, finding the  
values of the "name" attribute of product entities referenced in a  
STEP file)

Per-Arne mentioned the spri website, so perhaps I can detail it's  
relation to the points he made. That website demonstrates the  
feasibility of processing a STEP file by deriving a set of "views"  
from a single STEP file. In the terms of the STEP-NC files this group  
is interested in, one view might present a hierarchy of workplan -->  
working_steps --> toolpath; another view may present working steps  
organized by geometric and manufacturing features of the workpiece,  
another view may be organized my cutting tool requirements. Each view  
is a simplified structure, with redundant content, based on the  
original STEP-NC file. The views are designed to be readily encoded as  
XML files and readily accessible with XSLT scripts. From these XML  
views it is then possible to generate specific content such as HTML  
rendering for viewing on a browser, or for entry into a database or  
other end application, moreover with XSLT you can combine, or as they  
say on the web "mash-up", the information from several views. There is  
some progress in extracting enough geometry from the STEP file to  
deliver 3D visual representations of the products in the file as X3D  
(see www.web3d.com) files, again in XML encoding.  The generation of  
these views from the original STEP file is achieved by translating  
(through a basic crank and grind C++ application) the STEP file into   
a collection of Prolog (the computer language Prolog) assertions; then  
by analysis of those assertions with the techniques of logic  
programming afforded by Prolog (see http://www.kshell.com/prolog/pages/why_prolog/ 
  )

I see these techniques; which consume rather than produce STEP  
content; as complementary to the valuable work of this group in  
showing how to generate STEP-NC files useful for cutting actual metal.

Vince Marchetti



More information about the step-manufacturing mailing list