4.1. CAD-Based Design and Assembly of a DIY Coffee Table
Engineering task automation is a key factor in the effective allocation of working time and the creativity of engineers. In particular, design and assembly are two important stages during the development of a product that benefit greatly from such techniques. It is seen more often than not that companies implement CAD-based automation in their projects with the aim of increasing their productivity.
In this case study, a typical example of CAD-based programming is presented, in relation to the design and assembly of a coffee table. Such furniture is common in coffee shops and cafeterias, as well as in similar shops. Despite the fact that this paper does not focus on the design aspect of the product, but rather on the implementation of CAD-based programming for the design procedures, it must be noted that these tables are usually compact, lightweight, somewhat tall and sturdy to allow them to be carried easily, take up only a small area and provide adequate ergonomics for the user. The user interface is considered to be the bridge between the user and the CAD system [
20]; therefore, it is important that it is clear and understandable, as well as easy to navigate.
The application is divided into three tabs, as seen in
Figure 2. The first tab “Morphology” includes all the necessary fields and lists, where the user can input the dimensions of the table and select the model as well, which corresponds to three different board shapes (rectangle/square, circle and rhombus) and three different chassis types. These parameters yield nine unique table combinations. In addition, the variety of the board materials and colors hugely increases the number of possible combinations. The second tab, namely “Material/Color”, includes a number of buttons, which are used to select one of the available materials and colors.
Additionally, an option is included for a glass board, instead of a wooden one. Furthermore, the user can select the chassis material in this tab, ranging from plain steel for a more economic final product to aluminum, which offers a more stylish look and a lightweight final product. The third tab (Summary) provides the user with auxiliary functions, such a preview of the final product, its weight and cost, as well as a summary of its basic attributes (material, color and dimensions).
The application can be operated with the three command buttons “Design model”, “Rendering” and “Open files”, found in the first tab, which are used to perform the complete design and assembly process, the generation of a rendering of the final product and the compiling of a folder containing the files, respectively.
According to
Figure 3, the code follows a straightforward execution. First of all, the necessary variables, relating to the dimensions, the material and the color, are declared. Next, these variables are linked to the corresponding design options that are available in the interface. For instance, when the user types a number in the “Length (mm)” field, the variable that corresponds to the length of the board changes its value to the typed one. As soon as the user pushes the “Design model” button, the design process begins. Therefore, the design loop is executed for every part comprising the table. This number varies depending on the selected design options. Regarding the design procedure, the creation of a new part document, the selection of a plane, the insertion of a new sketch, the design of a contour, the extrusion of a solid model, the application of a material texture/color and the storage of the model are tasks that are performed on every iteration of the loop. The only difference is that the contour sketched on each iteration varies according to the part being designed. Hence, a rectangle/square, a rhombus or a circle will be sketched for the design of the board. Similar shapes will be sketched for the design of the chassis parts. To facilitate the design code for the sketched contours of the parts, the “If-Then-Else” structure was used.
The assembly procedure is carried out in a similar manner. Thus, a loop is utilized to repeat the execution of the assembly code. First of all, a new assembly document is created; next, the components comprising the assembly are inserted; and finally, the appropriate mates are applied to the components. In contrast to the design process, the loop only contains the mates, rather than the whole process. With the completion of the assembly, several useful properties, such as the cost, the mass and the volume, are automatically exported to the fields that are available under the “Summary” tab in order to inform the user.
Finally, it is possible to generate a rendering of the final product by pressing the “Rendering button” found under the first tab. The image is saved in a standard image format, JPG. An image showing the user a preview of the final product is automatically generated as soon as the rendering is complete. This way, the user acquires a complete view of the full product.
The two first steps of the workflow do not require any special API methods, but rather standard VBA™ statements. The methods and the properties used in the step where the design of the parts is performed are summarized in
Figure 4. Most of the methods in the VBA™ language are self-explanatory, and the syntax requires a number of elements that fully define a method, function or statement. Therefore, for the design process, the “SelectByID2” method is used to select named entities, such as edges and faces and especially planes, for sketching. The “InsertRefPlane” method is used to create a number of extra planes on the designed parts that can be used later during the assembly process.
The “InsertSketch” method enables the sketching of a plane, whereas the “CreateCenterRectangle” and the “CreateCircleByRadius” are used to sketch a rectangle/square and a circle, respectively. Additional methods of the same type are available for the sketching of lines, polygons and other shapes. Once the contour is sketched, the “FeatureExtrusion3” and the “FeatureCut4” methods can be utilized to generate solids. With the appropriate syntax, it is possible to create a variety of solids representing the individual parts of the assembly, which can then receive attributes such as mass, volume, texture, color and other visual and physical properties. “SetMaterialPropertyName2” is a method utilized to apply a material name to a part, conferring on it various properties that correspond to the material.
During the stage of the assembly process, a new assembly document is opened and all the parts that comprise the assembly are opened in the background. The “ActivateDoc3” and the “AddComponent5” methods are responsible for the activation of the newly created document and the insertion of each one of the opened parts into this document. “SelectByID2” is used in this stage as well for the same purpose: to select the already named entities for the application of the mate features with the “CreateMate” method. As has been already discussed, it is important that the parts are designed with predefined planes and other geometric entities in order to facilitate the mating process during the assembly of its components. The most commonly used API methods are shown in
Figure 5.
Figure 6 includes the necessary methods and properties for the export of the product’s properties, as well as the realization of the rendering. The method “CreateMassProperty” calculates the mass and volume of an individual part or an assembly by utilizing the physical properties of the applied material. Therefore, this method functions only if a material is set for each of the components.
Moreover, to carry out the rendering, “GetRayTraceRenderer” enables the use of the renderer that is available in the CAD system, whereas the “RayTraceRendererOptions” property sets the rendering options, such as image resolution, dimensions and format. The final rendered image of the product is generated and stored with the methods “InvokeFinalRender” and “RenderToFile”, respectively.
The previous code snippet (
Figure 7) presents the lines required for the design of a rectangular board, including the creation of a new part document, the selection of a plane, the insertion of a new sketch, the sketch of rectangle, the extrusion of the sketch and the application of the texture and color of a material. The choice of material is not only important for cosmetic purposes; it is also necessary for the extraction of the physical properties.
As soon as the user selects a model number, an algorithm (
Figure 7) performs a check on the shape of the table so that the geometric measurements can be applied accordingly. If the user inputs dimensions that correspond to a rectangle or a square, the algorithm uses the corresponding API method to generate a rectangle or a square using the diagonal
. Next, the fillet or the chamfer feature is applied based on the model selection. A matrix containing the coordinates (
x,
y) of the eight points comprising the four chamfered or filleted corners of the rectangle or square is used for the application of the equivalent feature. In the case of a circular table, the algorithm skips the rectangular or square shape and sketches a circle instead via the respective API method, whereas in the case of a rhombic table board, the methods used to sketch a circle and a set of lines are used. Therefore, if the selected model corresponds to a circular board, a circle is sketched with a radius equal to the width given by the user. Finally, the lines are sketched tangential to the circle, forming a tangential quadrilateral with an edge length equal to
.
4.2. Graphical Algorithmic Design and Assembly of DIY Desk Workstation
Graphical algorithmic editors are important for developing parametric designs through visual programming [
21]. The numerous designs that are generated by the proposed CbVBI application are digital forms of a desk workstation. This procedure was based on Grasshopper
TM and Rhinoceros3D
TM software in order to offer a fully useful design application for branded furniture under the concept of DIY [
22].
The present application is divided into three different design areas, as seen in
Figure 8. The first area includes all the important parameters according to the design options (e.g., basic dimensions of the furniture, number of parts, etc.). Some of the design options are the total height of the product (TH), the length and the width of Desk1&2 and the number of the shelves (LS1 to LS5). Similar to the previous case study, the second area includes a number of options for the material and texture of the furniture. All the materials and skin types are related to wood textures. Finally, the third area provides the export files for the assembly instructions and the rendered representations of the final DIY furniture.
The proposed application was developed with the web-based platform Shape DiverTM. Shape DiverTM allows end-users to design their own objects under specific parameters, which are developed from the programmer/designer’s point of view.
Figure 9 depicts the design procedure for the computational-based visual code, which follows a specific hierarchy of steps. Every step of the proposed workflow is related to a specific node in the graphical algorithm of the whole code. The algorithm has five significant steps/nodes:
First of all, the necessary variables relating to the dimensions and colors are declared.
Next, these parameters are linked to the corresponding design options. Every aesthetic design criterion is related to a specific variable of the visual programming code.
Following this, the third part of total hierarchy is the visual representation of the produced parts of the furniture. With both GrasshopperTM and Rhinoceros3DTM, a final assembled desk is produced with all the design and manufacturing attributes. As a result of the third step, the application is capable of exporting a *.gh file with all the variables and parameters of the design object.
The fourth stage of the workflow involves the linking procedure of the *.gh file within the web-based platform Shape DiverTM. At this stage, the programmer/designer organizes the application interface for the furniture parametrization.
Finally, the end-user is able to create his own desk workstation according to the “Do-It-Yourself” brand identity. In this case, the user has the responsibility of filling out all the variables in the online CbVBI application.
Figure 10 summarizes the group of the applications, pieces of software and add-ons that were used for the development of the CbVBI application. Apart from the aforementioned software Grasshopper
TM, Rhinoceros3D
TM and Shape Diver
TM, the authors used two kinds of special add-ons for the application implementation.
PufferfishTM is a plugin set with a great number of components relating to shape transformations (e.g., tween, blend and morph operations). Additionally, SquidTM is an important plugin for drawing bitmap images. This is a crucial code operation for the final export of the assembly instructions in a PDF file format. Specifically, SquidTM outputs GrasshopperTM bitmap objects as mesh textures in order to represent the final object’s morphology as an image.
According to the previous procedure, the end-user is able to create his own desk workstation following the DIY brand identity principles. Specifically, the designer has the responsibility of filling all the numerical values for the design and material settings in the online application of Shape DiverTM. The proposed Computational-based Visual Brand Identity (CbVBI) methodology exports two types of files in order to support the development of specific applications (e.g., technical drawings and assembly instructions). Finally, the production of the rendered images is based on the main characteristics of rendering synthesis: materials, textures, shadows, lights and the environment elements.
Figure 11 presents parts of the visual codes for each stage of the application workflow. More specifically, the whole code is divided into three programming areas: (a) design and assembly of the furniture, (b) application for the end-user’s design contribution and (c) export files. The first area of the graphical algorithm includes the necessary methods and properties for the design and assembly of the product’s morphology. At this stage, the designer is able to create the parts of furniture according to Grasshopper
TM’s commands and procedures. Three kinds of parameters define the design procedure: the number of parts, type of parts and part specification.
Moreover, there are two more kinds of variables in the assembly definition: the types of connectivity and the technical requirements, such as total height. Following that, the designer groups the NURBS according to design and assembly attributes. More specifically, the designer uses special sliders with numerical values for the final furniture parameterization. The aforementioned sliders are connected to the parameters of the previous stage (number of parts, type of parts, part specification, etc.). It is important to note that the numerical values of the proposed parameters are made to be specific in order to protect the branded image of the prototype furniture.
The final code area is related to the procedure of exporting files. At this stage, the authors created nine operations for the final production of a PDF file that includes the assembly instructions. These significant operations deal with the (a) page size of the PDF (e.g., A4, A3, etc.), (b) visual representation of each furniture part, (c) outline creation based on wireframe models, (d) solid view of the whole object, (e) text and font specifications and finally (f) the merging of the produced pages. This means that the application automatically produces a full set of instructions and a product description for all the alternative designs requested by the user. The full automation of this procedure offers a significant cost reduction, while at the same time providing the final user with the ability to contribute towards the furniture design via choosing attributes of his preference.
The present case study shows an application for the automatic creation of a unique branded furniture with the aid of Grasshopper
TM and Rhinoceros3D
TM.
Figure 12 illustrates an image of the desk workstation created based on the strong concept theme of DIY followed by the representation of two indicative desk design alternatives, which are based on the CbVBI methodology. The final desks are the result of a combination of a number of parameters.
Design alternative 1 includes the following values: TH = 250, LD1 = 120, WD1&2 = 80, LD2 = 150 and LS = 10. On the other hand, design alternative 2 is shaped by the values: 300, 200, 100, 150 and 50. Finally, according to the CbVBI methodology, a PDF manual with all the appropriate instructions for the furniture assembly is produced. The current manual is similar and looks like the instruction books found in IKEATM DIY products.
Finally, it is important to note the time saved with the use of the CbVBI methodology in comparison with traditional design procedures. More specifically,
Figure 13 presents the final times of the two aforementioned case studies: (a) CAD-based design and assembly of a DIY coffee table and (b) graphical algorithmic design and assembly of a DIY desk workstation. More specifically, the time needed for the development of a coffee table design (first case study) using a traditional design method, Solidworks
TM, is estimated to be about 85 min (including design and rendering procedures). On the other hand, the time needed for the development of the same coffee table via the use of CbVBI methodology was demonstrated to be 3.4 s. It is important to note that this time is relative to a computer’s sensitivity. The second case study involved the development of a workstation design. The time that a designer needs to develop a CAD model of a workstation with all design and assembly instructions via RhinoTM is estimated at about 270 min. The CbVBI methodology is capable of generating the same files (i.e., the CAD model and assembly instructions) in 8.2 s.