Skip to content

Instantly share code, notes, and snippets.

@hg42
Last active February 17, 2024 23:52
Show Gist options
  • Save hg42/bed3f138e01c367a7d172e821e2bc662 to your computer and use it in GitHub Desktop.
Save hg42/bed3f138e01c367a7d172e821e2bc662 to your computer and use it in GitHub Desktop.
Tools for Makers (e.g. *.qalc for VSCode Qalc)
#------------------------------------------------------------------------------- constants
# Dichte
rho_PLA = 1240 kg/m^3 # Dichte von PLA
rho_PETG = 1250 kg/m^3 # Dichte von PETG
eta_PLA = 1000 Pa s
filament_d = 1.75 mm
nozzle_d = 0.8 mm
#------------------------------------------------------------------------------- printer constants
rotation_distance_H2 = 4 mm
#------------------------------------------------------------------------------- general
area(d) = pi * (d / 2)^2
v_from_flow(flow, area) = flow/area in mm/s
ve_from_filament_flow(flow) = v_from_flow(flow, area(filament_d))
v_from_flow_rect(flow, width, height) = v_from_flow(flow, width*height)
kg_per_N = kg/N
mg_per_N = mg/N
#------------------------------------------------------------------------------- speed vs. flow etc.
rpm_from_flow(flow, rotation_distance) = flow/rotation_distance/area(filament_d)
rpm_from_flow_H2(flow) = rpm_from_flow(flow, rotation_distance_H2)
#--------------------------------------------------------------------- extrude
flow = 15 mm^3/s
rpm_from_flow_H2(flow)
ve_from_filament_flow(flow)
flow = 20 mm^3/s
rpm_from_flow_H2(flow)
ve_from_filament_flow(flow)
flow = 25 mm^3/s
rpm_from_flow_H2(flow)
ve_from_filament_flow(flow)
flow = 30 mm^3/s
rpm_from_flow_H2(flow)
ve_from_filament_flow(flow)
flow = 45 mm^3/s
rpm_from_flow_H2(flow)
ve_from_filament_flow(flow)
flow = 70 mm^3/s
rpm_from_flow_H2(flow)
ve_from_filament_flow(flow)
#--------------------------------------------------------------------- 0.8/0.25
width = 0.8 mm
height = 0.25 mm
flow = 15 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 20 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 25 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 30 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 45 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 70 mm^3/s ; v_from_flow_rect(flow, width, height)
#--------------------------------------------------------------------- 0.8/0.4
width = 0.8 mm
height = 0.4 mm
flow = 15 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 20 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 25 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 30 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 45 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 70 mm^3/s ; v_from_flow_rect(flow, width, height)
#--------------------------------------------------------------------- 1.0/0.2
width = 1.0 mm
height = 0.2 mm
flow = 15 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 20 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 25 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 30 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 45 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 70 mm^3/s ; v_from_flow_rect(flow, width, height)
#--------------------------------------------------------------------- 1.0/0.25
width = 1.0 mm
height = 0.25 mm
flow = 15 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 20 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 25 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 30 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 45 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 70 mm^3/s ; v_from_flow_rect(flow, width, height)
#--------------------------------------------------------------------- 1.0/0.3
width = 1.0 mm
height = 0.3 mm
flow = 15 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 20 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 25 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 30 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 45 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 70 mm^3/s ; v_from_flow_rect(flow, width, height)
#--------------------------------------------------------------------- 1.0/0.5
width = 1.0 mm
height = 0.5 mm
flow = 15 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 20 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 25 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 30 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 45 mm^3/s ; v_from_flow_rect(flow, width, height)
flow = 70 mm^3/s ; v_from_flow_rect(flow, width, height)
#------------------------------------------------------------------------------- belt tension vs. resonance frequency
f_reso_belt(len, weight, density) = 1/(2*len) * sqrt((weight * 9.81 m/s^2)/density)
dens_gates = 0.0083 kg/m in g/m
# black, cheap china belt (quite stiff, no steel inlet)
dens_black_meas = 37 g / 3.93 m
# brown, cheap china belt (thin, flexible)
dens_brown_meas = 7 g / 1.06 m
#----- user hg
len_hg_y = 550 mm
len_hg_x = 330 mm
f_reso_belt(len_hg_y, 6 lb, dens_gates)
f_reso_belt(len_hg_x, 6 lb, dens_gates)
f_reso_belt(len_hg_y, 5 lb, dens_brown_meas)
f_reso_belt(len_hg_x, 5 lb, dens_brown_meas)
f_reso_belt(len_hg_y, 5 lb, dens_black_meas)
#----- user sk
len_sk_y = 400 mm
len_sk_x = 330 mm
f_reso_belt(len_sk_y, 6 lb, dens_gates)
f_reso_belt(len_sk_x, 6 lb, dens_gates)
f_reso_belt(len_sk_y, 8 lb, dens_gates)
f_reso_belt(len_sk_x, 8 lb, dens_gates)
#------------------------------------------------------------------------------- force by narrowing of nozzle area
# results are suspicious
# Bernoulli equation to calculate delta P
# eta: dynamic viscosity of the filament (Pa.s, is not used here)
# rho: density of filaments (kg/m^3)
# d_in: diameter of the entrance opening (m)
# d_out: diameter of the exit opening (m)
# v_in: speed on entry (m/s)
F_narrowing(rho, d_in, d_out, v_in) = area(d_in) * rho * ((v_in * area(d_in)/area(d_out))^2 / 2 - v_in^2 / 2)
#nozzle_d = 0.6 mm
nozzle_d = 1.0 mm
d_in = 2 mm
d_out = nozzle_d
v_in = ve_from_filament_flow(25 mm^3/s) in mm/s
# example calculation
A_in = area(d_in)
A_out = area(d_out)
v_out = A_in*v_in/A_out in mm/s
delta_p = ((rho_PLA*v_in^2)/2 - (rho_PLA*v_out^2)/2) in Pa
F_PLA = delta_p * A_in / gravity in mg
F_narrowing_PLA = F_narrowing(rho_PLA, d_in, d_out, v_in) / gravity in mg
F_narrowing_PETG = F_narrowing(rho_PETG, d_in, d_out, v_in) / gravity in mg
flow = 25 mm^3/s
nozzle_l = 1mm
F_flow(flow, len, d, eta) = (8 * eta * len * flow) / (d/2)^2
F_flow(flow, nozzle_l, nozzle_d, eta_PLA) in N
F_flow(flow, nozzle_l, nozzle_d, eta_PLA) / gravity in g
#------------------------------------------------------------------------------- etc
# very fast printing
v_from_flow_rect(60mm^3/s, 0.4mm, 0.1mm)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment