-
Notifications
You must be signed in to change notification settings - Fork 2
4 Medical Modeling
Digital modeling and rapid prototyping arise from the engineering need
to quickly and cost-effectively design prototypes modeled using CAD
software.
This request has led to an evolution of the software and equipment
necessary to put this workflow into practice. Rapid prototyping has
proved to be a useful tool, allowing to quickly evaluate the physical
prototype and improve its digital design according to what it is found
on the prototype, until a product that meets the required needs is
obtained, iteration after iteration.
It was then realized that the same concept could be applied to other
types of three-dimensional data, leading to the development of software
to interface medical scans with rapid prototyping equipment. From the
appreciation of the potential of this approach has developed the
multidisciplinary field of Medical Modeling, which brings together
engineers, radiologists, surgeons, designers, computer scientists and
various other professionals, with the aim of using the acquired data
from the patients to provide them with the highest standards of therapy
[@Reference1].
Diagnostic images are extremely useful, both in everyday clinical
practice and in research. The digitization of acquisitions, the
widespread use of computers and the variety of software available for
data processing have allowed doctors to integrate imaging diagnostics
into their daily activities. Diagnostic instruments are often sold by
manufacturers with packages that include dedicated workstations and
software. This should ensure, to the professional who buys the package,
the full compatibility and integration of the dataflow between the
purchased instruments.
When using medical imaging equipment, we do not work directly with the
DICOM standard, but we are dealing with the implementation of the DICOM
made by the manufacturer of the instrument used. This means that
compatibility is not guaranteed, but we must rely on the DICOM
Conformance Statement that the manufacturer must attach to the tool,
which indicates which functions of the DICOM standard have been
implemented [@Reference25].
Proprietary software is certainly efficient, easy to use and often has
good performance, especially when used on workstations marketed by the
same manufacturer. At the same time these software are often not
available outside of the packages comprehensive of the diagnostic
equipment, or have a high cost to be purchased by institutions on a
budget or by clinicians and students who want to approach the field. In
addition, the fact that software is delivered with commercial license
means that its source code is not accessible, and researchers working in
the field have no way of developing new functions or testing new
techniques on these software.
For these reasons, several open-source software have been developed,
which allow researchers to use the general functions of medical image
processing, such as DICOM file management and image visualization, and
integrate functions for advanced images analysis and processing.
These software cover a large part of the workflow that we are going to
analyze, and they provide other functionality that can be very useful
when is required to perform advanced operations or create functions
tailored to specific use cases.
A three-dimensional model is a collection of points, connected to form
lines, curves, polygons and volumes. Models can be created with
appropriate modeling software, or acquired from the real world by means
of scanning devices.
The act of creating a model, modeling, can be separate in organic
modeling and geometrical modeling.
Organic modeling is used to create natural geometries with rounded or irregular shapes,
such as animals, plants, stones, humans and organs. The model consists
of a surface made of polygonal faces, generally triangles, called
mesh. The density of polygons on the surface accounts for the
resolution in the representation of details. Most of the models used in
the medical field belong to this category, especially the models of
parts of the human body.
The most common format for store organic models is the .STL
(Stereolithography, Standard Tasselation Language), which is a
collection of triangular surfaces defined by the position of vertices in
space and from the normals to the surfaces. The language was developed
by 3D Systems for specific use with stereolithography machines, but it
is now the standard language for models to be used with 3D printing.
A consortium of companies operating in the field of three-dimensional
modeling and in additive manufacturing is currently at work for the
creation of a new standard format, the .3MF (3D Manufacturing
Format) [@Reference143].
Geometrical modeling is used for the design of artificial parts, where the number of faces of the model must be optimized to simplify the design, the production and ensure the future adaptability of the design. The most widespread type of geometrical modeling is the parametric modeling, adopted by major CAD software. Parametric modeling is based on the use of geometric primitives (lines, curves …) whose dimensions are defined and correlated. Parametric modeling is indicated for the design of engineering products, prosthesis and surgical guides. The output format of the model is dependent on the software used, but most parametric design software allows to export the models in .stl for the 3D printing procedures. The exported .stl model should be assessed for eventual conversion errors.
3D Slicer is an open source software for the management and
visualization of diagnostic images, made by developers and researchers
in the medical field in a project supported by the National Institute
of Health (NIH), with the collaboration of companies such as Kitware
Inc. and General Electric, and an expanding community of developers
[@Reference28].
3D Slicer allows to manage DICOM files from PACS server (Picture
Archiving and Communication System) and non-specific archives, and
allows to view and process images in 2D, 3D and 4D (X, Y, Z and T,
time, for example detection with ultrasound probes). The software
offers the ability to render images and to create templates for use with
CAD software [@Reference31].
From a software point of view, Slicer has a modular structure, with
basic modules (Core modules) that provide generic DICOM file
management (DICOM), rendering (Volume Rendering) and the functions
of image transformation in 3D space (Transforms). Some of the other
relevant modules are:
-
Filtering: contains tools for preparing the image for subsequent processing (preprocessing). The most used features include arithmetic operations, noise reduction and correction of the density distribution of the scan, however there are dozens of other algorithms that can be used.
-
Registration: provides the ability to align two scans with each other, useful when aligning different scans of the same patient, or orienting scans to standardize a dataset.
-
Segmentation: segmentation is the separation of the image into smaller regions based on their characteristics. 3D Slicer integrates both interactive (with human input) and automatic segmentation methods.
-
Surface models: allows the creation and management of surface volumes to be exported for further processing in other software.
-
Image guided Therapy: gives the possibility to exchange data in real time with peripherals including robotic devices, scanners and radiotherapy devices. This feature allows peripheral devices to be used in conjunction with diagnostic images, and may be of interest for use as virtual guide to implant placement [@Reference118].
Other modules are present, and the collection is frequently expanded
with modules created by the community, institutions and companies.
Furthermore, each user can create a module and distribute it as a source
or as a binary file (an executable file); this path can be used for
packages that contain non-free proprietary code, but whose authors still
want to distribute the functionality to the community [@Reference28].
The software is accompanied by publications and a documentation
describing the implemented functionality [@Reference28], [@Reference29],
[@Reference30]. The documentation is the best reference for users who
want to use the software and should be consulted to fully understand the
operations performed by each module. There is also a forum on which is
possible to communicate with 3d Slicer users and developers
[@Reference35].
Blender [@Reference32] is free and open-source software for computer
graphics, maintained by the Blender Foundation and a community of
volunteer developers. It provides basic mesh creation and management,
and advanced features such as animations, rendering and physical
simulations.
Blender is a software that covers many aspects of computer graphics. It
is accompanied by an extensive documentation of its features
[@Reference33]. The Blender community is important and has contributed
to the maintenance of the software during its evolution, together with
the Blender Foundation. The community is the place where to exchange
ideas with experts and software users, where to find tutorials and
workflow examples for all the features of Blender [@Reference34].
Blender is very useful for the post-processing of the models created in
3d Slicer. The software allows to modify the meshes of the model and to
perform operations such as smoothing, the modification of the size and
resolution of the mesh and to use Boolean operations between two models
(difference, union and intersection). It also allows rendering to
create high-quality images of the models.
MeshLab [@Reference36] is free and open source software that allows
advanced mesh processing, developed by students and researchers of the
Faculty of Computer Science of the University of Pisa. The software
allows the import/export of a large number of format in which the models
can be found and integrates tools for the inspection of the mesh and for
its cleaning, algorithms for remeshing and creation of meshes from point
clouds (optical scans, photogrammetry ...) and the management of the
associated textures.
This software is useful for cleaning models, correcting problems with
meshes, reducing the number of meshes and changing the shape and
distribution of meshes on the model and comparing the models with each
other.
MeshMixer [@Reference38] is not an open-source software, but it is a
free software released by the company Autodesk, which allows the
visualization and processing of the meshes. MeshMixer is a software with
many features, in some cases overlapping with software such as Blender
and MeshLab, provided with a rich documentation [@Reference39].
This software provides an easy-to-use interface and excellent model
manipulation and 3d printing preparation capabilities. MeshMixer
simplifies the process of inspection and repair of the model, integrate
analysis algorithms and tools for mesh processing. MeshMixer is a
versatile tool that can be used in various step of the digital
workflow.
When working with simple models, MeshMixer can speed up the preparation
for printing, with tools that allow to perform Boolean operations, drill
holes and repair defect of the mesh. The software facilitates the
selection of areas of the model to be separated or in which to perform
specific operations.
FreeCAD [@Reference40] is free and open-source parametric modeling
software supported by a community of volunteer developers. The software
allows to manage the production chain of an object. Integrate modules to
perform the technical sketch and realize the 3D design from the sketch
or by writing mathematical functions. Features modules for multi-part
assembly and physical simulation, as well as various other applications
such as robotics or boat design.
FreeCAD is useful for the realization of precise models, such as
surgical guides and prostheses, but also parts created specifically for
the 3D printer and allow to create objects of general utility such as
supports and containers. It is a versatile software and a tool to known
for anyone approaching 3D printing with the intention of creating
functional and not merely aesthetic objects.
FreeCAD is supported by a frequently updated online documentation
[@Reference41], and an ebook useful for understanding the basic
functionality of the software, with practical examples aimed also at the
3D printing processing [@Reference42].
Inventor [@Reference43] is a professional CAD software developed by Autodesk. It is among the most advanced parametric modeling software, and integrates all the functions of FreeCAD plus many others. The software is provided by Autodesk with a subscription plan, but for the students it is possible to download a 3-year trial version, very useful to have an approach with the software and to test its characteristics in depth. Inventor offers an easy approach to topology optimization via a dedicated module.
nTopology [@Reference139] is a commercial software for managing
lattices and scaffold. It is a paid software but there is a free
version that allows you to have an overview of the functions. The
software facilitates the integration of 3D models and their conversion
to scaffold.
It is possible to load physical simulations into nTopology, through
which scaffolds can be obtained that will be optimized with respect to
the loads that they will have to sustain. We will use the Free version
of this scaffold generation software.
Cura [@Reference44] is an open-source software for converting 3D models
to g-code (slicing). The software is distributed by Ultimaker, a
manufacturer of FDM 3D printers, and supported by a community of
volunteer developers. Cura is supported by a documentation of the
features [@Reference45] and in-depth articles [@Reference52].
The software allows to perform slicing of the model and to adjust the
printing options. Cura allows the adjustment of many parameters,
including the printing temperature, layers height, filling geometry and
its percentage. It also allows the automatic creation of various types
of supports, and integrates the ability to work with more than one
extruder in the same print, to make prints with more than one material.
Slicing is an important process in the printing workflow because it
translates the digital model into a series of instructions. These are
provided to the printer and result in a sequence of operations that it
performs to give rise to a physical model, which aims to be the exact
copy of the digital model.
Cura documentation describes the various printing parameters very well,
so the main parameters will be briefly described here and the practical
implications will be analyzed.
The Quality menu contains parameters for adjusting the layer
height and the width of the extruded line. Reducing the value of these
items results in an increase in quality, because smaller details can be
reconstructed. The choice of these parameters is not arbitrary, but is
based on the characteristics of the printer.
The layer height depends on the resolution of the extruder movement on
the Z axis, which in turn depends on the steps/mm, based on movement
mechanics and step interpolation (microstep). For example, a screw
transmission with 8mm pitch, 1.8 degree/step stepper and 16x microstep,
does a maximum 0.04mm step on the Z axis, which translates into a
maximum resolution of 0.04mm on the Z axis, with the layer height to be
set in multiples of 0.04 to have the maximum precision that this
hardware is capable of.
Lower layer height allows you to reproduce smaller details and have a
surface finish with a smoother appearance, but also increases the
printing time, because you will need more layers to reproduce the
model.
Setting the height of the first layer (Initial layer height) with a
higher value than the subsequent layers generally gives a better
adhesion of the object to the print bed, because a more abundant flow of
material in the first layer helps to compensate for a printing plane
that is not perfectly horizontal.
The layer width depends on the diameter of the nozzle used, with
smaller nozzles that increase the details reproduction, and large
nozzles that reduce printing times; these are currently found in
diameters ranging from 0.15 mm to over 1 mm. The layer width setting
should be set to a value close to that of the nozzle diameters,
maintaining a range of freedom to optimize the printing result. Setting
a value slightly lower than the actual diameter can increase the print
quality, but must be evaluated from time to time; moreover, a smaller
width increases the printing time, because more lines will be used to
make up the model. The value can be increased to compensate for any
nozzle wear, but it is a temporary remedy and it is preferable to
replace the worn nozzle with a new one.
The Shell menu allows you to adjust the parameters of the model walls (shell). We can independently adjust the thickness of the model surfaces, roof and floor. A greater thickness will give a greater resistance to the model and a greater resistance to fluids leakage (leaking) that can flow inside the model (microfluidic platform). There are also various parameters regarding compensation for the expansion or shrinking of the print material and for fine-tuning the reproduction of the model surface.
The infill is the filling of the model, the one that is inside the
shell whose parameters we have explained before. The quantity of infill
can be set in percentage, with 0% indicating the absence of infill and
100% indicating the complete filling of the volume of the object. There
are several pattern of infill, some fast as Lines or Grid, others
slower but with better absorption of forces, such as Cubic
subdivision, while still others useful for printing deformable objects,
such as Concentric and Cross.
The infill gives resistance to the object and acts as a support for the
upper layers of the model. The percentage of infill must be adjusted
according to the mechanical conditions in which the infill has to
operate. A model that undergoes stress during use must have a high
infill and a suitable geometry, while an aesthetic model can be made
with little or no infill, in order to save material and speed up
printing.
The infill menu contains several parameters that can be adjusted, among
them the possibility to manually set the angle of some patterns (Infill
Line Direction). Manual adjustment of the infill line angle is a quick
method in which the design of simple three-dimensional scaffolds can be
performed [@Reference138].
The Material menu contains parameters for adjusting the
temperatures and the extrusion process. It is possible to adjust the
printing temperature and the temperature of the heated printing plate
(build plate temperature); you can set the temperature of the first
layer independently of that of the subsequent layers. A higher
temperature at the first layer favors the adhesion to the bed, because
the extruded material is less viscous and flows better on the surface.
The heated plate also facilitates adhesion, which is however related to
the material of which the plate is made.
The flow is regulated as a percentage and must be adjusted to avoid
excesses or deficiencies of extruded material during printing. An
adjustment method consists of observing the surface of the printed
object to see if there are spaces or excesses between the layers, and
varying the percentage of flow until it appears uniform. Another method
is to print a cube without a roof, infill 0% and with thick walls line
(in shell -> wall line count = 1), and with a caliper measure
whether the wall is actually thick the same value set in shell ->
wall line width. This empirical method can give an indication of the
discrepancy between the actual width value and the real value. However,
the relationship between the wall thickness and the flow value is not
linear, because the extrusion quantity is influenced by parameters such
as printing speed, actual filament diameter and printing temperature.
An important parameter is retraction. Retraction is the distance that
the filament is pulled back from the extruder each time a printed
segment ends; this movement serves to reduce the pressure inside the
nozzle and to limit the release of molten material during travels
(oozing). The values of retraction distance and retraction speed must
be adjusted with appropriate tests, together with extrusion temperature
and jerk.
The Speed menu allows you to set the print speed. You can adjust
the print speed of the shell and infill separately, the speed of travels
and the accelerations during the various printing phases. The jerk is
a parameter that manages the maximum instantaneous velocity change of
the extruder; a low value smooths accelerations and decelerations while
a high value makes them brusque. The effect of jerk is more evident when
working at high speeds [@Reference53].
The printing speed must be adjusted according to the possibilities of
the printer. Fast prints are generally less precise than slow prints,
and for objects where accuracy is required a lower speed should be
preferred. Fast prints cause vibration of the structure and instability
in the flow of material, for which test prints must be made to evaluate
how the printer behaves at various speeds.
The speed also depends on the inertia of moving parts, so having a few
light moving parts would help to increase speed in printing operations.
The filament extrusion system in FDM printers essentially consists of an
extruder and an hotend. The extruder is the part that pushes the
filament into the hotend, which warms up and melt the filament, which
exit from the nozzle under the thrust of the extruder. On Cartesian FDM
printers direct extrusion is often used, which consists of the
extruder connected to the hotend, both moving together on the axes.
To lighten the moving mass, and hence the inertia, it is possible to use
an extrusion configuration called bowden [@Reference54],
[@Reference55], where the extruder is far from the hotend. The decrease
in the moving mass, due to the dissociation between the extrusion
process and the material melting process, allows printing at higher
speeds without an excessive degradation of the printing quality. In the
bowden extrusion the filament goes from the extruder to the hotend
usually passing through a Teflon (PTFE) tube, needing an obviously
longer path than the direct extrusion; this makes the filament less
responsive in the extrusion and retraction steps. This effect can be
compensated for by adjusting the parameters of priming and retraction of
the filament.
The Travel menu contains options for managing printer movements during movements without extrusion. The Combing Mode option restricts the movement of the nozzle to the print area of the model to reduce the need for retraction. This parameter can always be active, only active in the infill or off. To be adjusted according to the model to be printed, but pay attention to the fact that the nozzle moves on an already printed area and could damage it. Combing usually reduce printing time. The Z-Hop is a movement of the extruder on the Z axis at each retraction; by raising the extruder at the defined distance, it prevents the nozzle from touching the print during movements.
The Cooling menu provides tools for adjusting fan behavior during
printing. During first layer printing the blower turned off favors good
adhesion between the object and the printing plate; subsequently the fan
speed can be increased up to 100%. A good cooling of the material allows
to print geometry with greater angles, using less supports for suspended
areas (bridges).
Gradually increase the fan speed is preferable for the initial few
layers, because it limits the deformation and detachment from the plane,
especially with large prints. Some materials, such as nylon, often
require little or no cooling during printing, to prevent shrinkage
deformation.
The menu Support gives the possibility to create supports for the suspended or strongly inclined areas of the model. Various parameters can be adjusted on the quantity and shape of the supports, as well as the distance to be maintained by the object. During the creation of supports, a compromise must be sought between proximity to the object to be supported and ease in supports removal.
The Build Plate Adhesion menu allows to generate contours or surfaces to facilitate the adhesion of the first layer to the plane.
Skirt is simply an extrusion turn made around the perimeter of the model to be printed, without touching it; it serves to prime the extruder, to extrude the material before printing so that the nozzle is ready to start the first layer.
Brim is a contour that joins to the edge of the first layer of the object. Its width can be adjusted and is an important help to keep the models sticking to the floor. It is also easy to remove and leaves virtually no marks on the model.
Raft is a few layers thick grid, produced between the printing plate and the object. Raft improves the adhesion even on an irregular surface and allows a good distribution of heat to the model. Useful for printing materials that deform greatly due to the printing process.
The other menus contain other advanced controls on the repair of the
mesh during printing, special printing modes and experimental functions,
which are not essential for the procedures here described, but which are
still worth knowing, because they are useful in some situations. In the
Special Modes we find the Print Sequence option that gives the
possibility to print objects on the plane all together or one at a
time.
The Mold option gives the possibility to create model negatives (a
mold), which can be printed and used to recreate the original model by
molding.
In Experimental, the entry slicing tolerance indicates how to
slice the diagonal surfaces and affects the slicing mode [@Reference56].
It is important to manage the tolerance of mechanical components that
need adequate precision.