Following the previous post the py_xlCBA spreadsheet and associated code have been updated. The updated files, including open-source code, can be downloaded from:
Note that the link in the previous post was downloading the wrong file, and has just been corrected.
The main updates are:
- The py_CBA function now returns an array of beam or reaction results, rather than the py_CBA cache object.
- The cache_object is now generated using the py_CBAcache function.
- Beam or reaction results can now be extracted from the cache object using the pyCBARes or pyCBAReact functions.
- The beam results now include beam slopes as well as deflections.
- The reaction results include the beam slope and deflection at each support, as well as reaction forces and bending moments.
- Supports may now be allocated a specific vertical deflection, as well as the displacement and rotation fixed or spring restraints. Note that if a non-zero displacement is specified any spring stiffness for deflections at that support is ignored, but spring or fixed rotation restraints are still applied.
The new input and output is shown below:

- The supports input may now be three columns as before, or four columns if specified support displacements are required. Note that there must be at least one support with zero (or blank) displacement.
- The main beam results array is now generated using the py_CBA function.
- The results cache object is returned as BeamResults@x (lower left), using the py_CBAcache function.
- As before, the CBA generated Python graphs may be returned immediately below the cache object.
- Results may be extracted from the cache using the py_CBARes or py_CBAReact functions.
As before, the latest functions have been checked against Strand7 analyses of 15 different span arrangements, each with 6 different support conditions. The py_CBA results were generated in the py_CBA-Check26-2.xlsb spreadsheet, and all results are compared with Strand7 in Check py_CBA-16Jan26.xlsb. The results for the different support conditions are copied to six different sheets, and the results for any span type can be displayed by entering the Span Type number in cell Y2. The results are very close, except that currently where a specified deflection analysis is carried out, and the first support is at X = 0, the shear force at that support is shown as zero, as shown below:

The results have also been compared against the py_Conbeam function on the py_CBA-Check v Conbeam-support def.xlsb spreadsheet, with near exact agreement. Results are shown below for a 3 spam beam with two cantilevers, and 3 supports with specified deflections:

The next post will look at the procedure used to calculate the beam actions and deflections with specified deflections at one or more supports.