featured.jpg

Week 5: 3D Scanning & Printing

Table of Contents

This week, we got introduced to 3D scanning and printing. Our tasks were to characterize the available printers, scan and refine a real object, and learn how to design an object for 3D printing. In particular, I worked with Blender where among other things I learned how to perform physics simulations.

This Week’s Tasks

  • Group assignment:
    • Test the design rules for your 3D printer(s)
    • Document your work on the group work page and reflect on your individual page what you learned about characteristics of your printer(s)
  • Individual assignment:
    • Design and 3D print an object (small, few cm3, limited by printer time) that could not be easily made subtractively
    • 3D scan an object (and optionally print it)

Introduction to 3D Printing

In this week’s Lecture, Neil talked about 3D Printing and Scanning. We covered different printing techniques, materials, design rules for designing objects for 3D printing as well as more or less affordable options for scanning objects.

Ferdi added to the lecture by discussing early 3D printing projects, such as Popfab (portable printers that fit in a suitcase). He also hinted us at useful software like Codethread for generating G-code to print structures that you could hardly model in CAD and he talked briefly about the concept of topology optimization (TopOpt) for creating lightweight structures.

Types of Printers

There are several types of 3D printing technologies. Fused Filament Fabrication (FFF) is one of them. It is synonymous with Fused Deposition Modeling (FDM), a trademarked name that belongs to Stratasys. FFF uses different filament types, including PLA (polylactic acid), which is a plant-based, but rather porous material. Another material is PETG (polyethylene terephthalate glycol-modified), which is oil-based, recyclable, and more robust.

Selective Laser Sintering (SLS) involves the use of powder, which is heated with a laser ed until it melts. Another printing method, Stereolithography (SLA), uses photochemical processes to form solid polymer structures from specific fluids. The video R&D Tour: The engineering behind SLA/SLS Printers by Breaking Tabs was a recommended watch for that.

Additionally, there are other techniques worth mentioning, such as FFF printing with clay to retrieve ceramic objects. Similarly one could print with clay mixed with metal (see Prototyping - Metal 3D Printing by Dan Gelbart on YouTube for reference) and then removing the clay in an oven to retrieve a metal part. Another example is printing with color, as demonstrated in a project described on Hackaday.

Selected Issues with 3D Printing

With 3D printing issues may arise that require further tuning of the printing parameters: Over-extrusion (printer extrudes too much plastic) results in visible horizontal lines and overall poor quality, along with irregular layers. Wrong temperature settings lead to an uneven surface gloss. Incorrect retraction length or retraction speed cause stringing or a lack of material. Wrong belt tension, referring to the tension of the belt that moves the print head, can make the print inaccurate if it is too loose. If the steps per millimeter in the X and Y direction are not tuned sufficiently, prints will be inaccurate as well. To test this, a cylinder can be printed. If the cylinder is not round, the tuning is inaccurate. As it can be seen in the following, these issues are fortunately not significant with our printers. Warping is a problem which is rather dependent on how a model is printed. If there is a large contact area, the model bends. To combat this, brims can be added at the corners, or the object can be printed tilted to reduce the contact area.

Other settings that are important include minimal layer time, height of the first layer, and seam line position. If a printer is finished with a layer before the minimum layer time is exceeded, it waits until it is before printing the next layer. This allows the layer to cool down sufficiently before printing the next one on top of it. The height of the first layer is significant for the stability of the print. The seam line, where the print head moves up to print the next layer, can be chosen to be a straight line or it can be randomized.

How To Print

First, we looked at what is the process to get a printed object given an .stl file. The first step was to slice the object. Slicing is a process that takes a 3D object file (such as .stl) and yields G-code, which defines how the printer nozzle is to be moved at what speed to print the given object. To do that, a slicer software is needed. I used Prusa Slicer. When installing Prusa Slicer, one has to click through the installation wizard. When it came to choosing the printer and filament presets, I chose the 0.4 nozzle standard and input shaper presets for the printers Prusa MK4S and the Prusa XL, our available printer types. As filament presets I selected to install the ASA, PETG, and PLA presets of Prusament (filament brand from Prusa which is available at our lab) as well as the generic presets. More filament presets could be added later on. For the UI, expert mode was selected, so no options in settings and menus were hidden.

