Snap fit design are small protuberance of plastic that flexes to clip and maintain two parts together. Computing these designs are difficult because of the numerous parameters to account for.
Here's a calculator that should make computing those easily.
Please select the intended material to use from the table below. You can customize the characteristics if the defaults doesn't match your material.
This is what's called the cantilever design. It looks like this:
A cantilever of a plastic material is bent while engaging in its matching part and a special hole in the matching part is created so it can relax in its unconstrained position when fit. Few tips for this design:
The parameters for this design are using this convention:
The direction of the cantilever with respect to its base should be set in the M field below, following this example:
The extrusion speed is the speed at which you can drive your extruder and still get consistent plastic output. Since it depends on the ability of your hotend to melt a given plastic volume, you'll need to create a 2 dimension matrix. On one axis, you'll write down the extruder speed and on the other you'll write down the hotend temperature. The value in each cell of the matrix is the amount of plastic you've extruded for the combinaison of (hotend temperature, extruder speed).
Usually, the higher the extruder speed, the more likely it'll fail to sustain the pressure required to extrude plastic out of the hotend, so it'll miss steps => extrude less plastic. By weighting the extruded plastic for each combination, you can figure out how well the extruder performed for such combination.
So:
M83
once to change to relative extrusion (so you don't have to accumulate your numbers)M109 Rxxx
(replacing xxx with the desired temperature to test). It'll only return ok
when the hotend reached the temperature.3mm/s
, and convert it in mm/min
by multiplying by 60 or use the calculator above). You'll then need to set the extrusion speed with a G1 Fxxx
(replacing xxx by the speed you want to test).G1 E30
G1 F3
followed by G1 E0.1
G1 Fxxx
(replacing xxx by the speed you want to test)G1 E300
(depending on your firmware, the extrusion length might be limited to 250mm
or less so adjust in consequence)If you perform the steps above for each combination of extrusion speed and temperature (you'll need to increase the temperature when you increase the extrusion speed, but don't go above to 260°C or 270°C for PLA) and report in an spreadsheet, you'll be able to observe and compare the limitation of the flow from the hotend. Typically, at a fixed temperature of 210°C, the quantity of extruded plastic will decrease when the extrusion speed increase. But if you increase the hotend temperature at the same time, you'll recover this loss up to a tuple.
This tuple (extrusion speed, temperature)
will give you the maximum extrusion speed your hotend can support.
Then enter the extrusion speed in the calculator above and you'll find out the maximum print speed you can acheive.
This speed is theorical, since it's the case when the printer has finished accelerating (which needs space to perform), and the plastic has cooled enough to adhere but is not dripping on the last layer. With a 20% margin, you should be safe here.
As the world is cruel, we have to obey nature's laws. Those laws state that a body can't change from one speed to an other speed instantly. It has to accelerate (or decelerate) to achieve this and this takes time. In our case here, we are interested mostly in the printer's X/Y movement (you are not usually limited by the Z movement speed, unless you are using a non usual firmware).
Depending on your printer's mechanics, the X or Y movement will be different, so it's not possible to provide a calculator that'd fit all printers. Instead, I'll try to explain few rules and you'll be able to compute the maximum acceleration your printer can achieve (and based on this information, the maximum speed).
For printers with direct axis control (no Core X/Y or H movement), with a screw or a belt, there is a direct relation between the rotation of the stepper motor and the displacement. You'll need to know the stepper motor steps per revolution and the screw or belt pitch (and number of teeth per revolution). Every revolution of the screw/belt lead to a progress of the carriage of one pitch of the screw (or X teeths of the belt).
Thus, the speed of the carriage depends on the number of steps per second a motor can sustain.
The speed is one thing, and the acceleration is another thing. There's no interest to a speed of 100mm/s if you need 2 days to accelerate to reach it.
To accelerate your carriage, you must also compute how much torque it can generate. This torques is used to fight against the torque required to hold the current position and overcome the resistance to movement (aka friction). For the former, it depends on your carriage visible mass and/or moment (depending on the mechanical configuration). The latter depends on how smooth the carriage can move. You'll lower resistance with a good lubrication for a screw, by changing the screw type (going to a ball screw for example), by changing the design so that the carriage is not supported by the scew but by bearing, roller, whatever, etc...
Since the above is hard to evaluate, it can be deduced by simple experiments:
G0 X150 Y0 F1500
, where X=150, Y=0
is the new position to reach (in mm), F1500
is the feedrate, ie the speed to use (in mm/min))G0 X150 Y150 F1500
)G0 X0 Y150 F1500
)G0 X0 Y0 F1500
)While you've found the maximum extruder speed and maximum mechanical hotend speed, you must also ensure you're cooling the plastic fast enough that it does not deform anymore once extruded. I don't know the physical process enough here to provide a calculator. From an empirical observation, you can adjust the fan speed of the hotend (not the fan on the heatbreak part) from 0 to 255 and perform a temperature torture test. So, prepare a print with the maximum speed you can reach (that's the minimal of the maximum extrusion speed and the hotend speed) and print different pieces with different fan values.
You should run a dichotomic search here, that is: