Task 8
Created: 2026-05-18
Problem 1
Preamble
Proportioning a rectangular footing is a frequent task for a structural engineer. At one level, it is a fairly simple task, but you look at it in its true sense, it can be a fairly involved task. So here is a problem statement for the problem.
Problem Statement
Develop a CLI application to read the reactions from an Excel file and determine the size of an isolated rectangular footing for each support. Whether there will be overlapping of adjacent isolated footings or not is not to be considered.
Given Data
- Axial force \(P\), bending moment about x-axis \(M_x\), bending moment about y-axis \(M_y\) at working loads (Load Factor=1) at the bottom of the column, possibly obtained from the output of a structural analysis program.
- Footing is an isolated rectangular footing. Let the dimensions of the footing parallel to the x- and y-axes be \(L_x\) and \(L_y\), respectively. The dimensions of the contact of the column (assumed to be rectangular) are \(b_x\) and \(b_y\) parallel to the x- and y-axes respectively.
- Column is placed at coordinate \((x, y)\) from the geometric centre of the rectangular footing. The default values are \(x=0, y=0\), corresponding to the column located at the centre of the footing. Check \(-\frac{L_x}{2} \leq x \leq \frac{L_x}{2}\) and \(-\frac{L_y}{2} \leq y \leq \frac{L_y}{2}\).
- Safe Bearing Capacity of the foundation strata is given.
- A factor to account for self weight of the footing, expressed as a percentage of the axial load, shall be provided by the user when calculating pressure on the foundation. However, this will have to be verified against the actual weight of the footing once the design is complete. Note: The design of the footing is not included in the scope of this problem definition.
- All units are in kN and m.
Required Solution
Plan dimensions \(L_x\) and \(L_y\) of the footing so that the pressures at the four corners of the footing are safe.
Suggestions
- Use object oriented programming (OOP) to represent the rectangular footing object. Identify its attributes.
- Note: SBC is not an attribute of the footing but that of the foundation strata. Therefore it is not a field within the class representing the footing.
- If the column is not located at the centre of the footing, determine the equivalent load at the centre of the footing to compute the pressures at thefour corners of the footing. While this is acceptable for proportioning the plan dimensions, design for shear will require calculations based on actual position of the column.
- You can use several strategies to determine \(L_x\) and \(L_y\):
- Equal projections along x- and y-axes for concentric footings with nominal bending moments.
- Dimensions based on eccetricity of the load.
- Square footing.
- Once the class to proportion the rectangular footings is working correctly, you can combine it with the Pandas example where we grouped footings based on axial force into groups during Session 10.
Problem 2
Preamble
PDF format is a common file format due to its portability and formatting suitable for printing. Several operations that are frequently required require the use of online tools or commercial applications. Many of thee tasks can be easily performed with Python packages. A simple CLI application with different commands for different tasks along with appropriate options would be a good solution for office use.
Problem Statement
Develop a CLI application to perform the following tasks on a specified PDF file:
- Extract all text in the PDF file and save to a Markdown file.
- Extract all images in the PDF file and save as individual images. Use a suitable naming convention to identify the file from which the images were extracted.
- Extract all tables in the PDF file and write them to Markdown format. Extracted tables can be stored in Pandas DataFrame objects before exporting to Markdown.
- Given an encrypted PDF file and knowing the password, save the decrypted PDF file with the password removed.
- Add a footer with page numbering at a specified location of all pages in the given PDF file.
Given Data
- The name of the PDF file to be used as the source file.
Required Solution
A CLI application with a command for each of the above 5 operations and appropriate options for each command.
Suggestions
- PyMyPDF is a good Python package to accomplish the above tasks.
- PikePDF is also a good choice but it cannot extract tables from PDF files.
tabula-pyis capable of extracting tables from PDF but it depends on Java Development Kit (JDK) being installed on the PC.- Use Typer or Click to develop the CLI interface.