Normal Transformations for Overhang Reduction Master thesis Carlos Eduardo Leal de Castro Advisor: Dr. Leonardo Sacht Universidade Federal de Santa Catarina February 18, 2020
3D printing and Overhangs Related Work The group SO (3) and Generalized Euler Sequences Objective Functions Implementation and results Future Work
3D printing and Overhangs Related Work The group SO (3) and Generalized Euler Sequences Objective Functions Implementation and results Future Work
3D printing and Overhangs 4 The 3D printing process is gaining space in many areas around the world. Its versatility can be used to print artistic objects, architectural mockups, as well as delicate objects as prosthesis and real representations of human organs. Figure: Images from World Economic Forum Youtube v´ ıdeo (left) and Aniwaa website (right).
3D printing and Overhangs 5 a) b) c) d) e) A plastic filament (a) is heated by a nozzle (b), allowing the template (c) to be printed over the horizontal platform (e), that moves on the vertical direction. Some sloping parts of the template need supports (d) to be printed.
3D printing and Overhangs 6 To deal with overhangs, 3D printers print columns to support the parts of this solid that have no material underneath them. This extra material must be removed from the solid, leading to a waste of material, time and money.
3D printing and Overhangs 7 Some overhangs are tolerable. Each printer comes with a standard limiting angle to tolerate these overhangs. Given a θ limit angle, the printer only prints a support if the part of the solid that will be printed maintains an angle with the horizontal plane smaller than θ .
Our proposal 8 We propose a model for the overhang problem based on the normal field of a surface and we propose an optimization framework to find a global rotation of the surface that minimizes the amount of overhanging support.
Structure of the thesis 9 ◮ Preliminary concepts ◮ fmincon and optimization ◮ Modeling the problem ◮ Implementation and results e 3 π 2 n(f) α (f) y-axis π - 2 - π π x-axis
Libraries 10 The libraries we are working with are libigl [3] (C++) and gptoolbox [4] (Matlab). Figure: Images from Libigl website https://libigl.github.io/.
3D printing and Overhangs Related Work The group SO (3) and Generalized Euler Sequences Objective Functions Implementation and results Future Work
Related Work 12 ◮ (HU et al, 2014), (YAO et al, 2015), (KARASIK, FATTAL, WERMAN, 2019) Some of these solutions partition the surface into smaller parts such that each subpart has little or no overhangs.
Related Work 13 ◮ (ZHANG et al, 2015), (WANG, ZANNI, KOBBELT, 2016) These articles propose altering the surface to improve the final quality of the printed piece.
Related Work 14 ◮ (VANEK, GALICIA, BENES, 2014) The authors propose to change the geometry of the supports to minimize the waste of material.
Alexander’s method 15 Before creating their support structures, (VANEK; GALICIA; BENNES, 2014) states that the simplest way to reduce the need for supports is finding an orientation for the surfaces using (ALEXANDER; ALLEN; DUTTA, 1998) method. Figure: Pipeline of Vanek-Galicia-Bennes method. Figure taken from (VANEK; GALICIA; BENNES, 2014).
Alexander’s method 16 This method considers three types of faces on the surface: unsupported faces, faces that need support and faces touched from above by the support structure . Unsupported faces Support Surface touched from above Supported faces
Surface Representation 17 A solid can be represented by its vertex matrix V ∈ R n × 3 , V = { v 1 , v 2 , . . . , v n } , n = |V| , in which each vertex v i ∈ R 1 × 3 has the x , y , z coordinates of the vertex i = 1 , . . . , n and can represent its surface mesh storing the set of vertex indices in a matrix F ∈ R m × 3 , m = |F| . vi F l v k vj The matrix F has in each row the indices of rows of V that, together, form a triangle mesh.
Alexander’s method 18 If we look at the triangle formed by the thickness of layer z t , the height h and the angle θ between them, we have that h fac = A fac ( z t | cos( θ ) | ) = A fac ( z t |� ˆ n, e 3 �| ) , (1) Model surface z t h θ Layers of material n, � ˆ n � = 1 is the normal vector to the surface. where ˆ
Alexander’s method 19 ◮ For faces that need support to be printed, they assume some inaccuracy to them and, then, add some additional value R ∈ R + , obtaining h fac s = A fac ( z t |� ˆ n, e 3 �| + R ) (2)
Alexander’s method 20 Taking the results of equations 1, 2 and summing over all faces of surface, we obtain the objective function of Alexander’s method: N − N sup N sup N rays � � � � n i , ˆ n i , ˆ � � � min z t |� ˆ b �| + z t |� ˆ b �| + R + A i A i RA proj , N i =1 i =1 i =1 (3) where N is the normal field of surface, N is the total number of polygonal faces, N sup is the number of faces that need support underneath them and N rays is the number of faces that are touched by support from above.
Alexander method 21 Some results using Alexander’s method: Usual Orientation Alexander's Orientation Usual Orientation Alexander's Orientation
3D printing and Overhangs Related Work The group SO (3) and Generalized Euler Sequences Objective Functions Implementation and results Future Work
The group SO (3) 23 Definition The set describing all rotations in 3D is given by SO (3) = { R ∈ R 3 × 3 | R T R = I and detR = 1 }
The group SO (3) 23 Definition The set describing all rotations in 3D is given by SO (3) = { R ∈ R 3 × 3 | R T R = I and detR = 1 } Theorem (Euler’s Rotational Theorem) Given any R ∈ SO (3) , it is possible to find u ∈ R 3 , � u � = 1 and θ ∈ ( − π, π ] such that R = R u ( θ ) .
The group SO (3) 23 Definition The set describing all rotations in 3D is given by SO (3) = { R ∈ R 3 × 3 | R T R = I and detR = 1 } Theorem (Euler’s Rotational Theorem) Given any R ∈ SO (3) , it is possible to find u ∈ R 3 , � u � = 1 and θ ∈ ( − π, π ] such that R = R u ( θ ) .
The group SO (3) 24 Theorem (Generalized Euler Sequences) i ) T , i u y Consider three axis u 1 , u 2 , u 3 ∈ R 3 , � u i � = 1 , u i = ( u x i u z i = 1 , 2 , 3 , and let a unique angle α ∈ ( − π, π ] such that u T 1 u 2 = u T 2 u 3 = 0 , sin( α ) = u T 3 U 1 u 2 and cos( α ) = u T 3 u 1 . So, for any R ∈ SO (3) , exists ( θ 1 , θ 2 , θ 3 ) ∈ ( − π, π ] × [ − α, π − α ] × ( − π, π ] such that R = R u 3 ( θ 3 ) R u 2 ( θ 2 ) R u 1 ( θ 1 ) . z R y x
Observe that: 1. If we choose u 1 = (1 0 0) T , u 2 = (0 1 0) T and u 3 = (0 0 1) T , we have that: cos( α ) = u T 3 u 1 = 0 and sin( α ) = u T 3 U 1 u 2 = 1 . Therefore, α = π − π 2 , π � � 2 and ( θ 1 , θ 2 , θ 3 ) ∈ ( − π, π ] × × ( − π, π ] . 2 2. The z -axis rotation will not change the need for support.
Normals 26 v j n ijk v i v k Given a vertex matrix V ∈ R n × 3 , n = |V| and a triangle f = ( i, j, k ) of its triangle mesh F ∈ R m × 3 , the normal vector to the triangle f is ( v j − v i ) ∧ ( v k − v i ) n ( f ) = � ( v j − v i ) ∧ ( v k − v i ) � , where ∧ : R 3 − → R 3 is the Euclidean cross product.
3D printing and Overhangs Related Work The group SO (3) and Generalized Euler Sequences Objective Functions Implementation and results Future Work
Normal field 28 We analyze overhanging parts of our printing solid using the normal field of its surface. The faces that have normals belonging to the white region of the sphere on the figure can be printed without supports and the ones that have normals in the green region need supports to be printed.
Objective Functions 29 Given a triangle mesh matrix F the function α : F − → R , n ( f ) T e 3 � � α ( f ) = arccos , where e 3 = (0 , 0 , 1) T , defines the angle of the normal of each triangle with the vertical direction. e 3 n(f) α (f)
Objective Functions 30 We can measure the residual error of each normal angle and the threshold angle and sum over all triangles of mesh. The normal field that minimizes this sum is the solution of � α ( f ) − π �� � � � min max � − θ, 0 , (4) � � 2 N f ∈F for a printer limit angle θ .
Tests result 31 Initial results, obtained on MATLAB, shows that for every tested surface we find an x-axis and y-axis angle global rotation that find a minimum value to equation (4). Surface(.obj) x-axis y-axis Initial Minim 136 o − 2 o camel b 235.29 150.19 − 60 o − 30 o horse quad 565.53 215.28 124 o 46 o bunny 812.80 346.33 -92 o 30 o decimated-knight 120.44 43.18 64 o − 10 o decimated-max 1051.7 431.93 112 o 42 o cow 883.05 266.99 − 100 o 54 o arm 2141.8 409.98 − 128 o 50 o heart 1574 831 . 86 − 32 o 14 o skull 295.14 268.10
Tests result 32 With some 3D printer software, we can measure the lenght and weight of material in each impression on a 3D printer. Some results is shown on table. Surface (.obj) Initial arcCOS Human skull 5.38m / 16g 4.53m / 14g Horse 6.09m / 18g 5.41m / 16g Max 10.05m / 30g 7.47m / 22g Human heart 13.14m / 39g 11.39m / 34g Knight 5.79m / 17g 5.62m / 16g
Recommend
More recommend