# Printer profiles, slicing and filaments

## Filaments for Hangprinter

Hangprinters need a lot of material to print big. And usually to print bigger most users decide to install hotends with higher troughput. That's why the need of bigger filament spools comes up. There are few vendors who sell really big spools. This reduces the task of filament reloading. Trikarus is not a printer to print small things slowly. It has a high output extruder (E3D Super Volcano with 1.40 mm nozzle). To show what Trikarus can do it's best to print big parts with big cavities inside and maybe some holes in the outer shape - just to overcome getting small and flat looking shapes. This allowes to print into width and height but without needing a 10 kg spool per week.

## <span lang="en">PLA consumable supplier for large spools &gt; 4kg @ 1.75mm diameter: </span>[redline-filament.com](https://redline-filament.com/collections/redline-xxl/products/premium-pla-weiss?variant=17442361573422)

## Slicer profile and important parameters of Trikarus

Slicer profiles require basic data about the printer configuration (hardware and firmware parameters). <span lang="en">The creation of a single large 3D print object over a gigantic period (several weeks / months) is extremely delicate because of the possible lack of continuous monitoring. If the print fails in one place, everything might fail. For object sizes in the meter range, the costs are immense (several hundred euros). </span>The following parameters are used in general terms. We use PrusaSlicer to generate GCode. A more specific overview of chosen parameters can be found in the PrusaSlicer config.ini file. There are more possible good slicers like IceSL, MatterSlice, Cura or Simplify3D, which we do not use.

### Hotend, print speed and material flow

The following images from E3D shows the well known "Benchy" model which is popular for doing test prints. All of these Benchys were completed using the same settings in terms of speeds, acceleration, infill pecentage, perimeters and so on.

<table class="wrapped confluenceTable" id="bkmrk-benchy-test-prints-w"><colgroup> <col></col> <col></col> <col></col> </colgroup><tbody><tr><td class="confluenceTd" colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/uecxcnMzQ9ooqwNj-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/uecxcnMzQ9ooqwNj-grafik.png)

</td><td class="confluenceTd" colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/AcJI406NUBmC92bV-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/AcJI406NUBmC92bV-grafik.png)

</td><td class="confluenceTd" colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/HBl7WqK6W0hQMdnf-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/HBl7WqK6W0hQMdnf-grafik.png)

</td></tr><tr><td class="confluenceTd">Benchy test prints with different hotends

</td><td class="confluenceTd" colspan="1">SuperVolcano example</td><td class="confluenceTd">Table which shows the physical test values for each hotend

</td></tr><tr><td class="confluenceTd" colspan="3">Source of images and information: [ https://e3d-online.com/blog/2019/02/28/supervolcano](https://e3d-online.com/blog/2019/02/28/supervolcano/)

</td></tr></tbody></table>

Choosing the right flow helps getting consistent results. Polymer flow variation can be understood in the following way:

- increasing the line width, height or speed will increase flow
- more flow means that the polymer is less time in the melting zone, thus extruding slightly colder
- Combining the lower temperature and the higher shear stress generates a higher pressure
- a higher pressure puts more stress in the filament and extruder
- at some point, either the motor will start missing steps or the filament will grind, and the extrusion is not controlled anymore

On the web there are different Hangprinter machine examples which were printed in big. Chris from Chris' Basement printed a large stool with 67 cm height and 40 cm in diameter. He used the following print parameters to make up the stool in 190 hours (= 24 days = 3.4 weeks = 72 working days á 8 hours = 10.3 weeks). The stool's weight is a total of 4.6 kg. This results in 24.21 g/hour material output. That means 193.7 g/working day (8 hours).

<table class="wrapped confluenceTable" id="bkmrk-stool-example-octopr"><colgroup> <col></col> <col></col> <col></col> </colgroup><tbody><tr><th class="confluenceTh">Stool example</th><th class="confluenceTh">Octoprint evidence</th><th class="confluenceTh">Machine parameters</th></tr><tr><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/w9FygvyIVQJ6CrhH-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/w9FygvyIVQJ6CrhH-grafik.png)

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/OH1z7NWKiwBXw1g8-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/OH1z7NWKiwBXw1g8-grafik.png)

</td><td class="confluenceTd">- 1.75 mm layer height
- 0.8 mm nozzle
- 30mm/s print speed
- 4 shells
- 10% infill
- stool weight 4 kg
- support material required 0.6 kg
- total weight 4.6 kg
- printed material amount: 5 kg @ 1.75 mm
- 225°C nozzle temperature

</td></tr></tbody></table>

The values from Chris and from E3D show that in total it's no problem to print between 25 and 250 gram of filament per hour (4888 g in 19.75 hours = 247.49 g / hour).

### First tests with SuperVolcano Hotend 1.40 mm nozzle

Thinnest possible line using the 1.40 mm nozzle with tip platform diameter ![](https://old.stadtfabrikanten.org/plugins/servlet/confluence/placeholder/macro?definition=e21hdGhpbmxpbmU6Ym9keT1CID0gMy41MCBtbX0&locale=de_DE&version=2) resulted in 3.95 mm width and 0.46 mm height.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/m7uxsRpVnBQR1vmn-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/m7uxsRpVnBQR1vmn-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/CWhtUV0Mqpb0T3Ri-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/CWhtUV0Mqpb0T3Ri-grafik.png)

### Trikarus machine parameters

Trikarus Slicer profile contains the machine parameters. The profile is put at [https://gitea.fablabchemnitz.de/vmario/Trikarus/src/branch/master/prusaslicer\_profile](https://gitea.fablabchemnitz.de/vmario/Trikarus/src/branch/master/prusaslicer_profile)

<table class="relative-table wrapped confluenceTable" id="bkmrk-parameter-value-hint" style="width: 74.1338%; height: 1733.12px;"><colgroup><col style="width: 23.9193%;"></col><col style="width: 20.4611%;"></col><col style="width: 52.9539%;"></col></colgroup><thead><tr style="height: 38.1167px;"><td class="confluenceTh" style="height: 38.1167px;">**parameter**</td><td class="confluenceTh" style="height: 38.1167px;">**value**</td><td class="confluenceTh" style="height: 38.1167px;">**hints**</td></tr></thead><tbody><tr style="height: 46.1167px;"><td class="confluenceTd" style="height: 46.1167px;">nozzle diameter</td><td class="confluenceTd" style="height: 46.1167px;">1.40 mm</td><td class="confluenceTd" style="height: 46.1167px;">  
</td></tr><tr style="height: 46.1167px;"><td class="confluenceTd" style="height: 46.1167px;">platform shape</td><td class="confluenceTd" style="height: 46.1167px;">circle</td><td class="confluenceTd" style="height: 46.1167px;">  
</td></tr><tr style="height: 94.45px;"><td class="confluenceTd" style="height: 94.45px;">max. print height</td><td class="confluenceTd" style="height: 94.45px;">get it by calibration → see [Building basics, checks, maintenance](https://old.stadtfabrikanten.org/display/TH/Building+basics%2C+checks%2C+maintenance)</td><td class="confluenceTd" style="height: 94.45px;">- belongs to the room / frame where it is mounted

</td></tr><tr style="height: 189.15px;"><td class="confluenceTd" style="height: 189.15px;">print diameter</td><td class="confluenceTd" style="height: 189.15px;">1000 mm (maximum physical value by the manufactured print platform) or <span class="mjx-chtml MJXc-display"> <span class="mjx-chtml MathJax_CHTML"> <span class="mjx-math"> <span class="mjx-mrow"> <span class="mjx-mn MJXc-space3"> <span class="mjx-char MJXc-TeX-main-R">918.1</span> </span> <span class="mjx-mi"> <span class="mjx-char MJXc-TeX-math-I">mm by thumb formula</span> </span> </span> </span> </span> </span></td><td class="confluenceTd" style="height: 189.15px;"><div class="content-wrapper">- belongs to the room / frame where it is mounted
- for max. recommended build diameter at z = 0 see [RepRapFirmware and calculations](https://old.stadtfabrikanten.org/display/TH/RepRapFirmware+and+calculations) (thumb formula)
- remember that in ![](https://old.stadtfabrikanten.org/plugins/servlet/confluence/placeholder/macro?definition=e21hdGhpbmxpbmU6Ym9keT0tLXVyaWVuY29kZWQtLXpfJTdCbWF4JTdEfQ&locale=de_DE&version=2) the print radius will be much smaller because the typical Hangprinter build volume shape looks like a trumpet or funnel

</div></td></tr><tr style="height: 152.1px;"><td class="confluenceTd" style="height: 152.1px;">max. feed XYZE</td><td class="confluenceTd" style="height: 152.1px;">- XYZ 9500 mm/min = 158.33 mm/s - we use 160 mm/s
- E 3600 mm/min = 60 mm/s

</td><td class="confluenceTd" style="height: 152.1px;">- should match firmware settings

</td></tr><tr style="height: 46.1167px;"><td class="confluenceTd" style="height: 46.1167px;">max. velocity XYZE</td><td class="confluenceTd" style="height: 46.1167px;">? mm/s²</td><td class="confluenceTd" style="height: 46.1167px;">  
</td></tr><tr style="height: 46.1167px;"><td class="confluenceTd" style="height: 46.1167px;">max. jerk XYZE</td><td class="confluenceTd" style="height: 46.1167px;">? mm/s</td><td class="confluenceTd" style="height: 46.1167px;">  
</td></tr><tr style="height: 229.55px;"><td class="confluenceTd" style="height: 229.55px;">regular (nominal) print speed</td><td class="confluenceTd" style="height: 229.55px;">1800 mm/min = 30 mm/s</td><td class="confluenceTd" style="height: 229.55px;">- should be low because we use huge nozzle with high output. We can actually print "really quick" because we use a nozzle with 10 times more volumetric output and power **but we still print with the same "slow" speed like a regular desktop 3D printer**.
- tested and validated with [Encoder KY-040 by Keyes - filament monitor](https://old.stadtfabrikanten.org/display/TH/Encoder+KY-040+by+Keyes+-+filament+monitor)
- values higher than ~ 40 mm/s cause grinding and failing sounds of the stepper motor. not a good idea!

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">max. volumetric throughput</td><td class="confluenceTd" style="height: 67.6167px;">6600 mm³/min = 110 mm³/s</td><td class="confluenceTd" style="height: 67.6167px;">- working parameter by E3D's Benchy hotend comparison test

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">print speed for first layer</td><td class="confluenceTd" style="height: 67.6167px;">15 mm/s</td><td class="confluenceTd" style="height: 67.6167px;">- 30-50% speed of regular print speed

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">print travel speed</td><td class="confluenceTd" style="height: 67.6167px;">130 mm/s</td><td class="confluenceTd" style="height: 67.6167px;">- can be tuned higher. We use maximum possible value

</td></tr><tr style="height: 109.883px;"><td class="confluenceTd" style="height: 109.883px;">typical layer (track) height

</td><td class="confluenceTd" style="height: 109.883px;">1.00 mm</td><td class="confluenceTd" style="height: 109.883px;">- ~50% of nozzle diameter are usual
- working parameter by E3D's Benchy hotend comparison test
- lowest working layer is 0.50 mm (tested successfully)

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">first layer height</td><td class="confluenceTd" style="height: 67.6167px;">100%</td><td class="confluenceTd" style="height: 67.6167px;">- 160% of typical layer (track) height

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">first layer width</td><td class="confluenceTd" style="height: 67.6167px;">1.57 mm</td><td class="confluenceTd" style="height: 67.6167px;">- 120% of typical layer (track) width

</td></tr><tr style="height: 88.7333px;"><td class="confluenceTd" style="height: 88.7333px;">support material extrusion width</td><td class="confluenceTd" style="height: 88.7333px;">1.00 mm</td><td class="confluenceTd" style="height: 88.7333px;">- values below 1.00 mm are making trouble. Use values up to 1.22 mm

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">retraction vertical lift (Z hop)</td><td class="confluenceTd" style="height: 67.6167px;">1.50 mm</td><td class="confluenceTd" style="height: 67.6167px;">- disabled to reduce vibration and vertical stringing

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">retraction speed</td><td class="confluenceTd" style="height: 67.6167px;">60 mm/s</td><td class="confluenceTd" style="height: 67.6167px;">- using the maximum allowed and measured feed of 3600 mm/min

</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">retraction</td><td class="confluenceTd" style="height: 67.6167px;">1.60 mm</td><td class="confluenceTd" style="height: 67.6167px;">- changed from 0.8 to 1.6 mm on 25.10.2020

</td></tr><tr style="height: 38.1167px;"><td class="confluenceTd" style="height: 38.1167px;">coasting</td><td class="confluenceTd" style="height: 38.1167px;">disabled</td><td class="confluenceTd" style="height: 38.1167px;">  
</td></tr><tr style="height: 67.6167px;"><td class="confluenceTd" style="height: 67.6167px;">G-Code Flavor</td><td class="confluenceTd" style="height: 67.6167px;">Marlin</td><td class="confluenceTd" style="height: 67.6167px;">- this is defined as a GCode flavor or dialect in RepRapFirmware

</td></tr></tbody></table>

### PLA filament parameters

These settings highly depend on the bought filament (vendor, charge) and the print speed. Higher print speeds require higher heat intensity.

<table class="relative-table wrapped confluenceTable" data-snooker-col-series="numbers" data-snooker-locked-cols="0" id="bkmrk-parameter-value-hint-1" style="width: 66.8678%;"><colgroup> <col style="width: 2.38095%;"></col> <col style="width: 22.0854%;"></col> <col style="width: 15.4351%;"></col> <col style="width: 60.0985%;"></col> </colgroup><tbody><tr><th class="numberingColumn confluenceTh" contenteditable="false">  
</th><th class="confluenceTh">parameter</th><th class="confluenceTh">value</th><th class="confluenceTh" colspan="1">hints</th></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">1</th><td class="confluenceTd">filament diameter</td><td class="confluenceTd">1.75 mm</td><td class="confluenceTd" colspan="1">- measure this for each filament. Sometimes we have 1.80 mm instead of 1.75 mm which makes a differene of ~2.8 % in flow rate

</td></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">2</th><td class="confluenceTd">extrusion multiplier</td><td class="confluenceTd">1.0</td><td class="confluenceTd">- extruder is well calibrated so not really a need to adjust this

</td></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">3</th><td class="confluenceTd">maximum hotend temperature</td><td class="confluenceTd">260 °C</td><td class="confluenceTd">- limited to that value because E3D hotend with silicone sock

</td></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">4</th><td class="confluenceTd" colspan="1">extrusion temperature for first layer</td><td class="confluenceTd" colspan="1">205 - 210 °C</td><td class="confluenceTd" colspan="1">- 190 - 210 °C for usual printing (Desktop 3D printers)

</td></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">5</th><td class="confluenceTd" colspan="1">extrusion temperature for other layers</td><td class="confluenceTd" colspan="1">195 - 240 °C</td><td class="confluenceTd" colspan="1">- 190 - 210 °C for usual printing. As we print really quick we need to raise PLA temperature up to 240 °C to have a good plastic flow. Lowering the temperature leads to stumbling extruder gear or devoured filament string

</td></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">6</th><td class="confluenceTd" colspan="1">automatic cooling of the print</td><td class="confluenceTd" colspan="1">enabled</td><td class="confluenceTd" colspan="1">  
</td></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">7</th><td class="confluenceTd" colspan="1">min. cooling fan speed</td><td class="confluenceTd" colspan="1">55 %</td><td class="confluenceTd" colspan="1">- got the value by experiments

</td></tr><tr><th class="numberingColumn confluenceTh" contenteditable="false">8</th><td class="confluenceTd" colspan="1">max. cooling fan speed</td><td class="confluenceTd" colspan="1">100 %</td><td class="confluenceTd" colspan="1">- got the value by experiments. The better the cooling the better the surface quality

</td></tr></tbody></table>

## Slicing tips

### Support border (brim)

Add support border for thin parts which are getting widened at upper layers. This helps to survive the print. The print head possibly kicks off the part from the platform. See the following video for failure example.

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/5fc8214a-37a8-4546-83a7-7d078f32d801" width="560"></iframe>

<table class="wrapped confluenceTable" id="bkmrk-no-support-with-supp"><colgroup> <col></col> <col></col> </colgroup><tbody><tr><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/uOwoHEwblMymMLYJ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/uOwoHEwblMymMLYJ-grafik.png)

no support

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/RwfnqCp66JiJS1EA-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/RwfnqCp66JiJS1EA-grafik.png)

with support

</td></tr></tbody></table>

## Print volume verification and line collisions

Currently there is no tool to determine if a given 3d model fits within "the print volume" of a given Hangprinter (with known calibration constants and dimensions, and given a cylinder with a known radius and height). Regular slicer engines do not support the special needs of Hangprinter build volume. The term "print volume" is more complicated for Hangprinters than for regular 3d printers. There exist a well defined "reachable volume". This reachable volume is interesting, but very rarely relevant. For Hangprinter most print volumes will be limited by lines touching the print and messing up the positioning of the effector. Lines may crash into previously printed material, so the reachable print area at a given layer depends on the shape of previously printed layers. The concept of a print volume exists, but it's shape is different for every print. In a more general situation where we don't print in 2d-layers, we would need to analyze the gcode directly, and consider every single move to be limited by every previous print move. Every single print move will cast unreachable "shadows" pointing from the anchor point and through the printed material. In regular 3d printer slicers like Cura, Simplify3D, MatterControl, IceSL or PrusaSlicer, the build volume is cubic or cylindric shape. Hangprinter shape is really different. More information about build volume can be found at [What is a Hangprinter and how does it work?](https://old.stadtfabrikanten.org/pages/createpage.action?spaceKey=TH&title=What+is+a+Hangprinter+and+how+does+it+work%3F&linkCreation=true&fromPageId=60915874). The following illustration shows a possible line collision example for a case where the effector would move to the maximum left position.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/GbNcsINNdbKpCnpd-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/GbNcsINNdbKpCnpd-grafik.png)

## Simplified line collisision / print volume verification

Given a Hangprinter with known calibration constants and dimensions, and given a cylinder with a known radius and height, analyze if we would have a line collision if the Hangprinter tried to print that cylinder. For a first catch of the possible print volume some OpenSCAD rough simulation exists. You can find that file at [https://gitlab.com/tobben/hangprinter/-/blob/version\_4\_dev/src/simplified\_print\_volume\_verification.scad.](https://gitlab.com/tobben/hangprinter/-/blob/version_4_dev/src/simplified_print_volume_verification.scad) You will need to configure it accordingly with your own printer values. Trikarus' values can be found at [RepRapFirmware and calculations](https://old.stadtfabrikanten.org/display/TH/RepRapFirmware+and+calculations) and [Building basics, checks, maintenance](https://old.stadtfabrikanten.org/display/TH/Building+basics%2C+checks%2C+maintenance). There you can also find drawings which better illustrate the coordinate directions +-, anchor points (explicite coordinates A1/A2/B1/B2/C1/C2 and general A,B,C coordinates) and the offset used by the .scad file. The script generates collision preview for entered layer heights. It uses a cylindric shape - you can enter the values which you configured in your slicer profile too. The script is not complex enough to be used with 3d print model files. For this advanced purpose try [https://gitlab.com/hangprinter/line-collision-detector](https://gitlab.com/hangprinter/line-collision-detector)

Parameters for the script

- A1/A2/B1/B2/C1/C2 coordinate offsets from A, B and C anchor positions
- layer height
- total count of layers
- print radius

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/uhUvfFA8mXeOh2jU-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/uhUvfFA8mXeOh2jU-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/aTejEnw6RtrPCCVG-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/aTejEnw6RtrPCCVG-grafik.png)

Some layer examples with

```
A_calib = [0, -1604, -114];
A_offset = [[-220, -135, 110],[ 220, -135, 110]];
A = [A_calib + A_offset[left],A_calib + A_offset[right]];
B_calib = [1312, 1271, -162];
B_offset = [[ 220, -135, 110],[ 0, 260, 110]];
B = [B_calib + B_offset[left],B_calib + B_offset[right]];
C_calib = [-1440, 741, -161];
C_offset = [[ 0, 260, 110],[-220, -135, 110]];
C = [C_calib + C_offset[left],C_calib + C_offset[right]];
layer_height = 1;
r = 1000/2;
```

<table border="1" id="bkmrk-layer%C2%A01-layer-100-la" style="border-collapse: collapse; width: 99.9734%;"><colgroup><col style="width: 33.3115%;"></col><col style="width: 33.3115%;"></col><col style="width: 33.3115%;"></col></colgroup><tbody><tr><td>**Layer 1**</td><td>**Layer 100**</td><td>**Layer 500**</td></tr><tr><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/w0YLC7tc1nENhhV0-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/w0YLC7tc1nENhhV0-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/V1R8dytcErUXeRmS-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/V1R8dytcErUXeRmS-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Wa8mCVHGLW8pFdjT-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Wa8mCVHGLW8pFdjT-grafik.png)

</td></tr><tr><td>**Layer 1000**</td><td>**Layer 1500**</td><td>**Layer 2500**</td></tr><tr><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/8b63j5XQLp4U8pui-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/8b63j5XQLp4U8pui-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/AFVskl7X5FIxdSl9-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/AFVskl7X5FIxdSl9-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/urOubqhagNlmcMGq-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/urOubqhagNlmcMGq-grafik.png)

</td></tr></tbody></table>

### Animate it!

#### Show animation bar above output log

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/6g4vitXdC0PPYyzQ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/6g4vitXdC0PPYyzQ-grafik.png)

#### Enter frames per seconds value and steps

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/QxIYiEsAaotjgaEh-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/QxIYiEsAaotjgaEh-grafik.png)

#### Put $t parameter into code

This parameter is the time parameter which will be incremented

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/qMh4lMV26mW9p6zk-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/qMh4lMV26mW9p6zk-grafik.png)

