DESING OF THE ALGORITHM, PRINT AND ANALYSIS OF POROUS STRUCTURES WITH MODIFIABLE PARAMETERS

. The purpose of this paper was to create an algorithm able to creating a porous structure with variable properties, print and analyze them. The basic concepts related to it were introduced and the process of creating an algorithm in Rhinoceros software was described. Having a suitable test group of porous structures, it was shown that it is possible to modify their porosity. In the next step, the structures were presented for printing and its effect. The obtained physical models were examined by microtomography. The resulting cross-sections were processed in ImageJ software. Having cross-sections of the original bone and printed structures, it was possible to compare their porosity and the average diameter of the trabeculae in the structure. With this procedure, it is possible to deduce whether it is possible to print accurate structures that will serve as porous bone implants. The resulting differential porosity comparison was 2.0–7.5 %, while the thickness was about 18–35 %.


Introduction
Malignant bone tumors, or so-called sarcomas, are quite rare, making medical personnel's infamiliar with the problem and with treatment techniques.Often, even in the early stages of the disease, when it has not managed to significantly occupy the soft tissue, the standard medical procedure is not to get rid of the entire limb, but to cut out areas of exposure, thereby creating cavities in the bones [1].These defects should be filled with bio-compatible material, which is able to help the bone to reconstruct [2].The motivation, and the goal of this work, was to design an algorithm to help design such porous structures.Aperiodic structures were taken under the closer look, since the literature on this type of model is relatively scarce [3,4].A feature of the resulting algorithm should be the easy modifiability of all kinds of parameters, such as the porosity of the structure, or the thickness of the trabeculae from which it is built.Our analysis was based on structures with 30 % and 80 % porosity.In addition to the algorithm design, the paper focuses on printing the designed structures and analyzing them.

Porous structure
Porous structures in the materials environment are a frequently addressed topic.Periodic structures with uniform distribution are most famous in the literature.However, aperiodic structures are an interesting aspect, as the literature provides much less information on them.The way to create this type of elements that was chosen is Voronoi diagrams [5]. Figure 1 shows this kind of structure.It is characterized by the fact that each point of the polygon, is closer to its own center (the so-called Voronoi center) than any other.Another program that was used is Netfabb 2022 (Autodesk, ver.2023.1,USA).This program was used during cutting the designed structures into a set number of sections for further analysis.In the next step, which was 3D printing, it is necessary to prepare the structure for printing process.For this purpose, the Prusa Slicer (Prusa Research, ver.2.6.0,Czech Republic) application, dedicated to the printer, was used, which allowed to see the predicted printing parameters such as printing time, layer thickness or filament application accuracy.

Used software
The last program used in this work was ImageJ2 Fiji (Johannes Schindelin, Ignacio Arganda-Carreras, Albert Cardona, Mark Longair, Benjamin Schmid, ver.1.48g, LOCI, University of Wisconsin).This software is used for image analysis.In our case to calculate the parameters of the obtained porous structures.

Structuring algorithm
It was necessary, to design an algorithm, used to create aperiodic structures.

Algorithm
The algorithm was built in Grasshooper software by means of blocks, performing specific functions.It consisted of a couple of main sections: creating the shape of the model, parameterizing it, and converting it to a filled structure.
The first section, which is visualized on Figure 2 opens with the creation of a cube on which the structure will be based.Then the distribution of points in the volume of the cube was randomly selected.Based on the obtained points, a 3D Voronoi diagram was built on them, and then only the edges (trabeculae) were isolated from it.In this way, the target shape of the structure was obtained.In the next section, parameterization follows.The thickness of each trabeculae is selected, as well as the number of points into which the trabeculae is to be divided (a constraint, excluding errors).In addition, it is possible to select the number of Voronoi diagram centers, which strongly determine the porosity of the structure.This process were shown on Figure 3.
Once the desired structure is produced, and the parameters are given, it remains to create a solid.To do this, Dendro add-on was used.A small volume (resembling a sphere) was built on each point into which the trabeculae were previously divided.These volumes were then smoothed and combined, resulting in a closed structure ready for export and analysis.We can see connecting and smoothing process on Figure 4.

Issues
In the way of block programming, there were also unexpected problems, which we can see on Figure 5.Some of the structures, went beyond their limits.This was caused by the fact that too many points fit into too small space.This problem was solved by imposing limits on the number of points and the length of the trabeculae on the model.

Structural Supervision
The finished structures were cut in Netfabb software as we can see on the Figure 6, and the resulting cross sections were loaded into ImageJ Fiji.
Having the cross sections in the program it is possible to check the porosity of the structure, including the average thickness of the trabeculae.Two functions of the BoneJ add-on were used for this purpose: Desing, print and analysis of modifiable porous structures  Thickness and Volume Fraction.The average thickness of the trabeculae, we can see in the Table 1 and the porosity (the ratio of the amount of voids to the total volume of model) is shown in the Table 2.In Table 1 we observe twice the output value, because the measured value is the average diameter of the trabeculae, and the value set by the algorithm is the cross-sectional radius.In addition, the average is increased by nodes where multiple trabeculae meet.Such an analysis was carried out for a number of structures, in order to see if we can arbitrarily vary the porosity.
This kind of controlling the structure is possible.

