THEORETICAL BASIS
Function of CNC machines in the project
The machine can simulate the following basic functions:
Workpiece placement, blade mechanism, coordinate displacement mechanism in X Y Z axis and keyboard to input simple coordinate.
Fundamentals of AR
A direct or indirect view of a real, physical environment in which elements are
"augmented" by computer-generated cognitive data generated in a range of sensory modalities, including sight, hearing, touch, and smell, is known as augmented reality, or
Augmented Reality (AR) technology enhances real-world scenes by overlaying digitally created virtual objects, creating a seamless blend of the physical and digital realms Unlike Virtual Reality (VR), which immerses users in a completely virtual environment, AR enriches the existing reality by integrating virtual elements into it.
Figure 1: AR example 2.2.2 Application of AR in the topic
CNC AR leverages augmented reality technology to simulate CNC machine design and operation, enabling users to control the machine via a laptop or mobile device With its intuitive interface, users can easily grasp the structural components, learn operational functions, and navigate control keys and parameters, while also addressing common CNC machine errors effectively.
Simulating all actions and procedures on a CNC machine, including workpiece setup, tool configuration, code input, and the machining process, provides invaluable training for individuals eager to learn CNC programming This hands-on approach enhances understanding and skill development in CNC operations.
5 machines but are restricted by financial constraints from doing so It also makes editing CNC programs very simple (Fig.2)
Figure 2: CNC Doosan DNM 5700 machine
The group will provide a brief explanation of Git before providing a brief overview of the SourceTree software [2]
Git is a distributed version control system that is free and open source and is made to efficiently and quickly handle projects of all sizes
Git is a lightweight and fast version control system that offers features such as affordable local branching and multiple workflows, surpassing traditional SCM tools like Subversion and CVS However, using Git via the command line can be inconvenient, leading the team to adopt SourceTree, a user-friendly application for both Windows and Mac OS X SourceTree helps prevent code errors, redundancy, and accidental deletions by allowing developers to review their code before committing changes Additionally, it facilitates the exchange of work-related data among team members who are unable to meet in person.
2.3.1 Reasons to choose Doosan 5700 CNC milling machine for simulation
Our group would like to briefly discuss the Doosan series (DNM) before discussing the reasons why chose this machine:
The DNM and DNM II series have established a strong reputation, and the latest DNM series enhances performance and reliability while introducing eco-friendly lubricants for guide rollers With a cutting-edge design, the DNM 4500/5700/6700 series offers exceptional rigidity, speed, and versatility for various applications It features the largest machining area in its class, a direct-coupled spindle, roller guides, and standard thermal error compensation, ensuring maximum accuracy.
Due to the 3-step milling capabilities of the DOOSAN 5700 machine, which is also made in Korea and is quite well liked in some factories due to its affordability
This machine features an extended exposure time, allowing for the creation of a detailed 3D model where each component can be individually separated, and an operational mechanism can be integrated within a virtual environment Additionally, it serves as an excellent tool for internships, as its working mechanism is less complex than that of a lathe, making it an ideal object for simulation.
2.3.2 Reasons to use Unity software
The group selected this program for the project due to its cross-platform capabilities, supporting a wide range of operating systems including Android, iOS, Linux, macOS, Windows, and Windows Phone.
Unity3D provides a comprehensive system for programmers, featuring a source code editor, build automation tools, and debugging capabilities, making it highly user-friendly The primary programming language used in Unity is C#, with support for Javascript as well It offers robust programming support by leveraging powerful software libraries such as Nvidia's PhysX for physics simulation, OpenGL and Direct3D for rendering 3D graphics, and OpenAL for audio processing.
In response to the challenges posed by the recent epidemic, utilizing programming software with remote support allows for simultaneous updates and repairs within the same file through Sourcetree This solution not only facilitates collaboration on projects despite physical distancing but also enables the team to adapt quickly, as they have prior experience using this software in previous projects.
Modeling facility in Unity Hub
To create 3D models quickly in the simulation environment, a 3D drawing file of the model is required; Autocad or Solidwork can be used
Add mechanics and animations using separate components Additionally, it is possible to paint the machine a particular color to make it simple to distinguish when operating it
To prevent components from crashing into one another while moving, a limit must be put on their movement To remind the user, a collision-warning feature can be added
When making changes to the public file, exercise caution because they might conflict with the previous version Nevertheless, aside from that, Unity excels at building 3D environments and simulations.
THE PROCESS OF BUILDING A CNC MILLING
Android simulation
The current landscape of virtual reality software for smartphones and smart devices is vast, offering a wide range of applications that cater to users' needs for learning, skill development, and entertainment To enhance this experience, the team is working on new software designed to evaluate virtual interactions with the environment, enabling the emulator to function effectively on mobile devices.
Figure 4: App Mixed Reality Toolkit
The project focuses on exploring the interaction of mobile devices, particularly those running the Android operating system, with their virtual environments Users can engage in captivating virtual experiences through pre-installed software, which allows for the simulation of a CNC machine on a mobile device.
Figure 5: After opening the App
Everyone can simply imagine how our theme product can be simulated by looking at the image above (Fig.5)
Users can engage with the CNC machine by tapping their phone screens, with the machine positioned centrally in the frame As motion reading technology advances, the product is anticipated to enable interaction with tools and pushbuttons through hand movements, enhancing user experience over time.
Doosan CNC milling machine modeling
Foreign private companies in Vietnam frequently utilize the DOOSAN DNM machine, and our team can source and export its schematics using SolidWorks software.
After acquiring the 3D drawing of the machine, the team constructs a detailed model by breaking it down into individual components for effective animation This process is accomplished using Blender, a powerful software tool designed for 3D modeling and animation.
Introduction to Blender
Blender is a comprehensive 3D content creation toolkit that offers essential features such as modeling, rendering, animation and rigging, video editing, visual effects (VFX), compositing, texturing, and various simulation categories Its extensive functionalities ensure seamless integration for users.
3.3.2 Blender's application in the project
The CNC machine's components are individually separated using Blender software, streamlining the animation process of the milling machine's movements.
Skipping the step of separating each part will make programming the motion animation for the milling machine significantly more challenging It's essential to properly organize each component before moving on to the animation phase to ensure a smooth and efficient process.
Upon loading the 3D file in Blender, the machine image appears devoid of color, yet it is capable of performing various simple functions Users can click on different parts of the machine to reveal three movement options along the X, Y, and Z axes, enabling movement in the desired direction Additionally, there is a rotational option that allows for adjustments based on the user's specified angle, complementing the three directional movements.
Figure 7: Uploaded 3D files with Blender
The machine will appear as follows after separating each part:
The machine's components are fully disassembled, as indicated by the number 1, enabling the operation of individual parts while concealing specific external elements (Fig 8, Fig 9).
Figure 8: the machine's outer frame after being separated and concealed
Figure 9: After separated 3.3.3 File formats that unity supports
To begin adding colors and programming animations for the machine, the separated Blender file must be loaded into Unity Hub.
Unity supports a variety of file formats, including fbx, dae (Collada), dxf, and obj, which are generally smaller than their proprietary counterparts This compatibility allows for reduced project sizes and faster iteration To ensure successful export, users can re-import fbx or obj files into their preferred 3D modeling tools However, it is advisable to use the fbx format as the standard for Unity and to avoid proprietary model formats during production.
For optimal production, refrain from using certain file formats and aim to export to fbx whenever possible While some projects may still necessitate these files, popular 3D modeling software such as Autodesk Maya, Blender, Modo, and Cheetah 3D can import proprietary files and convert them to fbx for use in Unity.
The following programs do not support fbx as an intermediate Before importing them into the Editor, Unity must convert them into fbx files: Autodesk® 3ds Max®, SpeedTree, and Sketchup [6]
Cinema4D files are not natively supported by Unity You need to export Cinema4D files from proprietary software as fbx files in order to use them in Unity
To successfully import 3D models saved in formats such as ma, mb, max, c4d, or blend into your Unity project, the corresponding 3D modeling software must be installed on each computer used for the project For example, if a mb file is created with Autodesk Maya LT, anyone accessing the project will need to have Autodesk Maya LT installed on their system.
Set colors material for CNC machine
Upon importing the Blender file into Unity Hub, the machine will initially appear as a blank white form Users can manipulate the machine by pressing and holding the mouse button to rotate it or by clicking on any part of the machine, which will reveal the X, Y, and Z axes These axes enable users to freely position the components to their desired locations.
Figure 10: Open Blender file with Unity
To customize the CNC machine colors, first create a folder named "Materials" to store the machine's material information, which includes a sub-material file displaying the colors to be added later Additionally, a text shader will be visible in the upper right corner of the screen.
The three elements required to display an object on a screen are demonstrated in detail in the diagram below (Fig.11):
3D models are created by 3D artists and consist of coordinate points in 3D space, known as vertices, which can be connected to form triangles In Unity, these points can have associated data such as color, orientation, and coordinates for texturing, referred to as UV Data Unity requires that every object has a material assigned, which acts as a covering layer containing shaders and properties essential for rendering Multiple materials can share the same shader data, allowing customization for individual objects For instance, two identical chairs can be rendered in different colors, such as blue and red, by modifying the color properties of their respective materials.
In this project, the group will utilize Unity's default shader mode, which is essential for applying materials effectively We will begin by focusing on the Albedo tile, as it significantly influences the material's appearance, particularly by altering its color (Fig 12).
Number 1 is selecting colors from objects in sceneries
Number 2 is self-color adjustment
Number 3 is the capability to write the RGB code of the required color
The bottom table (Fig.13) will display the color choose in Albedo after finished setting it
Figure 13: Color’s show table after finished setting
To add material to an object, simply drag and drop it into the desired location This process includes two tuning settings, with the first being the metal mode, which enables objects to interact with light, giving them a metallic appearance when viewed.
The second mode, smoothness, will assist in modifying the contrast between the background and the object Here is the machine's entire image with color added (Fig.14):
Each button's function is specified
Switch to operating on the workpiece while cutting and drilling
Mode of adjusting the axes to the set value
Display the X Y Z axis control panel
Keyboard show and manual input
Software development process
A well-defined software development process is crucial for creating high-quality software Software engineers need to be familiar with the various steps involved in this process Today, there are several software development models to choose from, and businesses must select the one that best aligns with the product's type and scope.
The group will now move into deeper level on the software development process:
The Software Development Life Cycle (SDLC) is a structured approach to software development that involves a series of steps executed in a specific order to ensure the final product meets both technical and business requirements.
The Software Development Life Cycle (SDLC) offers a structured framework for engineers and developers throughout a software project, ensuring that all team members understand their roles, objectives, and timelines By adhering to the clearly defined phases of the SDLC, teams can collaborate effectively, resulting in the timely delivery of high-quality software products.
There are numerous software development models available today The group will only specifically mention a few of the most popular software development models, such as: Model 1:
Features of the model [9] (Fig.15):
Each phase of the linear model has a test run It entails carrying out development and testing in simultaneously
The model is very organized Only when the previous phase has been completed can the following stage commence
However, since tester is involved from the beginning, bugs are found early and are simple to fix
This model is commonly used in a variety of cases:
As medical software or flight management software, projects possess zero - tolerance approach for errors and downtime
Short projects, the project's development team is knowledgeable about the technology, which has not changed
Figure 16: Iterative and Incremental model
Features of the model [9] (Fig.16):
From the start to the end of the full specification, the model is iterative
The new version of the software is developed at the end of each loop
The software design remains stable because each iteration builds on the previous one
Due to the fragmented nature of the software, a full specification is not required at the outset, and requirements may change slightly as the product is being developed
The client must assist throughout the model development
The following situations are appropriate to this model:
The software development team have time to learn further about new technology projects Model 3:
Features of the model [9] (Fig.17):
Prioritize iterative development, constant communication, and early customer feedback for better improvement
The tasks are separated into manageable modules that provide particular features for the finished product
Release updates for software improvement on a routine basis
The maintenance phase is more difficult
In the following circumstances, this model is often used:
Suitable for a wide range of projects but requires participation and interaction with the client
It is simple to divide large projects into manageable parts that may be gradually developed throughout each iteration
Features of the model [9] (Fig.18):
Can be used in a certain sequence for the phases of software development
If the previous step is still not completed, the following step cannot be executed
Every step is carefully and precisely recorded
Testing is usually rushed as it can only be done at the final product stage Error correction is therefore difficult, costly, and time-consuming
The following circumstances commonly involve this model:
Projects of a small to medium-sized size with precise, constant demands
Projects that require strict financial supervision
Projects, such as those in the healthcare sector, must follow a variety of rules and standards
Unsurprisingly, the group decided to use the waterfall method for this project because each phase (Receive Request – Analysis – Programing – Testing) need to be done completely
Exercise caution during the process, as one mistake can trigger a chain of errors that are often challenging to rectify and time-consuming to address The model consists of several phases, each of which is briefly outlined below.
To develop a complete and error-free software product, programmers must thoroughly analyze and define the core requirements of customers and sponsors Additionally, conducting in-depth market research is essential to identify necessary functions that demonstrate the software's value, ensuring it is perceived as useful and worth long-term use by users.
The software development team collaborates with the client to create detailed requirements and specifications for the software product, which are compiled in a Software Requirement Specification (SRS) document This document outlines performance, functionality, and interface specifications, along with a summary of each team member's roles and responsibilities, as well as the testing criteria necessary to ensure a high-quality product.
Managers and programmers will now decide on the kind of software development model to use
The software designer will create a comprehensive design blueprint based on the requirements and specifications outlined in the initial step This design process will also take into account critical factors such as budget, timeline, technology to be used, and associated risks.
The design specification serves as the foundation for the development phase, enabling the entire team to monitor the software development process It establishes standards for the design process, outlines system requirements, and includes both back-end and front-end representations, ensuring a cohesive approach to development.
In this stage, the software's programmers will implement the design standards established earlier, with front-end engineers focusing on developing the user interface while back-end developers work in tandem with database administrators to manage server data through various programming languages and frameworks.
Developers will deploy the product in the development environment once the coding is complete The programmer will test the software and make necessary adjustments to meet the requirements
In the process of the whole software development process, this phase typically consumes a lot of time and resources
Once the software programming is finalized, the product will be delivered to testers who will create and execute test cases This software testing process is essential to verify that the product meets all quality requirements.
After testing, the tester will log new bugs into the management system and notify the developers Collaboration between testers and developers is essential at this stage to address and resolve any identified issues while updating the bug monitoring system The workflow may be either sequential or continuous, based on the chosen software development model from the initial phase.
Once the software passes all testing phases without any errors, developers will proceed to release the product into the Production environment, where it will operate with real users and real data, ultimately deploying the complete solution to the client.
After registration, beta testing will be conducted to collect user feedback and enhance the software's quality before its large-scale launch Additionally, the developer must create a comprehensive strategy to proactively address any potential issues that may arise during this phase.
After the official release of the software and its adoption by customers, the next crucial step is to ensure its ongoing maintenance to uphold the highest quality standards The company will form a dedicated team to address any maintenance needs and resolve issues that arise during customer use of the software.
30 customer problems will be addressed and handled by them In order to fix problems and boost performance, the software is also updated continuously after deployment.
INSTRUCTIONS
Manual mode
This screen ( Fig.26) will appear as soon as the application launches and after it has finished running
You can adjust the language in Settings before selecting the Start button after launching the program; the group’s application programmers support two languages: English and Vietnamese (Fig.27, Fig.28)
Figure 27: Language setting in Vietnamese
Figure 28: Language setting in English
The app will guide the user through the startup process of the CNC machine, ensuring that all necessary steps are completed before enabling functions Users must select the appropriate workpiece from three common CNC tools: Facemills, Endmills, and Chamfers (Side Face Cutter), each serving a specific role in machining.
Facemills: In a face milling operation, flat surfaces are formed by spinning the cutting tool perpendicular to the surface of the workpiece being machined [10]
Endmills are essential tools for metal cutting, distinguishing themselves from other milling methods by their unique ability to remove chips through cutting along the sides of the blade head and the tool's base, rather than solely through drilling.
Chamfers, also known as side face cutters, are essential tools for achieving precise cuts in hard materials They are primarily employed in the machining of untreated steel ingots, especially when there is a considerable amount of material left to be processed.
After completing all the steps, a tick will appear in the top right corner, and clicking on it will enable the user to choose between Manual and AR modes (Fig 29).
Go to the simulation section after choosing the appropriate function (Fig.30)
When users activate Manual mode on the Doosan 5700 milling machine, the camera displays the internal components along with the selected tools and objects.
Figure 30: Manual and AR mode
Figure 31: After choosing the manual mode
Users can control tool rotation, adjust rotational speed, and manipulate the X, Y, and Z axes To access cutting and drilling functionalities, users should click the embryo-shaped screen icon in the lower left corner, which opens a new screen for workpiece operations (Fig 32).
Figure 32: After clicking the "action of the workpiece" button
When button at number 1 is pressed, the blade will be brought automatically to the positions designated by the team during programming (Fig.33)
To display the X Y Z axis movement table, simply press button at number 2 (Fig.34)
The button at number 3 displays the table and can be used to rotate or turn off the tool (Fig.35)
The blade rotation speed control panel is displayed when button at number 4 is pressed (Fig.36)
The button at number 5 shows the keyboard so that commands can be input for the tool to execute the command (Fig.37)
To execute user input data in a computer application, simply type the command and then drag the mouse over the "Execute code" button For mobile users, just tap the command button on the device's touchscreen.
The upper left corner of the screen includes various command buttons that enable users to perform actions such as hiding the toolbar, resetting the tool and workpiece to their default settings, and changing the camera view (Fig 38).
Figure 33: The tool moves to the set coordinates
Figure 36: Tool rotation speed control
Figure 38: Adjust the camera's angle
In the simulation of a CNC milling machine, errors can occur during drilling, milling, and axis adjustments Common mistakes include the tool striking the workpiece, resulting in the blade disappearing and an error message appearing on the screen To resolve this issue, simply press the reset button located next to the control panel.
47 camera adjustment button, to display the blade once more This button will restore everything to its previous state (Fig.39)
Figure 39: Notifying errors once the tool makes contact with the workpiece
AR mode
To initiate AR mode, select the alternative option instead of manual on the mode selection screen The application will utilize the mobile device's camera to scan for a flat surface before loading the 3D CNC milling machine in that area (Fig.40).
Figure 40: The machine displays on the environment
After the software has successfully launched the CNC machine model, you can click the done button If there is a problem, click Reset and try again until everything operates
The machine control mechanism operates consistently in both manual and AR modes, providing users with a button interface on the left side of the screen for essential functions such as controlling the X, Y, and Z axes Users can easily adjust the tool rotation speed and toggle the tool on or off In manual mode, a dedicated button in the lower left corner allows for drilling or cutting operations, enabling users to perform these tasks on the workpiece just as they would in manual mode.
EXPERIMENT AND RESULT
Experiment
In the initial section of Chapter 5, our team will conduct an experiment to evaluate the fundamental functionalities of CNC AR, ensuring it meets essential operational standards for effective performance in its environment (Fig 41, Fig 42).
1 The app is available for usage on mobile devices and desktop computers
2 Able to do the basic movement of X Y Z axis
3 Able to make contact with the workpiece such as: drilling and cutting
4 Able to run the app for a long time without crashing
5 Able to scan the environment to load the CNC machine
Result
5.2.1 Can be used on both phones and computers
Unity simplifies the process of obtaining and installing files on mobile devices by offering dedicated export support Users can access the Build Settings panel in two ways: through the menu by selecting File → Build Settings or by using the keyboard shortcut Ctrl + Shift + B, which reveals the corresponding table.
Users only need to click Build and Run on this panel's display for Unity to start generating an apk file for Android mobile devices
The team successfully programmed the machine, enabling users to control the X, Y, and Z axes with buttons To enhance user experience, they also developed a coordinate table that displays the positions of the axes during movement (Fig 44).
Figure 44: Display coordinates 5.2.3 Can operate a workpiece
After conducting thorough research, the team successfully programmed seamless drilling and cutting animations on the workpiece's surface The animations operate flawlessly as the blade moves across the surface, free from glitches Furthermore, if the user interacts with the workpiece incorrectly, an error message, developed by the team, will be displayed on the screen (see Fig 45, Fig 46).
Figure 45: Workpiece after performing drilling
Figure 46: Workpiece after performing cutting 5.2.4 Can start the app for a long time
Several apps allow users to simulate their surroundings, but prolonged use often causes mobile devices to overheat, leading to slower performance and potential app crashes Many users fail to save their data during these sessions, resulting in data loss To mitigate this issue, the team decided to install their app in AR mode, as it generates less heat compared to manual mode After positioning the CNC machine in its environment using AR mode, the team proceeded to test the software.
After a thorough 15 to 30-minute evaluation, the group app demonstrated stable performance without any lag or overheating issues on the smartphone Remarkably, the device's temperature remained consistent, indicating effective functionality throughout the testing period.
5.2.5 Can display the 3D CNC machine on the enviroment
The mobile device's camera plays a crucial role in this project by enabling users to scan their surroundings and pinpoint an ideal flat area for positioning a CNC milling machine.
The app uses the mobile device's camera to scan the environment, ensuring the area is flat and spacious, indicated by yellow dots in the image The yellow components, referred to as the foundation, represent the area where the CNC machine will be positioned Adequate space is essential for displaying this foundation effectively.
Upon receiving a red alert indicating insufficient space for loading the foundation, the user should tap the reset button to allow the app to rescan the environment for a more suitable location.
Figure 47: Scan the environment through the camera
Figure 48: Not enough space 5.2.6 General Evaluation
After extensive testing and collaboration among team members, all identified errors in the application have been resolved, leading to the successful outcomes achieved thus far While some criteria still fall short of the established standards, these shortcomings are deemed acceptable due to the team's constraints in knowledge and time Nonetheless, the application continues to operate in alignment with the required specifications.
CONCLUSION AND FUTURE DEVELOPMENT
Lesson learnt
After more than four months of dedicated study and preparation for their graduation project, the team has acquired extensive knowledge in augmented reality (AR) and its programming They learned to utilize the new programming library DOTween to create motion animations along the X, Y, and Z axes, allowing them to control the speed of tool rotations effectively Additionally, the project deepened their understanding of the singleton design pattern, which facilitated the programming of drilling and cutting operations on workpiece surfaces This experience has significantly enhanced the team's programming skills, with teamwork emerging as a crucial element in their success after four years of university education.
Achievement
The team successfully created a comprehensive CNC AR application that enables users to perform basic CNC machine operations The app efficiently scans environments in just 5 to 10 minutes, allowing it to construct a virtual environment and simulate machine functions It features two operational modes: Augmented Reality (AR) and Manual.
The AR mode allows users to scan their environment with mobile device cameras, creating a 3D simulation of the DOONSAN DNM 5700 CNC machine Compatible with both computers and mobile devices, the lightweight application operates without overheating during extended use and features animated interactions between the tool and the workpiece.
Limitation
Following the completion of this significant project, the team acquired valuable experiences and knowledge, yet several challenges remain Firstly, the app is currently incompatible with iOS devices Secondly, it can only execute simple commands, limiting its functionality Additionally, while some Android devices can simulate CNC machines in augmented reality, others experience failures or prolonged loading times The app also lacks the capability to display a broken tool when the user rotates it too quickly to touch the workpiece The team is committed to resolving these issues in the future to enhance the application's performance.
Suggestion for future development
Include some roaming features for CNC machines:
Add some buttons to control modes like turning on and off the lights and releasing the cooling water
Assistance with the iOS operating system
Reduce the amount of time needed to construct a CNC machine model by scanning the environment
Virtual reality goggles can be used to use the app
Add a feature that stores data automatically after cutting
I don't know!
57045#:~:text=AR%20(Augmented%20Reality)%20hay%20c%C3%B2n,x%C3%BAc% 20gi%C3%A1c%2C%20v%C3%A0%20kh%E1%BB%A9u%20gi%C3%A1c
[2] Git introduction Available: https://topdev.vn/blog/git-la-gi/
[3] What is Unity programming, and what are the foundational skills to learn (October 14,
2020) Available: https://itnavi.com.vn/blog/lap-trinh-unity
[4] DOONSAN 5700 CNC machine model (June 4, 2022) Available: https://grabcad.com/library/doosan-dnm-5700-1
[5] Getting Started with Blender (January 28, 2023) Available: https://docs.blender.org/manual/vi/dev/getting_started/about/introduction.html#:~:text=B lender%20l%C3%A0%20b%E1%BB%99%20c%C3%B4ng%20c%E1%BB%A5,%2C% 20T%E1%BA%A1o%20Ch%E1%BA%A5t%20Li%E1%BB%87u%20%E2%80%94%2 0Texturing%2C
[6] Instructions for using and downloading Unity (March 2021) Available: https://docs.unity3d.com/Manual/index.html
[7] An overview of Shaders in Unity3D (December 21, 2016) Available: https://viblo.asia/p/gioi-thieu-khai-quat-ve-shader-trong-unity3d-roavrJxjvRM
[8] Software development process and software development models (June 2, 2020) Available: https://viblo.asia/p/quy-trinh-phat-trien-phan-mem-va-cac-mo-hinh-phat-trien-phan- mem-gAm5ybP8Kdb
[9] Overview of DOTween (since 2014) Available: http://dotween.demigiant.com/
[10] Explaining Facemills Available: https://hutscom.vn/phay-mat-face-milling-la-gi-cac-yeu-to-de-gia-cong-phay-mat-hieu- qua.html#:~:text=d%E1%BB%91c%20(ramping%20milling)-
,Phay%20m%E1%BA%B7t%20(Face%20Milling)%20l%C3%A0%20g%C3%AC%20%
3F%3F,ra%20c%C3%A1c%20b%E1%BB%81%20m%E1%BA%B7t%20ph%E1%BA% B3ng
[11] Explaining Endmills Available: https://cncanhkim.com/dao-phay-end-mill-la-gi/
[12] Explaining Chamfers (Side Face Cutter) Available: https://maycongcuthanhloi.com/san-pham/dao-phay-chamfer-canh-nhat- ban/#1_Dao_Phay_Chamfer_Canh_La_Gi
[13] Get started with Sourcetree Available: https://confluence.atlassian.com/get-started-with-sourcetree
It seems that this video doesn't have a transcript, please try another video.
[15] AR foundation: AR Foundation enables you to create multi-platform augmented reality (AR) apps with Unity In an AR Foundation project, you choose which AR features to enable by adding the corresponding manager components to your scene When you build and run your app on an AR device, AR Foundation enables these features using the platform's native AR SDK, so you can create once and deploy to the world's leading AR platforms (November 15, 2022) Available: https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@5.0/manual/index.html
ARCore enables augmented reality experiences on Android devices through Google Play Services for AR It requires devices to meet specific criteria, including the minimum Android version and support for the ARCore SDK For a comprehensive list of supported devices and additional details, visit [Google Developers](https://developers.google.com/ar/devices?hl=en).
[17] Localize: Read file CSV in Unity (Nov 13, 2018) Available: https://www.youtube.com/watch?v=xwnL4meq-j8
[18] DesignPattern: A singleton design guarantees that a class has just one instance and offers a universal method of accessing that instance (December 22, 2017) Available: https://viblo.asia/p/hoc-singleton-pattern-trong-5-phut-4P856goOKY3
In addition, our group will also add a youtube link to help people have a closer look at Singleton (March 25, 2017) Available: https://www.youtube.com/watch?v=CPKAgyp8cno
Parsing refers to the process of examining a specific object, and in the realm of computer science, it often pertains to the code that software interprets For more information, visit: https://tudienso.com/thuat-ngu/index.php/parse-la-gi/
[20] Reference icon Our group get icons from these two link below Available:
Link 1: https://www.flaticon.com/
Link 2: https://assetstore.unity.com/
[21] CNC information (January 1, 2023) Available: https://vi.wikipedia.org/wiki/CNC#:~:text=CNC%20%E2%80%93%20vi%E1%BA%BF t%20t%E1%BA%AFt%20cho%20Computer,hi%E1%BB%87u%20chuy%C3%AAn%20 bi%E1%BB%87t%20theo%20ti%C3%AAu