Development of a software solution to optimize objects and toolpaths for computer aided design (CAD)
This project aims to develop optimization tools in C++ using the Open Cascade library. The goal is to reduce errors between a computer-aided design (CAD) modeled object and a manufactured object. The entire project will employ three strategies to minimize errors: (1) optimizing object surfaces, (2) optimizing cuts, and (3) optimizing filling.
The first strategy (surface optimization) will focus on the 3D errors measured between a CAD object and the same object built by additive manufacturing. To compensate for errors, we will create a second (morphed) version that, once built, will result in an object closer to the desired geometry. To achieve this, we will deform the surfaces of the new object to compensate for the errors. This deformation will be obtained through a minimization approach (such as gradient descent or linear least squares) and will use measured deviations as input. The challenge will be to maintain a rich and continuous representation of the surfaces while proposing an efficient algorithm that minimizes computation costs.
The second strategy involves developing a system to effectively visualize surfaces, cuts, optimized objects, etc. The project will identify and implement the most relevant cutting methods related to additive manufacturing processes. Then we will optimize the positioning of cuts considering the characteristics of additives manufacturing processes, such as incremental forming. Taking into account the manufacturing process characteristics and the targeted number of cuts, this approach will optimize the parameters of the cutting method to mitigate precision problems. The optimization will be coupled with process simulations by the NRC for predicting geometric errors.
The third strategy focuses on optimizing filling for deposition-based manufacturing processes. The project will consider cold spray deposition processes of metallic powders, which can be modeled by scanning a Gaussian distribution. Variability in Gaussian size due to feed-rate variations from the controller will be factored to address the resulting errors through optimization loops. Multiple deposition passes with tool orientation variations will be considered to compensate for material shortages in the Gaussian's periphery.
The recruited individual will focus on one or more of these three strategies based on their profile and expertise.
Required knowledge
The ideal student has some knowledge of computer graphics and is a capable C++ programmer. Knowledge related to CAD modeling, Open Cascade, OpenGL or Direct3D, spline and NURBS surfaces, numerical optimization or Python are also interesting assets.