UI of Prusa Slicer.
The measurement tool (left) is helpful for checking dimensions. The block and layer icons (right) can be clicked to switch between different views of the slicer.

When preparing a print, the printer should always be chosen first, followed by adjustments to the print settings and filament. This was because if the printer was changed, the settings above would be overwritten.

Print settings menu for the Prusa MK4S (left) and the Prusa XL (right).

For the first print, we chose this printer benchmark (version from 2018-02-25) which will also be used later for analyzing the printers’ performance.

Apart from this print, the following models are printed to check for clearance, overhang and wall-thickness: clearance.stl, free.stl (overhang), thickness.stl.

The downloaded .stl file was added to the slicer.

Note that when selecting the Prusa XL as a printer, the nozzles to be used need to be set for each file that is added to the print.
Simply hitting the Slice button yielded a slice of the object. Per default, it contains support material. Support material is usually to be added where there are elements that either are overhanging or that would need to be printed while floating in the air.
However, we did not want to have this, since the purpose of the present benchmark was to test how well the printer performs with certain structures without support. Therefore we disabled it.
Slicing the object then leaded to G-code that could be exported, put on a stick and inserted into a printer to start the printing process.
Note that it is recommended scrolling through the sliced layers to check if there are any issues with the print before exporting to G-code. One issue to check is missing layers. Those could occur and would mess up the print. The screenshot is taken from the section where I designed and printed a new object down below.
Note the error messages that the slicer tells you. They help understanding if there is something wrong with the print. Error messages could be motivated by badly-prepared .stl files (containing non-printable structures, free floating surfaces, etc.), objects that probably require support for certain structures where support is disabled, or overlapping objects when multiple objects are printed.

In some configurations, a so-called wipe tower is added by default. Its purpose is to in case of multi-filament printing wipe the nozzle after a change of filament.

However, this was not required in our case. If we needed multi-filament printing, we would use the Prusa XL. This printer has multiple nozzles, one for each filament. It does not need the wipe tower, so we disabled it in any case. This was done in the print settings.
There, if you do not know where to find a certain setting, you could just use the search bar on top.
Searching for enabling the wipe tower showed then where exactly to find that setting, so it could be adjusted by the user.

If you need to print something which would need to flow in the air while printing, additional filament needs to be added which is not part of the object itself, but supports the printing process. Thus, it is called support. There are different support options available. One option is None, where no support is used. Another option is support on the build plate only, which means that support is added only on the plate, and holes above the ground are not supported. The third option is everywhere, where support is applied for both.

There are also different types of supports to choose from. Two support types are snug and grid. Another one is called organic. It creates tree-like structures, though it is harder to remove than snug.

Adding support.
Changing support type to ‘organic’.

Applying support only to selected objects, not to all. Note that you need to right click onto the entry in the .stl file list and click ‘Support material’. Then, you can uncheck the ‘Generate support material’ box.

Apart from that, there are some more options that could be explored in the slicing process. Infills, for example, specify how the inside of the printed object is structured. The optimal choice of infill depends on how the object would be stressed in the end. Cubic infill is fast-printed and stressable, similar with gyroid. A summary about infills is found in the video Rethink how you use 3D printer infill! by Made with Layers. Brim extends the first layer to be a bit wider around the contact areas of the object and the print bed. It creates more stability for the printed object and is helpful if there is a risk of nozzle momentum removing the object from the bed. Draft is similar to brim, but the first layer is extended everywhere, not just around the contact areas between the print bed and the object. Regarding layer height, a 0.2mm layer height is considered a good standard. The thinner the layer, the smoother the surface, but it also makes the print more unstable.

In the following, the process of printing some of the benchmark prints is depicted.

Wrong filament detected.
Unloading filament.
Changing filament to correct one and loading it.
Starting the print.

Removing print from bed.
Cleaning the finished print.

Design Rules

The group assignments everyone documented on their personal websites first. Afterwards, the content was transferred to the group page.

All benchmarks were printed for each of the printers Prusa XL and Prusa MK4S. On each printer, the benchmarks were printed twice. Once for PLA and once for PETG. We also have TPU and ASA available, but we decided, not to benchmark these filaments. Unless mentioned otherwise, we used the parameters from the presets of the corresponding filament and printer. (Prusament PLA/PETG, Prusa XL/MK4S). As mentioned above, we used this printer benchmark (version from 2018-02-25) for evaluating the design rules and the following files suggested in class: clearance.stl, free.stl (overhang), thickness.stl. From that, we derived the design rules. All prints were printed using the corresponding input shaper 0.4mm nozzle presets with 0.2mm layer height and the structural preset.

Dimensioning

The first question we looked at was how to dimension an object so that the dimensions in a printed object are as desired. For this benchmark, we considered the aforementioned printer benchmark.

Benchmarks from left to right: Prusa XL PETG, Prusa XL PLA, Prusa MK4S PETG, Prusa MK4S PLA.
For each object we measured the same dimensions.
For easier reference, we gave a name to each dimension.
For the objects we recorded the following dimension values. All dimensions are given in mm.

Value (see photo) target value Prusa XL PLA delta abs delta percent Prusa XL PETG delta delta percent Prusa MK4S PLA delta delta percent Prusa MK4S PETG delta delta percent
x1 100.00 99.87 0.13 0.13 99.83 0.17 0.17 100.13 0.13 0.13 99.72 0.28 0.28
x2 30.00 30.03 0.03 0.10 30.17 0.17 0.57 30.06 0.06 0.20 30.06 0.06 0.20
x3 10.00 10.04 0.04 0.40 10.16 0.16 1.60 10.04 0.04 0.40 10.04 0.04 0.40
x4 14.00 14.01 0.01 0.07 14.00 0.00 0.00 14.01 0.01 0.07 14.02 0.02 0.14
y1 100.00 99.91 0.09 0.09 99.82 0.18 0.18 100.25 0.25 0.25 99.77 0.23 0.23
y2 30.00 30.00 0.00 0.00 30.11 0.11 0.37 30.04 0.04 0.13 30.04 0.04 0.13
y3 10.00 10.03 0.03 0.30 10.12 0.12 1.20 10.16 0.16 1.60 10.14 0.14 1.40
y4 4.00 4.03 0.03 0.75 4.03 0.03 0.75 4.03 0.03 0.75 4.04 0.04 1.00
y5 2.00 2.00 0.00 0.00 2.03 0.03 1.50 2.00 0.00 0.00 2.02 0.02 1.00
di 8.00 7.83 0.17 2.13 7.61 0.39 4.88 7.81 0.19 2.38 7.78 0.22 2.75
do 10.00 9.85 0.15 1.50 9.83 0.17 1.70 9.86 0.14 1.40 9.81 0.19 1.90

We considered the following questions:

  • Given a desired outer/inner diameter of a (hollow) cylinder, how to dimension it during the design?
    • Answer: Looking at the delta values, we can derive around 0.2mm are to be added to all diameters in the design.
  • Given a desired real length (dimensions that are not diameters) in x/y direction, how to dimension it during the design?
    • Answer: From the delta values it could be seen that mostly, the dimensions for larger target values have higher deltas (compare x1/y1 to the other dimensions). However, in the case of the Prusa XL PETG print, the deltas were high also for the smaller dimensions. Therefore, no clear design rule could be derived. I concluded that FFF printing is only possible to the scale of millimeters to my best knowledge. If higher precision is needed and FFF is considered, I would suggest leaving dimensions which are smaller than 100mm as they are and adding an offset of 0.1mm to 0.2mm to dimensions above or equal to 100mm.

Bridging, Angle, Surface Finish, Warping

The following questions we considered. All outcomes were the same for all printer-filament configurations.

  • How steep is the steepest angle to be printed without support?
    • Answer: In the lecture, an angle of 30 degrees was recommended. Following our tests, the maximum angle to print without support is 50 degrees if you want to be precise. If you have some tolerance, 60 degrees would also be fine.

Angle.

  • How long can bridges be without support?
    • Answer: Bridging works at least up to 25mm bridge length.ngth of at least 25mm.

