Selection feed rate calculation method

Cadfil Help Contents Page

Cadfil - Advanced filament Winding software for program generation for all type of filament winding machine.

The NC Feed rate dialogue (shown below) allows the user to set the winding speeds and method to use to calculate machine feed-rates.

NC Feed-rate Dialogue

The Feed-rate dialog now shows the maximum speeds (feed-rates) for each axis and also the maximum accelerations for each axis. If an axis exceeds the maximum set speed in a particular line of motion the overall feed-rate will be reduced.

The accelerations are only used if the ‘accerations check box’ is ticked. If the velocity for the next motion cannot be reached within the time length of that line then the time for that line will be increased (i.e. the machine is slowed) such that the maximum acceleration for the axis with the problem is respected. The acceleration functions are in an experimental state at version 7.27 and the effectiveness is dependant upon the setup and configuration of the winding machines motion (NC) controller.

The default velocity and acceleration limits are set in the machine configuration file (.sm file) described in another section.

The calculation mode options are as follows:

0. Only specify a feed rates at the start of the NC main and NC sub -programs. The feed value used in the main program is the 'start feed' from the .SM file. The feed-rate in the sub-program is specified by the user but the default is the start feed.

1. Calculate feed rates for each NC block such the mandrels rotational speed remains constant (maintains a constant feed rate on the 'A' axis).

2. Maintain a constant total feed rate on the 'A' and 'X' axes.

3. Maintain a constant total feed rate on the 'A', 'X' and 'Y' axes.

4. Maintain a constant fibre speed (not yet implemented).

In the post-processor configuration file (.SM) file the variable $FEED-DEFAULT-MODE can be set. If  $FEED-DEFAULT-MODE=2 is set then on the feed-rate dialog option 2 (above) will be pre-set.

Other feed rate variables that can be pre-set are:

$FEED-MAX= (largest overall speed allowed)
$FEED-MIN=  (smallest overall fee rate allowed)
$FEED-DEFAULT-START= (Speed for start position)
$FEED-DEFAULT-WIND=  (Winding speed)
$FEED-CALC-METHOD= (only used for machines with a non-standard speed calculation)

$MAX-MANDREL-SURF-SPEED= (the maximum  speed of the  mandrel surface at the largest diameter (radius) in mm/min or inch/min dependant on units),

Thus the maximum mandrel rotation speed in degrees/min would be =$MAX-MANDREL-SURF-SPEED*360/(2*PI*Rmax) where Rmax is the largest radius of the mandrel being used.  If this option is set the maximum mandrel rotation speed is reduced as the mandrel diameter increases. This is useful for two reasons, it is safer for the mandrel drive train by reducing  excessive load for large mandrels and it also limits the fibre delivery speed as high speed can lead to poor fibre wetting or other fibre delivery problems. If the user wishes to use this feature to set  the  mandrel speed then $FEED-DEFAULT-WIND should be set to a large value. If $MAX-SPEED-AX-1 (mandrel axis) has a lower value than the value calculated from  $MAX-MANDREL-SURF-SPEED then $MAX-MANDREL-SURF-SPEED will also have no effect as the lower speed limit would always apply

$MAX-MANDREL-SURF-SPEED-ON=takes a value of 1 or 0. If it is 1 then the $MAX-MANDREL-SURF-SPEED is considered, of 0 it is not used.

The normal (default) unit of length in Cadfil is mm and $LEN_UNIT_NAME=MM is set internally. It is also possible to use $LEN_UNIT_NAME=INCH in the sm file. This is mainly used in output (e.g. speed graphs for information) however some internal constants are converted from mm to inch is inch is set. The mandrel should always be defined in the units selected.

The Time unit is for information in outputs only. Actual speed values (feed rates) must match the units actually used by the controller. In the SM file you can set $TIME_UNIT_NAME=Second
or $TIME_UNIT_NAME=Minute. Minute is set by default.

Winding speed

This is set in one of the dialogue text windows. For most machines this will have units of mm/min. The default value is the start feed from the .SM file. This winding speed is used in different ways depending upon the feed option selected.

For option 0 the value entered is the value that will be specified at the top of the NC sub program.

For option 1 this will be the speed of the mandrel axis. Exceptionally on a few customer configurations this is the mandrel surface speed at the largest mandrel diameter.

For options 2 and 3 the feed rate is calculated such that the combined feed to the relevant axes is equal to the value entered. Total feed for a set of axes is usually calculated by summing the squares of the incremental motions on each axis and then taking the square root.


distance = √( a2 + b2 +c2) where a, b and c are the incremental motions on an NC line for mandrel, carriage and cross-feed axes.

thus if these were 10 degrees, 100mm and 50mm the distance would be √( 102 + 1002 + 502)  = 112.25. If  the feed rate was 1000 mm/min then the time taken for the motion is:

speed= distance /time  >> time=distance/speed  = 112.25/1000 = 0.11minutes = 6.7 seconds

if there was also and eye rotation of  15 degrees then:

distance = √( 102 + 1002 + 502+ 152)  = 113.24, so if we wanted a combined feed rate of 1000mm/min for the first 3 axes we would need to actually specify a feed rate of :

speed = distance /time = 113.24/0.11 = 1009mm/min

This methodology is applied for options 1 2 and 3 to specify a combined feed on mandrel, mandrel + carriage, or mandrel + carriage + cross-feed.

For option 4 the winding speed is the rate at which the fibre is deposited on the mandrel.

Please note that the machine will have a maximum feed rate value that can be used. This should be set in the .SM file. If this value is exceeded during feed rate calculations the feed-rate will be set to this maximum value. The option and speed selected will effect the smoothness of machine motion and the total time required to wind the part. An indication of total winding time is given in the NC data.

NC Start speed

This is the speed used at the start of the program to move to the initial (tie on) start position. This is often a slow value. The default value is set in the .SM file

Next Section