Printing
In order to create physical models of the designed structures, it was decided to use FDM 3D printing, one of the most popular incremental methods of this kind of process.It involves the gradual application of filament to a heated table, using a head heated to about 200 • C. The printer used is a Czech-made Prusa mk3.
To the Prusa Slicer program, structures with porosities of 30 % and 80 %, previously created with the algorithm, were imported.The print layer thickness was set to 150 µm, which guaranteed good print quality.After viewing the predicted structure and making sure that the program did not find possible errors during model creation, printing proceeded.We can see an example of the structure at Figure 7.
Printing time varied between 1 and 3 hours, depending on porosity.
It turned out that during printing there were some problems.One of them, was the local sagging of the filament through lack of support.It was not used because, removing the filament from the center of this kind of stucture is impossible (leaving aside the possibility of using a multi-filament head, which the printer used was not equipped with).Another mistake was leaving tiny filamentr threads in the pores similar to spiderweb.This is due to a poor choice of head temperature, which pulls the filament too hot.However, they did not significantly affect the quality of the structures made.

MicroCT verified of printed structures
The structures made were subjected to analysis, which involved checking the porosity and average bead thickness of the computer-designed models, as well as those printed.For this purpose, a S microtomograph was used.Each of the printed structures, was X-rayed.During the entire process, the X-ray tube operated at 100 kV and a current of 100 µA.The target resolution was set at 15 µm, making a single measurement take about 2 hours.The resulting cross sections, for further analysis, had to be edited.Editing, as well as further analysis, was performed in ImageJ Fiji software.The crosssections were cropped as well as rotated appropriately, and then a median filter was performed.Figure 8 shows an example of a cross section after the editing process.

Results
The first step, was to use the Volume Fraction function, available in the BoneJ add-on again.
After compiling the results and collecting them in a Table 3, it turned out that the discrepancy between the design and the physical model reaches a maximum of 7 %, which is a satisfactory result at this stage of the research.Any discrepancies are due to inaccuracies occurring during printing.
Another goal of the analysis, was to collect data on the average trabeculae thickness of printed structures and their designs by using function thickness.
As we see at the Table 4 this time the discrepancy reaches the level of a several dozen percent, which is not a very satisfying result.In this case, these discrepancies, are also due to problems during printing.The laid filament, formed into beads, has some kind of defects -small holes, which the filament did not reach during printing.We can see this kind of situation in Figure 9. On the other hand, in Figure 10, we can see the execution of the same function for the computer project.Due to such a sequence of events, the Thickness function sees the place where the defect appeared as two separate trabeculae, which underestimates the  average result.In the Figure 11, we can see the histogram of the distribution of the trabeculae thickness for the printed model, while for the model of the design itself, it appears in the Figure 12.For the design, one selected thickness dominates, but there are also larger values, which is the reason for the places where the trabeculae connect (nodes), which by definition must be thicker.For the printed models we see that the distribution is almost symmetrical, and has many results that underestimate the average.This problem can be solved overestimating the thickness of the beam during the execution of the algorithm.With such a procedure, even after underestimating the result of thickness, it will be the target value.

Conclusions
To summarize this work, it is worth noting that it was possible to create an algorithm, capable of creating porous structures with very easily modifiable porosity and average thickness of the beads.This algorithm in the future, after a number of improvements, could serve as an aid for the design of bone implants for each patient individually.In addition, it can be extended to design structures of any shape, not just a cube, which opens its way to many scientific but also business environments.The algorithm and the printing process itself require improvements.The results so far, however, and the ease with which they can be obtained, are satisfying.
Several tools were used in this work.The first, used at the beginning of the design process, was Rhinoceros (Robert McNeel & Associates, v.7.3.21039.11201,USA) with the built-in block development environment Grasshooper (designed by David Rutten, Robert McNeel and associates, February 2021, Build 1.0.0007,USA).By this softwares a structure was created, with variable parameters.

Figure 2 .
Figure 2. Creation of a Voronoi diagram on points, drawn in a cube.

Figure 3 .
Figure 3. Parameterization and initial obtaining of the target structure.

Figure 4 .
Figure 4. Smoothed, finished structure in the final version.

Figure 6 .
Figure 6.Examples of cross sections obtained using the Slice function in Netfabb software.

Figure 7 .
Figure 7. Example of a printed model

Figure 8 .
Figure 8. Example of an edited structure cross-section.

Figure 9 .
Figure 9. Example of visualization of Thickness function for printed model.

Figure 10 .
Figure 10.Example of visualization of Thickness function for designed model.

Figure 11 .
Figure 11.Graph of the average thickness of the trabeculae of the printed model.

Figure 12 .
Figure 12.Graph of the average thickness of the trabeculae of the designed model.

Table 1 .
A table that checks whether the average thickness of the trabeculae corresponds to the thickness selected in the algorithm.

Table 2 .
Table showing variation of porosity against change in number of Voronoi centers and thickness of beads.

Table 3 .
Comparative table of porosity of the designed and printed model.

Table 4 .
Comparative table of the average thickness of the trabeculae of the designed and printed model.