#### View the animation

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Ev0aTJfnTxIxvzUl-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Ev0aTJfnTxIxvzUl-grafik.png)

## Advanced line collision/ print volume verification

This documentation is based on

- [https://gitlab.com/hangprinter/line-collision-detector](https://gitlab.com/hangprinter/line-collision-detector)
- [https://gitlab.com/hangprinter/linc/-/blob/f1282432a53a9c59042edb43716f4256b6de8caf/linc/params-example](https://gitlab.com/hangprinter/linc/-/blob/f1282432a53a9c59042edb43716f4256b6de8caf/linc/params-example)
- [https://vitana.se/opr3d/tbear/2020.html](https://vitana.se/opr3d/tbear/2020.html)

### Prepare docker environment - we are installing on an Ubuntu machine

```bash
apt install docker docker.io
docker pull gcc
usermod -a -G docker $USER
reboot
```

### Clone line collision detector repo and compile

This step finally generates a new docker container if successful

```bash
cd /opt
git clone https://gitlab.com/hangprinter/line-collision-detector.git
cd line-collision-detector
./build-docker.sh #The build process takes a lot of time. Might require 15 minutes or longer.
./docker-shell.sh  #starts the container - older releases of line collision detector always created new containers which could be seen with "docker ps -a".
```

### Prepare the run command inside container

The run command is the final tool we need to do the collision analysis

```bash
#Inside the Docker container
cd /line-collision-detector
sudo git submodule update --init --recursive
 
#update git submodules (if required)
sudo git submodule update --remote --merge
 
#remove old build directory (if existent)
cd /line-collision-detector/linc/extern/spdlog/spdlog-1.6.0/
sudo rm -rf build/ #delete previous build dir
 
cd /line-collision-detector/
sudo ./faster.sh #compile
 
cd /line-collision-detector/linc
sudo b #make build using "b" command
 
#The line collision detector is ready to run:
cd /line-collision-detector/
sudo run
```

### How to update line collision detector?

For updating we need to pull the latest changes from git repo and re-build the container and it's inner living.

```bash
cd /opt/line-collision-detector
git pull
./build-docker.sh
./docker-shell.sh

#now repeat the steps from "Prepare the run command inside container"
```

### Create parameter file for your Hangprinter

For calculating collision we need to enter a set of coordinates first. This data set is stored in a file called "params" and used by the detector utility.

```bash
#ensure that docker container is running before trying to enter it
docker ps -a | grep line-collision-detector

DOCKER:/line-collision-detector# sudo vim params
```

```ini
effector-pivot-A1: ( -225.98,  -162.47, 30.50)
effector-pivot-A2: (  225.98,  -162.47, 30.50)
effector-pivot-B1: (  253.69,  -114.47, 30.50)
effector-pivot-B2: (   27.71,   276.94, 30.50)
effector-pivot-C1: (  -27.71,   276.94, 30.50)
effector-pivot-C2: ( -253.69,  -114.47, 30.50)
anchor-pivot-A1:   ( -225.98, -1328.47, 51.63)
anchor-pivot-A2:   (  225.98, -1328.47, 51.63)
anchor-pivot-B1:   ( 1263.69,   470.53, 55.76)
anchor-pivot-B2:   ( 1037.71,   861.94, 55.76)
anchor-pivot-C1:   (-1042.71,   854.94, 59.05)
anchor-pivot-C2:   (-1268.69,   463.53, 59.05)
```

### Prepare the STL model

To do the analysis we need to adjust the STL model file:

- position on the bed (coordinate system)
- scaling / desired size

We can adjust the scale and re-export the STL file using PrusaSlicer with ease:

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/GYqFql43zrrVgl32-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/GYqFql43zrrVgl32-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/hHKgjYiLmxr27I4L-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/hHKgjYiLmxr27I4L-grafik.png)

### Perform the collision analysis

To simulate collision we need to put an STL file into the directory /opt/line-collision-detector (outside the container). The special command inside the docker-shell.sh file will map this directory to grant access to it within the docker container. The calculation takes less or more time (less seconds up to minutes) belonging to the given layer height, model size and computation power of your node. In case a collision happens and we use the -o option to create a debug file (STL) file, we can view this collision.

**First example ([Statue of Atlas](https://www.thingiverse.com/thing:911104)):**

```bash
DOCKER:/line-collision-detector# sudo run ./atlas.stl params -l 1 #using the params file and 1 mm layer height
```

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/er6HmyDJtEwI7Awq-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/er6HmyDJtEwI7Awq-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/DKwHJU6syFSo6kGL-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/DKwHJU6syFSo6kGL-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/qjkh16CrxrXafryn-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/qjkh16CrxrXafryn-grafik.png)

```bash
OCKER:/line-collision-detector# sudo run ./Hand\ 2_400.stl params -l 1
No collision detected
DOCKER:/line-collision-detector# sudo run ./Hand\ 2_500.stl params -l 1
No collision detected
DOCKER:/line-collision-detector# sudo run ./Hand\ 2_600.stl params -l 1
No collision detected
DOCKER:/line-collision-detector# sudo run ./Hand\ 2_700.stl params -l 1
Collision detected at z=375.815
DOCKER:/line-collision-detector# sudo run ./Hand\ 2_650.stl params -l 1
Collision detected at z=350.815
DOCKER:/line-collision-detector# sudo run ./Hand\ 2_630.stl params -l 1
Collision detected at z=461.605
DOCKER:/line-collision-detector# sudo run ./Hand\ 2_615.stl params -l 1
No collision detected
DOCKER:/line-collision-detector# sudo run ./Hand\ 2_615.stl params -l 0.8
No collision detected
```

**Second example ([Hand](https://www.thingiverse.com/thing:31331)):**

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/vyDJhOo2GIVN4c7b-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/vyDJhOo2GIVN4c7b-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/PJVrroZH8QiFCUbR-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/PJVrroZH8QiFCUbR-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/yEa09q0qltwTbxVa-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/yEa09q0qltwTbxVa-grafik.png)