Bridging.

  • How does the surface finish look at which angle?
    • Answer: The surface finish dependent on the angle can be seen in the following pictures.

Prusa XL PETG (left) and PLA (right).
Prusa MK4S PETG (left) and PLA (right).

Wall Thickness, Overhang, Clearance

The following questions we considered:

  • What is the thinnest wall i can print?
    • All wall thicknesses were able to be printed. However, the issue here is that the actual wall thickness is thicker as it is assigned to be. There just is a limit on how thin the walls can be with the printer. With the given configurations, these limits are between 0.34mm and 0.37mm.

Wall thickness. Prusa XL PLA (left), PETG (right). The shorter walls for the PETG case are due to a spontaneous printing error. I did not find out why it happened, but the filament there was cluddered and the walls at the left were not printed correctly.
Wall thickness. Prusa MK4S PLA (left), PETG (right).

  • How much overhang with 90 degree angle can be printed without support?
    • All overhangs did not look good and should be printed with support.

Overhang. Prusa XL PETG (top), PLA (bottom).
Overhang. Prusa MK4S PETG (top), PLA (bottom).

  • How much tolerance / clearance must be considered for joints?
    • Following the given tests, the suggested clearance for joints is 0.4mm. With 0.3mm, the joint is a bit too tight and frictious.

Clearance. Prusa XL PETG (left), PLA (right).
Clearance. Prusa MK4S PETG (left), PLA (right).

Designing & Printing an Object: Alien Tree

The task was to design and print an object that could not be made subtractively. The options to do this is to print in-place printed joints, something cavitated (one object being inside another one), or very fine entangled structures.

My first idea was to do something with CodeThread, a library for processing that enables you to generate G-code. I spent much time trying to get it running, as it seems not to be maintained anymore. I ended up finding that you probably would need to implement a new library following current processing standards and take the present code of CodeThread as a basis for it. I decided not to continue with this, since it probably would have taken too much time.

Next, I thought of fabricating something for my final project, which at this point was a synthesizer. One thing I could have printed was a knob for a potentiometer or a rotary encoder. Following you see some inspirational images of potentiometer knobs.

A nice-looking poti cap I found on mouser.com.
The poti cap from our Prusa MK4S printer.
However, these objects could also be made subtractively, so I did not continue on this.

I thought, I just do something that is fun modeling which also fulfills the assignment. The idea was a tree-like thing that encloses a spherical object in its crown.

Sketch of the design.

Modeling

The following images along with their comments document the modeling process.

I started out with a cylinder, modeling the trunk and roots by extrusion to apply the ‘Subdivision Surface’ modifier later.
One issue I faced during that process was that I wanted to scale the loops around the roots but without moving their bottom vertices.
To solve this issue, one had to first hit shift+s to open the corresponding menu and select ‘Cursor to Selected’.
Afterwards, I chose the 3D cursor as the transform pivot point. This allowed scaling the loops without moving the bottom vertices.

Alternatively, the vertices that are to be moved down could be selected while being in the top view (can be reached by hitting 7) and moved along the z axis by hitting g z.
In this example, not all points got selected, probably, because they were on top of other points when looking from above. This gave a great opportunity to show how to repair weird vertices.

