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. 

PLA consumable supplier for large spools > 4kg @ 1.75mm diameter: redline-filament.com

Slicer profile and important parameters of Trikarus

Slicer profiles require basic data about the printer configuration (hardware and firmware parameters). 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). 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.

grafik.png

grafik.png

grafik.png

Benchy test prints with different hotends

SuperVolcano example

Table which shows the physical test values for each hotend

Source of images and information:  https://e3d-online.com/blog/2019/02/28/supervolcano

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

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).

Stool example Octoprint evidence Machine parameters

grafik.png

grafik.png

  • 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

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  resulted in 3.95 mm width and 0.46 mm height.

grafik.png 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

parameter value hints
nozzle diameter 1.40 mm
platform shape circle
max. print height get it by calibration → see Building basics, checks, maintenance
  • belongs to the room / frame where it is mounted
print diameter 1000 mm (maximum physical value by the manufactured print platform) or 918.1 mm by thumb formula
  • belongs to the room / frame where it is mounted
  • for max. recommended build diameter at z = 0 see RepRapFirmware and calculations (thumb formula)
  • remember that in  the print radius will be much smaller because the typical Hangprinter build volume shape looks like a trumpet or funnel
max. feed XYZE
  • XYZ 9500 mm/min = 158.33 mm/s - we use 160 mm/s
  • E 3600 mm/min = 60 mm/s
  • should match firmware settings
max.  velocity XYZE ? mm/s²
max. jerk XYZE ? mm/s
regular (nominal) print speed 1800 mm/min = 30 mm/s
  • 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
  • values higher than ~ 40 mm/s cause grinding and failing sounds of the stepper motor. not a good idea!
max. volumetric throughput 6600 mm³/min = 110 mm³/s
  • working parameter by E3D's Benchy hotend comparison test
print speed for first layer 15 mm/s
  • 30-50% speed of regular print speed
print travel speed 130 mm/s
  • can be tuned higher. We use maximum possible value

typical layer (track) height

1.00 mm
  • ~50% of nozzle diameter are usual
  • working parameter by E3D's Benchy hotend comparison test
  • lowest working layer is 0.50 mm (tested successfully)
first layer height 100%
  • 160% of typical layer (track) height
first layer width 1.57 mm
  • 120% of typical layer (track) width
support material extrusion width 1.00 mm
  • values below 1.00 mm are making trouble. Use values up to 1.22 mm
retraction vertical lift (Z hop) 1.50 mm
  • disabled to reduce vibration and vertical stringing
retraction speed 60 mm/s
  • using the maximum allowed and measured feed of 3600 mm/min
retraction 1.60 mm
  • changed from 0.8 to 1.6 mm on 25.10.2020
coasting disabled
G-Code Flavor Marlin
  • this is defined as a GCode flavor or dialect in RepRapFirmware

PLA filament parameters

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


parameter value hints
1 filament diameter 1.75 mm
  • 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
2 extrusion multiplier 1.0
  • extruder is well calibrated so not really a need to adjust this
3 maximum hotend temperature 260 °C
  • limited to that value because E3D hotend with silicone sock
4 extrusion temperature for first layer 205 - 210 °C
  • 190 - 210 °C for usual printing (Desktop 3D printers)
5 extrusion temperature for other layers 195 - 240 °C
  • 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
6 automatic cooling of the print enabled
7 min. cooling fan speed 55 %
  • got the value by experiments
8 max. cooling fan speed 100 %
  • got the value by experiments. The better the cooling the better the surface quality

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.


grafik.png

no support

grafik.png

with support

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?. The following illustration shows a possible line collision example for a case where the effector would move to the maximum left position.

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. You will need to configure it accordingly with your own printer values. Trikarus' values can be found at RepRapFirmware and calculations and Building basics, checks, 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

Parameters for the script

grafik.png 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;
Layer 1 Layer 100 Layer 500

grafik.png

grafik.png

grafik.png

Layer 1000 Layer 1500 Layer 2500

grafik.png

grafik.png

grafik.png

Animate it!

Show animation bar above output log

grafik.png

Enter frames per seconds value and steps

grafik.png

Put $t parameter into code

This parameter is the time parameter which will be incremented

grafik.png

View the animation

grafik.png

Advanced line collision/ print volume verification

This documentation is based on

Prepare docker environment - we are installing on an Ubuntu machine

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

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

#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.

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.

#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
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:

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

grafik.png 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):

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

grafik.png grafik.png grafik.png

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):

grafik.png grafik.png grafik.png


Version #2
Erstellt: 2026-06-06 08:35:01 CEST von Mario Voigt
Zuletzt aktualisiert: 2026-06-06 08:45:37 CEST von Mario Voigt