Linköpings Universitet | Institutionen för datavetenskap Examensarbete på grundnivå, 16hp | Datateknik 2016 | LIU-IDA/LITH-EX-G--16/012—SE

3D Conversion from CAD models to models

Rasmus Siljedahl

Examinator, Petru Eles

Linköpings universitet SE-581 83 Linköping 013-28 10 00, www.liu.se Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under 25 år från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/.

Copyright The publishers will keep this document online on the Internet – or its possible replacement – for a period of 25 years starting from the date of publication barring exceptional circumstances. The online availability of the document implies permanent permission for anyone to read, to download, or to print out single copies for his/hers own use and to use it unchanged for non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional upon the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its www home page: http://www.ep.liu.se/.

© Rasmus Siljedahl

Abstract

This thesis describes the design and implementation of an application that converts CAD models into polygon models. When going from CAD models to 3D polygon models a conversion of the file type has to be performed. XperDI uses these polygon models in their tool, called sales configurator, to create a photo realistic environment to be able to have a look at the end product before it is manufactured. Existing tools are difficult to use and is missing features that is important for the Sales Configurator. The purpose of this thesis is to create a proof of concept application that converts CAD models into 3D polygon models. This new lightweight application is a simpler alternative to convert CAD models into polygon models and offers features needed for the intended use of these models, that the alternative products do not offer. Sammanfattning

Den här rapporten beskriver skapandet av en applikation som omvandlar CAD-modeller till 3D- objekt. 3D-objekten används senare i en fotorealistisk och interagerbar omgivning skapat utav XperDI. Den omgivningen gör det enklare att föreställa sig hur slutprodukten av CAD-modellen kommer se ut utan att behöva producera den. Innan CAD-modellerna kan användas i den om- givningen så måste de omvandlas från CAD-filer till 3D-objekt. Den omvandlingen kan göras med ett flertal existerande programvaror som är både klumpiga att använda och saknar viss funktion- alitet som XperDI önskar. Syftet med den här rapporten är att beskriva skapandet av en lättviktig applikation som utför omvandlingen från CAD-modeller till 3D-objekt. Resultatet visar att kvalitén på filerna skapade utav min applikation är jämnörbar med andra omvandlingsprogram som saknar en del funktionalitet. Acknowledgements

I would like to take this opportunity to put into words my gratitude and appreciation to the team on XperDI. Without the brainstormings and discussions with both Manokar Munisamy and Leon Poot the outcome of this thesis would not be the same or any at all. A big thanks to the CEO of XperDI and my supervisor Mehdi Tarkian for giving me this opportunity and for always believing in me when problems occurred. I am also thankful for the help and support from my examiner and supervisor Petru Eles. Lastly I would like to thank all heroes on all developer forums for answering my questions and the hero I might not have deserved but most definitely needed, my friend Adam Johansson for supporting me throughout the writing of this thesis. Contents

1 Introduction 1 1.1 Problem Description ...... 1

2 Theory 2 2.1 Development Tools ...... 2 2.2 Polygon Mesh ...... 2 2.3 File Types ...... 2 2.4 Similar Products ...... 3

3 Method 4 3.1 Literature Study ...... 4 3.2 Design and Development ...... 4 3.2.1 Implementation of STP Importer ...... 4 3.2.2 Implementation of OBJ Exporter ...... 4 3.2.3 Implementation of FBX exporter ...... 5

4 Results 6 4.1 Application ...... 6 4.2 Tolerance ...... 7 4.3 Comparison between alternative tools ...... 8 4.3.1 3ds Max conversion ...... 8 4.3.2 Conversion with FreeCAD and ...... 9

5 Discussion 11

6 Conclusions 12 6.1 Future Work ...... 12 6.1.1 UV Map ...... 12 6.1.2 Tolerance of the mesh ...... 12

7 References 13 1 INTRODUCTION

1 Introduction