I selected the weird vertices, hit x and selected ‘Vertices’.
The resulting hole then needs to be filled. This can be done, by marking the loop of vertices and then hitting f. Note that in the left picture, there is still one unselected vertex. It needs to be selected before hitting f. To select a loop, alt+left click can be used as a shortcut.
However, the created face did not contain any defined edges. Such faces could lead to several issues, such as non-manifold geometry or shading problems. So I again hit x and chose ‘Faces’ to delete the selected face to create a more proper filling of the hole.
Instead of filling the whole loop, you can just mark the group of vertices that should be filled with a face. Thereby you can introduce defined edges at the desired locations. Another way to do this is to mark a loop with alt+left click, as above and hit the shortcut alt+f. This fills the selected loop with a face containing defined edges.
Note, that during editing it could happen that there are free-floating vertices, edges or faces somewhere in the model. This edge here was not even possible to be seen from the outside. I had to view it from the inside of the model. In this case, I just deleted the edge.
To make the roots looking as they would come out of the tree, I moved the edges that connect root and trunk up a bit while using the proportional edit mode. This mode leads to nearby objects of the selected one being edited in the same way but to a little less extent. The radius of the proportional editing could be adjusted by scrolling the mouse wheel.
At this point I added the ‘Subdivision Surface’ modifier. This subdivides each surface into smaller surfaces making everything more smooth.
I extruded the circular surface at the top without moving and then scaled it down. This resulted in multiple trapezoid faces appearing at the rim of the top. Those could then be extruded.
By adjusting the ‘Levels Viewport’ modifier, you can control how many surfaces are added and thus how smooth the object appears.
I extruded the tree’s crown more and more to almost join them at the top.
This is how the tree’s crown looked in the end.
To add something that makes it hard to fabricate subtractively, I added a sphere inside of the crown. I scaled it and moved it so that it did not touch any of the tree’s elements.
This is how the whole model looked like in the end.

Slicing

I went on slicing the whole tree. However, I wanted to print the sphere with a different filament. This did not work that way.
Instead, I exported the tree and the sphere separately from blender (make sure to set the origins of both objects to the same point, see Object > Set Origin for this). Afterwards, I imported only the tree in the slicer and afterwards, the sphere by right clicking the tree.stl file and selecting the corresponding action.
I could then select different filaments for each of the components.
Here, I scrolled through the sliced layers to check if there are any issues with the print. One issue to check is missing layers. Those could occur and would mess up the print.
Here, we can see that support is added at the bottom layer. This is, because the bottom of the tree model itself is not flat. This could be countered by subtracting a large cube from the bottom of the object using boolean operations. Those are provided by modifiers or, which to me is more conveniently, the Blender plugin ‘Bool Tool’. Due to time constraints, I did not reiterate to do it with this model, but I considered this issue when printing the hand in the scanning section down below.

Printing

After printing, I cleaned the object and removed the support.
This is the final print. Note that the remaining strings could further be removed with a lighter.

Scanning (& Doing Fun Blender Stuff)

For scanning 3D objects there are many more technologies that are not covered in this documentation, but I would like to give a short overview of some techniques. The gold standard is tomography, however this comes only with very expensive tools. Another one is photogrammetry, which constructs a point cloud out of photos. It requires much computational capacity. Another technique is to cover an object with milky liquid at different heights, make a photo out of that and use basic image processing to construct a mesh. There are also contact-based scanning approaches where an object is used by touching it at (many) different points and recording those points to create the mesh. The approach that is used here is structured light scanning. This projects a pattern onto an object and observes how the pattern changes to reconstruct the geometry the pattern is projected on.

For this week, I wanted to scan something organic. Maybe wood or root-like structures. Another idea was to scan different surfaces like bark or concrete to use them for modelling some more complex object. I ended up scanning my own hand.

Scanning my Hand

At our lab we had a scanner by creality that was capable of structured light scanning. It’s interface was a software called Creality Scan.

It had different operation modes:

  • Blue Laser Mode
    • Uses blue laser for scanning. Enables for higher accuracy, but requires placing markers and is more sensitive to ambient light.
  • Infrared Mode
    • Structured light scanning using IR light. Less sensitive for ambient light and well-suited for larger objects.

With the Object menu different scanning modes depending on which object was being scanned could be used. Citing the text that occurs when hovering over the question marks:

Object: Face and Body modes use the advanced data processing algorithm specially designed for face and body scanning. Normal: Except for transparent, reflective, through-holes and very thin objects. For transparent and reflective objects, it is recommended to use scanning spray before scanning. Hairs, furs, or similar tiny objects are difficult to be scanned.

Regarding the Feature option: choosing Geometry is recommended when the scanned object has rich geometric features. If this is not the case, Texture mode is recommended. If the object then does not have rich texture features, markers need to be placed.

The option Disable Flat Base controls the use of a specific feature of the scanner. However, I did not find any documentation about it, so I turned it off.

The scanner processes the scanning data to calculate probabilities for each voxel in a 3D space. These probabilities resemble the existance of an object at this voxel. After finishing the scan, all voxels with probabilities above a certain threshold are taken to be part of the object and included in computing the mesh of the object.

We started by scanning my hand. My instructor operated the scanner.
This is how the UI of the software looks during the scan. When the scan is complete, hit the red button with a square inside (complete scan).
Click on the ‘One-Click Process’ button to start processing the scanning data.
UI during processing.
After processing, the scanned object can be viewed.
Hit ’export’ for exporting the scan.
At the end, there were three files: an .obj file for describing the geometry of the object, an .mtl file describing where on the geometry which material was, and how the material looked was specified by an .exr or .png file, which was nothing more than an image file resembling the texture of the object. Note, that the file names should not be changed after exporting them, as this would lead to the texture mapping not working anymore.

Cleaning Up the Scan

After scanning, the scan needed to be cleaned. For that, I imported the object into Blender.

Object imported into Blender.
Texture can be added as well.
Before doing anything else, I created a backup of the object. This was not only good for later in case of mistakes, but one could also apply the texture from the real object on the cleaned-up (modified) one, which would be impossible otherwise. However, I did not investigate this further.
Now, in edit mode, I selected one vertex of the object I would like to isolate. I hit l to select all connected vertices. I inverted the selection with ctrl+i and hit x for deleting.
This is how the isolated hand looked like.

Still there are some blobs attached to the hand that need to be removed. This can be done as follows.

In edit mode, I selected all unwanted vertices and deleted them. Selection could be done either by ctrl+right click for lasso selection, left click for box selection, or by selecting one vertex and hitting Select > More/Less > More. For the first two methods, I toggled on the wireframe display, since otherwise, only those vertices would have been selected that were on the visible surface of the object.
Then, I went into sculpt mode…
…and chose the smoothing brush.
I applied the brush to the edge of the hole.
I filled the hole using alt+f and applied the smoothing brush to it.
Later on, I learned that it is actually better to apply a ‘Remesh’ modifier between closing the hole and smoothing it. The ‘Remesh’ modifier computes a mesh representing that same structure, but with the new vertices in the new mesh being distributed more evenly. This prevents creating non-manifolds by accident, e.g. by entangling a set of vertices when applying the smoothing brush.
Applying the ‘Remesh’ modifier.

Open holes can be closed by first creating a face at the open end (using f for filling) and then fixing the resulting hole as above.
After artifacts and holes were repaired, I applied the smooth brush again to fix small irregular parts of the hand.
I cut away a part of the arm and filled the hole at the stomp of the hand.
This is how the cleaned-up hand looked like.
Before considering exporting the hand for printing, it needed to be checked for non-manifold vertices. In the context of 3D modelling, these are vertices that are somehow entangled with each other. Non-manifold vertices could lead to problems during slicing or printing (e.g. resulting in missing layers). they are fixed by removing them and filling the resulting holes as mentioned above. Remeshing could help here.

Adding Liquid-Like Structures

At this point, I had the idea to modify the hand so that the fingers look like they would dissolve in liquid that drops to the ground. The resulting puddle could then serve as a stand for the model. For that, I first looked into how to simulate liquids in blender. A toy example is shown in the following images.

Rather than adding meshes for flow and domain manually, it was also possible to choose Object > Quick Effects > Quick Liquid while having the object to be simulated selected.
Here, I tried out setting the hand itself as a liquid. However, the effect was not as desired.
Here, I simulated a fluid running down the hand, but it did not end up like strings from the fingers to the ground, but like a tough mantle around it.
I tried having ico spheres in the fingertips that were then simulated to be fluids, but they just fell down like raindrops, not leaving any strings.
Then, I simulated fluid cylinders. My hope was that during falling down, there still would be some mass of the liquid that can be used to connect the resulting puddle and the fingertips. Note, that the cylinders are merged to be one object using the ‘Bool Tool’ plugin. This results in the cylinders being treated as one object in the simulation so they also flow together seamlessly.

