# Excel — Taming of the Shapes with PyXLL May 2022

Shapes and the 'PyXLL Movie'
'Transformer Movie'

Click to see variations in the ‘Picasso-Path’

The Back Story

Using PyXLL, I have programmed automatic shapes in Excel. That is, I built a function that draws an arbitrary shape in a user spreadsheet: the shape is defined by a range of coordinates; as the coordinates are edited, a new shape can be drawn.

In the video, I provide a dropdown to allow easy access to the function/coordinates for each of the five letters in the banner. After drawing the shapes, I use Excel’s Format Painter to change the style of my letter shapes. Note that the shapes are drawn in a specific location to make a banner.

The shapes are just standard Excel shapes, they can be easily copied, translated, rotated, flipped, scaled, modified in any way.

Shapes/Paths

Shapes are simply closed paths. An open path traverses the user vertices. A closed path traverses the user vertices and returns to the first vertex.

Use Case

The two examples are somewhat frivolous; my more serious use case is drawing diagrams for engineering work.

Features

• The shape is drawn accurately to scale.
• Because the function is in PyXLL, it can be used in any standard (xlsx) spreadsheet
• That is, it does not require a macro spreadsheet (xlsm).
• The shape coordinates are in a standard Excel range; the range can be on any worksheet
• The shape/path is drawn by a function; the function is called from an Excel cell formula
• There are two boolean parameters:
first, closed (default) or open shape
second, arrow on the first line segment (default) or not
• Therefore, 4 possible combinations:

Side Note

Using PyXLL, I also programmed a shape building tool based on Turtle commands.  I built a function called tcmd (turtle command) that allows the following data commands:

• x 7 → set xnew to 7
• y 8.5 → set ynew to 8.5
• xy 4 6 → set xynew to [4, 6]
• lt 15 → turn left 15 degrees
• rt 45 → turn right 45 degrees
• hd 45 → set heading to 45 degrees (0 = +x; 90 = +y)
• fd 3 → use current heading; move forward 3

For many applications, I find it (an order of magnitude) easier to specify coordinates using ‘path’ commands as used in Turtle software. For instance to draw a pentagon with side of length 5:

• fd 5
• rt 72
• repeat 5 times

Even if no drawing is needed, the Turtle tcmd approach easily calculates coordinates for other Excel uses.

Here is a screenshot of tcmd calculating the pentagon coordinates

Shear and Moment Diagram

The above shows the shear and moment diagram for a propped cantilever. The leancrew link has a full explanation of the mechanics involved.

https://leancrew.com/all-this/2015/08/super/

A couple examples of Python use in my structural engineering