XperDI [1] is a company that offers their costumers two different tools. One is their CADcon- figurator which is used by CAD designers to speed up and simplify the task of creatinglarge and complex designs in CAD. A problem when dealing with CAD models can be that the final product’s appearance may not be the desired one. This is especially true for the end costumers that have no experience with CAD and its environment. If a problem with the CAD models is not found before it goes into production, valuable resources and time can be lost. A way of experienc- ing these models, without having to make a prototype, is to use XperDI’s other tool called Sales Configurator. It is based on the game engine Unreal Engine [2] and can render polygon models of CAD models, before they are produced in a interactive and photo realistic environment.

1.1 Problem Description The procedure from having models made in CAD to experiencing them in the game engine requires the files to be converted into 3D mesh object files. The conversion can be made today byusing existing tools which, however, it is very complicated to use. Another problem with using other products is that these tools do not produce a 3D mesh file with the desired properties such as keeping the names of the different parts from the CAD model. A comparison between a seat model in a CAD and 3D environment can be seen in fig. 1 to get an idea of what the conversion hasto be between.

(a) CAD modeled seat in FreeCAD (b) Polygon mesh seat in Unreal Engine

Figure 1: A comparison between a seat in a CAD and 3D graphics environment

The purpose of this thesis is to implement a proof of concept application that would improve the procedure and workflow of going from CAD models to 3D mesh objects. The most important question to be studied is, how does the quality of the 3D objects produced from different tools compare.

1 2 THEORY

2 Theory

2.1 Development Tools FreeCAD is an open source tool that can be used for CAD modeling. It being an open source tool means that the source code for it is available and free to read, modify and redistribute. FreeCAD has the feature to import a CAD model and export it as a 3D mesh which is why this software was used for developing my application. However, this 3D mesh file is not the desired file type to be used in the game engine. More explanation to how this is solved follows later. When FreeCAD imports an STP file it reads the geometry of the object and puts it on a FreeCAD documentand draw it on the screen to the user. This document is only used for drawing the objects to the GUI and does not contain any geometric data of the shape. Importing and exporting through the GUI includes a lot of unnecessary actions from the point of view of my application. With most of its source code regarding the import of an STP file coming from the Open Cascades library files, the code for lower level instructions is not available. This means that finding ormodifying actions at lower levels is not possible when using the library files from Open Cascade [3]. Without the possibility to modify or remove unnecessary code and in order to use the part needed, all the library files from Open Cascade is used. When FreeCAD is exporting to OBJ files theyspecify a decimal value called tolerance. This value determines the quality of the faces, a lower value meaning lower tolerance and more in the mesh, which results in higher quality. Adding more faces in the model also increases the file size. This tolerance value can not be utilized with the installed version of FreeCAD because it is hardcoded and cannot be changed. The FBX Software Development Kit (SDK) [4] is a set of tools used for programming towards a specific area. In this case the specific area is the file type FBX. This SDK is ownedbyAutodesk which are the owners of 3ds Max and AutoCAD. This tool has the functionality to both import and export a few number of 3D file formats, e.g. OBJ and FBX. The format of FBX is aclosed format without any documentations on how a file of that extension is built or read, creating an application that uses this format is impossible without using tools that already has this function. 3ds Max [5] is a 3D program from that 3D artists can use for animating, modeling and creating objects in 3D. This software can also achieve the conversion from STP files to FBX but is not used due to its huge disk usage, license and time cost. Using this tools is time consuming for converting small and few models because of the tools long start time. Unreal Engine is a game engine used for developing games This software is the final test on quality of the created FBX files. CMake [6] is a tool that can build and package tools. When downloading the source code for a program it is most often compressed and not ready to be compiled. CMake generates files and libraries from the source code which can then be compiled and run. The IDE (Integrated Development Environment) used for developing the application was Visual Studio [7]. Visual studio supports several programming languages but C++ suited best because that is what FreeCAD is written in and one language that the FBX SDK supports.

2.2 Polygon Mesh The final model when the conversion is complete will be a polygon mesh object that consistsof vertices and faces. A vertex is a point in a 3D space that builds the corners between the edges of a face. A face contains at least three vertices to represent a shaped polygon but could hold more vertices for a polygon with more edges. [11]

2.3 File Types Since FreeCAD can not produce the desired 3D mesh format, but the FBX SDK can create the desired file type out of one of the file types that FreeCAD could produce. This leadstothe conclusion that a conversion has to be made in two steps. From STP to OBJ and from OBJ to FBX.

