Discussion
Here are some comments on the project:
Generating a main parser to read VRML files is quite
easy, for it is a very high-level language (with 1 command you can generate
a primitive), one very time consuming task is to treat all exceptions,
it was done to little extent, but wasn't the focus of the project, so it
was set aside.
One of the key points on the ACIS generation is understanding the ACIS
output file (.SAT) format, of course, and that's the key point when developing
a conversion utility, one must understand 100% both formats in order to
succeed. That was one of the main activities in the developing of the project.
Generating the basic primitives (cone, sphere, cylinder) as an exception
case, was somewhat easy, perhaps boring, but was the best way of doing
this. These primitives consist of very few lines, about 10 to 15 for a
sphere, and about 20 to 30 for a cone or cylinder, so it's not worth the
effort of writing a more complicated general routine for generating these.
The real challenge came when generating a polygon. The ACIS format is not
sequential, this means that it makes reference to entities all over the
file in order to define others, so one must generate all the ACIS file
internally (in memory) before actually writing it.
The program succeeds in writing basic primitives and polygons, as specified.
No further attempts were made to understand boolean operations, or solids
with holes, or solids with B-spline shapes. That can be a very good subject
for further projects.