Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I have an 3D Graphic generated with Mathematica's Graphics3D, and want to use it later in SolidWorks. SolidWorks files are usually *.stp, *.step, *.stl extentions.

google search hasn't given me a solution yet, and I didn't find anything on this page either.

Are there solutions to that? What is the best way to do this? Or do you know any workarounds?

edit: Just for info - my 3D Graphics (from here) is:

Graphics3D[{GraphicsComplex[
   Join[{Cos[#], Sin[#], 0} & /@ Range[0, Pi, Pi/(25)], {{0, 0, 1}}], 
   {
    {#, Rotate[Rotate[#, 180 °, {0, 0, 1}], 90 °, {0, 1, 0}]} &[
         GeometricTransformation[Polygon[{##, 27} & @@@ Partition[Range[26], 2, 1]],  
                                 {IdentityMatrix[3], ScalingTransform[{1, 1, -1}]}]
     ]
    }]}]

edit2: Thanks to Simon Woods' wonderful answere, I was able to export to Solid Works, and print it with my 3D-printer. Here are real-world results:

100-sided Sphericon 1 100-sided Sphericon 2

Thanks alot again :)

share|improve this question
    
Export[path.stl,something in 3D] works for me. Then I don't know if SolidWorks can handle it. –  Öskå May 26 at 10:32
    
Thanks Öska, looks promising. Unfortunatly, I got a error when writing this, namely: Export::nodta: "Graphics3D contains no data that can be exported to the \!\(\"STL\"\) format. ". I added my instruction above, could you try whether it works for you? –  NicoDean May 26 at 10:49

1 Answer 1

up vote 9 down vote accepted

You need to use Normal to explicitly apply the various transformations, resulting in an ordinary collection of polygons which Export can translate to STL. Unfortunately, it looks like Normal has a problem when multiple transformations are supplied to GeometricTransformation. We need to handle this with a specific rule.

Assuming g is your Graphics3D:

gn = Normal[g /. GeometricTransformation[prims_, tf_List] :>
    (GeometricTransformation[prims, #] & /@ tf)]

Export["test.stl", gn]

This produces an output file. I do not have SolidWorks to tell if it's any good or not.

share|improve this answer
    
works great for me, I can open the file without problems in SolidWorks. Thank you! –  NicoDean May 27 at 9:12

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.