2 2 THEORY

STP is the file extension used for Standard for The Exchange of Product, or STEP. ASTEP file is a CAD representation/model of a 3Dobject. This is an international standard underthe name ISO 10303 [8] and is a frequently used file type when working in the field of mechanical engineering or any kind of product development. When creating, analyzing or modifying a design or product it most often starts with a CAD model. An OBJ file contains the geometry of a 3D object in polygon format. It has a binaryand an ASCII version where the ASCII version has a very simple format compared to the other file formats used in this thesis. The important things it contains is data for geometric vertices, texture coordinates, vertex normals, and faces which build the of the 3D object. The geometric vertices and vertex normals are three dimensional coordinates and the texture coordinates are two dimensional. Faces consist of three sets of three indices to the geometric vertices, texture coordinates and vertex normals listed in the file. These three sets of coordinates represent each point in a triangle. The faces can form polygons with n sides by having n sets. The sets do also not have to be sets of coordinates for vertices, textures and normals. The only parts needed for building a 3D object in a OBJ file are geometric vertices and its faces. These two are whatthe OBJ files in this thesis are made of. FBX is the last format and the final step of the file conversions in this project. It is similar to OBJ in terms of representing a 3D geometry but FBX is more complex and can provide more features such as animation and morphing of the object. Even though OBJ can be used in Unreal Engine with the same quality and animation it is not used. FBX is preferred in this case because the size of the files is smaller and it keeps the attached material in the same file whereOBJ creates another file for it. Without any official documentation and its file structure beingina binary format results in it being a safer format to keep sensitive information in, such as ownership of the file and the geometric data. The flow of how the conversion of a CAD model to3Dmodel is shown in figure fig. 2.

2.4 Similar Products Converting files from STP to OBJ and from OBJ to FBX is easy and many programs cando this. For example FreeCAD can convert to OBJ from STP and 3D studio Max or Blender can create an FBX file from OBJ. Both FreeCAD and Blender are example of free to use opensource products. These products can not be used because they are huge tools that have a lot of other functionality that is not needed, for the purpose of only converting from STP to FBX and the process of converting the files using these programs is simply time consuming. Another problem with 3D studio Max is its big price tag of e100–200 per month depending on how long you choose to subscribe.

Figure 2: File format conversion flow

3 3 METHOD

3 Method

3.1 Literature Study The first step was to do a research on the different file formats and on the existing programsthat can perform the conversions between them. It ended up with studying the source code [9] and documentation [10] of FreeCAD and the FBX SDK [12] from Autodesk.

3.2 Design and Development The development was divided into three parts. The first part was to convert file formats fromSTP to OBJ and the second part was going from OBJ to FBX. Going from STP format to OBJ format was achieved by locating and extracting the module from FreeCAD that already could perform this action. The second part was made by using the FBX SDK.

3.2.1 Implementation of STP Importer To get a working project of FreeCAD the source code was put into CMake and generated a Visual Studio project of it. This made it possible to run the tool in a debug mode which lets you see what parts of the code is running during the different inputs made to FreeCAD. When exporting through the GUI in FreeCAD a python script for the desired output file extension is used. Simply translating this script into C++ was not enough because this script got the different parts of the object from the FreeCAD document which was left out in my application. Since most of the lower level actions in the code were hidden inside library files from Open Cascade all parts that had anything to do with importing STP files got extracted and put in a new Visual Studio project. One thing that FreeCAD is not doing is importing the different parts with their names. They do separate the parts but the names are left out and replaced with ”part001, part002” and so on. Keeping the names of the parts is important for XperDI because of the assembling of the models in their Sales Configurator would not work otherwise. This problem was solved by reading the names of the parts separately from the STP file and then saving them in a vector to be usedin the OBJ exporter.