Sometimes, there were problems with the physics simulation. To resolve this, I made sure the playhead of the timeline was at time = 0 when I applied the physics rules. If it still did not work, I either closed Blender and reopened it, exported all meshes as STL files and imported them into a new Blender file, or deleted the cache by removing the folders containing the words “fluid” and “cache” next to the Blender file. When I had multiple objects to fluidify, I first united them using Bool Tool. For meshes with a high number of nodes, I used “decimate” to reduce the number of nodes before running the simulation.

The cylinder approach involved much trial and error as well. The fluid wasn’t thin enough, and the mesh that became fluid affected how the fluid flowed. The cylinders weren’t high and thin enough either. There were difficulties with simulating multiple cylinders as fluid, as the simulation process was buggy. Not all cylinders were simulated, or the fluid coming out of them did not join in the end. The trick was to union the cylinders first using BoolTool. After doing this, everything worked very well; the fluids flew together and looked nice in the end.

I also experimented with parameters until the fluid was sufficiently thin and flowy. I adjusted the viewport display thickness and field weights.

At this point, I applied the modifier that was created by the physics simulation to the liquid domain which then behaved just as a usual mesh. I applied the techniques learned earlier to combine the liquid and the fingers and repairing non-manifold vertices.

Here, I noticed, that the pinky finger would not be supported during printing, so I added one by pulling matter from the puddle below using the elastic grab brush. While doing this, the ‘Dyntopo’ option needed to be toggled on. It could be found at the upper right corner of the 3D Viewport. This ensured that the object was remeshed while pulling it around. This in general is helpful when applying extreme changes to a mesh.
The Inflate/Deflate brush can be used to add more matter to a thin part or to reduce the thickness of a very thick part of the object.
Here, I subtracted a cuboid from the bottom of the object to have a flat surface so that no support needs to be generated underneath.
The finished model.
Important points to recall: Remesh after weird editing operations and after repairing holes. Do not have free-hanging parts without support underneath. Check for non-manifolds before exporting.

The object was printed with 140mm height, 0.15mm layer height structural profile of the Prusa XL, and with 15% infill of type gyroid.

The finished print.

Reflections

What I Learned

  • When printing two separate things on the same bed each with a different filament type: do not print them simultaneously. The Prusa XL switches the print head each (or every few, did not observe it that particularly) layer. This is time-inefficient.
  • Most time I spent with working with Blender. I learned about basic 3D modeling and how to repair 3D scans. I learned how to do physics simulations and how to model objects optimized for printing (considering design rules, support that is part of the design etc.).

What Went Wrong

  • When printing the alien tree, I did not flatten the bottom of it. Therefore, support was printed underneath.
  • When modeling the hand, I often smoothed the surface which led to knots, probably resulting in non-manifold points. Next time when I repair a hole in a mesh, I would consider remeshing first before smoothing.
  • The content of the documentation was quite quite much. I started on Monday with refining and sorting the images taken and refining the notes to text. I did not have time to try out the generative AI modeling software from the recitation in the same week.

What Went Well

  • Printing and slicing itself was straight-forward.
  • I created a script for batch-resizing images while preserving the directory structure (see Tips & Tricks).
  • I restructured shortcuts for blender (see the workshop notes)
  • I was continuously getting more routinized in documentating my work.

What I Would Do Differently

  • The blender skills I learned were very nice and worth the time.
  • Next time, I could explore how to make my documentation workflow even more efficient, thereby finishing some parts of the documentation throughout the week. Until now, I separated the week into a making and a documenting part.

Digitial Files

Due to file size limitations the following file types are not included.

  • Prusa Slicer project files (.3mf) and output files (.bgcode). They can be retrieved in a reasonable amount of time from given .stl files.
  • Blender project files (.blend). They do not contain much more information than the pure stl files. Blender files are provided only if they contain more information then the already provided files, such as keyframes, shaders, etc.

Use of Language Models

During writing this report, I used the following prompts asking ChatGPT 4o mini to

  • form bullet points to prose text
    1Take the following bullet points and form prose text out of them. Do not add any additional information. Only use those words used in the bullet points and, additionally, those that are absolutely necessary to build grammatical sentences out of the bullet points. Formulate everything in past tense. Correct spelling mistakes:
    2
    3<insert bullet points>