5.3 Layer manufacturing of 3D physical fractal objects
Transcription
5.3 Layer manufacturing of 3D physical fractal objects
ABSTRACT Fractal object is a promising area for aesthetic product and decoration design of natural objects (e.g. landscape, surf, snowflake, coral, etc.), physiology and antenna system. Contemporary computer-aided design (CAD) and computer-aided manufacturing (CAM) systems can use non-uniform rational B-spline (NURBS) surface modeling and solid modeling methods for creating Euclidean analytical objects and free-form objects. But neither can model fractal objects efficiently. Some researchers have proposed a new method to manufacture fractal objects that are mainly described by iterated function system (IFS). However, they were restricted to IFS connected and single contour fractal objects. Therefore, investigation of fractal objects in this area begins to emerge. The thesis investigates a novel method to extend layer manufacturing (LM) technologies to making three dimension (3D) physical fractal objects. First, the fractal geometry is tentatively classified and the manufacturability of fractal geometry is then evaluated. Afterwards, the voxel-based conversion mechanism is proposed to model complex fractal objects, this method can produce n-dimensional colored fractal objects. Then, a data structure called colored generative quadtree encoding (CGQE) is proposed. This data structure is devised to reduce the amount of space necessary to store the data in a computational efficient way. Besides, the CGQE can easily dispose a disconnected dust of fractal object in order to obtain a fractal pattern represented by a simple polygonal chain. These conversion methods can provide a communication bridge between fractal geometry and CAD/CAM systems to LM the colored fractal objects. Finally, a grid-based navigation algorithm and a multi-resolution toolpath generation of fractal objects are proposed. The proposed mechanism and enhanced data structure can be validated via 3D colored printer (Z-Corp machine), which uses layer manufacturing (LM) process to fabricate physical prototypes out of plaster based or starch based material. The proposed methods for toolpath generation are validated by the physical realization of a typical IFS multiply connected fractal objects, produced on a Stratasys Fused Deposition Modeling (FDM) machine. It is a typical LM process that can fabricate prototypes out of amorphous thermoplastic. The method can also be extended for generating toolpaths in the natural fractal domains. i ACKNOWLEDGEMENTS The work described in this report was substantially supported by a grant from the Research Grants Council of the Hong Kong Special Administrative Region (Project No.: B-Q601). I would like to express my sincere gratitude and appreciation to my supervisor, Dr. K.M Yu for his constant guidance, encouragement and support through my postgraduate study at the Departmental of Industrial & Systems Engineering, the Hong Kong Polytechnic University. Discussions with him throughout the past years on various research issues were stimulating and fruitful. My thanks also go to my friends and family for their encouragement and help. Finally, I would like to thank the administration and technician staff in the Department of Industrial and Systems Engineering, for their provision of administration and technical supports. ii TABLE OF CONTENTS ABSTRACT ACKNOWLEDGEMENTS LIST OF FIGURES LIST OF TABLE NOTATIONS i ii vii xii xiii CHAPTER 1 INTRODUCTION 1-1 1.1 Background of study 1.4 Problems in fractal manufacture 1.5 Aims and scope of the research 1.6 Organization of the thesis 1-1 1-1 1-2 1-3 1-4 1-6 1-6 1-7 1-8 1-9 1-10 CHAPTER 2 LITERATURE SURVEY 2-1 2.1 Existing academic approaches 2-2 2-2 2-3 2-6 2-6 2-9 2-13 2-16 2-19 2-19 2-20 2-22 2-24 2-25 2-26 1.1.1 Fractals in aesthetic product development 1.1.2 Fractals in physiology 1.1.3 Fractals in antenna system design 1.2 Contemporary CAD systems 1.3 Contemporary CAM systems 1.3.1 Traditional CAM systems 1.3.2 Layer manufacturing 2.1.1 Mathematical models of fractal 2.1.1.1 Fractal properties 2.1.1.2 Definition of fractal dimension 2.1.2 Construction modelling of fractals 2.1.2.1 Iterated function system (IFS) fractals 2.1.2.2 Rendering of complex fractals 2.1.2.3 Rendering of quaternion complex fractals 2.1.3 Computer models of fractal 2.1.3.1 Theoretical development of LM of fractal objects 2.1.3.2 Computer fractal models 2.1.4 Toolpath generation with fractal curves 2.1.5 Physical fractal prototypes 2.1.5.1 2D physical fractal pattern generation 2.1.5.2 3D physical fractal prototypes iii 2.2 Existing commercial solutions 2-28 2-28 2-30 2-32 2.2.1 Fractal design packages 2.2.2 Programming languages 2.3 Summary of limitations CHAPTER 3 MANUFACTURIBILITY OF FRACTAL GEOMETRY 3.1 Introduction 3.2 Manufacturability evaluations 3.2.1 Visibility 3.2.2 Connectivity 3.2.3 Initiator of fractals 3.3 Taxonomy of fractal geometry 3.3.1 Taxonomy of IFS fractals 3.3.2 Taxonomy of complex fractals 3.4 Manufacturability of fractal geometry 3.4.1 Manufacturability of fractal geometry using traditional manufacturing processes 3.4.2 Manufacturability of fractal geometry using layer manufacturing processes 3.4.3 Limitations of LM technology 3.5 Summary CHAPTER 4 MODELLING FOR FRACTAL OBJECTS FABRICATION 4.1 Voxel-based generative algorithm 4.1.1 Computer model of 3D Mandelbrot set 4.1.2 2D pixelized fractal model 4.1.3 2.5D Mandelbrot set 4.1.4 3D Voxelized computer model 4.1.5 NURBS-based voxel models 4.1.5.1 Workflow for making a NURBS-based voxel models 4.1.5.2 Cell decomposition 4.1.5.3 Displacement mapping 4.2 Hybrid algorithm to LM 3D physical fractal object 4.2.1 Boundary shell extraction 4.2.2 Boundary evaluation 4.2.3 Triangulation 4.3 Visualization of quaternion complex fractals iv 3-1 3-1 3-3 3-4 3-4 3-5 3-6 3-6 3-11 3-16 3-16 3-19 3-20 3-24 4-1 4-1 4-2 4-4 4-8 4-9 4-13 4-13 4-14 4-15 4-18 4-20 4-21 4-24 4-25 CHAPTER 5 ENHANCED DATA STRUCTURE OF MODELLING FOR FRACTAL OBJECTS FABRICATION 5.1 Methodology 5.2 Generative colored quadtree encoding (GCQE) 5.3 Layer manufacturing of 3D physical fractal objects 5.3.1 Boundary quadtree-based shell extraction 5.3.2 Quadtree-based boundary evaluation 5.3.3 Non-manifold multi-tessellation 5.4 Dust elimination 5.4.1 Dust elimination by quadtree encoding 5.4.2 Dust elimination by “mask” filtering CHAPTER 6 TOOLPATH GENERATION FOR LM OF FRACTALS 6.1 Methodology 6.2 Computer model of multiply IFS fractals 6.2.1 Mathematical model of multiply IFS fractals 6.2.2 Slab model 6.3 Resolution adjustment 6.4 Toolpath generation of multiply IFS fractals 6.4.1 Tool size consideration 6.4.2 Contouring toolpath of multiply IFS fractals 6.4.3 Area filling of multiply IFS fractal 5-1 5-1 5-3 5-6 5-11 5-11 5-13 5-14 5-14 5-15 6-1 6-1 6-4 6-4 6-8 6-10 6-15 6-16 6-18 6-20 CHAPTER 7 CASE STUDIES 7-1 7.1 Euclidean transformed fractal objects 7-1 7-4 7-5 7-6 7-8 7-11 7-12 7-17 7.1.1 Fractal with host geometry 7.1.2 Fractals with translational sweep representation 7.2 N-D colored computational fractal models 7.2.1 Voxel-based generative algorithm 7.2.2 Generative colored quadtree encoding 7.2.3 Layer manufacturing of colored and monochrome fractal objects 7.4 Toolpath generation by grid-based navigation algorithm v CHAPTER 8 DISCUSSION AND FUTURE WORKS 8-1 8.1 Theory 8-1 8-1 8-4 8-4 8-5 8-8 8-8 8-8 8.1.1 Limitations of modelling for fractal object fabrication 8.1.2 Laminations of GCQE 8.1.2.1 Checker board fractal pattern 8.1.2.2 Computational fractal modeling 8.2 Implementation 8.2.1 Software 8.2.2 Hardware equipments CHAPTER 9 CONCLUSION 9-1 REFERENCES R-1 vi LIST OF FIGURES Figure 1-1. Figure 1-2. Refractal’s Mandelbrot jewel [Refractal Design Inc.] Encrusted Ring [XenoDream] 1-1 1-1 Figure 1-3. Figure 1-4. Natural objects Kidneys 1-2 1-2 Figure 1-5. Figure 1-6. Lungs Typical fractal geometry designs 1-2 1-3 Figure 1-7. Figure 1-8. Euclidean geometry B-rep solid modeling 1-4 1-5 Figure 1-9. Figure 1-10. Figure 1-11. CSG solid modeling Layered manufacturing workflow of Euclidean objects Layer manufacturing workflow of fractal objects 1-5 1-7 1-9 Figure 2-1. Figure 2-2. Figure 2-3. Figure 2-4. Figure 2-5. Figure 2-6. 2-4 2-4 2-5 2-5 2-6 2-15 Figure 2-7. Figure 2-8. Figure 2-9. Figure 2-10. Recursive process of Koch curve Magnified infinitely Self-similarity Taxonomy of similarity Non-integer dimensions (the Cantor set) A Mandelbrot set with Julia sets in a constellation diagram [Falconer 2003] Rendered Quaternion Julia fractals [Quaternion Julia fractals] Cross-section of quaternion Julia set [Peitgen 1991] RGB cube Sierpinski carpet [Dionnet 1994] Figure 2-11. Figure 2-12. Figure 2-13. Figure 2-14. Koch Curve Quadratic Koch Island Twist-extruded CAD model [Soo 2002] Lofted fractal solid CAD model [Soo 2002] 2-20 2-20 2-21 2-21 Figure 2-15. Sierpinski tetrahedra 2-22 Figure 2-16. Figure 2-17. Figure 2-18. Dragon curve Fractal scanning path [Yang, Zhang & Liu 2002] Generating fractals from Voronoi diagrams [Shirriff 1993] 2-22 2-23 2-23 Figure 2-19. Voronoi diagram of the third generation Koch island fractal with the offset curves set at a distance of 0.05 [Voronoi 2-24 Figure 2-20. diagram] Sierpinski carpet 2-17 2-18 2-19 2-20 2-25 vii Figure 2-21. Figure 2-22. Fractal antenna for a cellular phone [Fractal antenna] Koch curve 2-25 2-25 Figure 2-23. Figure 2-24. Fractal element [Fractal Antennas System] Quaternion (3D Julia set) [Crawford 1993] 2-25 2-27 Figure 2-25. Figure 2-26. Fractal tree rapid prototype [Kerekes 1992] Sphereflake model and prototype [Soo 2002] 2-27 2-28 Figure 2-27. Quaternion Julia fractals generated by PovRay software [Povray.org] 2-29 Figure 2-28. Figure 2-29. Figure 2-30. Mandelbrot set generated by Maple software [Maple] Fractal model generated by Hyperfun Z406 system software 2-29 2-30 2-30 Figure 2-31. Figure 2-32. Sierpinski Tetrahedra in VRML explorer 2-31 2-31 Figure 2-33. Figure 3-1. Figure 3-2. Figure 3-3. Figure 3-4. Figure 3-5 Figure 3-6 Figure 3-7. Figure 3-8. Figure 3-9. Figure 3-10. Figure 3-11. Window in C++ program: c= 0.39054 0.58679 Manufacturability evaluation circle Connectivity Taxonomy of IFS fractals IFS fractal objects Taxonomy of complex fractal objects Complex fractal objects Classification of manufacturing processes Point visibility Line visibility Surface visibility Plane visibility 2-31 3-3 3-5 3-7 3-10 3-12 3-15 3-18 3-18 3-18 3-18 3-20 Figure 3-12. A colored physical model 3-20 Figure 3-13. Figure 3-14. Figure 3-15. Monochrome and colored prototypes The Fused Deposition Modeling (FDM) process Dragon curve 3-21 3-22 3-23 Figure 3-16. Figure 3-17. Material overlap of the self-intersecting curve Multiply connected IFS fractals 3-23 3-24 Figure 3-18. Figure 3-19. Support Internal fractal features 3-24 3-24 Figure 4-1. Workflow to obtain an approximated 3D computer fractal models Generation of QM-Set 4-2 Figure 4-2. Colored Julia set: c= 0.357 0.181i generated using Visual Basic viii 4-3 Figure 4-3. Figure 4-4. Rasterization scanning Pixels Array Variables 4-4 4-5 Figure 4-5. Figure 4-6. Figure 4-7. Window-to-viewport mapping Half 2.5D Mandelbrot set (single voxel slab), Voxel rotation 4-8 4-9 4-1 Figure 4-8. Figure 4-9. 45o rotation of single voxel slab Snapshot of the 3D voxel approximation model construction 4-11 4-12 Figure 4-10. process Workflow for constructing the host geometry 4-13 Figure 4-11. Figure 4-12. Euclidean geometry 3D grids 4-14 4-15 Figure 4-13. Figure 4-14. Figure 4-15. Figure 4-16. Figure 4-17. Figure 4-18. Figure 4-19. Figure 4-20. Figure 4-21. Figure 4-22. Figure 5-1. Figure 5-2. Figure 5-3. Displacement mapping Six adjacent voxels N6 (V) Boundary shell extraction Single voxel V(x1, y1, z1) with its eight corners Example of boundary evaluation Eight corner coordinates in VRML code Schematic diagram of boundary evaluation Triangulation of voxel shell Index list of the triangular mesh in VRML code Monochrome QM-set Workflow of the GCQE process Workflow to layer manufacture 3D physical fractal objects GCQE 4-16 4-20 4-21 4-22 4-22 4-23 4-23 4-24 4-25 4-26 5-2 5-2 5-4 Figure 5-4. Figure 5-5. Quadtree Boolean Operations Topological data structure for the hybrid algorithm 5-5 5-7 Figure 5-6. Figure 5-7. A stack of slabs (S) Starting point of level k of quadtree and it’s size of quadrants respectively 5-11 5-12 Figure 5-8. Four corners of quadtree-based shell for six faces with 5-12 Figure 5-9. Figure 5-10. multi-resolution The color index of the triangular mesh Mandelbrot set: quadtree encoding starts from level six and stops at level one Figure 5-11. Mandelbrot set: quadtree encoding starts from level six and 5-15 Figure 5-12. stops at level two Higher resolution of Julia set 5-15 ix 5-13 5-14 Figure 5-13. 3 u3 filter mask 5-16 Figure 5-14. Mask filtering of interior and exterior of the 1u1 pixel 5-17 Figure 5-15. Figure 5-16. Noisy areas get smoothed out Different shapes of Fatou dust 5-19 5-22 Figure 5-17. Figure 6-1. Julia set without dust Contouring and area filling 5-22 6-2 Figure 6-2. Figure 6-3. Figure 6-4. The workflow of approximating 2D fractal objects The workflow of LM fractal objects Menger sponge 6-3 6-3 6-5 Figure 6-5. Figure 6-6. Figure 6-7. 2D computer models of Menger sponge 2nd level Sierpinski carpet obtaining from F1 to F2 Approximation: rounding up or down 6-8 6-9 6-11 Figure 6-8. 6-12 Figure 6-13. Relationships between rounding up/down of the pre-fractal in x-dimension Relationships between rounding up/down of pre-fractal in y-dimension Toolsize consideration with negative tolerance Snapshots of clustering and binary dilation Notation used for defining the relative locations of pixels with respect to a pixel P Grid definition Figure 6-14. Figure 6-15. Morphological outlining Slab contour is obtained by a number of closed connected Figure 6-9. Figure 6-10. Figure 6-11. Figure 6-12. Figure 6-16. Figure 6-17. linear segments Rays in one slab 6-13 6-16 6-17 6-18 6-19 6-19 6-20 6-22 6-22 ¦ RR k k Figure 6-18. Multi-view orthographic projection representation of area filling (F2) 6-22 Figure 7-1. Figure 7-2. Figure 7-3. Examples of fractal image Host geometry on NURBS surface Host geometry on Euclidean object’s surface 7-4 7-4 7-5 Figure 7-4. Julia set with dome feature 7-6 Figure 7-5. Figure 7-6. Figure 7-7. Volcano of Mandelbrot set QJ-sets Colored QJ-set 7-6 7-9 7-10 x Figure 7-8. Figure 7-9. Menger sponge Colored QJ-set, q= 0.368, 50.1, 0.03, 0.01 7-10 7-11 Figure 7-10. Figure 7-11. Figure 7-12. Quadtree representation of half 4D Julia set, q= -1, 0.2, 0, 0 ZTM406 3D color printer [Z-Corp.] 3D printing process 7-12 7-13 7-13 Figure 7-13. Figure 7-14. Slab model of QM-set Slab model of QJ-set 7-14 7-15 Figure 7-15. Figure 7-16. Colored half QJ-set, q= -0.08, 0, -0.8, -0.3 Fractal object in STL format 7-15 7-16 Figure 7-17. Figure 7-18. QJ-set in 3D Studio MAX Stratasys (fused deposition modeling) FDM-1600 [PolyU 7-17 7-18 Figure 7-19. Figure 7-20. Facility] Toolpath and physical FDM prototype of Menger sponge Toolpath of QJ-set 7-19 7-20 Figure 7-21. Figure 8-1. Figure 8-2. Figure 8-3. Figure 8-4. Figure 8-5. Figure 8-6. Figure 8-7. Example of SML format Natural objects Human body Fractal blood vessels A checker board Quadtree-based boundary shell of the quarter QM-set with 118,416 facets and 6.2 MB storage space Voxel-based boundary shell of the quarter of QM-set with 143,246 facets and 9.31MB storage space Octree encoding xi 7-20 7-22 8-1 8-2 8-3 8-5 8-6 8-7 LIST OF TABLE Table 3-1. Capabilities of layer manufacturing techniques to types of fractal xii 3-26 NOTATIONS DH Hausdorff dimension LG The measured length (X, d) A metric space with metric d H , h(x) Hausdorff space, Hausdorff metric T Transformation W A set of contractive transform M Mandelbrot set Jc Julia set with different parameter c Ec Escape set for the parameter c Pc Prisoner set for parameter c * , * , * Regularized union, intersection and difference of sets , A proper subset, not a proper subset , Belongs to, not belongs to A void set Vi A volume S Plane n Normal D Distance V Surface w (x) Single voxel boundary shell Gi Single voxel or quadrant-based shell 'x, 'y, 'z x, y, z- LM machine resolution xiii Two-, three- and n-dimensional Euclidean space respectively , , Real number in two-, three- and n-dimensional Euclidean space respectively Quaternion space Complex plane The integers M M ' M '' 2D, 2.5D and 3D rotated Mandelbrot set ാ, Erosion and dilation operators respectively E(Fn) Contouring toolpath of fractal pattern w1(Fn) Area filling toolpath of fractal pattern t,d,# Large than or equal to, less then or equal to, approximately equal to , There exists, for all xiv CHAPTER 1 INTRODUCTION 1.1Background of study 1.1.1 Fractals in aesthetic product development Recently, fractals, which can describe irregularly shaped objects or spatially nonuniform phenomena that cannot be described by Euclidean geometry, have become an important area for aesthetic product development (Figure 1-1) and decoration designs (Figure 1-2). Such designs take the aesthetically appealing forms of real-world objects (Figure 1-3), such as rugged terrains, clouds, landscapes, foliage, mountains, turbulence, and coastlines that do not correspond to simple geometric shapes. Figure 1-1. Refractal’s Mandelbrot jewel [Refractal Design Figure 1-2. Encrusted Ring [XenoDream] Inc.] 1-1 Figure 1-3. Natural objects 1.1.2 Fractals in Physiology Fractal geometry are applied in ecology [Sugihara 1990] and used for representing some complicated structures, like the circulatory, respiratory, and nervous systems of kidneys (Figure 1-4), lungs (Figure 1-5) [Fractals in Physiology] and others. Figure 1-4. Kidney Figure 1-5. Lung 1-2 1.1.3 Fractals in antenna system design Fractal geometry has been successfully introduced the disruptive antenna system design into many telecommunication and wireless markets serving commercial, industrial, military, and security applications. Some of them have been carefully analyzed under different scopes in the field of fractal electrodynamics. For instance, the Koch, Minkowski, Hilbert, and Peano curves, the Sierpinski gasket, the Sierpinski carpet, the Mandelbrot set and the Koch Island are typical examples to be found in the literature on antennas. Figure 1-6 shows typical designs of fractal geometry. Figure 1-6. Typical fractal geometry designs 1-3 1.2 Contemporary CAD systems Contemporary computer-aided design (CAD) and computer-aided manufacturing (CAM) theories and systems are well developed only for Euclidean analytical objects and free-form objects (e.g. car bodies). Euclidean geometry (Figure 1-7) is comprised of lines, planes, rectangular volumes, etc. These elements can be classified as belonging to an integer dimension, either one, two, or three. This concept of dimension can be described both intuitively and mathematically [Mortenson 1995]. (a) A line (b) A plane (c) The volume Figure 1-7. Euclidean geometry Contemporary CAD systems, in particular the commercial ones, are either based on solid or surface modeling systems. Two common choices are usually used to represent the 3D object, called a boundary representation or B-rep (Figure1-8) for short, and a volume-based representation, which is called constructive solid 1-4 geometry (CSG) for constructive solid geometry (Figure1-9). Solid modeling, usually encountered as CSG, allows combining simple shapes to create complex solid models. CSG has its mathematical foundations in topology, algebraic geometry, and Boolean algebra. However, depending on the particular CAD modeling system being used, the modeling capability is limited to the availability of suitable solid primitives. \Figure 1-8. B-rep solid modeling Figure 1-9. CSG solid modeling Freeform curve representations, being used in contemporary CAD systems, are Bezier, B-spline or the more general Non-Uniform Rational B-Spline (NURBS) curves. They present usually smoother shapes and are indicated for modeling organic shapes. These representations can represent Euclidean shapes which normally have a few characteristic sizes or length scales (e.g. the radius of a circle or 1-5 the length of a cube) to provide a good description of man-made objects. Euclidean geometries are defined by algebraic formula, for example, x2+ y2 = r2 defines a sphere. However, all these representations cannot model the fractal objects. The reason is that fractals are a modern invention, with no specific size or scale and is described by an algorithm for the representation of naturally occurring geometries. Fractals are normally the result of an iterative or recursive construction or algorithm. 1.3 Contemporary CAM systems 1.3.1 Traditional CAM systems At the present time, processes such as injection molding, die casting, and stamping account for a high percentage of the parts that are manufactured worldwide. All three of these processes are well suited for mass production. However, these processes are difficult to use to make aesthetically appealing physical objects with complex shapes. 1-6 1.3.2 Layer manufacturing The layer manufacturing (LM) technology, also known as solid freeform fabrication (SFF) or rapid prototyping (RP) is a new kind of manufacturing process. LM is a potential candidate for physically making aesthetically appealing object. CAD technology serves as the input of Euclidean geometry for LM. LM represents a class of recently developed additive and/or subtractive manufacturing processes, and three dimensional (3D) physical Euclidean objects are constructed layer by layer using materials such as plastic and wax. The LM workflow of Euclidean objects is shown in Figure 1-10. 3D Euclidean object Solid or surface modelling Solid or surface model Facetting STL file Direct slicing Slicing 2D slab model Toolpath generation Toolpath Layer manufacturing 3D physical Euclidean object Figure 1-10. Layered manufacturing workflow of Euclidean objects 1-7 In the first stage, a computer model of a Euclidean object is generated with the help of CAD systems. The facetting step then approximates the original model with triangular facets, usually in the form of STL format. The purpose of the slicing stage is to prepare the 2D-section information for LM toolpath generation. The slab model can be obtained by slicing the STL file, or directly from the computer model. Finally, the geometric information in the toolpath is converted into LM machine codes to generate a physical prototype. LM technology clearly provides excellent capability to fabricate three-dimensional physical objects. However, LM technology, similar to contemporary CAD/CAM systems, can process only Euclidean geometry. 1.4 Problems in fractal manufacture It has been noted that the use of LM in fine arts is very limited. A major difficulty in utilizing fractal geometry is the modeling of fractal objects. The conventional CAD/CAM systems have no capability for modeling fractal objects. The reason is that they are based either on solid modeling method or on surface modeling method, which can model man-made objects belonging to the Euclidean geometry, but does not address the fractal geometry. Thus, it is valuable to propose a novel CAD/CAM process to make fractal objects. 1-8 1.5 Aims and scope of this research The main objectives of this research are modelling and layer manufacturing of 3D physical fractal objects. In this research, the scope will be limited to fractal geometry as the starting point. The input of 3D fractal mathematical models is well defined in previous research but little of it focuses on the making of 3D physical fractal objects. Therefore, the LM of 3D physical fractal objects will be addressed, and the LM workflow of fractal object is shown in Figure 1-11. Figure 1-11. Layer manufacturing workflow of fractal objects 1-9 1.6 Organization of the thesis This thesis is organized as follows: Chapter 1 is an introduction which covers the background of the study, the applications of fractal geometry, problems in fractal manufacture, and the aims and scope of the research. Chapter 2 provides a comprehensive literature review which is relevant to the research work in this report, including more detailed background information of the study as well as previous works on layer manufacturing of fractal objects. Statements of the problem to be tackled are also presented. Chapter 3 discusses the manufacturability of fractal geometry in detail. Chapter 4 proposes a method to construct n-dimensional computer fractal models and describes the hybrid conversion algorithm for the LM of fractal objects Chapter 5 explains the enhanced data structure for the LM of fractal objects Chapter 6 elucidates the toolpath generation of fractal objects Chapter 7 demonstrates the implementation of the proposed method with a specific example by going through the entire workflow of LM of fractal objects. Chapter 8 discusses the main results encountered in the research, the drawbacks and limitations of the theory and implementation and suggests possible ways for 1-10 tackling the deficiencies. Chapter 9 summarizes the research contribution and provides directions for future works. 1-11 CHAPTER 2 LITERATURE SURVEY The impetus for this research is the need to manufacture organic designs derived from forms occurring in nature. B. Mandelbrot coined the word “fractal” in 1975 to realistically describe natural objects in computer graphics with irregular or fragmented and self-similar features. However, no commercial CAD/CAM systems allow the efficient manipulation of fractal geometry. In this chapter, the major achievements of current fractal formation research are summarized to identify the existing solutions by academic and commercial approaches. First, the existing solutions for academic approaches including mathematical models of fractals, construction modelling of fractals, computer model of fractals, toolpath generation with fractal curves and physical fractal prototypes are reviewed in Section 2.1. Next, the existing solutions for commercial approaches including CAD/CAM systems, fractal design packages, and programming languages are reviewed in Section 2.2. The problems of the existing solutions are summarized in Section 2.3. 2-1 2.1 Existing academic approaches In this research, fractal geometry realization will be investigated to supplement aesthetic product design and manufacturing. The following sections will thus review the state-of-the-art technology in fractal geometry computer representation and fabrication. 2.1.1 Mathematical models of fractal Mandelbrot [Mandelbrot 1975] introduced the term 'fractal' (from the Latin fractus, meaning 'broken') to characterize spatial or temporal phenomena that are continuous but not differentiable. Fractal is defined as a rough or fragmented geometric shape that can be subdivided in parts, each of which is (at least approximately) a reducedsize copy of the whole. Mathematically, a fractal is defined as a set of points whose fractal dimension exceeds its topological dimension [Mandelbrot 1983]. Fractal objects and processes are therefore said to display 'self-invariant' (selfsimilar or self-affine) properties [Hastings & Sugihara 1993]. Self-similar objects are isotropic upon rescaling, whereas the rescaling of self-affine objects is directiondependent (anisotropic). Fractal geometry proves to be a unifying theme in ecology, since it permits the 2-2 generalization of the fundamental concepts of dimension and length measurement. Most natural objects and structures are decidedly non-Euclidean, displaying discontinuities, jaggedness, and fragmentation. Classical measurement and scaling methods such as Euclidean geometry, calculus and the Fourier transform, assume continuity and smoothness. It is important to recognize that while Euclidean geometry is not realized in nature, neither is strict mathematical fractal geometry. However, natural objects can be manufactured using fractal geometry [Falconer 1996 and Falconer 2003] which is far closer to nature than is Euclidean geometry. 2.1.1.1 Fractal properties Fractal properties include: (1) the construction of a fractal is based on an iterative (or recursive) process (Figure 2-1); (2) a fractal when magnified is infinitely complex (Figure 2-2); (3) upon magnification of a fractal, subsets of it can be found that resemble like the whole figure. This feature is called self-similarity (Figure 2-3) – the taxonomy of similarity is shown in Figure 2-4. (4) The dimension of a fractal is typically a non-integer or a fraction, meaning its dimension is not a whole number and its formation is by iteration, and hence has non-integer complexity (Figure 2-5). 2-3 Figure 2-1. Recursive process of Koch curve Figure 2-2. Fractal magnified infinitely 2-4 Figure 2-3. Self-similarity (a) natural object, (b) the logistic equation Figure 2-4. Taxonomy of similarity 2-5 Figure 2-5. Non-integer dimensions (the Cantor set) 2.1.1.2 Definition of fractal dimension Fractal theory offers methods for describing the inherent irregularity of natural objects. In fractal analysis, the Euclidean concept of ‘length’ is viewed as a process. This process is characterized by a constant parameter, known as the fractal (or fractional) dimension. The fractal dimension can be viewed as a relative measure of complexity, or as an index of the scale-dependency of a pattern. Summaries of basic concepts of fractal geometry can be found in Mandelbrot [Mandelbrot 1983, Frame 2002 and Falconer 2003], Schroeder [Schroeder 1991], Turcotte [Turcotte 1992], Hastings and Sugihara [Hastings 1993], Lam and De Cola [Lam 1993] and in many of the references cited below. A fractal is by definition a set for which the Hausdorff-Besicovitch dimension strictly exceeds the topological dimension [Mandelbrot 1983] and a fractal is a shape made of parts similar to the whole in some way. The definition of a fractal mainly 2-6 depends on the dimension relationship of Geometric Measure Theory [Federer 1969], especially on the concept of Hausdorff measure and Hausdorff dimension. The definition of Hausdorff dimension DH is completely described according to Mandelbrot [Mandelbrot 1983] as follows: Consider estimation of the length of a complex 'coastline'. For a given spatial scale G, the total length LG is estimated as a set of N straight-line segments of length G. Because small 'peninsulas' and other features not recognized at coarser scales become apparent at finer scales, the measured length LG increases as G decreases [Mandelbrot 1967]. This dependence of length on measurement scale is a fundamental feature of fractal objects. The relationship between length and measuring scale is summarized by the power law: LG= G (1 - DH) (2.1) Mathematical fractals exhibit exact self-similarity across all spatial or temporal scales, such that successive magnifications reveal an identical structure. One example is the Koch curve [Sugihara 1990], a fractal object in which a reduction in the measuring scale by one-third (Gn+1/ Gn = 1/3) increases the measured length by four-thirds (Ln+1/Ln) = 4/3. Substituting into the power law relationship: 2-7 (Ln+1/Ln) = (Gn+1/ Gn)1- DH H (2.2) (4/3) = (1/3)1- DH 4 = 3 DH DH = log 4/log 3 = 1.26 Conversely, given a self-similar object of N parts scaled by ratio r, a D dimensional self-similar object can be divided into N smaller copies of itself, each of which is scaled down by a factor r where r = 1 D DH = N , and its Hausdorff dimension is given by log( N ) 1 log( ) r (2.3) 2.1.2 Construction modelling of fractals There are many fractal construction methods available such as Lindenmayer’s, who [Lindenmayer 1968] proposes the L-system method for modelling 3D fractal objects. Barnsley and Demko [Barnsley & Demko 1984] propose the method of the iterated function system (IFS). Naylor, Laurie and Demko [Naylor, Laurie & Demko 1985] present the application of the theory of IFS to geometric modelling. The Julia set is named after Gaston Julia (1893-1978), the French mathematician who first explored complex fractal concepts, and, the Mandelbrot set is named after Benoit Mandelbrot 2-8 (1924- ), a brilliant Polish mathematician [Mandelbrot 1997]. Moreover, most fractal models feature a stochastic component, and there are numerous researchers who propose new approaches to the synthesis of natural objects, such as Szeliski and Terzopoulos [Szeliski 1989] who propose a method to generate non-smooth, irregular shapes, such as mountainous terrain. Oppenheimer [Oppenheimer 1986] presents a fractal computer model of branching objects (e.g. plants, trees, etc.). Gavin [Gavin 1986] presents a recursive subdivision method to generate a fractal mountain. Musgrave, Kolb and Mace [Musgrave 1989] present a new approach to the synthesis of fractal terrain height fields. In this research, the construction of multiply connected IFS and complex fractal objects are the main focus, and they will be briefly reviewed in the following sections. 2.1.2.1 Iterated function system (IFS) fractals Fractals are found extensively in everywhere [Barnsley 1988], it can reproduce realistic shapes, such as mountains, clouds, or plants can be generated by a set of affine transformations W in the plane {wq }W q 1: o § rq1 cos T q1 rq 2 sin T q 2 · ¸ wq (x) = Aqx + tq = ¨¨ ¸ sin cos T T r r q 1 q 1 q 2 q 2 ¹ © which can be written as: § x · § t q1 · ¸ ¨¨ ¸¸ ¨¨ ¸ t y q 2 © ¹ © ¹ (2.4) where x and y are the coordinates of point p. If rq1=rq2=rq with 0< rq <1, and 2-9 șq1=șq2=șq, the IFS transformation is a contractive similarity (angles are preserved) where rq is the scale factor and șq is the rotation angle. The column matrix tq is just a translation on the plane. Creating the complete image IFS representation for an arbitrary image, two properties need to be defined, that of contractive mapping which specifies that a final image is always achievable and the collage theorem which shows how affine transforms can be combined. These two points will be briefly reviewed. The contractive mapping principle ensures that there exists a unique fixed point known as an attractor. An affine transformation W is contractive on two points, x1, x2, if distance, d (x), is of the form, d(W(x), W (y)) < sd(x, y) (2.5) for some s < 1. The Contractive Mapping Fixed Point Theorem states that ‘if X is a complete metric space, then W has a unique fixed point g’. This can be proved using iteration. Given x X create the sequence of points, i W (x) = x, W (x) = W (x), … , W (x) = W (... W ( x) ...) 0 1 i (2.6) Now given the distance relation d(W i+1(x), W i+2(x)) < sd(W i+1(x), W i+2(x)) 2-10 (2.7) so that at each step the distance to the next point in the sequence is smaller than the distance from the previous point by a factor of s<1. As geometric steps are taken and the space has no gaps, being a metric space, it must converge into a single point g, i.e. lim W i ( x) g i of (2.8) The fixed point is unique. Consider that there are two fixed points, x1and x2, so W(x1) = x1, W(x2) = x2. As W is contractive, then d(x1, x2) < sd(W(x1), W (x2)) = sd (x1, x2) (2.9) but as s<1 this inequality cannot hold and therefore the fixed points g = x1= x2 is unique for any initial value of x. For those fixed point g = F g is the best possible approximation of the original image. The IFS theorem states that given a set of contractive transform, W = {wi: i = 1,…, N}, defined as N W(x) = wi ( x) , x X (2.10) i 1 Then when the contractive factor is s, d(W(x), W (y)) < sd(x, y) (2.11) that has a unique fixed point, or attractor of the IFS, g, such that, g = W(g) lim W i ( x) , x X i of 2-11 (2.12) For point sets the normal distance functions have to be slightly modified and the Hausdorff function is a suitable representation. Given a complete metric space (X, d), the Hausdorff space, H where H (X) represents the space whose points are the compact subsets of X excluding the empty set. The Hausdorff metric, h defines the distance between the sets A and B H (X), by H (A, B) = max {d(A, B), (B, A)} (2.13) d (A, B) = max {d(x, B): x A } and d (x, B) = min {d(x, y): y B } (2.14) where d is a standard distance function. Euclidean distance function are commonly used, d (x, y) = ( x1 y1 ) 2 ... ( x n y n ) 2 (2.15) This is a measure that indicates in a general sense how similar two images are. To create large complex images say, T, from many transforms. Given an IFS code {wi: i = 1,…, N} with contractive factor 0d s<1, then h(T, g) d · 1 §¨ N h¨ T , wi (T ) ¸¸ 1 s © i 1 ¹ (2.16) where g is the attractor of the IFS and h(x) is the Hausdorff metric. The collage theorem tells us that in order for T and g to be close it is sufficient that T and N wi (T ) are close. i 1 2-12 There are many simple IFS fractal construction methods available such as Shimasaki, et al. [Shimasaki 1995] which presents trees and corals modelling method by using the IFS method. Zair and Tosan [Zair 1996] also use the IFS technique to model the fractal objects with free-form surfaces, the control points of which can then affect the shape of the fractal objects. Martyn Tomek [Tomek 2001] describes a method for ray tracing of fractals specified by the IFS method and John C. Hart and Thomas A. DeFanti [Hart 1991] have used the IFS enhancement method to render of 3D linear fractals. However, none of these could communicate with contemporary CAD/CAM systems. 2.1.2.2 Rendering of complex fractals Complex fractal mainly includes Julia set and Mandelbrot set. B. Mandelbrot has developed and popularized a relatively novel class of mathematical functions known as fractal. The Mandelbrot fractal is generated by iterating a quadratic polynomial in the complex plane and represented on computer graphic [Raúl 1991]. For the Mandelbrot set, the function is defined in the iterative synthetical formulation and the complex plane: M ={c|znѰ, z n2 1 + c, z0 = 0} where c is constant and n is level of iteration. 2-13 (2.17) Note the contrast between the shape complexity of the set M and the simplicity of the iteration zn= z n21 + c. From classical theorems of Fatou and Julia [Branner 1989], associated with each parameter value c, there is a Julia set Jc which is defined as the boundary of Mandelbrot set, Jc = {z|znѰ, z n2 1 + c, z0 = z} (2.18) where Jc of function fc: zoz2 is connected iff cM, M consists of all complex numbers c for which the sequence f(z), f(f(z)), f(f(f(z))), f(f(f(f(z)))), … remains bounded and does not diverge to infinity. The boundary of M is self-similar. Noted that self-similarity is a characteristic property of fractal. The amazing zoo of Julia set is built on the iteration of Jc. In reality, it is only a visualization of the escape set E for an arbitrary choice of c, because whatever remains will then be the prisoner set P, and the common boundary between E and P is the Julia set. The more precise definition is that the escape set for the parameter c is Ec = {z0: |zn|o , as n o } (2.19) In this definition the orbit z0, z1, z2, z3, … of the initial point z0 is of course given by zn = z n2 1 + c, n = 0, 1, 2, …. The prisoner set for parameter c is Pc = {z0: |z0| Ec } 2-14 (2.20) It is the complement of Ec. The Julia set for parameter c is the boundary of the escape set Ec. A point is a boundary point if arbitrarily close to it. Recursive function has been used to plot the distributions of galactic clusters and to generate the family of Julia set on a grid of pixels for viewing on a graphic screen. In complex fractal, Mandelbrot set includes the family of Julia set including connected sets (Fatou set) and Cantor sets (Fatou dust). Some special cases for Mandelbrot set are shown in Figure 2-6 [Falconer 2003 and Peitgen 1986]. Dendrite fractal Douady's rabbit fractal Siegel disk fractal San marco fractal Fatou dust Figure 2-6. A Mandelbrot set with Julia sets in a constellation diagram [Falconer 2003] 2-15 2.1.2.3 Rendering of quaternion complex fractals Quaternion Julia set QJ-set is found in the same way as complex Julia set, by iterating the function fc (z) = z2+ c for quaternions, and see if fc (z)o f . Moreover, the notion of prisoner and escape sets from the complex can be extended to the quaternion space. The set of quaternions is denoted and it was discovered by William R. Hamilton [Hamilton 1969]. A quaternion value z can be represented by the symbol z = a + bi + cj + dk as a four-tuple of independent real values (a, b, c, d) assigned to one real part and three imaginaries : i, j, k such that i2 = j2 = k2 = -1 (2.22) and ij = k; jk = i; ki = j (2.23) but ji = k; kj = i; ik = j (2.24) Alternatively, QJ-set is created as the “dynamics of eiT” which illustrates the transition in structure of the Julia set that occurs along the boundary. The formula of QJ-set defines a Julia set in the complex plane that is congruent to the Julia set of z + c by any angle T about the origin in the complex plane. 2-16 2 Let gT(z) =e the origin in iT be a function that rotates point z by T radians counter-clockwise about . A new function is fT(z)= gT o f o gT-1(z) =e –iT 2 z +e iT (2.22) c This change of the formula does more than just a rotation in the quaternion, but also a change in the topological structure of the Julia set. The QJ-set (Figure 2-7) can be visualized on a 2D plane by using the z-buffer projection [Norton 1982] and has been rendered by a boundary-tracking algorithm [Norton 1982 and Norton 1989], a ray-tracing algorithm [Hart 1989], and the inverse iteration method [Hart 1990]. Figure 2-7. Rendered Quaternion Julia fractals [Quaternion Julia fractals] 2-17 QJ-set is created by 2D Julia sets in the xy-plane and continuously creating new Julia set by incrementing z. And, the QJ-set with cut open 2D cross-section shows the corresponding Julia set in the complex plane (Figure 2-8) [Peitgen 1991]. Figure 2-8. Cross-section of quaternion Julia set [Peitgen 1991] To obtain a colored complex set, the RGB color information of each voxel will be added via the orbit of the seed z0, and the orbit is defined as f(z0), f 2(z0), …, f n(z0) ,…, where f n is the nth composition of recursion function f. The RGB color model [Foley 1996] used in color CRT monitors and color raster graphics employs a Cartesian coordinate system (Figure 2-9). 2-18 Grays are on the dotted main diagonal Figure 2-9. RGB cube 2.1.3 Computer models of fractal 2.1.3.1 Theoretical development of LM of fractal objects In recent years, some researches to manufacture fractal objects have been proposed which are mainly described by IFS. Dionnet [Dionnet 1994] claimed a method to enable the Serpienski carpet (Figure 2-10) to be manufactured. The Stereolithography apparatus (SLA), which is a LM machine, is used. However, they have not considered the efficiency of the data storage and have not physically made any multiply connected IFS fractal objects. 2-19 Figure 2-10. Sierpinski carpet [Dionnet 1994] 2.1.3.2 Computer fractal models In [Soo 2000; Soo 2002; Soo 2002 and Soo 2003], a new method (blossoming) and structure (RBT structure) is proposed which is based on the IFS fractal generation method to fabricate the simply connected, single contour IFS fractal objects such as Koch curve (Figure 2-11) and Quadratic Koch Island (Figure 2-12), etc.. Figure 2-11. Koch Curve Figure 2-12. Quadratic Koch Island 2-20 A simple IFS fractal curve boundary can sweep out simple 3D fractal computer model such as twist-extruded fractals (Figure 2-13) and lofted fractals (Figure 2-14). Figure 2-13. Twist-extruded CAD model [Soo 2002] Figure 2-14. Lofted fractal solid CAD model [Soo 2002] However, the generation of multiply connected fractal objects such as the Sierpinski tetrahedra (Figure 2-15) or the self-intersecting curve (e.g. dragon curve) (Figure 216) have not been addressed. Moreover, many common fractal objects, such as the 2-21 Mandelbrot set and the Julia set, cannot be modeled directly because they are constructed from complex set mapping. Figure 2-15. Sierpinski tetrahedra Figure 2-16. Dragon curve 2.1.4 Toolpath generation with fractal curves Many fractal generation packages have been developed and used to create computer graphic image, but very little provides any media to communicate with the CAM systems. Many fractal curves have been used in toolpath generation in numerical control (NC) machining. One fractal curve, the Hilbert curve (Figure 2-17), has been used as a scanning path in selective laser sintering (SLS) to improve the prototype’s physical performance [Liu 2002]. Cox, Takezaki, Ferguson, Kohkonen & Mulkay [Cox 1994] and Griffiths [Griffiths 1994] have also proposed methods for toolpath generation with Hilbert curves. Their methods, however, are applications of fractal 2-22 curves and none of them proposes any physical generation methods to manufacture the fractal objects. Because of these, there are considerable interests in further developing a new CAD/CAM process to LM the fractal objects. Hilbert curve Figure 2-17. Fractal scanning path [Liu, Zhang & Yang 2002] K. Shirriff used Voronoi diagrams (Figure 2-18) to generate interesting fractal patterns that resemble leaf veins, roadmaps and cracked pottery glaze [Shirriff 1993]. Figure 2-18. Generating fractals from Voronoi diagrams [Shirriff 1993] 2-23 S. McMains [McMains, Smith, Wang and Séquin, 2000] developed an algorithm for robustly building the Voronoi diagram (VD) of a set of 2D oriented, piecewise linear contours that represent a single slice layer from the 3D part. The VD can be used to identify the minimum feature dimensions of the part. The VD can also be used to generate robust offset contours which can be used to create FDM tool paths (Figure 2-19). Contour offsetting can be used to generate thin-walled versions of a solid part. The semi-hollow thin-walled part uses less material and consequently can be built faster. However, it is restricted to generate the toolpath of simply IFS representation. Figure 2-19. Voronoi diagram of the third generation Koch island fractal with the offset curves set at a distance of 0.05 [Voronoi diagram] 2-24 2.1.5 Physical fractal prototypes 2.1.5.1 2D physical fractal pattern generation A Sierpinski carpet (Figure 2-20) is a fractal that can efficiently pack long lengths into small volumes; thus makes it suitable to be used in mobile phone antenna (Figure 2-21) [Gianvittorio 2001 and Gianvittorio 2002]. Another example is Koch curve (Figure 2-22) which is also suitable in mobile phone antenna and electronics applications [Fractal Antennas System] (Figure 2-23). Figure 2-20. Sierpinski carpet Figure 2-21. Fractal antenna for a cellular phone Figure 2-22. Koch curve Figure 2-23. Fractal element [Fractal Antennas System] 2-25 However, the manufacturing process does not involve any NC machining. It is limited to produce 2D physical fractal patterns for fractal antenna system design. These methods, however, are applications of fractal patterns and none of them proposes any modelling method or physical generation of fractal object. 2.1.5.2 3D physical fractal prototypes Richard Crawford and his students seem to be the first team to make a QJ-set (Figure 2-24) using SLS machine [Crawford 1993]. Swinging (rotational swept) technique is employed to generate the physical solid model of the QJ-set. However, this tends to limit the design varieties as this method cannot produce fractal object with fragmented features and the fractal pattern are limited to axi-symmetric based model. Kerekes [Kerekes 1992] seems to be the first person to make a fractal rapid prototype three-dimensionally (Figure 2-25). Nonetheless, Kerekes has not mentioned any direct CAD modelling nor report of any details. 2-26 Figure 2-24. Quaternion (3D Julia set) [Crawford 1993] Figure 2-25. Fractal tree rapid prototype [Kerekes 1992] Soo [Soo 2002] seems to be the first person to develop a complete method to LM different kinds of IFS fractals. The fractal objects are produced by using FDM. One example is sphereflake snowball (sphere-like) (Figure 2-26) [Soo 2002]. However, it is restricted to LM of simply connected and single contour fractal objects. The 2-27 sphereflake which is simple and has low resolution can also be easily modelled by using existing CAD systems. Also, it does not concern the limitation of machine resolution and working envelope of LM machines. Besides, all the above-mentioned methods can only build the monochrome physical fractal models. Figure 2-26. Sphereflake model and prototype [Soo 2002] 2.2 Existing commercial solutions 2.2.1 Fractal design package Up to now, fractal modelling and design packages in the commercial sector are almost for computer graphics generation using solely rendering methods (e.g. shaping and ray tracing, etc.) and 3D object is projected on a plane by axonometric projection [Lee 1999]. Through the medium of computer graphics (CG) and its rendering capability, a fractal model becomes the basis for exploring the aesthetic of some objects. For example, PovRay [Povray] and Maple [Maple] can produce a 2-28 number of computer graphics (Figures 2-27 and 2-38) of fractals but do not export any 3D models for CAD system. Figure 2-27. Quaternion Julia fractals generated by PovRay software [PovRay.org] Figure 2-28. Mandelbrot set generated by Maple software [Maple] There is only one software - Hyperfun [HyperFun] that can export the computer graphics to VRML file format and be viewed in VRML explorer (Figure 2-29). The VRML file format can only be exported to colored LM machines (e.g. Z-Corp 3D colored printer) to manufacture a prototype (Figure 2-30). However, VRML file format cannot be used for all kinds of LM machine (e.g. FDM, SLA, SLS, etc.) Moreover, the model is generated by swinging technique [Sourin 1996]. As mentioned before, the swinging method cannot describe fractal objects with fragmented features and the fractal pattern is only limited to the axi-symmetrical 2-29 type. Figure 2-29. Fractal model generated by Hyperfun Figure 2-30. Z406 system 2.2.2 Programming language Some programming language, e.g. Virtual Reality Modelling Language, OpenGL, etc., can generate 3D IFS fractal objects easily (e.g. Sierpinski tetrahedra) but can only be visualized via a browser (Figure 2-31). Some programming language, such as Visual Basic (Figure 2-32), Visual C++ (Figure 2-33), JavaScript, etc., can also generate 2D complex fractals and display them on the screen. However, none of them can make 3D physical fractal objects using contemporary CAD system. 2-30 Figure 2-31. Sierpinski Tetrahedra in VRML explorer Figure 2-32. Colored Julia set: c= 0.357 0.181i generated using Visual Basic Figure 2-33. Window in C++ program c= 0.390540.58679 2-31 2.3 Summary of limitations In summary, the possibility and potential of contemporary manufacturing process for manipulating fractals have not been detailly discussed in the literature. Little works were investigated on how to make 3D physical fractal objects. Furthermore, the above-mentioned methods are for LM simply connected fractal objects. They could not cater for LM complex fractal object (e.g., Mandelbrot set, Julia set, etc.). In addition, none of the previous modelling approaches was developed to LM colored and disconnected fractal objects. In this research, two major areas will be addressed for the physical realization of n-D fractal objects. The computer modelling method is proposed to LM colored n-D fractal objects and a pre-layer manufacturing processing, the LM toolpath generation, is proposed to manipulate n-D fractal objects. The scope will be limited to complex and multiply connected fractals. 2-32 CHAPTER 3 MANUFACTURABILITY OF FRACTAL GEOMETRY 3.1 Introduction Analyzing the manufacturability of a proposed design has become an important step in the design stage. In recent years, numerous researches proposed to determine the manufacturabilities of 3D designs using feature recognition and extraction. Ha [Ha 1996] used Gaussian sphere to determine the manufacturabilities of proposed 3D designs with a given set of manufacturing operations, which is an essential reasoning problem for integrating CAD and CAM systems. In [Chen 2003], Chen, Wen and Ho presented an approach using spatial reasoning on feature interactions for manufacturability assessments. Dissinger and Magrab [Dissinger 1996] proposed a new approach to geometric reasoning for manufacturability evaluation application to powder metallurgy. Prosenjit and Godfried [Prosenjit 1994] also proposed a practical algorithm to determine whether or not an arbitrary object can be built using any of the known manufacturing processes. However, none of these methods can be used to determine which types of fractal objects are manufactured by certain LM processes. The main purpose of this Chapter will, thus, give a tentative classification and 3-1 nomenclature of fractal geometry. Then, a state-of-the-art overview of manufacturing techniques is presented. By bridging the gap between fractal geometry and manufacturing, those processes that are promising to manufacture 3D fractal objects will be highlighted. Emphasis is placed on two fundamental questions that arise concerning every type of manufacturing process: (a) Can fractal be manufactured by existing conventional process? (b) Is fractal only manufacturable by LM technology? The survey in this Chapter attempts to answer the above questions by considering the manufacturability of fractal objects, as well as to explore the limits of the technologies. It will go on to discuss how the promising techniques can better serve the requirements of fractal geometry fabrication. Finally, a summary will be made regarding the manufacturability of fractal geometry. 3-2 3.2 Manufacturability evaluations This part focuses on fractal geometric reasoning required to support manufacturability evaluation. Manufacturability evaluation circle (Figure 3-1) refers to the fractal geometry that is compatible with a manufacturing process by evaluating its shape and then pointing out the restrictions and limitations of the process. The bases of the conditions for manufacturability are visibility, connectivity and initiator of fractals. They will be defined in the following sections. Fractal geometry Input (represented by point, line, plane and surface) Connectivity Self-intersecting Fragmented features Host geometry Post- processing Remove support Finishing Polishing Manufactur -ability of fractal geometry Material selection Crystalline Amorphous Powder Solid Liquid Manufacturing process selection Visibility Figure 3-1. Manufacturability evaluation circle 3-3 3.2.1 Visibility Recently, visibility is widely used to many classes of problem in design and manufacturing. Visibility [Woo 1994, Chen 1993] is from viewpoint-to-region and it is meaningful when a pair consisting of a source and a target is considered. Geometrically, the target (or the workpiece) can be a point, a line segment, a curve segment, a planar polygon, or a surface patch. Similarly, the source (or the effector) can be modeled hierarchically by its topological dimensionalities: 0D points, 1D straight lines and curves, and 2D planes and surfaces. 3.2.2 Connectivity In the case of fractals, the type of connectedness referred to is “pathwise” connectedness, meaning that one can trace a path from a point in the set to other points in the set without leaving the set. In physical making, connected single object is required and fragmentation of fractal is accepted even disconnected objects are difficult to be built physically. Thus, the disconnectivity and connectivity (Figure 32) of fractal objects will also be studied in this Chapter. 3-4 y x Vertex Edge (a) y x z Vertex Edge (b) Face Figure 3-2. Connectivity (a) 2D connectivity, (b) 3D connectivity (adjacency relations between voxels) 3.2.3 Initiator of fractals In this part, the basis of the condition for manufacturability, initiator of fractals (the initiator itself is essentially iteration 0) is defined. Actually, fractal objects (e.g. natural objects) modeled for physical making have to be in finite form. Therefore, the intermediate state of fractal generated model will be the main focus, such model is also called prefractal. Prefractals can be dealt with in six different domains, they include visibility along a line, visibility from a point, visibility from a straight line segment, visibility from a polygon, visibility from a region and global visibility. The problem domains can further be categorized as discrete or continuous. The 3-5 geometries of the prefractals are discussed in the following sections according to their initiators. 3.3 Taxonomy of fractal geometry 3.3.1 Taxonomy of IFS fractal Fractal geometry is classified by connectivity properties and initiator of fractal geometry (e.g., point, line, plane and surface). The taxonomy of IFS fractal is shown in Figure 3-3. The fractal geometry includes self-intersecting, simply connected, natural, area filling, multiply connected (connected with loops), dust object (totally disconnected, cantor sets), self-similar evolutionary pattern (e.g. fill-in dragon curve boundary can sweep out simple 3D fractal objects such as dragon mountain), and 3D multiply connected and 3D natural objects (Figure 3-4). 3-6 3-7 Figure 3-3. Taxonomy of IFS fractals (a) Self-intersecting fractal objects (Dragon curve) [Mandelbrot 1983] (b) Simply connected fractal objects (Koch curve) (c) Natural objects (branch) [Flake 1998] 3-8 (d) Area filling fractal objects (Peano curves) [Mandelbrot 1983] (e) Multiply connected fractal objects (Sierpinski Carpet) [Mandelbrot 1983] (f) Dust object (Cantor set) [Cantor set] 3-9 (f) Twist simply connected curve (Dragon mountain) (g) 3D multiply connected fractal objects (Menger sponge) (h) Natural objects Figure 3-4. IFS fractal objects 3-10 3.3.2 Taxonomy of complex fractals It is now quite a challenging task to unearth new patterns from the complex fractal equation. Consequently, creative work calls for modification of the formula and there are infinitely many formulas available for this purpose. But in this Section, the discussion is limited to the family of Mandelbrot set M generated by the quadratic case form f (z) = z2 +c. Depending on the value of c being selected, the resultant Julia set (Jc) may be either totally connected or totally disconnected. Jc is connected iff c M. Disconnected Julia sets are called a "dust" of points, or "Fatou dust" [Mandelbrot 1982]. This is a logical term, since a disconnected Julia set consists of individual points in the complex plane which, likes sparsely sprinkled dust on a sheet, are not connected to any others. Another term used to describe a disconnected Julia set is Cantor dust [Peitgen 1986]. By analyzing the connectivity and initiator of fractal, the taxonomy of complex fractal is obtained (Figures 3-5 and 3-6). 3-11 3-12 Figure 3-5. Taxonomy of complex fractal objects (a) Contour Julia set, c =0.357-0.181i (b) Filled-in Julia set [Mandelbrot 1983] (c) Fatou Julia set, c=0.66i (d) Dendrite Julia set, c=0.01+i [Mandelbrot 1983] 3-13 (e) Hybrid Mandelbrot set [Mandelbrot 1983] (f) Host geometry (g) Quaternion Mandelbrot set [Quaternion Mandelbrot set] 3-14 (h) Rotated Julia set [HyperFun] (i) 3D fractal created by z-level transformation [Maple] (j) Quaternion Julia set Figure 3-6. Complex fractal objects 3-15 3.4 Manufacturability of fractal geometry 3.4.1 Manufacturability of fractal geometry using traditional manufacturing processes Up to now, manufacturing techniques can be classified into three categories. They are forming processes, material removal processes and material addition processes. Forming processes such as injection moulding, die casting, and stamping account for a very high percentage of parts that are manufactured worldwide. Material removal processes such as computer numerical control (CNC) machining and electrical discharge machining (EDM) start from a larger amount of bulk material and remove all excess material. They are commonly used in mould making. All these processes are well suited for mass production. However, these processes can hardly be used to make three dimensional (3D) physical aesthetic appealing objects with complex shape. In this Section, the reasons why these common techniques cannot be used to manufacture the 3D physical fractal objects will be discussed. The classification of manufacturing processes based on the visibility is shown in Figure 3-7. The conventional manufacturing processes mainly include point visible (Figure 3-8), line visible (Figure 3-9) and surface visible processes (Figure 3-10). NC machining is said to be a process that requires point visibility which is short for 3-16 point-point visibility. For example, a turning machine can produce a model with symmetrical geometry, but it cannot produce fractal object with symmetrical geometry (quaternion complex fractal). The reason is that the fractal object has fragmented (disconnected) features. Another example is that a drilling machine can remove the internal feature of objects, but it is difficult to remove the intricate shape of multiply IFS fractals (e.g. Sierpinski tetrahedron) with complex features. Only 5axis machining can manufacture host geometry which is a fractal pattern for engraving or embossing by projecting a fractal curve onto a free-form surface. And, the host geometry of fractals can be generated using existing CAD software (e.g. PowerSHAPE, ArtCAM, etc.). However, the fractal geometry cannot communicate with the CAD system efficiently as the CAD system considers only Euclidean geometry. For line visible process (e.g. wire-cutting electric-discharge machining (EDM)), there must be line visibility between the effector and the workpiece such that all the points in a segment of the cutting wire are visible to the corresponding points in a line segment on the workpiece. Die sinking EDM, sheet-metal stamping, die casting and plastic mould injection demand surface visibility. Both line and surface visible process also cannot manufacture fractals with fragmented features and complex intricate features. In conclusion, the traditional manufacturing processes are only suitable to manipulate simply connected fractal objects. 3-17 Figure 3-7. Classification of manufacturing processes Figure 3-8. Point visibility Figure 3-9. Line visibility Figure 3-10. Surface visibility 3-18 3.4.2 Manufacturability of fractal manufacturing processes geometry using layer Today, there is a new group of manufacturing techniques in which physical objects are produced by adding rather than removing or deforming material. They are the layer manufacturing (LM) technology, also known as solid freeform fabrication (SFF), computer automated manufacturing or rapid prototyping (RP). LM technology belongs to plane visibility (Figure 3-11). The LM device can be conceptualized as a planar source, giving rise to point-by-point correspondence between the source and the target. Therefore, it offers advantages in many applications compared to classical subtractive fabrication methods such as milling or turning. Objects can be formed with complex or intricate geometries without the need for elaborating machine setup or final assembly. Therefore, LM is a potential candidate for making aesthetically appealing objects physically. The CAD technology inputs Euclidean geometry for LM. 3D physical Euclidean objects are then constructed layer by layer using materials such as photopolymer, thermoplastic and wax. It has been noted that the use of LM in fabricating complex shape objects is very limited. Therefore, we will analyze the manufacturability of fractal geometry using LM techniques with reference to LM materials (e.g., thermoplastic, sand, 3-19 metal, elastomer, etc.), and process types (e.g., photopolymerisation, material deposition, powder sintering, etc.). Figure 3-11. Plane visibility 3.4.3 Limitations of LM technology In the last decade, many articles and works have been published in books, conferences and journals in the area of LM technology. Chee and Siaw [Chee 1995] address the shortfall of LM technologies by reviewing the limitations of these LM systems according to their working principle. Dickens [Dickens 1995] gave a brief qualitative and historical overview of existing developments in LM technology in terms of their techniques and applications. In summary, many LM processes are now using a variety of materials and layering methods, which may be broadly classified into photopolymerisation (e.g. stereolithography), material deposition (e.g. fused deposition modeling (FDM)), powder binding (e.g. selective laser sintering (SLS), 3D printing (3DP)), lamina 3-20 binding (e.g. laminated object manufacturing (LOM)) and weld-based approaches (e.g. shape deposition manufacturing (SDM)) [Pratt 2002 ]. This section will present a brief overview of the research aiming at the manufacturability of fractal objects using LM technologies. Fractals can be manufactured by many types of LM machines. However, fractal objects with fragmented features can only be produced by using photopolymerisation (e.g. 3D system, stereolithography (SL)) as one can pre-select a red-tint function [Pattijn 2000] (Figure 3-12) unless the user can supply a host geometry for disconnected fractal models to attach. Besides, only 3D color printers can produce both monochrome and multi-color objects (Figure 3-13). These machines are capable of producing models in full color by installing colored inkjet printing heads. Figure 3-12. A colored physical model 3-21 Figure 3-13. Monochrome and colored prototypes Moreover, material deposition (e.g. FDM) (Figure 3-14) is not suitable to manufacture self-intersecting fractal objects due to the problem of material overlap (Figures 3-15 and 3-16). However, the material overlapping problems will not occur in photopolymerisation (e.g. SL) and powder binding (e.g. SLS). The reason is that SL and SLS would not impose any effect on the volume of the model even though the model is over-irradiated by the laser beam. Figure 3-14. The Fused Deposition Modeling (FDM) process 3-22 Plastic filaments Figure 3-15. Dragon curve Material overlap Figure 3-16. Material overlap of the self-intersecting curve Another problem is the manufacturing of multiply connected IFS fractals (Figure 317). Support structures (Figure 3-18) are needed when fabricating overhanging geometries or internal features (Figure 3-19) which have to be removed later by breaking them away from the fractals. Photopolymerisation and material deposition (e.g. FDM) processes’ supports are very difficult to be removed in the postprocessing step. However, FDM can use water-soluble support material for the freehanged features and which can later be dissolved away. On the other hand, lamina binding processes’ (e.g. LOM) supports are very difficult if not impossible to be removed to expose the internal fractal features. 3-23 Figure 3-17. Multiply connected IFS fractals Figure 3-18. Support Internal fractal features Menger sponge Figure 3-19. Internal fractal features 3.5 Summary Before going into the modeling of fractal, the LM’s capability the machine resolution and working envelope should also be considered. Table 3-1 gives a summary of commercial LM machines’ capability. 3-24 Fractal objects Type of system/ LM technologies a b c d e f g h i j k l m n o p q r s x x x x x x x x Photopolymerisation 3D systems : Stereolithography (SL) [3D Systems] F&S: SL [Fockele & Schwarze] Sony/D-MEC: SL [D-MEC (Sony)] CMET Inc.: SL [CMET] Denken : SL [Denken] Denken : SL [Denken Engineering Co. Ltd.] Meiko :SL [Meiko] Unirapid Inc. SL (Lamp and fiber optics [Unirapid] Autostrade: SL [Autostrade] Stratasys: Fused Deposition Modeling with water soluble support material [Stratasys] 3D systems : Multi-jet modeling [3D Systems] Extrude Hone ProMetal Div. : Inkjet [ProMetal] SDI: inkjet [SDI] Solidscape : Inkjet (the wax support material is either melted or dissolved away) [Solidscape] Generis: Inkjet [Generis] Object : PolyJet technology [Object] Solidica: Ultrasonic/CNC [Solidica] Optomec: Laser Engineered Net Shaping [Optomec] Beijing Yinhua: Melted Extrusion manufacturing [Rpyinhua] x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Material deposition x Powder binding 3D systems : SLS [3D Systems] Z-Corp. : MIT’s 3DP Technology [Z-Corp.] EOS : laser sintering [EOS] F&S: Laser melting [Fockele & Schwarze] Arcam: Electron beam x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 3-25 melting[Arcam] Lamina binding Cubic Technologies: Laminated object manufacturing (LOM) [Cubic Technologies] Kinergy / Lamination [Kinergy] Schroff Development: Adhesive Materials Layering [SDI] Kira: Lamination [Kira ] Toyoda Machine Works: LOM [Toyoda Machine Works] Beijing Yinhua: Slicing solid manufacturing [Rpyinhua] x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Per-factory Envision Technologies : Digital light processing [Envision Technologies] x x x x x x x x indicates the technology can manufacture the corresponding type of fractal object a. b. c. d. e. f. g. h. i. j. k. l. m. n. o. p. q. r. s. Self-intersecting fractal objects Simply connected fractal objects Natural objects (2D) Area filling fractal objects Multiply fractal objects Cantor set Twist simply connected curve Natural objects (3D) 3D multiply connected fractal objects Contour Julia set Filled-in Julia set Fatou Julia set Dendrite Julia set Hybrid Mandelbrot set Host geometry Quaternion Mandelbrot set (connected) Rotated Julia set 3D fractal created by z-level transformation Quaternion Julia set (connected) Table 3-1. Capabilities of layer manufacturing techniques to types of fractal 3-26 In conclusion, the connectivity of fractal object is important since a connected object is easier to make. Also, LM technology provides a better opportunity for making 3D physical fractal objects than traditional manufacturing processes. LM is thus selected for further investigation in the physical making of fractal object. 3-27 CHAPTER 4 MODELLING FOR FRACTAL OBJECTS FABRICATION 4.1 Voxel-based generative algorithm Figure 4-1 shows the workflow of a new method to construct the computer model of 3D complex fractals. In order to convert complex fractals into a computer understandable format, three steps are required. The first step is to generate the pixelized computer model from the 2D complex mathematical model. The overall geometry of the fractal object will then be described by binary spatial occupancy enumeration. That means the fractal model is recursively subdivided into equally sized sub-cells until either the sub-cell (pixel elements) is free of obstacles, or the smallest cell is reached in the embedded Euclidean space, . Then, a 2.5D computer fractal model is generated and represented by a single voxel slab. Finally, appropriate similarity transformation along the axis and regularized Boolean operations are used to generate a 3D voxelized computer fractal model. 4-1 Figure 4-1. Workflow to obtain an approximated 3D computer fractal model 4.1.1 Computer model of 3D Mandelbrot set This section will discuss the implementation issues of modelling 3D complex fractal. A typical complex fractal object, the quaternion Mandelbrot set (QM-set), will be examined. The algorithm to generate the QM-set is shown in Figure 4-2. Firstly, one half of the Mandelbrot set M is generated via zn= z n21 + c. Then, a 2.5D Mandelbrot set M ' is obtained using translational sweep. Afterwards, appropriate rotation of M ' is performed to obtain the rotated Mandelbrot set M '' . Finally, the 3D voxelized one quarter (¼) QM-set is obtained by combining all M '' . 4-2 Figure 4-2. Generation of QM-Set 4-3 4.1.2 2D pixelized fractal model A complex fractal is represented by picture elements. In computer graphics, pixels are displayed on screen in windows. Logically, pixels are addressed as two-dimensional arrays, whose indices are called “screen-space” coordinates. The image is raster-scan display and stored in the coordinate system (Figure 4-3). Each point in the grid represents a pixel in the image. The images are binary, with 1’s shown shaded and 0’s shown in white. In mathematical morphology, an object X in a binary 2D object is described as a set in a 2D grid: X = {v: f (v) =1, v =(x, y) } (4.1) where f is called the characteristic function of X. On the other hand, the object background Xc can be defined as: Xc = {v: f (v) =0, v =(x, y) } (4.2) Figure 4-3. Rasterization scanning Pixel memory can be considered as an array of numbers whose dimensions depend on the screen size. The memory is organized into height scan-lines, each 4-4 containing width pixels. Think of this as a two dimensional array, pixels [width, height] (Figure 4-4). We impose a coordinate system on the pixel array by numbering each pixel by its position as the h pixel in the v scan-line, i.e. the coordinate (h, v), with the first pixel in the upper-left corner having coordinates (0, 0). Figure 4-4. Pixels Array Variables Also, the color display can change the values in the pixels array. For example, setting a pixel is simply the statement: pixels [h, v] = BLACK. This pixel will be displayed black by the display processor during the next refresh cycle. 4-5 To obtain the pixelized computer model of the QM-set, the first step is to obtain the Mandelbrot set by convergence mapping using the procedure zo z2 + c. The algorithm is shown in the following pseudo code. Procedure: Mandelbrot_Set Input: Window size (x max , x min , ymax and ymin) No. of pixels = MaxY u MaxX /*Resolution setting based on LM machines*/ /*Setting a condition to define when the iteration function should be stopped */ Blowup parameter: escape time R, maximum number of iterations K Begin For all pixels (p, q) in the window, do 'a = (a max - a min) /MaxX 'b = (bmax -bmin) / MaxY Begin Step (1) : set a0= amin+ p*'a, b0= bmin+ q*'b, n=0; x0= 0, y0= 0 Step (2): x n+1= x n2 y n2 a , x n+1= 2 x n y n b , n= n+1; Step (3): (i) If x n2 y n2 <R and n<K, go back to Step (2); (ii) If x n2 y n2 t R , color the pixel (p, q) with black color; End End 4-6 Consequently, the discretization of the Mandelbrot set is generated by a window-viewport mapping (Mwv) which converts the coordinates in the world coordinate system (WCS) to normalized screen coordinates (NSC). (4.3) The overall matrix M wv is: § vx max vx min vy max vy min , © wx max wx min wy max wy min Mwv = T (vxmin, vymin) u S ¨¨ (4.4) · ¸¸ ¹ u T (wxmin, wymin) ª1 0 = ««0 1 «¬0 0 ª1 0 u ««0 1 «¬0 0 ª vx max « vxmin º « wx max vy min »» u « « 1 »¼ « « «¬ wx min º wy min »» 1 »¼ ª vx max « wx « max = «« « « «¬ vx min wx min 0 0 vx min wx min 0 vy max vy min wy max wy min 0 0 0 º 0» » 0» » 1»» »¼ vx max vx min º vx min » wx max wx min » vy max vy min wy min u vy min » » wy max wy min » 1 » »¼ wx min u 0 vy max vy min wy max wy min 0 NSC [m, n , 1] ª = «vxmin ( x wxmin ) ¬ vy min vxmax vxmin vy , vymin ( y wy min ) max wxmax wx min wy max wy min º ,1» ¼ (4.5) In other words, the world coordinates (wx, wy) of an arbitrary point is converted to its corresponding normalized device coordinates (vx, vy) (Figure 4-5). The viewport is a region within the screen that displays the window. The window and viewport boundaries are specified in screen coordinates and normalized screen coordinates. Noted that the transformations between window and viewport coordinates are machine-independent. The overall geometry of the Mandelbrot set will then be described by binary spatial occupancy representation. 4-7 (a) (b) Figure 4-5. Window-to-viewport mapping (a) Mandelbrot set coordinates in the WCS (b) Mandelbrot set in NSC 4.1.3 2.5D Mandelbrot set As the Mandelbrot set is symmetric, only one half of the Mandelbrot set is needed to generate the ¼ QM-set to improve the computational and storage efficiency. The 2.5D Mandelbrot set M ' is obtained by simply adding a z-dimension to M along a linear path which is normal to the plane of the area to create a volume, say one layer thick voxel, V(i, j, k) (Figure 4-6). 4-8 Single voxel thick layer j i k Figure 4-6. Half 2.5D Mandelbrot set (single voxel slab), M ' 4.1.4 3D Voxelized computer model In order to obtain the computer model of the ¼ QM-set, there are two main operations. First, a rotated Mandelbrot set, M '' with coordinates (x*, y*, z*) is obtained by 3D rotating V (i, j, k) of M ' relative to the real axis. The rotation degree T along the x-axis can be obtained by employing the affine transformation in global coordinate system and then approximated by rounding function with voxel resolution 'x, 'y and 'z, Equations (4.6) and (4.7). The schematic diagram of the rotation and an example are shown in Figure 4-7 and Figure 4-8 respectively. i* °° * ®j ° * ¯° k x* °° * ®y ° * °¯ z round (i, ' x ) i (4.6) round ( j' y cos T , ' y ) round ( j' y sin T , ' z ) (4.7) x j *' y k *' z 4-9 Second, the overall geometry of the fractal object in binary occupancy representation will be updated by regularized union operation (*) and a series of rotations in each recursion. The voxelized ¼ QM-set is described by a binary variable indicating the presence (‘1’) or absence (‘0’) of matter in the immediate vicinity of the voxel. Therefore, the rotated single voxel slab is classified as EMPTY, FILLED or PARTIAL FILLED. If the voxel is classified as ‘partial’, it means that the value will be approximated to EMPTY or FILLED. Boolean operations are replicated and the rotation is terminated when the sum of rotation angle T #90o. The algorithm is shown in the following pseudo code: Procedure QM-set generation (Rotate_to_Union) Input: rotational degree T in each recursion, size of voxel (Vs) = 'x 'y 'z, where 'x = 'y z 'z and MaxX = MaxY= MaxZ= 90/ T Output: voxelized ¼ QM-set /*Initialization*/ If (input degree T is 90o) Then return; End If /* Undertake Boolean operation (*) */ For c=0 To MaxZ For b=0 To MaxY For a=0 To MaxX Rotate_to_Union m Rotating M-set degree T Union (Rotate_to_Union); /*Check whether the voxel is inside or outside the object*/ If (Rotate_to_Union is classified as FILLED) Store_in_black_node If (Rotate_to_Union is classified as EMPTY) Store_in_white_node If (Rotate_to_Union is classified as PARTIAL FILLED) If volume of Rotated M-set, VR Vs/2 Then Approximate Rotated M-set belongs to FILLED Store_in_black_node Else Approximate Rotated M-set belongs EMPTY and Store_in_white_node End If End If End If End If Next a Next b Next c } End Procedure QM-set generation 4-10 and Figure 4-7. Voxel rotation y x z Figure 4-8. 45o rotation of single voxel slab 4-11 Figure 4-9(a-c) show snapshots of the 3D voxelized complex fractal construction process. The voxelized model is a uniform cubical grid representation. (a) One layer thick voxel (M1) (b) 45o rotation of one layer thick voxel (M2) (c) Translation and union (M1* M2) Figure 4-9. Snapshot of the 3D voxel approximation model construction process 4-12 4.1.5 NURBS-based voxel models 4.1.5.1 Workflow for making a NURBS-based voxel model This approach is a combination of voxel-based model and NURBS model. The workflow for making a NURBS-based voxel model is shown in Figure 4-10. Figure 4-10. Workflow for constructing the host geometry 4-13 The approach combines the concepts of cell decomposition and displacement mapping. This means that displacements are applied to voxel-based model according to their spatial position regardless of surface geometry. First, fractal model and geometric model are inputted. Then, the fractal model is discretized into 2.5D pixels and represented by a single voxel slab while the geometric model is subdivided into a number of single voxel cell. Afterwards, a fractal pattern for engraving or embossing can be prepared by mapping a fractal pattern onto the voxelized free-form surface. 4.1.5.2 Cell decomposition The voxel-based NURBS objects can be obtained by cell decomposition. This method decomposes the NURBS objects (Figure 4-11) into simple regions called cells (Figure 4-12) such that the path between and two configurations in a cell can be easily generated (example: a straight line) [Sleumer 1999]. ʳ Figure 4-11. Euclidean geometry 4-14 Figure 4-12. 3D grids 4.1.5.3 Displacement mapping In computer graphics, the color associated with the surface point is obtained through texture mapping [Foley 1996]. A displacement map specifies a height field to add a colored object on voxel-based objects in the direction of the surface normal. Figure 4-13 shows an example which parallel maps a colored object onto a voxel-based NURBS surface. 4-15 y' y z' z x' x (a) 2.5D colored object (b) Voxelized Object y'' z'' x'' Figure 4-13. Displacement mapping Let PFractal denotes a fractal pattern represented by single voxel thickness is mapped onto to PVNURBS, a voxelized NURBS surface. Fractal patterns PTexture, Pdifference, PUnion are then formed by set operations (e.g. subtraction, union, etc.) and texture mapping. Mathematically, Pdifference = PVNURBS –* Volmap(PFractal), PFractal(x', y', z')= PVNURBS (x, y, z) PUnion = PVNURBS * Volmap(PFractal) , PFractal(x', y', z') = PVNURBS (x, y, z) PTexture = Color map (PFractal), PFractal(x', y', z') = PVNURBS (x, y, z) 4-16 (4.8) (4.9) (4.10) The fractal pattern PFractal to be mapped (assuming in 2D xy-plane) forms Vol map (PFractal) by transformation (e.g. scale, translation, etc.) of a number of PFractal with respect to PVNURBS while Color map (PFractal) is texture mapping with respect to PVNURBS, i.e. Vol map(PFractal) ={ (x', y', z') | ( x'', y'', z'') PFractal} (4.11) where z' is arbitrary selected with no duplication. In practice, the coordinate values of the PFractal are translated, scaled and mapped onto the NURBS surface. 4-17 4.2 Hybrid algorithm to LM 3D physical fractal objects In this section, the single voxel shell of the ¼ QM-set is generated using a hybrid algorithm that combines boundary shell extraction, boundary evaluation and triangulation. Since VRML is the common digital format that can communicate with LM machine such as Z-Corp. printer, the VRML file format (*.wrl file) is chosen to be edited. In VRML format, each vertex is stored just once and considerable space is saved. Furthermore, the coordinate of the vertex can be changed easily. Two information are needed to create the VRML file format. First, geometrical information of the single voxel shell QM-set w is needed. It is represented by explicitly using a list of vertex coordinates: V = ((x1, y1, z1), (x2, y2, z2), …, (xn, yn, zn)). Second, the information is stored as an index list (or pointers), which defines the polygons in a vertex list. The procedure to obtain the QM-set information is shown in the following algorithm and the detail is described in the following subsections. Procedure hybrid algorithm (single voxel shell) Input: QM-set represented by voxels, V (a, b, c) of black cells (which is obtained from Procedure QM-set generation (Rotate_to_Union)). Screen size = maxX u maxY u max Z ' is xyz-resolution of LM machine ('x = 'y z 'z), Output: A sequence V (p1, p2., …, pk) of boundary voxels i.e. single voxel shell of QM-set { /* Initialization*/ Do While (Input x, y and z values of QM-set) a=a+1 b=b+1 c=c+1 V (a, b, c) = 1 /*Value “1” represents the main pattern*/ End While 4-18 /*Check whether V(x1, y1, z1) belongs to black (value =1) or not */ Triangle = 0 For z1 = 1 To maxZ For y1 = 1 To maxY For x1 = 1 To maxX check = False If V(x1, y1, z1) = 1 Then /*Boundary evaluation: preparing 6 facets from 8 corners of V(x1, y1, z1) for triangulation*/ 1 1 )'x, (y1+ )'y, 2 2 1 1 1 1 1 1 )'z), P3((x1+ )'x, (y1 + )'y, (z1+ )'z), P2((x1 )'x, (y1+ )'y, (z1 2 2 2 2 2 2 1 1 1 1 1 1 (z1 )'z), P4((x1+ )'x, (y1+ )'y, (z1+ )'z), P5((x1 )'x, (y1 )'y, (z1 2 2 2 2 2 2 1 1 1 1 1 1 + )'z), P6((x1 )'x, (y1 'y), (z1 )'z), P7(x1+ )'x, (y1 )'y, 2 2 2 2 2 2 1 1 1 1 )'z). (z1 )'z) and P8((x1+ 'x), (y1 'y), (z1+ 2 2 2 2 Define 8 corners of V(x1, y1, z1), they include P1((x1 /*Boundary extraction: the single voxel shell of discretized ¼ QM-set is traced via morphological outlining by considering 6 adjacent voxels N6 (V) to all V(x1, y1, z1).* / If V(x1+1, y1, z) =0, V(x11, y1, z1) =0, V(x1, y1+1, z1) =0, V(x1, y11, z1) =0, V(x1, y1, z1+1) =0 or V(x1, y1, z11) Then check = True /* Triangulation */ Write and update the index list (the index list of the triangular mesh is generated with reference to the defined coordinates) during each recursion End If If check Then Write and update the 8 corner coordinates of V(x1, y1, z1) during each recursion Triangle = Triangle + 8 End If /*Color addition */ Paint a color for each triangle End If Next x1 Next y1 Next z1 } End Procedure boundary evaluation 4-19 4.2.1 Boundary shell extraction The raster-scan approach is utilized to obtain the single voxel boundary shell of the QM-set. The idea behind the boundary shell extraction algorithm is very simple. The scanning starts at the bottom left corner of the grid and scans each column of voxels from the bottom upwards. The computer model of the ¼ QM-set consists of two values. The value ‘1’ represents the QM-set i.e. a group of black voxels, and the value “0” will be assigned to the empty region (a background of white voxels). With this convention, the boundary points are obtained by eroding the object with a structure element which contains all the six possible neighbors of the central voxel. The generalized erosion mask is: Figure 4-14. Six adjacent voxels N6 (V) This mask has the effect of removing a single voxel from the perimeter of a fractal object in one section. The erosion operation works by looking at the effect of its mask as it passes over bitmap regions having various black and white voxels. The boundary of the ¼ voxelized QM-set, denoted by w (QM-set), is traced out via morphological outlining by considering the 6-adjacent voxels N6 (V) to all V(x1, y1, z1). 4-20 N6(V) = {(x1, y1, z1+1), (x1-1, y1, z1), (x1, y1+1, z1), (x1, y1-1, z1), (x1+1, y1, z1) , (x1, y1, z1-1)} (4.8) w (QM-set)= ¼ QM-set \ (¼ QM-setാV1 ) (4.9) i.e., erosionാby one voxel V1 followed by set difference (–). The cross-section of the fractal pattern, the erosion pattern and the boundary pattern are shown in Figure 4-15 (a), (b) and (c) respectively. y y y x x x (a) (b) (c) Figure 4-15. Boundary shell extraction: (a) Initial fractal pattern (b) fractal pattern to be eroded(c) single voxel boundary shell of the fractal pattern 4.2.2 Boundary evaluation Boundary evaluation is used to prepare a rectangular cuboid having six rectangular regions (G) from the eight corners of V(x1, y1, z1) for triangulation. The six regions G1(P5P6P7P8), G2(P4P3P2P1), G3(P8P7P3P4), G4(P1P2P6P5), G5(P4P1P5P8) and G6(P2P3P7P6) are evaluated by considering the 6-adjacent voxels N6 (V) to all V(x1, y1, z1). The boundary of the ¼ voxelized QM-set, which is represented by a number of single rectangular voxel, called the single voxel shell model. The 8 corner coordinates of V(x1, y1, z1), i.e. P1, P2, P3, P4, P5, P6, P7 and P8, will be assigned and stored in memory (Figure 4-16). The schematic diagram of boundary evaluation is shown in Figure 4-17. An example of boundary evaluation is shown in Figure 4-18 such that all regions are defined as the 4-21 boundary regions except the common region (G3(P3P4P8P7) or G4(P1cP2cP6cP5c)) between the two voxels (Figure 4-18). The geometric information of the single voxel shell model is stored in chain code (Figure 4-19). Center of V(x1, y1, z1) y x z Figure 4-16. Single voxel V(x1, y1, z1) with its eight corners Figure 4-17. Schematic diagram of boundary evaluation 4-22 Figure 4-18. Example of boundary evaluation A single voxel shell model is stored in chain code. . . . Figure 4-19. Eight corner coordinates in VRML code 4-23 4.2.3 Triangulation The schematic diagram of triangulation is shown in Figure 4-20. The boundary of a single voxel cell consists of 6 u 2 triangular facets G which are triangles with only two 45o and one 90o angle. These facets are extracted to construct the triangulatable spatial polygons pointing to outward normal (n) with the given position vectors in . The boundary shell of the fractal is represented by a uniform triangular mesh which is obtained by connecting all triangulatable spatial polygons. Then, the index of the triangular mesh (Figure 4-21) is generated with reference to the geometric information (Figure 4-17). y x z Figure 4-20. Triangulation of voxel shell 4-24 Figure 4-21. Index list of the triangular mesh in VRML code 4.3 Visualization of quaternion complex fractals The single voxel boundary shell w is in general disconnected such that each is bounded by its own closed shell. Each disconnected single voxel shell is represented by connected (rectangular and then triangular) facets. To obtain the VRML file from w of QM-set, four single voxel shells of ¼ QM-set are added up by copying and reflecting on the xy- and yz-planes. Figure 4-22 shows the VRML file of QM-set. The VRML models can be used in LM construction as well as visualization. 4-25 Disconnected voxels Connected voxel Figure 4-22. Monochrome QM-set 4-26 CHAPTER 5 ENHANCED DATA STRUCTURE OF MODELLING FOR FRACTAL OBJECTS FABRICATION In computer processing of fractal, the memory requirements are prohibitive. Fortunately, fractal pattern usually contains large homogeneously empty regions, a sparse representation may help to alleviate the problem. Therefore, the simple uniform sized voxel data structure is enhanced to compress the data. 5.1 Methodology Figure 5-1 and Figure 5-2 show the workflow of generative colored quadtree encoding (GCQE) and the workflow of a conversion mechanism to construct the computer model to layer manufacture the quaternion complex fractals respectively. GCQE is based on the quadtree data structure which has the potential to supersede rasterization for handling, visualizing and manipulating the fractal objects to increase the computational and storage efficiency substantially. In order to obtain the toolpath control signals to fabricate the fractal objects, five steps are needed. First, boundary shell extraction algorithm is used to trace a single voxel boundary shell of the fractal object. Second, quadtree encoding is used to generate a quadtree based boundary shell of the fractal object. Then, regularized quadtree Boolean operations are used to generate the fractal model. For examples, colored regularized union operation (*) is used to generate 3D rotated Mandelbrot set and regularized different operation (*) is used to generate Menger sponge. Third, 5-1 boundary evaluation algorithm is used to define the skin of the quadtree based boundary shell. Afterwards, triangular mesh is generated from the shell skin model. Consequently, the data is converted to VRML format. VRML is a standard 3D file format for describing the behavior and geometry of a 3D virtual world, or scene. Finally, the 3D model is exported to LM machine and the toolpath is generated automatically. Figure 5-1. Workflow of the GCQE Figure 5-2. Workflow to layer manufacture 3D physical fractal objects 5-2 5.2 Generative colored quadtree encoding (GCQE) Quadtree is the hierarchical model definition that is most conveniently stored as a tree [Samet 1990]. A divide-and-conquer principle is often used to obtain a quadtree model by recursively subdivides a two dimensional (2D) Euclidean object into 4 quadrants (Q). In this Section, GCQE is proposed for building a linear quadtree (i.e. a pointerless representation) from a raster representation. The fractal object is represented by a binary array. The array is then converted to a complete quadtree, i.e., for a 2n u2n image, a tree of height n with one node per pixel. Beginning from the maximum envelope (root), a fractal region satisfies the homogeneity criterion (color or white throughout) in the embedded Euclidean space, , starts clustering. Otherwise, move down the fractal region to the next level of four equal quadrants (also called as QNW, QNE, QSW, QSE) and check the homogeneity criterion for clustering. Figure 5-3 shows snapshots of the construction process of GCQE from a 2D bitmap. QNW: = {p Q: px > xmid and py > ymid}, QNE: = {p Q: px d xmid and py > ymid}, QSE: = {p Q: px d xmid and py d ymid} and QSW: = {p Q: px > xmid and py d ymid} xmid : = (x1+xsize)/2, where xsize is the maximum number of the x-axis of a quadrant. ymid : = (y1+ysize)/2, where ysize is the maximum number of the y-axis of a quadrant. 5-3 1st clustering 2nd clustering 3rd clustering 4th clustering (a) Interior node with descendants Leaf node representing a blue color block Leaf node representing a red color block Leaf node representing an empty region Figure 5-3. GCQE (a) snapshot of subdivision 4n region and (b) quadtree representation. 5-4 It is possible to use the quadtree representation for operations between two objects. The most common uses are for Boolean operators which include union, intersection, difference and complementary, Figure 5-4. Set A Union: Set B AB Intersection: Difference: AB Complementary: BA Figure 5-4. Quadtree Boolean Operations 5-5 AB 5.3 Layer manufacturing of 3D physical fractal objects In this section, the quadtree-based shell of the fractal is generated using a hybrid algorithm, those based on GCQE and combining boundary quadtree-based shell extraction, quadtree-based boundary evaluation and non-manifold tessellation. Three information are needed to create the VRML file format. First, the geometrical information of the quadtree-based shell QJ-set w is needed which is obtained by combining all quadtree-based faces Fquadtree(k) of the six different planes S for all slabs S. It is represented by explicitly using a list of vertex coordinates: V = ((x1, y1, z1), (x2, y2, z2), …, (xn, yn, zn)) which is obtained from the four corners of the different quadrants Q. Second, the information is stored as an index list (or pointers), which defines the polygons (defined by simple line segments (E)) in a vertex V list. Third, color addition is used to define the color of each polygon being referred in the index list. Figure 5-5 shows the topological data structure of the hybrid algorithm. 5-6 Figure 5-5. Topological data structure for the hybrid algorithm The procedure to obtain the information is shown in the following algorithm and the detail is described in the following subsections. 5-7 Procedure hybrid algorithm (Quadtree-based multi-resolution shell model) Input: Mandelbrot set is represented by a Boolean value fill = {1 (Red) or 2 (Green) or 3 (Blue) or 0 (White)}, e.g. pixel (x, y) refers to the position of an element Screen size= maxX u maxY Quadrants size = 2qu2q Level of quadtree = Log (Quadrants size)/log2-1 Output: fractal(x, y, z) is represented by quadtree { /* Initialization: Read voxel and write voxel operations*/ Do While (Input x, y and z values and color value of fractal model) a=a+1 b=b+1 c=c+1 V (a, b, c) = color /*Value “0” represents the outside of main pattern*/ End While For z =0 To MaxZ For x=0 To MaxX+1 For y=0 To MaxY+1 /*Check whether V(x1, y1, z1) belongs to black (value =1) or not */ If V(x1, y1, z1) = color Then /*Boundary single shell extraction: the single voxel shell of discretized fractal computer model is traced via morphological outlining by considering 6 adjacent voxels N6 (V) to all V(x1, y1, z1).*/ If V(x1+1, y1, z1) =0, V(x11, y1, z1) =0, V(x1, y1+1, z1) =0, V(x1, y11, z1) =0, V(x1, y1, z1+1) =0 or V(x1, y1, z11) /*The single colored pixel shell is obtained by considering in 6 different directions of the face of the single voxel V(x1, y1, z1).*/ Then P(y, z ) =color P(y, z ) =color P(x, z ) =color P(x, z ) =color P(x, y ) =color P(x, y ) =color /* V(x1, y1, z1)= color and V(x1+1, y1, z1) =0 */; /* V(x1, y1, z1)= color and V(x11, y1, z1)=0 */; /* V(x1, y1, z1)= color and V(x1, y1+1, z1) =0 */; /* V(x1, y1, z1)= color and V(x1, y11, z1) =0 */; /* V(x1, y1, z1)= color and V(x1, y1, z1+1) =0 */ or /* V(x1, y1, z1)= color and V(x1, y1, z11) =0 */ End If End If Next y Next x 5-8 /*Boundary quadtree-based shell extraction*/ /* Undergoing GCQE for the case of P(x, y) =color and V(x1+1, y1, z1) =0 in S (+xy): Quadrants [4q] store four grouped Quadrants*/ If (all quadrants are homogenous) then return; /*Square takes the quadrant size in each recursion, e.g., quadrant (level q) = 2 q u 2q, quadrant (level q-1) = 2q-1 u 2q-1,…. quadrant (level 1) = 2 u 2*/ Squarestart = Quadrants size For q = level of Quadtree To 0 Step -1 Square = Squarestart For x = maxX + 1 To 0 Step - square For y = maxY + 1 To 0 Step - square If (pixel belongs to inside, i.e. pixel(x, y) = color) Then Check =True /*Check whether the pixel (x, y) and its 4q neighbours is homogenous or not*/ For x1 = x To x + square - 1 If check Then For y1 = y To y + square – 1 If pixel (x1, y1) = 0 Then check = False End If Next y1 End If Next x1 /* Define the starting point of k level and the clustering size */ i =0 If check =True Then i=i+1 /* i refers to the level of clustering */ TreeX (i) = x /* Store starting position x of the k level */ TreeY (i) = y /* Store starting position y of the k level */ TreeType (i) = square /* Declare the clustering size of the composition level (square) in quadtree*/ /* Turn all the color pixels to white to avoid the clustering procedure running throughout the lower level again */ For x2 = x To x + square - 1 For y2 = y To y + square - 1 pixel (x2, y2) = 0 Next y2 Next x2 End If End If Next y Next x SquareStart = SquareStart/2 Next q TreeMax =i /*Maximum level of quadtree*/ 5-9 /* To undergo GCQE for other 5 directions in the 3D co-ordinate system*/ /* Quadtree encoding for the case of P(x, y) =color, V(x1, y1, z1) = color and V(x11, y1, z1) =0 in S (xy)*/ /* Quadtree encoding for the case of P (y, z) =color, V(x1, y1, z1) = color and V(x1, y1+1, z1) =0 in S (+yz)*/ /* Quadtree encoding for the case of P (y, z) =color, V(x1, y1, z1) = color and V(x1, y1, z1) =0 in S (yz)*/ /* Quadtree encoding for the case of P(x, z) =color, V(x1, y1, z1) = color and V(x1, y1, z1+1) =0 in S (+xz)*/ /* Quadtree encoding for the case of P(x, z) =color, V(x1, y1, z1) = color and V(x1, y1, z11) =0 in S (xz)*/ /* Quadtree-based boundary evaluation: preparing a facet from 4 corners of V(x1, y1, z1) with 6 faces in 3D space for triangulation */ For i =1 To TreeMax Squarestart =initialSquare For q = level of Quadtree To 0 Step -1{ Square = Squarestart If Treetype (i) = Square Then Define 4 corners of V(x1, y1, z1) with 6 faces in 3D space according to the corresponding TreeX (i), TreeY (i) and TreeType (i) /* Non-manifold tessellation*/ Write and update the index list (the index list of the triangular mesh is generated with reference to the defined coordinates) during each recursion Write and update the corner coordinates of each face during each recursion Triangle = Triangle + 4 End If SquareStart = SquareStart/2 Next q Next i } End Procedure hybrid algorithm (Quadtree-based multi-resolution shell model) 5-10 5.3.1 Quadtree-based boundary shell extraction The raster-scan approach and GCQE are employed to obtain a single quadtree-based boundary shell of the QJ-set. Similar to single voxel shell boundary extraction (mentioned in Section 4.2.1), the boundary points are obtained by eroding the object with a structure element which contains the all six possible neighbors of the central voxel. Afterwards, GCQE is applied on each data slice which is an infinitesimal cross-section of the complex fractals at some constant z-value. Then, the 3D model can be though of as a stack of quadtree-based model arrays (Figure 5-6). Figure 5-6. A stack of slabs (S) 5.3.2 Quadtree-based boundary evaluation A quadtree-based boundary evaluation is used to define the fractal object by six sets of multi-resolution rectangular regions (G) from the four leaf node corners in six different directions for triangulation. The six regions G1(V1V2V4V3), G2 (V5V8V7V6), G3(V9V11V12 V10), G4(V13V14V16V15), G5(V17V19V20V18) and G6(V21V22V24V23) are defined by six variables, they are TreeX(k), TreeY(k), TreeType(k), the x- and y-starting point of level k of the quadtree and its size of quadrants respectively (Figure 5-7). The boundary region of the fractal model is called the quadtree-based 6 multi-resolution shell model G k . Topologically, each boundary region is enclosed i 1 i 5-11 by a loop of boundary curves. The 4 corner coordinates of each quadrant will be assigned and stored in memory. The geometrical information of the quadtree-based shell model is then stored in chain code (Figure 5-8). Figure 5-7. Starting point of level k of the quadtree and its size of quadrants respectively G1(V1V2V4V3) G2(V5V8V7V6) G3(V9V11V12V10) y x z G4(V13V14V16V15) G5(V17V19V20V18) G6(V21V22V24V23) Figure 5-8. Four corners of quadtree-based shell for six faces with multi-resolution 5-12 5.3.3 Non-manifold tessellation The boundary of a quadrant consists of 2 triangular facets 'quadtree. These facets are extracted to construct the triangulatable spatial polygons pointing to outward normal (n) with the given position vectors in . The boundary shell of the fractal is, thus, represented by a triangular mesh. The index of the triangular mesh is generated with reference to the geometrical information (Figure 5-8). All triangles around a vertex must satisfy topological rules for a valid VRML model. All face normals must point towards the same side. Each edge must be shared by exactly two triangles. Moreover, the color index of the triangular mesh which takes the value 0, 1 or 2 for the red, green, and blue components, respectively, is assigned to each 'quadtree with reference to the index list of the triangular mesh in VRML format (Figure 5-9). Figure 5-9. The color index of the triangular mesh 5-13 5.4 Dust elimination 5.4.1 Dust elimination by quadtree encoding Corner connected quadrants and disconnected dust of the fractal objects (Figure 5-10) are disposed in order to obtain a 2D fractal pattern represented by a simple polygon. Most LM machines can only produce single shell prototype with one closed surface. Therefore, disconnected point clouds, known as 'Fatou dust’ and quadrants connected only at corner without any edge sharing cannot be manufactured using some LM machines (e.g. FDM, LOM, etc.). By avoiding to enter below certain level of the tree structure it is possible to filter out the “dusts” of the fractal region, resulting in a less precise but more compact version of the data. This method is efficient and can save much computational time but some details are lost and may affect the fractalness appearance (Figure 5-11). Figure 5-10. Mandelbrot set: quadtree encoding starts from level six and stops at level one 5-14 Some details are loss Figure 5-11. Mandelbrot set: quadtree encoding starts from level six and stops at level two 5.4.2 Dust elimination by “mask” filtering It is imperative to eliminate unwanted artifacts by “mask” filtering pre-processing. Figure 5-12 shows that higher resolution of fractal objects (100 pixels u 100 pixels) has many corner connected objects and “Fatou dust”. Figure 5-12. Higher resolution of Julia set 5-15 2D spatial filter can be defined as area operators that map a 2D fractal object a(x, y) into another object b(x, y): b(x, y) = [(a(x, y)) (5.1) The implementation of the filtering in the discrete spatial domain is straightforward. The filter coefficients mask in form of matrix is convolved with the 2D object a(x, y). Filtering function [ is performed by letting the mask move over the fractal pattern. Neighborhoods of a(x, y) can be specified in terms of masks like those shown in Figure 5-13. Figure 5-13. 3 u3 filter mask 5-16 For example, the interior and exterior dust of 1u1 pixel can be disposed by the specific filter masks shown in Figure 5-14. For example, if a portion of the fractal pattern is equal to the filter mask A, the coordinate (x, y) will be converted from blue color (1) to white color (0). And, if a portion of the fractal pattern is equal to the filter mask B, the coordinate (x, y) will be converted from white color (0) to blue color (1). The result of dust elimination is shown in Figure 5-14(b). Interior dust by mask B Mask filtering by mask A and B Exterior dust disposed by mask A (a) (b) A B (c) Figure 5-14. Mask filtering of interior and exterior dust of 1u1 pixel (a) input pattern (b) modified pattern (c) filter mask patterns 5-17 The interior and exterior dust of 1u1 pixel filtering process is shown in the following pseudo code. Procedure mask_ filtering Input: fractal pattern represented by pixels, p(a, b, c) of black cells Screen size = maxX u maxY u max Z Output: Simply connected fractal pattern without Fatou dust and corner connected objects { /* Initialization*/ Do While (Input x and y values of the fractal pattern) x=x+1 y=y+1 a(x, y) = 1 /*Value “1” represents the main pattern*/ End While /*Dispose the 1u1 pixel dust */ For p = 1 To maxY For q = 1 To maxX - 1 If a(x, y) = 0 Then check = False Mask of interior dust of If a(x, y - 1) = 1 Then 1u1 pixel If (x, y + 1) = 1 Then If a(x - 1, y) = 1 Then If a(x + 1, y) = 1 Then check = True End If End If End If End If If a(x, y) = 1 Then check = False If a(x, y - 1) = 0 Then Mask of exterior dust of If (x, y + 1) = 0 Then 1u1 pixel If a(x - 1, y) = 0 Then If a(x + 1, y) = 0 Then check = True End If End If End If End If If check = False Then /*Display the fractal pattern without dust by a number of line segment. Assume the pixel size is value 1*/ If a(x, y - 1) = 1 Then PX1 = x - 0.5 PY1 = y - 0.5 PX2 = x + 0.5 PY2 = y - 0.5 Create line PX1, PY1, 0, PX2, PY2, 0 End If If a(x, y + 1) = 1 Then PX1 = x - 0.5 PY1 = y + 0.5 PX2 = x + 0.5 PY2 = y + 0.5 5-18 Create line PX1, PY1, 0, PX2, PY2, 0 End If If a(x - 1, y) = 1 Then PX1 = x - 0.5 PY1 = y - 0.5 PX2 = x - 0.5 PY2 = y + 0.5 Create line PX1, PY1, 0, PX2, PY2, 0 End If If a(x + 1, y) = 1 Then PX1 = x + 0.5 PY1 = y - 0.5 PX2 = x + 0.5 PY2 = y + 0.5 Create line PX1, PY1, 0, PX2, PY2, 0 End If End If End If Next p Next q End Sub } End Procedure mask_ filtering After the filtering, the noisy areas get smoothed out. Julia set without dust is shown in Figure 5-15. Figure 5-15. Noisy areas get smoothed out 5-19 Many complex fractals may include another shape of Fatou dust. Therefore, rectangular, L-shape and T-shape mask should be considered. See Figure 5-16. (a) Julia set: c= -0.37+0.658i and resolution: 200 u 200 pixels (b) Square dust and its binary representation 5-20 (c) Rectangular dust and its binary representation 5-21 (d) T-shape and L-shape dust Figure 5-16. Different shapes of Fatou dust 5-22 After pixel sorting, the noisy areas get smoothed out. A Julia set without dust is shown in Figure 5-17. This filtering method can also be applied to 3D fractal pattern. Figure 5-17. Julia set: c= -0.37+0.658i without dust 5-23 CHAPTER 6 TOOLPATH GENERATION FOR LM OF FRACTALS 6.1 Methodology Current process planning methods are mainly devised for the Euclidean geometry, but not fractal geometry. Thus, all process planning tasks have to be reconsidered for fractal objects and additional steps have to be developed. For this purpose, a grid-based navigation algorithm is proposed for generating LM toolpaths of complex, multiply IFS connected and self-similar fractal objects. In order to obtain the LM toolpath, six steps are required. The first step is to discretize the fractal object into a computable form with a prescribed iteration level. The overall geometry of the fractal object will then be described by a binary spatial occupancy representation, which is to be updated by means of regularized set operations and affine transformations in each recursion. Consequently, this method works on the LM resolution (represented by rectangular grid) chosen so that a predefined tolerance for surface roughness is satisfied. Then, multi-resolution fractal patterns are generated by dilation mapping and clustering based on different tool sizes of a LM machine (e.g. diameter of FDM’s nozzle). Afterwards, contouring and area filling are used to generate the toolpath. The contouring of each discretized fractal slab is generated via an 8-neighbours metric. Then, the slab contour is represented by a number of closed 6-1 connected linear segments. For area filling, alternately oriented rays covering adjacent slabs and spiral patterns (Figure 6-1) are used. (a) (b) Figure 6-1. Contouring and area filling (a) alternate oriented rays covering adjacent slabs and (b) spiral patterns Moreover, appropriate offset is used to prevent material overlap during the toolpath generation. In this way, 3D physical fractal objects can be produced using LM machines. The proposed toolpath generation method has been simulated graphically and validated by the physical realization of a typical IFS multiply fractal object, the Menger sponge. Figures 6-2 and 6-3 show the workflow of approximating a 2D fractal object and the workflow to LM fractal objects. 6-2 Figure 6-2. The workflow to approximate 2D fractal objects Figure 6-3. The workflow to LM fractal objects 6-3 6.2 Computer model of multiply IFS fractals 6.2.1 Mathematical model of multiply IFS fractals Before going into the description of the method, we will briefly review the mathematical definition of Menger sponge. The first step is to discretize the Menger sponge into a computable form with prescribed iteration level. The overall geometry of the fractal object (Fn) will then be described by binary spatial occupancy representation, which is to be updated by means of regularized set operations and affine transformations in each recursion. Each regularized Boolean set operator in terms of the corresponding ordinary Boolean set operator is defined as A op* B = closure(interior(A op B)) (6.1) where op is one of , or and closure(interior(x)) represents regularization (closure of interior) of the point set. A recursive affine transformation is formulated as § x n 1 · ¨ ¸ ¨ y n 1 ¸ ¨z ¸ © n 1 ¹ §a b ¨ ¨d e ¨g h © c ·§ x n · § j · ¸¨ ¸ ¨ ¸ f ¸¨ y n ¸ ¨ k ¸ i ¸¹¨© z n ¸¹ ¨© l ¸¹ (6.2) Each affine transformation will generally yield a new attractor in the final image. The form of the attractor is given through the choice of the coefficients a, b, c, …, and l which uniquely determine the affine transformation. To get the desired shape, a 6-4 collage of several attractors may be used (i.e. several affine transformations). For an initial set F0, which is a unit cube in Euclidean space , is divided into 27 equal sub-cubes and the regularized set difference operation (*) is undertaken to remove the central block of sub-cube and its 6 neighbors to become F1. By repeating this operation, the Menger sponge is obtained (Figure 6-4). Figure 6-4. Menger Sponge 6-5 To obtain the voxelized computer model of the Menger sponge, the algorithm is shown in the following pseudo code. Procedure Menger sponge generation (Cube_to_difference) Input: Size of voxel (Vs) = 'x 'y 'z, where, 'x = 'y z 'z No of iteration level: k Co-ordinates of initiator (1st level): total 20 cubes represented by {FilledX (x), FilledY (x), FilledZ (x)} Removed co-ordinates of initiator: central block of sub-cube and its 6 neighbors represented by {EmptyX (x), EmptyY (x), EmptyZ (x)} Output: voxel-based Menger sponge /*Initialization*/ /*Define how many sub-cubes to represent a unit cube, i.e. if k = 3, total 3u3u3= 27 sub-cubes */ For x = 0 To (3 ^ k - 1) For y = 0 To (3 ^ k - 1) For z = 0 To (3 ^ k- 1) Cube(x, y, z) = 1 Next z Next y Next x Sub Eliminate ( ) /* Undertake Boolean operation (*) */ For x = (CoX) To ((Step - 1) + CoX) For y = (CoY) To ((Step - 1) + CoY) For z = (CoZ) To ((Step - 1) + CoZ) Cube(x, y, z) = 0 N=N+1 Next z Next y Next x End Sub Sub Level_Output() /*Level 1*/ If k >= 1 Then Step = 3 ^ (k - 1) For a = 1 To 7 CoX = EmptyX(a) * (3 ^ (k - 1)) CoY = EmptyY(a) * (3 ^ (k - 1)) CoZ = EmptyZ(a) * (3 ^ (k - 1)) Goto Eliminate Next a 6-6 /*Level 2*/ If k >= 2 Then Step = 3 ^ (k - 2) For a = 1 To 20 For b = 1 To 7 CoX = FullX(a) * (3 ^ (k - 1)) + EmptyX(b) * (3 ^ (k - 2)) CoY = FullY(a) * (3 ^ (k - 1)) + EmptyY(b) * (3 ^ (k - 2)) CoZ = FullZ(a) * (3 ^ (k - 1)) + EmptyZ(b) * (3 ^ (k - 2)) Goto Eliminate Next b Next a . . . /*Level n*/ If k >= n Then Step = n ^ (k - n) For a1 = 1 To 20 For a2 = 1 To 20 . . . For a n-1= 1 To 20 For b = 1 To 7 CoX = FullX(a1) * (3 ^ (k - 1)) + FullX(a2) * (3 ^ (k - 2)) + FullX(a3) * (3 ^ (k 3)) + …+EmptyX(d) * (3 ^ (k - n)) CoY = FullY(a1) * (3 ^ (k - 1)) + FullY(a2) * (3 ^ (k - 2)) + FullY(a3) * (3 ^ (k - 3)) + …+EmptyX(d) * (3 ^ (Levelno - n)) CoZ = FullZ(a1) * (3 ^ (k - 1)) + FullZ(a2) * (3 ^ (k - 2)) + FullZ(a3) * (3 ^ (k - 3)) + …+EmptyX(d) * (3 ^ (k - n)) Goto Eliminate Next b Next a . . . Next a2 Next a1 End If End If . . . End If End Sub } End Procedure Menger sponge generation 6-7 6.2.2 Slab model In order to create data that can be used to build a part one level at a time, slicing process is performed to obtain necessary 2D data for a LM process. In other words, a 3D model can be thought of as a stack of 2D model arrays and each 2D array is called a slice or slab model. A slice is an infinitesimally thin cross-section of a part at some constant z-value. Curves, or topological contours, are consequently produced for each slice. All the curves are made up of straight-line segments; the end of each segment is called a vertex. These slices are indexed from bottom to top so that the bottom-most slice is numbered “0”, the next slice is numbered “1”, and so forth. More precisely, the model is the set: {(s, r, c) | 0d s< nslices, 0d r< nrows, 0d c< ncolumns} where nslices, nrows, ncolumns denote the number of slices, rows and columns. (6.3) The 2D computer models of Menger sponge (Figure 6-5) are obtained from different z-level slicings of the 3D model. (a) (b) (c) (d) Figure 6-5. 2D computer models of Menger sponge 6-8 Some 2D computer models can be represented by a Sierpinski carpet (Figure 6-5 a). The 2nd level Sierpinski carpet (F2) is obtained by set difference operations of 8 children from the parent Sierpinski carpet after suitable affine transformation (Figure 6-6). F1= F0 –* F0 ª1 «3 « «0 « «0 «¬ Fn= Fn-1 –* {F n-1 ª «1 «0 « 2l « ¬3 º 0 0» » 1 0» 3 » 0 1» »¼ ª1 «3 « «0 « «0 «¬ ª «1 «0 «l « ¬3 º 0 0» 1 0» » l 1» 3 ¼ (6.4) º 0 0» ª1 0 0º » 1 0» } { ««0 1 0»» + 3 » «¬0 0 1»¼ 0 1» »¼ ª º 0 0» «1 1 0» + « 0 » « 2l l 1» « 3 ¼ ¬3 0 1 2l 3 º 0» 0» + » 1» ¼ ª «1 «0 «l « ¬3 0 1 2l 3 ª º « 1 0 0» « 0 1 0» + «l » 0 1» « ¬3 ¼ º 0» 0» + » 1» ¼ ª «1 «0 « «0 ¬ 0 1 2l 3 ª «1 «0 « 2l « ¬3 º 0 0» 1 0» + » 0 1» ¼ º ª º 0 » «1 0 0 » 0 » + «0 1 0 » } » « » l 1 » «0 1» 3 ¼ ¼ ¬ where F is a fractal region, l is equal to 3n, n is the level of iteration, 32n is the total number of equally sized pixels which is also the smallest grid cell. F1 F2 Figure 6-6. 2 level Sierpinski carpet obtained from F1 to F2 nd 6-9 (6.5) 6.3 Resolution adjustment Before further discussion of the methodology, three basic assumptions should be noted: From the perspective of computational modelling, the infinite state of the fractals cannot be modelled. Actually, natural object modelled for physical making has to be in finite form. Therefore, iteration level of 3D computer fractal models are assumed to be finite and prescribed; In the stage of toolpath generation, fractal dimension is an integral multiple of machine resolution, and the toolsize is equal to the machine resolution ', which assumes 'x = 'y z 'z; The fractal dimensions are refined by tool geometry (tool size) consideration and tool size is an integral multiple of machine resolution In real case, the designer does not input the LM machine resolution as the fractal dimension. Since, the LM machine can only produce finite physical objects, the intermediate state of IFS generated model (F) will be the main focus; such model is also called prefractal (Df). Df may have more digits than the resolution of LM machine (Dm), and Df is probably not a multiple of Dm, Df z n Dm, F n (Dx, mu Dy, m) 6-10 and n (Dx, mu Dy, m) F (Figure 6-7). In this situation, some portion of F is inside Dm and some other portion of Dm inside F. Therefore, it is undesirable and needs rounding or truncating the original dimension of the fractal object. In other words, the pre-fractal dimension is replaced by the integral multiple of LM machine resolution with the required number of digits closest to it. Figure 6-7. Approximation: rounding up or down The approximation of the pre-fractal in x-dimension (Figure 6-8) and y-dimension (Figure 6-9) are ~ Let D f , D f Df ~ ~ , where D f is an approximation to D f , D f := D f , VԦmԦ10e, where V is sign ,+1 (toolpath data should be positive), m is mantissa, 1<m<10, e is exponent, which is an integer. 6-11 The approximation of the pre-fractal dimension will be ~ Df where, § n · = D f ನ ¨¨ ¦ D f O' ¸¸ ©G 1 ¹ (6.6) n 1 ' ¦ D f O' t 0 , Oള+ 2 G 1 Therefore, ~ '(n + 1) > D f ( x) > 'n, ~ '(m + 1) > D f ( y ) > 'm, where ' is x and y-resolution of LM machine ('x = 'y z 'z), n is multiple of ' for x-resolution and m is multiple of ' for y-resolution. Figure 6-8. Relationships between rounding up/down of the pre-fractal in x-dimension 6-12 (6.7) (6.8) Figure 6-9. Relationships between rounding up/down of the pre-fractal in y-dimension Four possible approximations are used for rounding up or down the fractal dimension. They are: (n + 1)(m + 1)'2 means that both xy-resolution rounding up (n + 1)m'2 means that x-resolution rounding up while y-resolution rounding down n(m + 1)'2 means that x-resolution rounding down while y-resolution rounding up nm'2 means that both xy-resolution rounding down Therefore, the x-dimension approximation of the pre-fractal is If Df (x) +0.5' t (n+1)' Then Df (x) # (n+1)' ~ D f ( x) 1 nroundup= ' (6.9) Else if Df (x) +0.5' d(n+1)' Then Df (x) # n' ~ D f ( x) nrounddown = ' 6-13 (6.10) Similarly, the y-dimension approximation of the pre-fractal is If Df (y) +0.5' t (m+1)' Then Df (y) # (m+1)' ~ D f ( y) nroundup= 1 ' (6.11) Else if Df (y) +0.5' d(m+1)' Then Df (y) # m' ~ D f ( y) nrounddown = ' (6.12) Eventually, the approximated fractal dimension, Approx (Df) ~ ~ = D f ( x) Ԧ D f ( y ) = {{(n + 1)(m + 1)'2 } {(n + 1)m'2} {(m + 1)n'2} {nm'2}, n, mള {n 0, m 0} } 6-14 (6.13) 6.4 Toolpath generation of multiply IFS fractals From the viewpoint of the Euclidean geometry, the contour of a fractal curve is a 2D non-simple and concave polygon. In other words, the curve can be fabricated in a single slab with LM technique. Thus, point-to-point toolpath can provide the geometrical information for LM machine fabrication. The toolpaths for both contouring and area filling are represented by a list of (x, y) coordinate values which can be obtained directly by the grid-based navigation algorithm. The geometrical information of a single slab is needed. It is represented by explicitly using a list of vertex coordinates: P = ((x1, y1), (x2, y2), …, (xn, yn)). Before toolpath generation, multi-resolution fractal patterns for different LM machine tool sizes will be discussed. 6-15 6.4.1 Tool size consideration In this section, the traces of toolpath for LM machines with different tool sizes will be simulated. Tool size consideration for a LM surface can be approximated or represented by the grids. This approximation can be expressed in terms of the following two containment conditions between the fractal pattern (F) and tool size (l): (a) Fl (excess deposition) and (b) lF (deficient deposition). Suppose rfinest =lul is the side of the finest machine resolution, there are two options for making coarser pattern. They are even (Reven = 2n l u 2 n l) and odd (Rodd = 3n l u 3n l) (Figure 6-10). (a) (b) (c) Figure 6-10. Toolsize consideration with negative tolerance (a) finest toolsize, (b) even number multiple of finest toolsize, (c) odd number multiple of finest toolsize 6-16 In order to obtain fractal patterns with variable machine tool sizes, three steps are needed. First, a variable binary dilation mask using the simplest structuring elements is defined from the tool size. The mask is defined by N which is the number of neighbors of P(x, y), Neven = 2n u 2n –1 and Nodd = 3n u 3n –1, where nt1. Then, the mask is mapped onto the original pattern with raster scanning. Finally, coarser pattern can be obtained by clustering. Snapshots of clustering and binary dilation are shown in Figure 6-11. Figure 6-11. Snapshots of clustering and binary dilation (a) even number multiple of finest toolsize, Neven = 3 and (b) odd number multiple of finest toolsize, Nodd = 3 6-17 6.4.2 Contouring toolpath of multiply IFS fractals The contouring toolpath is a set of plane curve described by ordered n-tuples (P1 ,…, Pn) as long as n t 2 (Euclidean dimension (DE) of the plane curve equals to two, i.e. DE =2). The contour of each discretized fractal slab Fn, denoted by E(Fn), is traced via morphological outlining by considering the Moore neighborhood of a pixel (i.e., the 8-adjacent pixels N8(P) to all P(x, y) include the 4-neighbors plus four diagonally adjacent pixels, these pixels are P1, P2, P3, P4, P5, P6, P7 and P8 as shown in Figure 6-12. Figure 6-12. Notation used for defining the relative locations of pixels with respect to a pixel P N8 (P) = {(x, y-1), (x, y +1), (x -1, y), (x +1, y), (x -1, y -1), (x +1, y -1), (6.14) (x -1, y +1), (x +1, y +1)} Toolpath contour E(Fn) = (Fn P1) –Fn i.e., the dilation by one pixel P1 followed by subtraction. 6-18 (6.15) Figure 6-13. Morphological outlining The tool proceeds from one grid centre-point to a single layer. The slab contour is traced out by a number of closed connected linear segments. Finally, the profiles of a 3D fractal object are obtained by a number of consecutive 2D slice of E(Fn) along the z-direction. Contour toolpath of fractal | ¦ E k (Fn ) k k = 0,1,2,...,N (6.16) The toolpath information can be used in point-to-point NC machining, as the information is coordinate based. The grid definition is filled with material and the entire area of the grid is covered by the tool (Figure 6-14). Figure 6-14. Grid definition 6-19 The width of the border region is calculated from the separation distance between two pixel centroids. The result of the outer and inner perimeter roads is shown in Figure 6-15. Connecting all pixels by a number of line segment Figure 6-15. Slab contour is obtained by a number of closed connected linear segments 6.4.3 Area filling of multiply IFS fractal For area filling, zig-only path or spiral pattern are selected to fill the interior area of the fractal pattern. For spiral pattern, it can be obtained by morphological operation and the equation is Spiral area filling toolpath = w1(Fn) + w2(Fn) + w3(Fn) +… + wi(Fn) n = ¦ wi(Fn) i 1 where w1(Fn) = Fn – (FnാP1) w2(Fn) = (Fn – w1(Fn)) – ((Fn – w1(Fn))ാP1) w3(Fn) = (Fn – w1(Fn) – w2(Fn)) – ((Fn – w1(Fn) – w2(Fn))ാP1) .. . wi(Fn) = (Fn –w1(Fn) –w2(Fn)……–wi(Fn)) – ((Fn –w1(Fn) –w2(Fn) ……–wi(Fn))ാP1) i.e., the erosionാby one voxel P1 followed by set difference (–). 6-20 (6.17) Similar to toolpath contour, the tool proceeds from one grid centre-point to the next layer and the slab contour is then traced out by a number of closed connected linear segments. The area filling of one slice is Toolpath of fractal = Contour toolpath + Area filling n (6.18) | ¦ ( E k ( Fn ) ¦ wi(Fn)) k i 1 where k = 0, 1, 2,..., N, i = 0, 1, 2,..., n For zig-only path, ray representation [Hartquist 1999] in adjacent slabs will use different orientations to improve interlocking. Figure 6-16 shows the 45o raster angle of area filling that is obtained from a ray representation RR (F; G) of one slab. It is a collection of line segments generated by ‘clipping’ a regular grid of lines, G, against F. In 3D, the slab model can be defined as: RR (F; G) = (Li, j F) i, j where Li, j is a line in a grid G indexed by position (i, j). 6-21 (6.19) Here, Gk depends on the machine working envelope, and Gk-1 and Gk will have rays of different orientations (Figure 6-17) and multi-view orthographic projection representation of area filling is shown in Figure 6-18. As a result, the Menger sponge can be approximated as: Menger sponge | ¦ RR k E k(Fn)) k = 0,1,2,...,N k Figure 6-16. Rays in one slab (6.20) Figure 6-17. ¦ RR k k Figure 6-18. Multi-view orthographic projection representation of area filling (F2) 6-22 CHAPTER 7 CASE STUDIES In order to validate and to verify the proposed theories, case studies are employed for implementation. The case studies, in fact, works out the example being used in Chapters 4, 5 and 6. The voxel-based and quadtree-based generative algorithms are used to model colored fractal objects and grid-based navigation algorithm is used to generate the toolpath of LM fractal objects. The physical fractal object generation program is implemented in Visual Basic and SoildWorks with Application programming interface (API). 7.1 Euclidean transformed fractal objects From literature survey in Chapter 2, there is an infinite number of fascinating complex set fractals. Figure 7-1 shows some examples of complex fractals [Pickover 1998]. Chapter 4 discussed how to model a quaternion Mandelbrot set. The following sections will show that the proposed algorithm can model a number of Euclidean transformed fractal objects as the proposed algorithm is a very intuitive and user friendly modelling scheme, which can be made complementary to the Euclidean CAD software. 7-1 (a) Thorn Fractal, xn+1 = yn+1 = xn + cx , cos( y n ) (b) Fractal created using the Newton Raphson method , z4 + z3 + z - 1 = 0 yn + cy cos( x n ) (c) Mandelbrot set, f(z) = sin (z/c) + z 0 (d) Filled-in Julia set generated from z o z-2 + c with c = 0.106+0.619i (e) Lemon fractal, zn+1 = z0 zn2 (zn2 + 1) / (zn2 - 1)2, centered at 0 + 0i (f) Reverse Julia 7-2 (g) Marek Dragon, zn+1 = zn + zn2 , zn is e (h) Inverse Mandelbrot set 2S r i (i) Julia set of sin(z), zk+1 = c sin(zk), where c = 1 + 0.3i (j) Cactus fractal, f(zn+1) = zn3 + (z0-1)zn-z0 (k) Biomorphs fractal, f(zn+1) = sin(zn) + ezn + c (l) Logistic equation and bifurcation diagram, f(x) = R x (1 - x) 7-3 (m) Blaschke products from § 1 · ¸¸ exp i n 1 an = ¨¨1 © (n 1) ¹ (n) Composite Mandelbrot set with -3d Re(c) d 1, -1.5d Im(c) d 1.5 Figure 7-1. Examples of fractal images 7.1.1 Fractals with host geometry A fractal pattern for engraving or embossing can be prepared by projecting a fractal pattern onto a free-form surface. Figures 7-2 and 7-3 show examples which parallel project a Julia set onto a Euclidean surface and NURBS surface respectively. Figure 7-2. Host geometry on NURBS surface 7-4 Figure 7-3. Host geometry on Euclidean object’s surface 7.1.2 Fractals with translational sweep representation Sweeping a fractal pattern along a trajectory through space defines a new fractal object, called a sweep. The simplest kind of sweep is defined by 2D area swept along a linear path normal to the plane of the area. This is known as a translational sweep or extrusion [Rooney 1987]. To fully exploit the potential, concerning transformation and sweeping, Figure 7-4 shows a Julia set with dome feature which is constructed by simple translational sweep and dome operation. Figure 7-5 shows a volcano of Mandelbrot set which is created by a series of z-level transformations and Boolean operations to union (*) a number of Mandelbrot sets with different escape sets Ec. These fractal models were generated by the proposed algorithm and SoildWorks software. 7-5 Figure 7-4. Julia set with dome feature Figure 7-5. Volcano of Mandelbrot set 7.2 N-D colored computational fractal models In this section, a common complex fractal, the Quaternion Julia set, is selected to explain the theories of 4D fractal realization. The algorithm is shown as follows. Procedure: Quaternion Julia_Set /*different parameters can generate different fancy patterns*/ Input: Parameter r, a, b and d where c= r +ai+ bj+dk /* Window size setting can generate certain interesting patterns for those to be manipulated by LM machines*/ Window size (x max , x min , ymax , ymin , zmax, zmin) /*Resolution setting based on LM machines*/ No. of voxels = MaxY u MaxX u MaxZ /*Setting a condition to define when the iteration function should be stopped and to assign color on a voxel during each iteration*/ Blowup parameter: escape time R, maximum number of iterations K and colors C1 & C2 defined based on R1 and R2 7-6 Begin For all pixels (p, q) in the window, do Check = False Step (1): set dx = (x max - x min) /MaxX x = x min + dx * x 0 x = ymin + dx * y 0 z = z min + dx *z 0 'w = w R =0 K=0 Begin Step (2): While Check = False x n+1= x n2 y n2 z n2 wn2 r , y n+1= x n* y n +a, z n+1= x n* zn +b, w n+1= x n* wn +d, n= n+1; Step (3): (i) if n =K, color the pixel (p, q) with black color (ii) if x n2 y n2 z n2 wn2 >R and n>K, go back to Step (2); (iii) if x n2 y n2 z n2 wn2 d R1 , color the pixel (p, q) with color C1 and x n2 y n2 z n2 wn2 d R 2 , color the pixel (p, q) with color C2 End End 7-7 7.2.1 Voxel-based generative algorithm The single voxel boundary shell w is in general disconnected such that each is represented by a closed shell. Each disconnected single voxel shell is represented by connected facets. The VRML file of a colored QJ-set and its computer model can be obtained from rules as mentioned in Chapter 2 and algorithm mentioned previously. A number of colored quaternion Julia set, zn+1 = zn+ c with different parameters (where c= r +ai+ bj+dk) are generated. Figures 7-6, 7-7 and 7-8 show the VRML file of monochrome QJ-sets, colored QJ-sets and 3D multiply IFS fractals (e.g. Menger sponge) respectively. And, the VRML models can be used in LM construction as well as visualization. (a) QJ-set, c = (-0.162, 0.163, 0.560, -0.599) 7-8 (b) QJ-set, c = -0.08, 0, -0.8, -0.3 Figure 7-6. Monochrome QJ-sets (a) Colored QJ-set, q= -0.08, 0, -0.8, -0.3 7-9 (b) QJ-set, q = (-1, 0.2, 0, 0) Figure 7-7. Colored QJ-set Figure 7-8. Menger sponge 7-10 7.2.2 Generative colored quadtree encoding Similarly, the VRML file of a colored QJ-set and its computer model can be obtained from rules as mentioned in Chapter 2 and algorithm mentioned previously. But in this case, the colored QJ-set is represented by the quadtree-based and colored boundary shell wquadtree and each disconnected multi-resolution shell is represented by variable resolution rectangular and then triangular facets 'quadtree. Figures 7-9 and 7-10 show the VRML files of 3D cross-sections of colored QJ-sets in 4D space. Figure 7-9. Colored QJ-set, q= 0.368, 50.1, 0.03, 0.01 7-11 Figure 7-10. Quadtree representation of half 4D Julia set, q= -1, 0.2, 0, 0 7.2.3 Layer manufacturing of colored and monochrome fractal objects The proposed modelling method for monochrome and colored complex fractal objects has been validated by producing on a ZTM406 3D color printer [Z-Corp.] (Figure 7-11). It is a typical LM process that can fabricate prototypes out of starch-based or plaster-based powders from Z-Corp colored machine (Figure 7-12). 7-12 Figure 7-11. ZTM406 3D color printer [Z-Corp.] Figure 7-12. 3D printing process The toolpath data of the 3D physical complex fractal objects will be converted into a Z-Corp. machine proprietary VRML format so that it can be readily loaded into the Z-Corp. machine. The slab model of the monochrome QM-set and QJ-set are shown in Figure 7-13 and Figures 7-14 respectively. Figure 7-15(a) shows the slab model of colored QJ-sets while 7-15(b) shows the corresponding colored physical fractal prototype. 7-13 Figure 7-13. Slab model of QM-set Figure 7-14. Slab model of QJ-set 7-14 (a) Slab model of color QJ-set (b) Colored physical fractal prototype Figure 7-15. Colored half QJ-set, q= -0.08, 0, -0.8, -0.3 7-15 On the other hand, the VRML format can be easily converted into other alternative RP interfaces (e.g. IGES, STEP, STL, etc.) (Figure 7-16) as it can be communicated with contemporary CAD system (e.g. 3D Studio MAX) (Figure 7-17) and CAM systems (e.g. Z-Crop colored printer, etc.). The proposed algorithm can thus handle fractal objects with different kinds of LM machines. Figure 7-16. Fractal object in STL format 7-16 Figure 7-17. QJ-set in 3D Studio MAX 7.3 Toolpath generation by grid-based navigation algorithm In the grid-based navigation algorithm, the facet approximation step in the LM process has been skipped. Moreover, the LM toolpath for the fractal curves is directly obtained from the 2D slab model. The proposed methods for toolpath generation for multiply connected and self-similar fractal objects have been validated by the physical realization of a typical IFS multiply connected fractal object, the Menger sponge in FDM 1600 machine [Stratasys 1995] of Stratasys Inc. (Figure 7-18). The toolpath data which is represented by a list (x, y) coordinate 7-17 values is modified into a FDM proprietary SML (Stratasys Modelling Language) format so that it can be readily loaded into a FDM machine. The resulting toolpaths of boundary tracing and area filling the Menger sponge and the corresponding physical FDM prototype are shown in Figure 7-19.This method can also generate the toolpaths of complex fractal objects (e.g. Q-set) (Figure 7-20). All coordinate values are prefixed by the letter “MA”, which is the code for “move absolutely” in FDM. Afterwards, the data is merged with other FDM attributes (sets, road widths, gaps between roads, etc.) to form the complete data in the SML file (Figure 7-21). SML is the file that controls a computer numerically controlled extruder head to squeeze a fine filament of melted thermoplastic through a nozzle. The nozzle deposits the heated plastic layer by layer to form the desired shape. Figure 7-18. Stratasys FDM-1600 [PolyU ISE] 7-18 (a) Toolpath of fractal objects with alternate area filling (b) Physical FDM prototype Figure 7-19. Toolpath and physical FDM prototype of Menger sponge 7-19 Figure 7-19. Toolpath of QJ-set Figure 7-20. Example of SML format 7-20 CHAPTER 8 DISCUSSION In this thesis, modelling and toolpath generation methods for multiply connected IFS and complex fractals are proposed. However, many open problems still remain unsolved. This Chapter lists out some potential areas for future research. Some of them are direct extensions of the work presented in this thesis, while others are broader concepts which require further research. 8.1 Theory 8.1.1 Limitations of modelling for fractal object fabrication The lure of cosmetic decoration and aesthetic product is due to its ability to concretely present the beauty of art. Natural object (Figure 8-1) will mainly consider complex fractal as a potential modelling vehicle for aesthetic appealing object and cosmetic decoration design. (a) Cloud (b) Coral reef Figure 8-1. Natural objects 8-1 As mentioned in Chapter 1, fractal geometry is applied in biology and used for representing some complicated structures, like the alveoli, the blood vessels, the brain, the bone, membranes and others (Figure 8-2). Figure 8-2 Human body A fractal blood vessels (Figure 8-3) is used as an example for simply connected IFS fractal model. Cylinder is the initiator of the vessels. The cylinders can be voxelized and affine transformation is used to generate the voxel-based IFS fractal with binary representation. The vessel can then be modeled by using voxel-based generative algorithm or GCQE. 8-2 Figure 8-3. Fractal blood vessels However, some of them are constructed from more than one kind of fractal objects, say multi-IFS fractals (e.g. human body) which cannot be modelled by the proposed methods efficiently. Also, multi-IFS fractal geometry theory cannot be found in the literature yet. Therefore, the immediate effort is to enhance the computational efficiency, extending the manufacturing scope, as well as to refine the fractal geometry theory for physical fractal fabrication. 8-3 8.1.2 Lamination of GCQE 8.1.2.1 Checker board fractal pattern The quadtree encoding algorithm devised reduces the amount of memory and disk space when compared to its voxel-based counterpart. Also, the GCQE accompanying with the hybrid algorithm, eliminate the “Fatou dust” and self-intersecting entities efficiently. However, if the amount of aggregation is minimal (e.g., a checker board fractal pattern (Figure 8-4)), the quadtree-based scheme is no longer that beneficial. The Menger sponge is an example of the checker board fractal pattern. (a) (b) Figure 8-4. A checker board (a) its pattern and (b) its quadtree 8-4 8.1.2.2 Computational fractal modelling The GCQE is devised to reduce the amount of space necessary to store the data through aggregation of homogeneous blocks. One quarter of QM-set will be taken as an example. The quadtree-based boundary shell of the quarter QM-set (Figure 7.11) is obtained by undertaking recursively quadtree Boolean operations to union (*) a number of quadtree base boundary shell of 2.5D Mandelbrot set. In this case, the storage space is reduced by 20% when compared with the voxel-based equivalent (Figure 8-5). z y x Figure 8-5. Quadtree-based boundary shell of the quarter QM-set with 118,416 facets and 6.2 MB storage space 8-5 z y x Figure 8-6. Voxel-based boundary shell of the quarter of QM-set with 143,246 facets and 9.31MB storage space Although the proposed method is flexible enough to represent a wide variety of fractal objects, the higher resolution of fractal object needs a large number of polygons. This fact is a problem and the resulting mesh models will take a considerable amount of computational time, slow to display in preview and in final modelling. The reason is that the proposed method needs to traverse each 2D slab of the computer model layer by layer. For this reason, a 3D data structure represented by a hierarchical structure known as an octree (Figure 8-7) can be considered. The fractal object can be constructed with constructive solid geometry (e.g. cuboid as the primitive). 8-6 1st clustering 2nd clustering 3rd clustering (a) (b) Leaf node with descendants Leaf node representing a blue color block Leaf node representing a red color block Leaf node representing an empty region Figure 8-7. Octree encoding (a) 8n regions using octree subdivision and (b) octree representation. 8-7 8.2 Implementation 8.2.1 Software Further work to enable the GUI (Graphical User interface) for higher level interaction between the product designer and the CAD/CAM system is recommended. In addition, future CAD systems should also provide synthesizing environments for “functional” design and fabrication pre-processing of heterogeneous fractal objects. 8.2.2 Hardware equipments Perfactory® Mini [Envision Technologies] aims for designers and manufacturers of small filigree parts with a high surface quality, e.g. in jewelry design, aesthetic product. With the Mini system a pixel resolution down to 32µm can be achieved. Layer thickness can be adjusted between 25µm and 50µm. The resolution of the Perfactory® Mini machine has the highest resolution (1400 x 1050 dpi) when compared with other LM machines (e.g. Multi-jet modelling [3D systems]: 656 x 656 dpi). Therefore, fractal object can be built with more details. However, this machine is not available, making fractal objects can only be tested in FDM and ZCorp LM machines. Moreover, some natural objects are composed of multi-IFS fractals, multi-materials and multi-colors. However, some LM techniques (e.g. direct metal deposition (DMD), laser engineered net shaping (LENS), direct light fabrication (DLF) and multi-material selective laser sintering (M2SLS), etc.) can only fabricate heterogeneous (multi-materials) objects or Z-Corp colored 3D printer 8-8 can fabricate a multi-colored objects. Therefore, contemporary LM technology needs to be extended to cover a larger scope. 8-9 CHAPTER 9 CONCLUSION This chapter concludes the work described in this dissertation by presenting its research contributions and findings. First, the definitions of fractal geometry and construction of fractals have been reviewed and the limitations being found are summarized in section 2.3. Then, a detailed manufacturability assessment for traditional manufacturing and layer manufacturing processes were performed and section 3.5 gives a summary of commercial LM machines’ capability to LM fractals. The voxel-based generative method for generating n-D colored computer fractal models based on binary spatial occupancy representation scheme is proposed. Afterwards, the hybrid algorithm is worked out that combines boundary shell extraction, boundary evaluation and triangulation to generate the colored single voxel shell of the n-D fractal objects. It is found that the memory requirements are prohibitive in computer processing of fractal. To enhance further the computational and storage efficiency, new representation schemes, namely, GCQE and the corresponding hybrid algorithm are proposed. Afterwards, a grid-based navigation algorithm is proposed for toolpath generation to 9-1 LM the fractal objects. It is found that the method draws the advantages of direct slicing generation. Comparing with traditional LM procedures, some steps involving solid or surface modeling and facetting can be skipped. Finally, case studies are conducted to verify the validity of the proposed methods by incorporating suitable synthesizing tools. 9-2 REFERENCES [3D Systems] 3D systems, website: http://www.3dsystems.com [Arcam] Electron beam melting, website: http://www.arcam.com/ [Autostrade] SL Unirapid, website: http://www.autostrade.co.jp/ [Barnsley 1988] Barnsley, M. (1988), Fractal Everywhere, Academic Press [Barnsley 1984] Barnsley, Michael F. and Demko, Stephen (1985), “Iterated function systems and the global construction of fractals”, The Proceedings of the Royal Society, pp.243-275 [Branner 1989] Branner, B. (1989), “The Mandelbrot Set”, In Chaos and Fractals: The Mathematics Behind the Computer Graphics, Proc. Sympos. Appl. Math., Vol.39 (Devaney, R. L. and Keen, L. (Ed.)). Amer. Math. Soc., pp.75-105 [Cantor set] Cantor set, website: http://www.duke.edu/~mjd/ chaos/chaos.html [Chee 1995] Chee, Kai Chua and Siaw, Meng Chou (1995), “Rapid prototyping technologies and limitations”, Proceedings of the Institution of Mechanical Engineering, Part B; Journal of Engineering Manufacture, Vol.209, pp.165-185 [Chen 2003] Chen, Yuh-Min; Wen, Chiun-Cheng and Ho, Chengter Ted (2003), “Extraction of geometric characteristics for manufacturability assessment”, Robotics and Computer Integrated Manufacturing, Vol.19, pp.371–385 R-1 [Chen 1993] Chen, Lin-Lin; Chou, Shuo-Yan and Woo, Tony C. (1993), “Parting directions for mould and die design”, Vol.25, pp.762-768 [CMET] SL, website: http://www.cmet.co.jp/ [Cox 1994] Cox, J. J.; Takezaki, Y.; Ferguson, H. R. P.; Kohkonen, K. E. and Mulkay, E. L. (2002), “Space-filling curves in toolpath application”, Computer-Aided Design, Vol.26, No.3, pp.216-224 [Crawford, 1993] Project Proposal, website: http://emsh.calarts.edu/~mathart/3DZoom.html [Cubic Technologies] Laminated object manufacturing, website: http://www.cubictechnologies.com [Denken] Denken Engineering Co. Ltd, website: http://www.denken-eng.co.jp/ [Dickens 1995] Dickens, P. M. (1995), “Research developments in rapid prototyping”, Proceedings of the Institution of Mechanical Engineering, Part B; Journal of Engineering Manufacture, Vol. 209, pp.261-266 [Dionnet 1994] Dionnet, Vincent; Heliodore, Frederic; Alain, R. P. and Andre Claud, Nancy (1994), “Method of manufacturing a fractal object by using stereolithography and a fractal object obtained by performing such a method”, United States Patent, No.5355318 [Dissinger 1996] Dissinger, Thomas E. and Magrab, Edward B. (1996), “Geometric reasoning for manufacturability evaluation-application to powder metallurgy” Computer-Aided Design, Vol.28, pp.783-794 R-2 [Envision Technologies] Digital light processing, website: http://www.envisiontec.de/ [EOS] Laser sintering, Electro Optical Systems GmbH website: http://www.eos-gmbh.de/ [Falconer 2003] Falconer, K. (2003), Fractal Geometry: Mathematical Foundations and Applications, Wiley [Falconer 1996] Falconer, K. (1996), Techniques in Fractal Geometry, Wiley [FDM process] FDM process, website: http://www.mec.cf.ac.uk/services/?view=fdm&style=plain [Federer 1969] Federer, H. (1969), Geometric Measure Theory, Springer [Flake 1998] Flake, Gary William (1998), The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation, MIT Press [Foley 1996] Foley, James D. (1996), Computer Graphics: Principles and Practice, Addison-Wesley [Fractal antennae] Fractal antennae, website: http://www.geocities.com/Eureka/Plaza/4033/fraktenne_index.en.html [Fractal Antennas System] Fractal Antennas System, Inc., website: http://www-tsc.upc.es/eef/research_lines/antennas/fractals/gallery.html [Fractal antenna] An example of fractal antenna, website: www.cg.tuwien.ac.at/courses/Fraktale/PDF/fractals1.pdf R-3 [Fractals in Physiology] Fractals in Physiology, website: http://classes.yale.edu/fractals/Panorama/Biology/Physiology/Physiology.html [Fockele & Schwarze] Fockele & Schwarze, website: http://www.fockeleundschwarze.de/ [Frame 2002] Frame, Michael and Mandelbrot, Benoit B. (2002), Fractals, Graphics, and Mathematics Education, Mathematical Association of America [Gavin 1986] Miller, Gavin S. P. (1986), “The definition and rendering of terrain maps”, International Conference on Computer Graphics and Interactive Techniques, pp.39-48 [Generis] Inkjet, website:http://www.generis.de/ [Gianvittorio 2001] Gianvittorio, J. P. and Rahmat-Samii, Y. (2001), “Fractal geometry in antenna system design: miniaturized - multiband element, phased array and frequency selective surface design”, Department of Electrical Engineering, University of California [Gianvittorio 2002] Gianvittorio, J. P. and Rahmat-Samii, Y. (2002), “Fractal Antennas: a novel antenna miniaturization technique, and applications”, IEEE Antennas and Propagation Magazine, Vol.44, No.1, pp.20-36 [Griffiths 1994] Griffiths, J. G. (1994), “Toolpath based on Hibert’s curve”, Computer-Aided Design, Vol. 26, No.11, pp.839–844 [Griffiths 1998] Rapid prototyping technologies, website: http://me.psu.edu/lamancusa/me415/rpintro2.pdf R-4 [Ha 1996] Ha, Jong Sung (1996), “On Determining 3D Manufacturability Using Gaussian Sphere”, Ph. D. dissertation, Computer Science Dept., KAIST [Hamilton 1969] Hamilton, W. R., (1969), Element of Quaternions, Vols. I and II, Reprinted by Chelsea Publ. Co. [Hart 1989] Hart, John C.; Kauffman, Louis H. and Sandin, Daniel J. (1989), “Ray tracing deterministic 3-D fractals”, Computer Graphics, Vol.23, No.3, pp.289-296 [Hart 1990] Hart, John C.; Kauffman, Louis H. and Sandin, Daniel J. (1990), “Interactive visualization of quaternion Julia sets”, Proc. of IEEE Visualization, pp.209-218 [Hastings 1993] Hastings, H. M. and Sugihara, G. (1993), Fractals: A User's Guide for the Natural Sciences, Oxford University Press [Hartquist, Menon, Suresh, Voelacker & Zagajac 1999] Hartquist, E. E.; Menon, J. P.; Suresh, K.; Voelacker, H. B. and Zagajac, J. (1999), “A computing strategy for applications involving offsets, sweeps, and Minkowski operations”, Computer-Aided Design, Vol.31, pp.175-183 [HyperFun] HyperFun Project, website: http://cis.k.hosei.ac.jp/~F-rep/HF_proj.html [Kerekes 1992] Kerekes, T. (1992), “Stereolithography builds computer-generated models of natural forms”, Rapid Prototyping Report, Vol.2, No.4, pp.1-8 [Kinergy] Kinergy, website: http://www.kinergy.com.sg/ [Kira] Kira, website: http://www.kiracorp.co.jp/ R-5 [Lam 1993] Lam, N. S. and De Cola, L. (1993), Fractals in Geography. Prentice Hall [Liu 2003] Yang, J., Bin, H., Zhang X. and Liu, Z. (2003), “Fractal scanning path generation and control system for selective laser sintering (SLS)”, International Journal of Machine Tools & Manufacture, Vol.43, pp.293–300 [LOM process] LOM process, website: http://www.warwick.ac.uk/atc/rpt/Techniques/Photos/lomprocess.jpg [Mandelbrot 1967] Mandelbrot, B. B. (1967), “How long is the coastline of Britain? Statistical self-similarity and fractional dimension”, Science, Vol.156, pp.636-638 [Mandelbrot 1975] Mandelbrot, B.B. (1975), “Stochastic models for the earth's relief, the shape and the fractal dimension of the coastlines, and the number-area rule for islands”, Proc. Nat. Acad. Sci. U.S.A., Vol.72, pp.3825-3828 [Mandelbrot 1983] Mandelbrot, B. (1983), The Fractal Geometry of Nature, W.H. Freeman and Company [Maple] Maplesoft, website: http://www.mapleapps.com/ [McMains 2000] McMains, S.; Smith, J.; Wang, J., and Séquin, C. (2000), "Layered manufacturing of thin-walled parts", ASME Design Engineering Technical Conferences, 26th Design Automation Conference, pp. 379-387 [Meiko] SL, website: http://www.meiko-inc.co.jp/ [Mortenson 1997] Mortenson, M. E. (1997), Geometric Modeling, Second Edition, John Wily & Sons R-6 [Musgrave 1989] Musgrave, F. K.; Kolb, C. E. and Mace, R. S. (1989), “The synthesis and rendering of eroded fractal terrains”, Computer Graphics, Vol.23, No.3, pp.41-50 [Naylor 1985] Naylor, Bruce; Laurie, Hodges and Demko, Stephen (1985), “Construction of fractal objects with iterated function systems”, Proc. Roy. Soc. London, pp. 243-275 [Norton 1982] Norton, Alan (1982), “Generation and display of geometric fractals in 3-D”, Computer Graphics, Vol. 16, No.3, pp. 61-67 [Norton 1989] Norton, Alan (1989), “Julia sets in the quaternions”. Computers and Graphics, Vol.13, No. 2, pp.267-278 [Object] PolyJet technology, website: http://www.2objet.com [Oppenheimer 1986] Oppenheimer, Peter E. (1986), “Real time design and animation of fractal plants and trees”, International Conference on Computer Graphics and Interactive Techniques, pp. 55-56 [Optomec] Laser Engineered Net Shaping, website: http://www.optomec.com [Pattijn 2000] Pattijn, V.; Samson, I.; Vander Sloten, J.; Van Audekercke, R.; De Buck, V. and Swaelens, B. (2000), “Personalized titanium membrane reconstruction in tumor surgery” [Peitgen 1986] Peitgen, H. O. and Richter, R. H. (1986), The Beauty of Fractals, Springer [Peitgen 1991] Peitgen, Heinz-Otto (1991), Fractals for the Classroom, Springer R-7 [Pickover 1986] Pickover, C. A. (1986), “Mathematics and beauty: Time-discrete phase planes associated with the cycle system”, Computer & Graphics, Vol. 11, pp. 217-226 [Pickover 1987] Pickover, C. A. (1987), “Mathematics and beauty: Turbulent complex curls”, Computer & Graphics, Vol.11, pp.499-508 [Pickover 1998] Pickover, Clifford A. (1998), Chaos and Fractals: A Computer Graphical Journey: Ten Year Compilation of Advanced Research [PolyU ISE] PolyU, ISE dept, digital factory, website: http://158.132.205.160/Digital_Factory/Systems/Factilies.htm [PovRay] PovRay image, website: http://astronomy.swin.edu.au/~pbourke/povray/povfrac/ [Pratt 2002] Pratt, M. J.; Bhatt, A. D.; Dutta, D.; Lyons, K. W.; Patil, L. and Sriram, R. D. (2002), “Progress towards an international standard for data transfer in rapid prototyping and layered manufacturing”, Computer-Aided Design, Vol.34, No.14, pp.1111-1121 [ProMetal] Inkjet, website: http://www.prometal.com/ [Prosenjit 1994] Prosenjit, Bose and Godfried, Toussaint (1994), “Geometric and computational aspects of manufacturing processes”, Computer & Graphics, Vol.18, No.4, pp.487-497 [Quaternion Julia fractals] Quaternion Julia fractals, website: http://astronomy.swin.edu.au/~pbourke/fractals/quaternionjulia/ R-8 [Quaternion Mandelbrot set] Quaternion Mandelbrot set, website: http://www.fractal.org/Bewustzijns-Besturings-Model/JRSet.htm [Raúl 1991] Rojas, R. (1991), “A tutorial on efficient computer graphic representations of the Mandelbrot set”, Computers and Graphics, Vol.15, No.1, pp.91-100 [Rooney 1987] Rooney, Joe and Steadman, Philip (1987), Principles of Computer-Aided Design, Pitman in Association with the Open University [Rpyinhua] Rpyinhua, website: http://www.rpyinhua.com/mem200.htm [Samet 1990] Samet, Hanan (1990), The Design and Analysis of Spatial Data Structures, Addison-Wesley [Samet 1990] Samet, Hanan (1990), Applications of Spatial Data Structures: Computer Graphics, Image Processing, and GIS, Addison-Wesley [Schroeder 1991] Schroeder, M. (1991), Fractals, Chaos, Power Laws. Minutes from an Infinite Paradise, Freeman [SDI] Inkjet, website: http://www.sandersdesign.com/ [Shimasaki 1995] Shimasaki, M.; Matsusaka, Y. and Sakamoto, S. (1995), “IFS based on 3D self-similar contraction mapping and modeling tree and coral” in Novak, M. M. and Miroslav M. (eds.), Fractal Reviews in the Natural and Applied Sciences: Proceedings of the Third IFIP Working Conference on Fractals in the Natural and Applied Sciences, Chapman and Hall, pp.81-88 R-9 [Shirriff 1993] Shirriff, Ken (1993), “Generating fractals from Voronoi diagrams”, Computers & Graphics, Vol.17, No.2, pp.165-167 [Shirriff 1993] Shirriff, K. (1993), “An investigation of fractals generated by zĺ1/z -n + c.”, Computers and Graphics, Vol. 17, No.3, pp.603-607 [Sleumer 1999] Sleumer, Nora H. and Tschichold-Gürman, Nadine (1999), “Exact cell decomposition of arrangements used for path planning in robotics”, Technical Reports 329, ETH Zürich, Institute of Theoretical Computer Science [Solidica] Ultrasonic/CNC, website: http://www.solidica.com/ [Solidscape] Inkjet, website: http://www.solid-scape.com/ [Sony/D-MEC] SL, website: http://www.d-mec.co.jp [Soo 2002] Soo, S. C. (2002), “Fractal Fabrication for Aesthetic Product Design”, Master of Philosophy Thesis, Dept. of Industrial and Systems Engineering, The Hong Kong Polytechnic University, Hong Kong. [Soo 2002] Soo, S. C. (2002), “Rapid prototyping using fractal geometry”, Solid Freeform Fabrication Symposium 2002 Proceedings, pp.424-431. [Soo 2002] Soo, S. C. and Yu, K. M. (2002), “Toolpath generation for fractal curve making” International Journal of Advanced Manufacturing Technology, Vol.19, pp.32-48 R-10 [Soo 2003] Soo, S. C. and Yu, K. M. (2003), “Rapid prototyping for self-similarity design”, Journal of Materials Processing Technology, Vol.139, pp.219–225 [Sourin 1996] Sourin, A. and Pasko, A. (1996), “A function representation for sweeping by a moving solid”, IEEE Transactions on Visualization and Computer Graphics, Vol.2, pp.11-18 [Stratasys] Fused Deposition Modeling, website: http://www.stratasys.com [Sugihara 1990] Sugihara, G. and May, R. M. (1990), “Applications of fractals in ecology”. Trends Ecol. E, Vol.5, pp.79-86 [Szeliski 1989] Szeliski, R. and Terzopoulos, D. (1989), “From splines to fractals”, International Conference on Computer Graphics and Interactive Techniques, pp.51-60 [Tomek 2001] Tomek, Martyn (2001), “Efficient ray tracing affine IFS attractors”, Computer Graphics, Vol. 25, No.4, pp.665-670 [Toyoda Machine Works] Toyoda Machine Works, website: http://www.toyoda-kouki.co.jp [Turcotte 1992] Turcotte, D. L. (1992), Fractals and Chaos in Geology and Geophysics. Cambridge University Press [Unirapid] Unirapid, Inc., website: http://www.unirapid.com/ [Voronoi diagram] Voronoi diagram of fractal curve, website: http://www.cs.berkeley.edu/~jordans/research/voronoi/erl.html R-11 [Woo 1994] Woo, Tony C. (1994), “Visibility maps and spherical algorithms”, Computer-Aided Design, Vol.26, No.1, p. 6-16 [XenoDream] Fractal images, website: http://www.fractalus.com/sharon/xeno/xeno.htm [Zair 1996] Zair, C. E. and Tosan, E.(1996), “Fractal modeling using free form techniques”, Computer Graphics Forum, Vol.15, No.3, pp.269- 278 [Z-Corp] MIT’s 3DP Technology, website: http://www.ems-usa.com [Z-Corp machine] ZTM406 3D Color Printer User's Manual Version 6.0 R-12