3.2.2 Implementation of OBJ Exporter What is needed to build an OBJ file is the vertices and faces of a mesh. FreeCAD has a function called getFaces() that can be called from a shape and it creates polygons of the shape and returns all the vertices and faces. It is in this function you specify the tolerance value to tell what quality of the mesh you are looking for. Because of the structure and information of an object in a OBJ file is simple and well presented, building a new one with access to the right information is very easy. The name of the part is entered with its coordinates for the vertices and indexes for the faces. This is looped until all parts of the object has been depicted. One thing that FreeCAD can not do is reading the name of the parts from a STP file. These names are required for the end product. This was solved by reading the part names from the STP file and writing to the OBJ file before the faces of that part.Whenan OBJ file could be produced out of the imported CAD model, it got put into 3ds Max andUnreal Engine to check the quality of the mesh.

4 3 METHOD

3.2.3 Implementation of FBX exporter Converting to the end file format FBX from the FreeCAD OBJ file was made with the FBXSDK. The newest version of the FBX format produced by the FBX SDK is not supported by anything else than 3ds Max 2016. This is a problem because the models can not be opened by any other 3D model tool such as Unreal Engine. Therefore the version of the FBX format has to be downgraded. The newer format will most likely be supported by more tools in the future.

5 4 RESULTS

4 Results

4.1 Application The result of this project is a small application with a simple Graphical User Interface(GUI) that lets the user import CAD models in a STEP file format and choose a folder to export it into inthe 3D mesh file format FBX. A tolerance value has to be input as a quality check. Figure 3shows the Graphical User Interface(GUI) of my application.

Figure 3: Graphical User Interface of the application

Figure 4 and Figure 5 show a large model of a bus that has been converted using my application. This is a model of a real bus that consists of around 90 different parts and 684,391 faces. Ithas the color gray and the windows seem solid because of no texture materials have been added to it, but the shape and quality of the model can still be seen. The start file was 200 MB large and took 10 minutes to convert on a computer with a Intel Core i5 4670K at 3.40GHz and a Solid State Drive disk.

Figure 4: Front view of a converted bus model in Unreal Engine

6 4 RESULTS

Figure 5: Inside view of a converted bus model in Unreal Engine

4.2 Tolerance The quality of the exported mesh is determined by the value used for the tolerance. A lower toler- ance increases the quality of the mesh but also the exportation time and file size. A high tolerance value might produce a mesh that makes the visual quality of that object low and depending on the purposed usage for that file a new conversion with a different tolerance has tobemade.

(a) Sphere with 352 Polygons, 38 kB FBX file (b) Wireframe view

Figure 6: Converted 3D mesh sphere with high tolerance

Figure 6 contains only 352 polygons or triangles and the result is a shape that is not a sphere. Complex shapes require more polygons to represent all small details in their geometry which is why this sphere does not look round. When the tolerance is lowered the result can be seen in fig. 7. Instead of 352 polygons there are now 83276 and the model looks as round as a sphere should. The file size of the lower polygon sphere is 38 kB respectively 3.76 MB for the high polygon sphere

7 4 RESULTS

(a) Sphere with 83276 Polygons, 3.76 MB FBX file (b) Wireframe view

Figure 7: Converted 3D mesh sphere with low tolerance which is almost 100 times larger. However, this is only a extreme comparison of different tolerance values that can be used. In fact, the sphere can look as round as in fig. 7 with much fewer polygons and a smaller file size.

4.3 Comparison between alternative tools Since there are alternative tools to use for the same conversion that the application I developed can do, I had compare what the strengths of each tool is. The most important property to compare are the quality of the produced 3D objects, the time it takes to perform the conversion and the user-friendliness of the tool.

4.3.1 3ds Max conversion One problem when comparing the converted 3D objects from my application and the ones produced from 3ds Max is that the objects generated from my application do not have something that is called UV map. It is however possible to remove this UV map but I chose to include it because a big part of the quality of the model comes from this map. For a fair comparison in terms of quality this UV map was generated manually by the tool Blender. The files compared have similar file size and the result in quality are also very similar. The comparison showedalso that 3ds Max can not separate the different parts of the objects and extract the name ofthese parts from the CAD model. The comparison in quality is illustrated in fig. 8 and fig. 9 shows the difference in how the faces in the mesh are positioned and shaped.

