/* ******************************************* Objekt Info: Parametrierbare Schlauchpumpe ******************************************* Version: 07.08.2022 khf ******************************************* */ //*************** Auswahl ************* // keine //***************************************** //*************** Libraries ************ // keine //***************************************** //*************** Parameter ************* // Abstand zwischen den Zahnraedern: tol=0.15; // ueberhang zwischen 0 und 0,999 (0 = keine, 0,5 = 45 Grad, 1 = unendlich) allowed_overhang = 0.75; // -------- Angaben zu den verwendeten Schlaeuchen, //in mm------------ // Aussendurchmesser des Rohres in mm tubing_od = 4.7625; // Wandstaerke desschlauches tubing_wall_thickness = 0.79375; // Menge, die von den Walzen komprimiert werden soll, im Verhaeltnis zur Gesamtdicke (0 = kein Quetschen, 1,0 = vollstaendiges Quetschen) tubing_squish_ratio = 0.5; // -------- Einstellung der Teilegeometrie ------------ // Ungefaehrer Aussendurchmesser des Rings in mm D=51.7; // Dicke, d.h. Hoehe in mm T=15; // Anzahl der Planetengetriebe number_of_planets=3; // Anzahl der Zaehne auf Planetengetrieben number_of_teeth_on_planets=7; // Anzahl der Zaehne auf Sonnenschutzgeraeten (ungefaehr) approximate_number_of_teeth_on_sun=9; // Druckwinkel P=45;//[30:60] // Anzahl der Zaehne nTwist=1; // Breite des sechseckigen Lochs w=6.7; DR=0.5*1;// maximales Tiefenverhaeltnis der Zaehne len=100; //***************************************** //************** Programm ************** m=round(number_of_planets); np=round(number_of_teeth_on_planets); ns1=approximate_number_of_teeth_on_sun; k1=round(2/m*(ns1+np)); k= k1*m%2!=0 ? k1+1 : k1; ns=k*m/2-np; echo(ns); nr=ns+2*np; pitchD=0.9*D/(1+min(PI/(2*nr*tan(P)),PI*DR/nr)); pitch=pitchD*PI/nr; echo(pitch); helix_angle=atan(2*nTwist*pitch/T); echo(helix_angle); phi=$t*360/m; // Berechnen der Schlauch-Parameter tubing_squished_width = tubing_od * (PI/2); tubing_depth_clearance = 2*(tubing_wall_thickness*(1-tubing_squish_ratio)); // temporaere Variablen zur Berechnung des aeusseren Radius der aeusseren Ringzahnraeder // Wird verwendet, um die Freigabe fuer die peristaltische Squeezer-Funktion auf den Planeten zu machen outerring_pitch_radius = nr*pitch/(2*PI); outerring_depth=pitch/(2*tan(P)); outerring_outer_radius = tol<0 ? outerring_pitch_radius+outerring_depth/2-tol : outerring_pitch_radius+outerring_depth/2; // temporaere Variablen zur Berechnung des aeusseren Radius der Planetenzahnraeder // Wird verwendet, um die peristaltische Squeezer-Funktion auf den Planeten zu machen planet_pitch_radius = np*pitch/(2*PI); planet_depth=pitch/(2*tan(P)); planet_outer_radius = tol<0 ? planet_pitch_radius+planet_depth/2-tol : planet_pitch_radius+planet_depth/2; // temporaere Variablen zur Berechnung des Innen- und Aussenradius der Sonnenzahnraeder // Wird verwendet, um die Freigabe fuer Planetenquetscher zu machen sun_pitch_radius = ns*pitch/(2*PI); sun_base_radius = sun_pitch_radius*cos(P); echo(sun_base_radius); sun_depth=pitch/(2*tan(P)); sun_outer_radius = tol<0 ? sun_pitch_radius+sun_depth/2-tol : sun_pitch_radius+sun_depth/2; sun_root_radius1 = sun_pitch_radius-sun_depth/2-tol/2; sun_root_radius = (tol<0 && sun_root_radius1