zhangty019 / S3_DeformFDM

S^3-Slicer: A General Slicing Framework for Multi-Axis 3D Printing
BSD 3-Clause "New" or "Revised" License
100 stars 15 forks source link

S^3-Slicer: A General Slicing Framework for Multi-Axis 3D Printing (Technical Papers' Best Paper Award)

Tianyu Zhang, Guoxin Fang, Yuming Huang, Neelotpal Dutta, Sylvain Lefebvre, Zekai Murat Kilic, and Charlie C.L. Wang, ACM Transactions on Graphics (SIGGRAPH Asia 2022), vol.41, no.6, article no.277 (15 pages), December 2022

Abstract

Multi-axis motion introduces more degrees of freedom into the process of 3D printing to enable different objectives of fabrication by accumulating materials layers upon curved layers. An existing challenge is how to effectively generate the curved layers satisfying multiple objectives simultaneously. This paper presents a general slicing framework for achieving multiple fabrication objectives including support-free, strength reinforcement and surface quality. These objectives are formulated as local printing directions varied in the volume of a solid, which are achieved by computing the rotation-driven deformation for the input model. The height field of a deformed model is mapped into a scalar field on its original shape, the isosurfaces of which give the curved layers of multi-axis 3D printing. The deformation can be effectively optimized with the help of quaternion fields to achieve the fabrication objectives. The effectiveness of our method has been verified on a variety of models. Video Link

Installation

Please compile the code with QMake file “ShapeLab.pro”.

Platform: Windows + Visual Studio + QT-plugin (tested version: VS2019 + QT5.12.3 + msvc2017_64)

Install Steps:

Usage

Step 0: Input tetrahedron mesh into the system Click button Open at the left-up corner of UI. For example, bunny_cut6 is opened.

Step 1: Run fabrication objective-driven deformation Click button 1.x fabrication objective (Support free - SF, Strength reinforcement - SR, and Surface quality - SQ) at the right side of UI. For example, 1.7 SF_SR_SQ is enabled for bunny_cut6 model.

Step 2: Run inverse deformation Click button 2. Inverse Deformation to resume the deformed model and generate the scalar field for slicing.

Step 3: Curved layer slicing Move to the next page Slicing_Toolpath, click button 3.0 Layer Generation (scalar) to generate curved layers, and use Output to save the layers into \DataSet\remesh_operation\layers_unremeshed.

Step 4: Curved layer remesh The remesh operation is conducted by running .bat file integrated in the MeshLab.

Step 5: Toolpath generation Click button 'Get Tool-Path' to generate toolpath with parameters - Width and Distance. And Output to save the layers and toolpath into \DataSet\CURVED_LAYER and \DataSet\TOOL_PATH.

Step 6: Singularity-Aware Motion Planning for Multi-Axis Additive Manufacturing Please refer to this project link for the G-code generation.

Note: Please refer to the following articles for information on generating the necessary curved supports and toolpaths along the stress direction. 1) the support generation is based on Tianyu Zhang, Yuming Huang, Piotr Kukulski, Neelotpal Dutta, Guoxin Fang, and Charlie C.L. Wang, "Support generation for robot-assisted 3D printing with curved layers", IEEE International Conference on Robotics and Automation (ICRA 2023), London, United Kingdom, May 29 - June 2, 2023.

2) the toolpath generation on surface is based on Guoxin Fang, Tianyu Zhang, Sikai Zhong, Xiangjia Chen, Zichun Zhong, and Charlie C.L. Wang, "Reinforced FDM: Multi-axis filament alignment with controlled anisotropic strength", ACM Transactions on Graphics (SIGGRAPH Asia 2020), vol.39, no.6, article no.204 (15 pages), November 2020.

Contact Information

Tianyu Zhang (tianyu.zhang@manchester.ac.uk)

Tao Liu (tao.liu-2@postgrad.manchester.ac.uk)

Charlie C.L. Wang (changling.wang@manchester.ac.uk)