The test I created for comparing conversion time between 3ds Max and my STP–FBX converter consists of three parts: 1. Converting one file 2. Converting one large file with many parts 3. Converting many files of different sizes The first test is to convert the seat seen in fig. 8. This is a pretty small model, 121 kBinSTP. The second test is to convert the bus model with a 40 MB file size and 50 different parts. The third test will be 78 files with file sizes from 4 kB to 2 MB. All tests begins with startingthe tool and the import of the files is made through the user interface. No scripts for importing and exporting is allowed. All tests are also performed three times each to get an average time on how

8 4 RESULTS long it takes to execute them. Each tests begins with the files in STP format and ends when they are in FBX with the correct file name. The tests were performed on a system with a IntelCore i5 4670k at 3.4 GHz, a Solid State Drive disk with 540 MB/s read speed and 520 MB/s write speed.

Test 1 with one file and small file size: Tool Boot time + Conversion time (s) Summary STP–FBX Converter Instant + 3 = 3 seconds Starting the application takes no time and the conversion itself takes only 3 second. 3ds Max 30 + 30 = 60 seconds 30 seconds boot time plus 30 of the import + export of the file. Test 2 with one large file with many parts: Tool Boot time + Conversion time (s) Summary STP–FBX Converter Instant + 440 = 440 seconds 3ds Max 30 + 75 = 105 seconds 3ds Max is a better option when converting large files. Test 3 with 78 files: Tool Boot time + Conversion time (s) Summary STP–FBX Converter Instant + 715 = 715 seconds 3ds Max 30 + 30*78 = 2370 seconds Each file takes 30 seconds be- cause they need to be imported and name changed manually. The first test with a single small file is clearly won by my tool. The long boot time of3dsMaxis what increases the conversion time on a simple model. Test two shows that the long boot time of 3ds Max do not have as big impact on the time because my tool is taking more than four times as long time to convert the large bus model anyway. The strength of my tool is in converting many files at the same time. 3ds Max long conversion time comes from having to import thefilesone at a time, choose the folder to export it to and then after the export, copying the name from the original STP file to the new FBX file. Having to copy the name of the file manually alsoaddsa possibility to make a mistake. An error in the file name will lead to the Sales Configurator not loading the model properly. Therefore not having to enter the name by hand is an advantage because the risk of entering the name incorrectly is eliminated. If the task would be to convert fewer files than 78, it would still require manual labour to import the next file andchangethe name of it when the previous file is complete. Even if the time it takes for my STP–FBX Converter would be the same for 3ds Max when converting several files, you could spend the time doing other work while waiting for my STP–FBX converter to be finished. Waiting for 3ds Max to want the next file would require you to sit by the computer and work during the conversion.

4.3.2 Conversion with FreeCAD and Blender It was observed to be possible to come up with a 3D mesh with the similar mesh quality of both files created by my application and 3ds Max. This alternative does not give you the optionto change the tolerance which will lead to small objects will not be treated well in the conversion. FreeCAD can also not get any information out of small CAD models such as the sphere above which will lead to an empty file. Using FreeCAD and Blender have the same problem as using 3ds Max, the objects different parts will be treated as one big shape. No tests on conversion time was performed on this combination of alternative tools because the previous test on 3ds Max showed that the file type conversion itself is not what the timeis spent on. What takes the longest time is booting the tool and having to manually import and export the files. Therefore, having to both start and manually add files to now two toolsinstead of one, would only increase the time of the conversion process even more.

9 4 RESULTS

Figure 8: Left: Seat from the new applicaton, Right: Seat from 3ds Max

Figure 9: Wireframe Comparison of fig. 8

10 5 DISCUSSION

5 Discussion

The first idea was to use the open source tool Blender that can convert OBJ to FBX. Thiswas made with the FBX SDK instead because it felt simpler to use this complete kit made by the developer of the file type instead of having to extract the part from Blender that did the conversion. I believe this was a smart choice because the extraction from FreeCAD is what the majority of the time was spent on. The part that gave me the most problems is definitely the use of and extraction of code from the open source program FreeCAD. Locating the small part I needed in this huge Visual Studio project took time and needed help from their developer forum. The STPimporter used parts from header files and some library files from Open Cascade. My first approach was to take therelatively small part I needed and put in a new project and see what files it required to run. This method consisted of compiling and checking what header files were missing and then adding them. Ihad no idea what most files was for but all new header files wanted other files. When it finally compiled I almost had a complete copy of FreeCAD again. This approach would only work if you knew what every part of the tool did. Knowing what everything do is almost impossible when a large part of the tools functionality comes from library files from another tool with no possible wayto follow a path in the code. Another approach was to do it from the other way, deleting parts that was not needed until only the part I wanted was left. This approach worked at the start and large parts of the tool got removed.

11 6 CONCLUSIONS

6 Conclusions

Even though there are different ways to achieve the same conversion that my application cando, they are still different in terms of quality and functionality and my application can beseenas superior in both. The quality can be seen as similar when the objects compared have the same file size but the ability to lowering or increasing the tolerance value can produce a file moresuited for its purpose. To differentiate all parts as different parts is crucial for objects with more than onepart.For example, the buss model is made up of many different parts, each seat is an individual part with its own foundation. If the parts of an object is not kept apart, materials for each individual part can not be applied to the model. This new STP–FBX converter’s strength, in terms of conversion time, lies in converting small to medium sized models or many files at the same time. Even though 3ds Max is faster at converting larger files, leaving my tool running in the background while other kind of work is performedis an option to reduce idle time.

6.1 Future Work As of now the application I have created is working and every point on the list of functional- ity demands is fulfilled. The application can still be improved in terms of user-friendliness and functionality.

6.1.1 UV Map The 3D mesh objects exported from my application are working 3D files but without some func- tionality and cannot be used by XperDI’s sales configurator as of now. All files can be imported into the Unreal Engine and placed correctly but the problem is that textures cannot be attached to the objects. In order to solve this problem a UV map has to be created for the 3D-objects different parts. A UV map is a pattern used for putting a 2D texture to a 3D mesh, like an unwrapped and flattened shell of the mesh. A possible solution for creating a UV map is to use Blender to create it or even better, implement that module from Blender into this application.

6.1.2 Tolerance of the mesh There was no optimal tolerance value that worked for all models and shapes. A cube might look perfectly fine with few polygons where a sphere might appear angular and rugged. Asofnowthe user inputs the value of the tolerance, if the value is too low the mesh does not look good and requires to be converted again, if the value is too high the file size can be unnecessarily large. An algorithm that would try to calculate the best value for every object would be a good addition if it can be made.

12 7 REFERENCES

7 References

[1] XperDI, http://ww.xperdi.com, 2016, (accessed on 25 February 2016). [2] Unreal Engine, http://www.unrealengine.com, 2016, (accessed 25 February 2016).

[3] Open Cascade, http://www.opencascade.com/, 2016, (accessed on 25 February 2016). [4] Autodesk FBX, http://www.autodesk.com/products/fbx/overview, 2016, (accessed on 25 February 2016).

[5] Autodesk, 3ds Max, http://www.autodesk.com/products/3ds-max/overview, 2016, (ac- cessed on 25 February 2016).

[6] Cmake, https://cmake.org/, (accessed on 25 February 2016). [7] Visual Studio, http://www.visualstudio.com/, 2016, (accessed on 25 February 2016).

[8] ISO, ISO 10303-233:2012, www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_ detail.htm?csnumber=55257, (accessed on 25 February 2016).

[9] Github, FreeCAD source code, https://github.com/FreeCAD/FreeCAD, 2016, (accessed on 25 February 2016).

[10] FreeCAD, Documentation of FreeCAD, http://www.freecadweb.org/wiki/index.php? title=Main_Page, (accessed on 25 February 2016). [11] Hwa-Jen Yap, Zahari Taha, Siti Zawiah Md Dawal. A generic approach of integrating 3D models into virtual manufacturing. Available from: http://link.springer.com.e.bibl. liu.se/article/10.1631/jzus.C11a0077, 4 January 2012, (accessed on 10 June 2016). [12] Autodesk, FBX SDK, http://download.autodesk.com/us/fbx/20102/FBX_SDK_Help/, (accessed on 25 February 2016).

13