Whatever 3D printing it is at present, a file with STL format is adopted, and STL file is actually a file format that a triangle is used to indicate an entity, such format was defined by 3D printing inventor but it has been defaulted as an industrial standard for the image processing field. Nowadays, some foreigners are protruding a 3D printing file with AMF format, which mainly increases such information as model material, texture and color, etc. With the subsequent technical progress, colorful printing will possibly become the mainstream and such file format will take the place of STL gradually. However, STL file format is the mainstream temporarily now.

PS: there is also an obj format, printers basically support such format, but it is used rarely because STL is still the mainstream.

As for how a modeling for 3D printing is realized, I believe that it is essentially about how to acquire STL file. Of course, there are many methods, and I have classified them into the following according to different purposes:

1. CAD Design (Parametric Modeling)
It mainly aims at the application of mechanical components requiring parametric modeling design, common 3D CAD software can be competent, I have learned UG in my university and hence I usually use it, while my colleagues use Solidworks, Pro-E, Catia and so forth. These above are “professional” relatively, but some simple ones can be used as well, such as Sketchup of Google. In addition, there is another real “parametric” modeling design software suitable for those with competence in programming: OpenScad, which is open-source software and directly generates a model through code editing. Its disadvantage is less convenient than graphical modeling software (such as Solidworks, UG, etc.), but as for its advantage, scad file generated is small and its code can be called by other applications for modeling component databases, so they are used conveniently. Even though I can not program it well, I am interested in the software. As for this kind of software, I recommend Solidworks, you can also study Openscad if you are interest in it. I have just printed a six-cylinder engine block model today, which is just this kind of model as follows and realized by Ford Motor Company:


2. CG Modeling
3D max and maya that you mentioned are applicable; there are also Rhino and Blender, as well as simple ones such as Zbrush. I have ever used Blender, which is free open-source modeling software, but only the most essential functions of this software are used. Any model designed by this software requires being transferred into printable STL file, but which can cause many structural errors and hence require being processed, fortunately there are some software such as Meshmixer, Meshlab, netfab and so on, which can be used for restoration. I usually use Meshmixer, because it has rich functions and is specially used for 3D printed model processing for free. The following high quality corpse hunter head portrait is just designed by such software.


3. Amateurish Software
As for amateurish software, it is just a joke, this kind of software can meet basic requirements for common 3D modeling, they have good functions but insufficiently comprehensive in comparison with professional software such as Solidworks, maya and so on. A series of 3D design software (e.g., Tinkercad) derived from Autodesk (excluding Autocad) are simple very much, namely, Boolean operation is adopted for some entities to obtain simple printable models. Additionally, Meshmixer mentioned above can be used for mixing and matching of some models so as to spoof models. For example, the following one is model of Yoda mixed and matched with the figure of Buddha:
PS: You can browse the home page of Autodesk, where it seems that they are playing chess vigorously in the field of 3D printing software, Meshmixer has just been purchased by Autodesk, which can provide any free applicable modeling software easily used for us.


4. Portrait DIY Application
123 Dcatch protroduced by Autodesk can synthesize a printable 3D model with 20 pictures with different camera angles. Yesterday, I found the foreign Faceshop software by chance, it is one rechargeable software and your can use it for free within 15 days, and then you can adopt a picture and select the face profile to generate a 3D head portrait model. But the basic model of the head portrait is designed on the basis of the occidental. I tried it with my head image yesterday to finally generate a model with higher nose. Kinect is combined with Rconstructme software to directly scan a portrait, which probably lasts for more than 10 min, with a printed effect picture as follows:


There is good open-source 3D slice printing software Cura, which has the function that import bmp, jpg, png images to generate a model with Buddha statue effect. Currently, there are 3D originality printing shops at home, which can provide such printing service, with printed effect picture as follows:

5. Downloading Models Designed from Model Websites
At present, the best 3D printing model sharing website all over the world is Thingiverse – Digital Designs for Physical Objects, which is a model sharing website of Makerbot (it has been purchased by stratasys), with total models more than 600000 (codes)。Another one is protruded by Ultimaker of Cura, on which there are less models. They are two major foreign 3D printing model sharing websites with opposite styles, Makerbot emphasizes from open source to close source, but Ultimaker insists on the open source. Some other ones, such as 3D warehouse of Google, are available, not aiming at 3D printing. There is a perfect website in the U.K., that is We can not only directly purchase models from it, but also download STL for free from it. We are designing a model sharing website 523DP – Sharing 3D Printing Pleasure, which is under the development now, here the quantity of models is the largest at home and you can download models for free.
Learning Suggestions:
In my own opinions, the first (CAD modeling, recommended Solidworks) and second (CG design software, recommended 3dmax) categories are useful for ever, you can select any software for learning, then you will acquire a lot. If you would like them, you’d better learn both of them. Additionally, since you enjoy programming, I will recommend you to learn Openscad, which is simple and easily mastered. The difficulty is possibly dependent on software itself but languages, because the software has not been translated into Chinese and is not so convenient during use.