MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: mml files

  • To: mathgroup at
  • Subject: [mg57656] Re: [mg57590] mml files
  • From: Christopher Purcell <chris.purcell at>
  • Date: Fri, 3 Jun 2005 05:33:42 -0400 (EDT)
  • References: <>
  • Sender: owner-wri-mathgroup at

There are a number of possible ways to take geometry data from 
Mathematica and convert it to CAD files for machining or rapid 
prototyping. As you discovered DXF and IGES are not good solutions. If 
you have access to CAD software, like Pro/Engineer, Catia, etc, you can 
generate text files with Mathematica which contain lists of points that 
define cross-sectional surfaces of your solids. Most CAD systems will 
let you read in these cross sections and then let you interpolate 
smooth surfaces through them and tesselate them. The CAD system then 
will offer a number of export format possibilities - right up to 
generating tool paths. You might ask, why bother with Mathematica when 
you have CAD software - the answer is Mathematica can easily generate a 
far greater variety of curves than any of the CAD products. Even when 
they offer a programming interface for user defined curves, they 
typically only offer basic mathematical functions. The CAD software 
however offers GUI based tools for modifying geometry (drilling holes, 
putting on chamfers, etc) that would be hard to do in Mathematica, so 
if you have to integrate a mathematically defined curve or surface into 
an assembly - you probably will find a CAD tool to be essential.

If you want to generate a simple CAD file in Mathematica, this is 
possible, but as you discovered, the present Export routines do not 
make "air tight" descriptions of surfaces, which are required for rapid 
prototyping. I complained about this to WRI some years ago, but support 
for CAD/CAM is low on their priority list. There are 2 ways to go here 
- either read back into memory the Stereolithography (STL) file that 
Mathematica can generate from Graphics3D objects, and "equivalence" it, 
or build your own STL file from scratch. These are probably about the 
same difficulty. In either case you will need an equivalencer - a 
routine which detects duplicate nodes and edges, and then rearranges 
the data to eliminate them. The best place to start for the 
equivalencer would be Roman Maeder's equivalencing routines which 
Google will find in the Mathematica Journal, and probably is in his 
books. I have done this but can't post it here. It works, but the 
performance is slow compared to generation of STL files by the 
dedicated CAD products.

There is another approach that may be feasible depending on the 
geometry and your familiarity with machining.
You could write a routine which lets Mathematica write "G-code", which 
are the instructions most milling machines use. G-code is just a list 
of coordinates of the cutter, with a few minor add ons. This is easy if 
the part can be made by what is called 2.5 D machining, where the z 
axis simply offsets between cuts and the part is mostly all convex. 
There are some fancy examples of machining with Mathematica at Tool path generation for 4 or 5 axis 
machining rapidly becomes a very challenging problem that would make a 
nice hobby project for someone with an interest in geometry.

STEP files are probably the most reliable and convenient means of 
getting CAD data from one system to another, but I have not heard of 
anyone writing a STEP generator for Mathematica. That would be very 

Christopher Purcell
Sensors & Actuators Group
DRDC-Atlantic, 9 Grove St., PO Box 1012,
Dartmouth NS B2Y 3Z7 Canada
Work E-mail chris.purcell at
Work Tel 902-426-3100 x389 Fax 902-426-9654
Home Tel 902-464-9248
Home E-mail christopherpurcell at
AIM/iChatAV:   cffrc

On Jun 1, 2005, at 7:04 AM, alan notis wrote:

> I am using Mathematica to create 3D files that I now want to send to 
> be machined. I thought that .dxf or stl files would be good enough but 
> they are asking me for an IGES file. Apparantly when Mathematica 
> exports a DXF it breaks it up into triangles which are then read as 
> separate surfaces making the generation of a program for a CNC machine 
> impossible as there are millions of triangles in the curved surfaces I 
> need to machine. Mathematica can export as .mml (MathML). Is this 
> helpful? What would you suggest?
> Besty regards,
> Alan Notis

  • References:
    • mml files
      • From: alan notis <>
  • Prev by Date: Re: Re: Complex Oddity
  • Next by Date: Re: Re: Re: Limit of list
  • Previous by thread: Re: mml files
  • Next by thread: Re: mml files