Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save connorferster/29a93ab1d07741d9ab4306a8e458a083 to your computer and use it in GitHub Desktop.
Save connorferster/29a93ab1d07741d9ab4306a8e458a083 to your computer and use it in GitHub Desktop.
sectionproperties 2.0 API showcase
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# `sectionproperties 2.0` API Showcase"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [],
"source": [
"from sectionproperties.pre import sections as sc\n",
"from sectionproperties.pre.pre import Material\n",
"from sectionproperties.analysis.cross_section import Section\n",
"\n",
"from shapely.geometry import box"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 0. Introduction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The new pre-processor now has only two classes that need maintaining: `Geometry` and `CompoundGeometry`.\n",
"\n",
"* `Geometry` is a single continguous region that can have an arbitrary number of holes.\n",
"* `CompoundGeometry` is an arbitrary number of distinct contiguous regions. Each region can have an arbitrary number of holes. The regions do not need to be touching but they can touch at a point, on a line, on many lines, or they can overlap partially or fully. It does not matter.\n",
"\n",
"In other words, a `CompoundGeometry` is created from multiple `Geometry` objects. \n",
"\n",
"When a `Geometry` is instantiated, it is automatically assigned the `DEFAULT_MATERIAL`. Changing the material is as simple as defining a new `Material` and setting it on `<Geometry object>.material`.\n",
"\n",
"**`Geometry` objects can be created either from:**\n",
"1. Using the `Geometry()` constructor with a shapely `Polygon`\n",
"2. Using `Geometry.from_points()` with a list of points (if the points are in sequential order, the geometry has no holes, and is only a single contiguous region)\n",
"3. Using `Geometry.from_points()` with lists of points, facets, holes, control_points (`sectionproperties` classic)\n",
"4. Factory functions in `sectionproperties.pre.sections`, such as `circular_section()` and `i_section()`\n",
"5. Set operations between other `Geometry` objects through the `&`, `-`, `^`, and `|` operators\n",
"6. The `Geometry.load_dxf()` class method\n",
"\n",
"**`CompoundGeometry` objects can be create from:**\n",
"1. Using the `CompoundGeometry()` constructor with either a list of `Geometry` objects or a shapely `MultiPolygon`\n",
"2. Lists of points, facets, holes, control points (`sectionproperties` classic)\n",
"3. Using the `+` operator between `Geometry` or `CompoundGeometry` objects\n",
"4. Accidental creation, such as by \"eroding\" a section so that it creates more than one distinct region (e.g. with `.offset_section_perimeter()`)\n",
"\n",
"\n",
"**Note: the underlying shapely `Polygon` or `MultiPolygon` (in the case of `CompoundGeometry`), can always be accessed directly with the `.geom` attribute. Changes made to the underlying geometry with shapely functions need to be \"refreshed\" in the `Geometry` object by using the method `.compile_geometry()`.**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. Creating `Geometry` objects"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Geometry from points"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**1.** Example from: https://sectionproperties.readthedocs.io/en/latest/rst/geom_mesh.html#arbitrary-cross-section-geometries"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961ab70ec8\n",
"Material: default\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"108.0\" height=\"100.0\" viewBox=\"-4.0 -4.0 108.0 58.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,50.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.0\" opacity=\"0.6\" d=\"M 0.0,0.0 L 25.0,50.0 L 75.0,50.0 L 100.0,0.0 L 0.0,0.0 z M 15.0,10.0 L 85.0,10.0 L 70.0,40.0 L 30.0,40.0 L 15.0,10.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961ab70ec8>"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"points = [[0, 0], [100, 0], [75, 50], [25, 50], [15, 10], [85, 10], [70, 40], [30, 40]]\n",
"facets = [[0, 1], [1, 2], [2, 3], [3, 0], [4, 5], [5, 6], [6, 7], [7, 4]]\n",
"holes = [[50, 25]]\n",
"control_points = [[5, 5]]\n",
"\n",
"my_geom = sc.Geometry.from_points(points, facets, holes, control_points)\n",
"my_geom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**2.** Example from: https://sectionproperties.readthedocs.io/en/latest/rst/examples.html#creating-custom-geometry"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "A Geometry object can only have one contiguous region (with holes).Did you mean to use CompoundGeometry.from_points()?",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-93-9ebce0dde301>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[0mcontrol_points\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m-\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 15\u001b[1;33m \u001b[0mmy_next_geom\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGeometry\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfrom_points\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpoints\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfacets\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mholes\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcontrol_points\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# Creates ValueError; should it be GeometryError?\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 16\u001b[0m \u001b[0mmy_next_geom\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Notebooks\\package_development\\section-properties\\sectionproperties\\pre\\sections.py\u001b[0m in \u001b[0;36mfrom_points\u001b[1;34m(points, facets, holes, control_points)\u001b[0m\n\u001b[0;32m 102\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcontrol_points\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcontrol_points\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 103\u001b[0m raise ValueError(\n\u001b[1;32m--> 104\u001b[1;33m \u001b[1;34m\"A Geometry object can only have one contiguous region (with holes).\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 105\u001b[0m \u001b[1;34m\"Did you mean to use CompoundGeometry.from_points()?\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 106\u001b[0m )\n",
"\u001b[1;31mValueError\u001b[0m: A Geometry object can only have one contiguous region (with holes).Did you mean to use CompoundGeometry.from_points()?"
]
}
],
"source": [
"# define parameters for the angle section\n",
"a = 1\n",
"b = 2\n",
"t = 0.1\n",
"\n",
"# build the lists of points, facets, holes and control points\n",
"points = [[-t/2, -2*a], [t/2, -2*a], [t/2, -t/2], [a, -t/2], [a, t/2],\n",
" [-t/2, t/2], [-b/2, -2*a], [b/2, -2*a], [b/2, -2*a-t],\n",
" [-b/2, -2*a-t]]\n",
"facets = [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 0], [6, 7], [7, 8],\n",
" [8, 9], [9, 6]]\n",
"holes = []\n",
"control_points = [[0, 0], [0, -2*a-t/2]]\n",
"\n",
"my_next_geom = sc.Geometry.from_points(points, facets, holes, control_points) # Creates ValueError; should it be GeometryError?\n",
"my_next_geom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Yup, because I have *two* exterior regions (i.e. two control points), I should have used `CompoundGeometry.from_points()`**"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961aaaf0c8\n",
"Materials incl.: ['default']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-1.086 -2.186 2.172 2.322\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,-2.05)\"><g><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"0.04644\" opacity=\"0.6\" d=\"M -0.05,-2.0 L 0.05,-2.0 L 0.05,-0.05 L 1.0,-0.05 L 1.0,0.05 L -0.05,0.05 L -0.05,-2.0 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"0.04644\" opacity=\"0.6\" d=\"M -1.0,-2.0 L 1.0,-2.0 L 1.0,-2.1 L -1.0,-2.1 L -1.0,-2.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961aaaf0c8>"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"my_next_geom = sc.CompoundGeometry.from_points(points, facets, holes, control_points)\n",
"my_next_geom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**3.** If the geometry is simple (i.e. one region defined by one exterior ring with no holes), then you don't need to specify `facets`, `holes`, and `control_points`."
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961abea408\n",
"Material: default\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-160.0 -160.0 2320.0 4320.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,4000.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"28.8\" opacity=\"0.6\" d=\"M 0.0,0.0 L 2000.0,0.0 L 2000.0,500.0 L 500.0,500.0 L 500.0,500.0 L 500.0,3500.0 L 2000.0,3500.0 L 2000.0,4000.0 L 0.0,4000.0 L 0.0,0.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961abea408>"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"points = [[0, 0], [2000, 0], [2000, 500], [500, 500], [500, 500], [500, 3500], [2000, 3500], [2000, 4000], [0, 4000]]\n",
"my_pier = sc.Geometry.from_points(points)\n",
"my_pier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Geometry from pre-defined factory functions\n",
"\n",
"What were previously separate classes in `sectionproperties.pre.sections`, such as `AngleSection` and `CircularSection`, are now pure functions that create `Geometry` objects with a specific shape, e.g. `angle_section()` and `circular_section()`. The idea is that only `Geometry` and `CompoundGeometry` classes need to be maintained and documented.\n",
"\n",
"`Material` can be assigned to the `.material` attribute after creation."
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [],
"source": [
"steel = Material(\"Steel G40.21-350W\", 200e3, 0.3, 350, \"blue\")\n",
"aluminum = Material(\"Aluminum 6061\", 69e3, 0.33, 276, \"red\")"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961ab35988\n",
"Material: Steel G40.21-350W\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"164.16000000000003\" height=\"164.16000000000003\" viewBox=\"-6.08 -6.08 164.16000000000003 164.16000000000003\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,152.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.0\" opacity=\"0.6\" d=\"M 0.0,0.0 L 152.0,0.0 L 152.0,3.0 L 151.89821441880932,4.423148382732851 L 151.59492973614496,5.817325568414297 L 151.0963199535452,7.154150130018864 L 150.4125353283118,8.406408174555976 L 149.55749574354257,9.54860733945285 L 148.54860733945284,10.557495743542582 L 147.40640817455596,11.412535328311812 L 146.15415013001888,12.096319953545184 L 144.8173255684143,12.594929736144973 L 143.42314838273285,12.898214418809326 L 142.0,13.0 L 24.999999999999996,13.0 L 23.292221940720577,13.122142697428808 L 21.619209317902843,13.486084316626032 L 20.015019843977363,14.084416055745779 L 18.51231019053283,14.904957606025825 L 17.141671192656577,15.931005107748902 L 15.931005107748899,17.14167119265658 L 14.904957606025825,18.51231019053283 L 14.084416055745777,20.015019843977367 L 13.48608431662603,21.619209317902847 L 13.122142697428806,23.29222194072058 L 13.0,25.0 L 13.0,142.0 L 12.898214418809326,143.42314838273285 L 12.594929736144973,144.8173255684143 L 12.096319953545184,146.15415013001888 L 11.412535328311812,147.40640817455596 L 10.557495743542583,148.54860733945284 L 9.54860733945285,149.55749574354257 L 8.406408174555978,150.4125353283118 L 7.154150130018865,151.0963199535452 L 5.817325568414296,151.59492973614496 L 4.423148382732853,151.89821441880932 L 3.0000000000000004,152.0 L 0.0,152.0 L 0.0,0.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961ab35988>"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"angle = sc.angle_section(d=152, b=152, t=13, r_r=12, r_t=10, n_r=12)\n",
"angle.material = steel \n",
"angle"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961ab19d08\n",
"Material: Aluminum 6061\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-12.0 -12.0 324.0 324.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,300.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 50.0,0.0 L 250.0,0.0 L 250.0,20.0 L 172.5,20.0 L 170.36527742590073,20.15267837178601 L 168.27401164737856,20.60760539578254 L 166.2687748049717,21.35552006968222 L 164.39038773816603,22.38119700753228 L 162.67708899082072,23.663756384686128 L 161.1637563846861,25.177088990820724 L 159.88119700753228,26.890387738166037 L 158.85552006968223,28.76877480497171 L 158.10760539578254,30.774011647378558 L 157.652678371786,32.86527742590073 L 157.5,35.0 L 157.5,265.0 L 157.652678371786,267.13472257409927 L 158.10760539578254,269.22598835262147 L 158.85552006968223,271.2312251950283 L 159.88119700753228,273.10961226183395 L 161.16375638468614,274.8229110091793 L 162.67708899082072,276.3362436153139 L 164.39038773816603,277.6188029924677 L 166.2687748049717,278.6444799303178 L 168.27401164737856,279.3923946042175 L 170.36527742590073,279.847321628214 L 172.5,280.0 L 300.0,280.0 L 300.0,300.0 L 0.0,300.0 L 0.0,280.0 L 127.5,280.0 L 129.63472257409927,279.847321628214 L 131.72598835262144,279.3923946042175 L 133.7312251950283,278.6444799303178 L 135.60961226183397,277.6188029924677 L 137.32291100917928,276.3362436153139 L 138.83624361531386,274.8229110091793 L 140.11880299246772,273.10961226183395 L 141.14447993031777,271.2312251950283 L 141.89239460421746,269.22598835262147 L 142.347321628214,267.13472257409927 L 142.5,265.0 L 142.5,35.0 L 142.347321628214,32.86527742590072 L 141.89239460421746,30.774011647378554 L 141.14447993031777,28.768774804971706 L 140.11880299246772,26.890387738166037 L 138.8362436153139,25.177088990820724 L 137.32291100917928,23.663756384686124 L 135.60961226183397,22.381197007532286 L 133.7312251950283,21.355520069682225 L 131.72598835262144,20.60760539578254 L 129.63472257409927,20.15267837178601 L 127.5,20.0 L 50.0,20.0 L 50.0,0.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961ab19d08>"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mono = sc.mono_i_section(d=300, b_t=300, b_b=200, t_fb=20, t_ft=20, t_w=15, r=15, n_r=12)\n",
"mono.material = aluminum\n",
"mono"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. Manipulating geometries\n",
"\n",
"In addition to the existing geometry manipulation methods, `.shift_section()`, `.rotate_section()`, and `.mirror_section()`, new geometry manipulation methods are introduced:\n",
"\n",
"* `.align_to()`\n",
"* `.align_center()`\n",
"* `.shift_points()`\n",
"* `.split_section()`\n",
"* `.offset_section_perimeter()` (previously included in a separate function)\n",
"\n",
"## Fluent API\n",
"\n",
"Previously, a geometry manipulation method performed the manipulation on the instance in place. Now, each geometry manipulation method, returns the new transformed `Geometry` object, known as a _fluent API_ becuase it allows for method chaining.\n",
"\n",
"`.split_section()` is the only method that does not return a `Geometry`. Instead it returns two lists of `Geometry`, the first list representing the split pieces on the \"top\" of the splitting line and the other the split pieces on the \"bottom\" of the splitting line.\n",
"\n",
"e.g.\n",
"\n",
"```python\n",
"sc.rectangular_section(b=200, d=500).align_to([50, 50], on='left').rotate_section(45).mirror_section(axis='y')\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAREAAAEYCAYAAAB7m8JGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAbuElEQVR4nO3de5Qc5X3m8e+jETcLggApMkiyBUELsYXNRQGxOBwuwYCWBbJxkMAx2KuN9pzFG7zyWRt7TWKvSQJ4MeBzMBsOOIAJyEiJjUKEMRGwjr02MFyCAMEiGzASII3FRUjgxBK//aPeRq1hRtMzfat6+/mc02eqq2q63251faeqe1SjiMDMbKzGdXsAZlZtjoiZNcURMbOmOCJm1hRHxMya4oiYWVMcERs1Sb8r6eluj8PKwRFpgqRzJPVL2iTpJUl3SvpIF8ezs6TLJa1JY3pO0pUtuN2QdGDtekT8U0Qc1OztDnNfO0v6U0lPS9osaW16Xj/ajvsbK0kz0vMyvttj6TZHZIwkLQKuBP4CmAK8D/gmcMYw63fixfYFYDZwJLAHcBzwcAfut5WWUjyH5wJ7AfsDVwH/rpuDGoueCUxE+DLKC7AnsAn4wx2s82WKDeJmYCPwn4D9gGXAK8Bq4I/r1j8S6E/rrgO+nubvmm5jA/Aa8CAwZZj7vAP4zA7GtB/wt8AA8CzwJ3XL+oAvAj8D3gAeAqYDPwQC2Jwe8zyKOK2p+97fBu5L43sCOL1u2Q3A1cA/pNu9H/itYcb3e8BbwLQRnv8dPY5dKOL+YrpcCeySlh0HrAE+B6wHXgLOBOYC/y/9u3yx7rbGARem52QDcBuwd1r2i/S8bEqXo4FPAj8Grkjr/0W6zUPqbvM3gTeByd1+Hbdse+j2AKp4AU4BtgDjd7DOl4FfpxfpOGC3tEF+M4Xh0LQRnJDW/wnwiTS9OzAnTf9n4O+B96QN/QjgN4a5zy+lF/d/AQ4BVLdsXArDnwI7AwcAPwdOTsv/O7ASOAgQ8GFgn7QsgAPrbus4UkSAnSiC+MV0uyekWByUlt+QNqgjgfHA3wCLhxn/JcB9Izz3Iz2O/wn8NG2sk4H/C3y1btxb0vfuBPxx+je4hWLP7YMUEds/rX9Buq1pFHH6K+DWtGxGel7G143tk+n2/2t6rLulf+9L69a5APj7br+GW7o9dHsAVbwAHwdeHmGdLwM/rLs+HdgK7FE37y+BG9L0D4GvAJMG3c5/TBvChxoYVx9wPsVPw3+h+El8Xlp2FPCLQet/AfjrNP00cMYwt7ujiPwu8DIwrm75rcCX0/QNwHV1y+YCTw1zP9fVBwbYm2Lv5nXgVw0+jp8Bc+uWnQw8Vzfut4C+dH2P9NiOqlv/IeDMNL0KOLFu2b4UPxjG7yAig8d2FEXYla73A2d1+zXcyovfExmbDcCkBo55X6ib3g94JSLeqJv3PDA1TS8A/g3wlKQHJZ2W5n8buAtYLOlFSZdJ2il9QrIpXZ4AiIitEXF1RBwDTAT+HPiWpN8G3g/sJ+m12oVi72FKup/pFBvgaO0HvBARbw/zuKCITM2bFHtaQ9lAsaGSHs8rETGRYu9rlzR7pMexX7r/+rHsV38fEbE1Tb+Vvq6rW/5W3fjeD3y37n5WUfwgmMLw6v/NiYj7KR7zcZIOBg6kOKTNhiMyNj+h+El/5gjr1f8X6ReBvSXtUTfvfcBagIh4JiLOptgNvxRYKmlCRPw6Ir4SER8A/i1wGnBuFJ+Q7J4uH3zXHUe8FRFXA68CH6B4cT8bERPrLntExNz0LS8AvzW6p+GdxzVdUv1r6Z3HNUorgN+RNG0H64z0OF6k2Pjrx/LiGMZSu69TB93XrhGxlu3/besNNf9G4I+ATwBLI+JXYxxPKTkiYxARr1McV18t6UxJ70l7B6dKumyY73mB4rDkLyXtKulDFHsfNwNI+iNJk9NP9NfSt70t6XhJh0jqo3jT9dfA2+++B5D0GUnHSdpN0nhJ51Hssj8CPAC8IenzaXmfpFmSfid9+3XAVyXNVOFDkvZJy9ZRvPcwlNpP2s+l5+A44N8Di0d8It/9HP0AuBf4nqSj0se9OwFz6lYb6XHcCnxJ0mRJkyj+nW4e7ViS/w38uaT3A6TbrH36NkDx7zDc81LvZuD3KUJy0xjHUlqOyBhFxOXAIoo3Mwcofmp9GvjeDr7tbIpj6ReB7wJ/FhH/mJadAjwhaRPFR5rzI+It4L0Un/JspNid/j8UhzhDeRO4nOLw4ZcU74/8QUT8PO3Cn0bxhu6zafl1FJ80AXyd4tOHH6T7up7ijUEo3t+5Me3WnzXoefhXimicmm7zmxR7Sk/t4HnYkd+n+JTpZoqYPkvxHtTJ6f5GehwXU7zv8BjFG8UPp3ljcRXFoccPJL1B8SbrUWkcb1IcLv44PS9zhruR9APkYYq9lH8a41hKq/Zmj5m1kaRvAS9GxJe6PZZW641fhjHrIkkzgP8AHNblobSFD2fM2kjSV4HHga9FxLPdHk87+HDGzJriPREza0op3hOZNGlSzJgxo9vDMLNhPPTQQ7+MiMlDLStFRGbMmEF/f3+3h2Fmw5D0/HDLfDhjZk1xRMysKY6ImTXFETGzpjgiZtaUhiKSTvi7UtKjkvrTvL0l3S3pmfR1rzRfkr4habWkxyQd3s4HYGbdNZo9keMj4tCImJ2uXwisiIiZFOeBuDDNPxWYmS4LgWtaNVgzK59mDmfOoDjZCunrmXXzb4rCT4GJkvYd4vvNSuXtt4c8TYuNoNGIBMU5FR6StDDNmxIRL6Xpl9l2yripbH+KuDVsf6o8ACQtTH+zpX9gYGAMQzdrnUmTJtHX18fBBx/c7aFUTqO/sfqRiFgr6TeBuyVtd8KZiAhJo/qffBFxLXAtwOzZs/2/AK1rli5dyoYNGwB4+umn2bx5MxMmTOjyqKqjoT2RdE5JImI9xRm5jgTW1Q5T0tf1afW1FCf9rZnG2M63adZ2S5cuZf78+ey2227vzJs7dy6bN2/u4qiqZcSISJpQO7mwpAnARynOj7AMOC+tdh5we5peBpybPqWZA7xed9hjVhq1gMyZM4d169YRESxevJgf/ehHDskoNHI4M4XitPm19W+JiO9LehC4TdICitPy1869uZzib4uspjjn56daPmqzJtUH5M4772SPPYqT8M+bNw+Ac845h7lz57J8+XIf2oyk23/4JiI44ogjwqxTlixZEn19fXHMMcfExo0bh1xn8eLFMW7cuDj22GNj06ZNHR5h+QD94T9eZTb8Hshg8+bN45ZbbvGhTQMcEesZjQakxiFpjCNiPWG0AalxSEbmiFj2xhqQGodkxxwRy1qzAalxSIbniFi2WhWQGodkaI6IZanVAalxSN7NEbHstCsgNQ7J9hwRy0q7A1LjkGzjiFg2OhWQGoek4IhYFjodkBqHxBGxDHQrIDW9HhJHxCqt2wGp6eWQOCJWWWUJSE2vhsQRsUoqW0BqejEkjohVTlkDUtNrIXFErFLKHpCaXgqJI2KVUZWA1PRKSBwRq4SqBaSmF0LiiFjpVTUgNbmHxBGxUqt6QGpyDokjYqWVS0Bqcg2JI2KllFtAanIMiSNipZNrQGpyC4kjYqWSe0BqcgqJI2Kl0SsBqcklJI6IlUKvBaQmh5A4ItZ1vRqQmqqHxBGxrur1gNRUOSSOiHWNA7K9qobEEbGucECGVsWQOCLWcQ7IjlUtJI6IdZQD0pgqhcQRsY5xQEanKiFpOCKS+iQ9IumOdH1/SfdLWi3pO5J2TvN3SddXp+Uz2jR2qxAHZGyqEJLR7IlcAKyqu34pcEVEHAi8CixI8xcAr6b5V6T1rIc5IM0pfUgiYsQLMA1YAZwA3AEI+CUwPi0/GrgrTd8FHJ2mx6f1tKPbP+KII8LytGTJkujr64tjjjkmNm7c2O3hVNrixYtj3Lhxceyxx8amTZs6et9Afwyz/Ta6J3Il8Dng7XR9H+C1iNiSrq8BpqbpqcALKVBbgNfT+tuRtFBSv6T+gYGBBodhVeI9kNYq6x7JiBGRdBqwPiIeauUdR8S1ETE7ImZPnjy5lTdtJeCAtEcZQzK+gXWOAU6XNBfYFfgN4CpgoqTxaW9jGrA2rb8WmA6skTQe2BPY0PKRW2k5IO01b948AM455xzmzp3L8uXLmTBhQtfGM+KeSER8ISKmRcQMYD5wT0R8HLgX+Fha7Tzg9jS9LF0nLb8nHVNZD3BAOqNMeyTN/J7I54FFklZTvOdxfZp/PbBPmr8IuLC5IVpVOCCdVZqQDPeOaycv/nSm+vwpTPd04lMbWvDpjNmwvAfSXd3eI3FErCkOSDl0MySOiI2ZA1Iu3QqJI2Jj4oCUUzdC4ojYqDkg5dbpkDgiNioOSDV0MiSOiDXMAamWToXEEbGGOCDV1ImQOCI2Igek2todEkfEdsgByUM7Q+KI2LAckLy0KySOiA3JAclTfUiOP/541q1b1/RtOiL2Lg5I3ubNm8fXvvY1HnzwQd773vdyyCGHNHV7johtxwHJ36pVq7jsssveuf744483dXuOiL3DAcnfqlWrOP744wGYOXMmALNmzWrqNhs5PaL1AAckf/UBue+++zj44INbcrveEzEHpAe0KyDgiPQ8ByR/7QwIOCI9zQHJX7sDAo5Iz3JA8teJgIAj0pMckPx1KiDgiPQcByR/nQwIOCI9xQHJX6cDAo5Iz3BA8teNgIAj0hMckPx1KyDgiGTPAclfNwMCjkjWHJD8dTsg4IhkywHJXxkCAo5IlhyQ/JUlIOCIZMcByV+ZAgKOSFYckPyVLSDgiGTDAclfGQMCjkgWHJD8lTUg0EBEJO0q6QFJ/yzpCUlfSfP3l3S/pNWSviNp5zR/l3R9dVo+o82Poac5IPkrc0CgsT2RfwFOiIgPA4cCp0iaA1wKXBERBwKvAgvS+guAV9P8K9J61gYOSP7KHhBoICJR2JSu7pQuAZwALE3zbwTOTNNnpOuk5SdKUqsGbAUHJH9VCAg0+J6IpD5JjwLrgbuBnwGvRcSWtMoaYGqangq8AJCWvw7s08Ix9zwHJH9VCQg0GJGI2BoRhwLTgCOBph+RpIWS+iX1DwwMNHtzPcMByV+VAgKj/HQmIl4D7gWOBiZKqv3JiWnA2jS9FpgOkJbvCWwY4raujYjZETF78uTJYxt9j3FA8le1gEBjn85MljQxTe8GnASsoojJx9Jq5wG3p+ll6Tpp+T0RES0cc09yQPJXxYBAY3+8al/gRkl9FNG5LSLukPQksFjSxcAjwPVp/euBb0taDbwCzG/DuHuKA5K/qgYEGohIRDwGHDbE/J9TvD8yeP6vgD9syejMAekBVQ4I+DdWS80ByV/VAwKOSGk5IPnLISDgiJSSA5K/XAICjkjpOCD5yykg4IiUigOSv9wCAo5IaTgg+csxIOCIlIIDkr9cAwKOSNc5IPnLOSDgiHSVA5K/3AMCjkjX9EJAvv99OOggOPBAuOSSbo+m83ohIOCIdEUvBGTrVjj/fLjzTnjySbj11uJrr+iVgIAj0nG9EBCABx4o9kAOOAB23hnmz4fbbx/5+3LQSwEBR6SjeiUgAGvXwvTp265Pm1bMy12vBQQaOxWAtUCvBGTr1uIQZulSeOWV4npfX7dH1Rm9GBBwRDqilwJy8slw//2waVMRj5NPhrvugjVrYOrUkW+jqno1IODDmbbrlYBAsQdSCwgUUfnJT2DZMli8GE4/vbvja5deDgg4Im3VSwEBeOQR2Lx5+3lvvgkLFsBZZ8EHP9idcbVTrwcEfDjTNr0WEIDDDoMJE7btiQDsvjvcdBOcdlr3xtUuDkjBeyJt0IsBATj1VDjqqCIcUvH1qKOK+blxQLbxnkiL9WpAoHgj9a67ivdGHn0UDj20CEhun844INtzRFqolwNS09dXHLrkePgCDshQfDjTIg5I/hyQoTkiLeCA5M8BGZ4j0iQHJH8OyI45Ik1wQPLngIzMERkjByR/DkhjHJExcEDy54A0zhEZJQckfw7I6Dgio+CA5M8BGT1HpEEOSP4ckLFxRBrggOTPARk7R2QEDkj+HJDmOCI74IDkzwFpniMyDAckfw5Ia4wYEUnTJd0r6UlJT0i6IM3fW9Ldkp5JX/dK8yXpG5JWS3pM0uHtfhCt5oDkzwFpnUb2RLYAn42IDwBzgPMlfQC4EFgRETOBFek6wKnAzHRZCFzT8lG3kQOSPwektUaMSES8FBEPp+k3gFXAVOAM4Ma02o3AmWn6DOCmKPwUmChp31YPvB0ckPw5IK03qvdEJM0ADgPuB6ZExEtp0cvAlDQ9FXih7tvWpHml5oDkzwFpj4YjIml34G+Bz0TExvplERFAjOaOJS2U1C+pf2BgYDTf2nIOSP4ckPZpKCKSdqIIyN9ExN+l2etqhynp6/o0fy1Q9wcUmZbmbSciro2I2RExe/LkyWMdf9MckPw5IO3VyKczAq4HVkXE1+sWLQPOS9PnAbfXzT83fUozB3i97rCnVByQ/Dkg7dfIiZqPAT4BrJT0aJr3ReAS4DZJC4DngbPSsuXAXGA18CbwqVYOuFUckPw5IJ0xYkQi4keAhll84hDrB3B+k+NqKwckfw5I5/Tcb6w6IPlzQDqrpyLigOTPAem8nomIA5I/B6Q7eiIiDkj+HJDuyT4iDkj+HJDuyjoiDkj+HJDuyzYiDkj+HJByyDIiDkj+HJDyyC4iDkj+HJByySoiDkj+HJDyySYiDkj+HJByyiIiDkj+HJDyqnxEHJD8OSDlVumIOCD5c0DKr7IRcUDy54BUQyUj4oDkzwGpjspFxAHJnwNSLZWKyMUXX+yAZM4BqZ5GzrFaCitWrOCiiy4CYMOGDQ5IhhyQaqrMnsiJJ247netTTz3Fli1bujgaazUHpLoqExGAWbNmvTN9zjnnOCSZcECqrVIRWblyJRHB5ZdfzpIlSxySDDgg1VeZ90TqLVq0CIDPfvazANxyyy2MH1/Jh9LTHJA8VHbLc0iqzQHJR6W3OoekmhyQvFR+i3NIqsUByU8WW5tDUg0OSJ6y2dIcknJzQPKV1VbmkJSTA5K37LYwh6RcHJD8Zbl1OSTl4ID0hmy3LIekuxyQ3pH1VuWQdIcD0luy36Icks5yQHrPiFuTpG8BpwHrI2JWmrc38B1gBvAccFZEvCpJwFXAXOBN4JMR8XB7ht44h6QzHJDe1Mj/4r0BOGXQvAuBFRExE1iRrgOcCsxMl4XANa0ZZvMWLVrk//3bRg5I7xrxx3FE/FDSjEGzzwCOS9M3AvcBn0/zb4qIAH4qaaKkfSPipZaNuAneI2kPB6S3jXULmlIXhpeBKWl6KvBC3Xpr0rx3RUTSQoq9Fd73vveNcRij55C0lgNiTW89ERGSYgzfdy1wLcDs2bNH/f3NcEhawwExGHtE1tUOUyTtC6xP89cC0+vWm5bmlY5D0hwHxGrGutUsA84DLklfb6+b/2lJi4GjgNfL8n7IUBySsXFArF4jH/HeSvEm6iRJa4A/o4jHbZIWAM8DZ6XVl1N8vLua4iPeT7VhzC3lkIyOA2KDNfLpzNnDLDpx8Iz0qcz5zQ6q0xySxjggNhRvKYlDsmMOiA3HW0kdh2RoDojtiLeQQRyS7TkgNpLe3Tp2wCEpOCDWiN7bMhrU6yFxQKxRvbNVjEGvhsQBsdHIf4toUq+FxAGx0cp3a2ihXgmJA2Jjkd+W0Ca5h8QBsbHKZyvogFxD4oBYM6q/BXRYbiFxQKxZ1X31d1EuIXFArBWq98oviaqHxAGxVqnOq76EqhoSB8Raqfyv+JKrWkgcEGu18r7aK6QqIXFArB3K90qvqLKHxAGxdinPqzwDZQ2JA2Lt1P1XeGbKFhIHxNrNEWmDsoTEAbFOcETapNshcUCsUxyRNupWSBwQ6yRHpM06HRIHxDrNEemAToXEAbFucEQ6pN0hcUCsWxyRDmpXSBwQ6yZHpMNaHRIHxLrNEemCVoXEAbEycES6pNmQOCBWFo5IF401JA6IlYkj0mWjDYkDYmXjiJRAoyFxQKyMHJGSGCkkDoiVlSNSIsOFxAGxMmtLRCSdAlwF9AHXRcQl7bifHA0OyUUXXcRJJ50EOCBWTi2PiKQ+4GrgJGAN8KCkZRHxZKvvK1f1IVmyZAl9fX08/vjjDoiV0rg23OaRwOqI+HlE/CuwGDijDfeTtVpIALZu3eqAWGm1IyJTgRfqrq9J87YjaaGkfkn9AwMDbRhG9c2aNWu7r2Zl1LU3ViPiWuBagNmzZ0e3xlFmK1eu7PYQzEbUjj2RtcD0uuvT0jwzy1A7IvIgMFPS/pJ2BuYDy9pwP2ZWAi0/nImILZI+DdxF8RHvtyLiiVbfj5mVQ1veE4mI5cDydty2mZVLOw5nzKyHOCJm1hRHxMya4oiYWVMU0f3f85I0ADzfpbufBPyyS/c9Wh5re3isI3t/REweakEpItJNkvojYna3x9EIj7U9PNbm+HDGzJriiJhZUxyR9J8AK8JjbQ+PtQk9/56ImTXHeyJm1hRHxMya0hMRkdQn6RFJd6Tr+0u6X9JqSd9JpyxA0i7p+uq0fEaHx/mcpJWSHpXUn+btLeluSc+kr3ul+ZL0jTTWxyQd3uGxTpS0VNJTklZJOrqMY5V0UHo+a5eNkj5TxrGm+/9vkp6Q9LikWyXtWtbXa01PRAS4AFhVd/1S4IqIOBB4FViQ5i8AXk3zr0jrddrxEXFo3e8CXAisiIiZwIp0HeBUYGa6LASu6fA4rwK+HxEHAx+meH5LN9aIeDo9n4cCRwBvAt8t41glTQX+BJgdEbMoTqUxn3K/XiEisr5QnFltBXACcAcgit/4G5+WHw3clabvAo5O0+PTeurgWJ8DJg2a9zSwb5reF3g6Tf8VcPZQ63VgnHsCzw5+bso41kHj+yjw47KOlW3nJ947vf7uAE4u6+u1dumFPZErgc8Bb6fr+wCvRcSWdL3+RNLvnGQ6LX89rd8pAfxA0kOSFqZ5UyLipTT9MjBl8FiTIU+I3Sb7AwPAX6fDxOskTSjpWOvNB25N06Uba0SsBf4X8AvgJYrX30OU9/UKZH44I+k0YH1EPNTtsTToIxFxOMUu9fmSjq1fGMWPnDJ8Jj8eOBy4JiIOAzaz7XAAKNVYAUjvI5wOLBm8rCxjTe/LnEER6f2ACcApXR1UA7KOCHAMcLqk5yj+/s0JFMfyEyXVzupWfyLpd04ynZbvCWzo1GDTTyIiYj3FcfuRwDpJ+6Yx7QusHzzWpJMnxF4DrImI+9P1pRRRKeNYa04FHo6Idel6Gcf6e8CzETEQEb8G/o7iNVzK12tN1hGJiC9ExLSImEGxK3tPRHwcuBf4WFrtPOD2NL0sXSctvyf9lGo7SRMk7VGbpjh+f3zQmAaP9dz0acIc4PW63fO2ioiXgRckHZRmnQg8Wcax1jmbbYcytTGVbay/AOZIeo8kse15Ld3rdTudfhOmWxfgOOCONH0A8ACwmmL3dpc0f9d0fXVafkAHx3cA8M/p8gTwP9L8fSjeGH4G+Edg7zRfFH+u9GfASop39Dv5fB4K9AOPAd8D9irxWCdQ/ITes25eWcf6FeApih8g3wZ2KePrtf7iX3s3s6ZkfThjZu3niJhZUxwRM2uKI2JmTXFEzKwpjoiZNcURMbOm/H/uXH/9sFZjSQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Cross-Section Geometry'}>)"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc.rectangular_section(b=200, d=500).align_to([500, 0], on='left').rotate_section(45).mirror_section(axis='y').plot_geometry()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Manipulating geometries: `.align_to()`\n",
"\n",
"Aligns the geometry to either another geometry to an *(x, y)* coordinate. If 'inner = True', then the geometry aligns to the \"interior\" of the other geometry.\n",
"\n",
"```python\n",
"<Geometry>.align_to(other: Union[Geometry, List[float]], on: str, inner: bool)\n",
"'other' - Either a Geometry or an (x,y) coordinate\n",
"'on' - A str, one of \"top\", \"bottom\", \"left\", or \"right\"\n",
"'inner' - If True, the geometry aligns to the \"interior\" of other\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961a546788\n",
"Materials incl.: ['default']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-20.0 -20.0 540.0 390.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,350.0)\"><g><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"3.6\" opacity=\"0.6\" d=\"M 0.0,0.0 L 500.0,0.0 L 500.0,350.0 L 0.0,350.0 L 0.0,0.0 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"3.6\" opacity=\"0.6\" d=\"M 0.0,0.0 L 200.0,0.0 L 200.0,75.0 L 0.0,75.0 L 0.0,0.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961a546788>"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"big_box = sc.rectangular_section(b=500, d=350)\n",
"small_box = sc.rectangular_section(b=200, d=75)\n",
"big_box + small_box"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961bd20c08\n",
"Materials incl.: ['default']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-20.0 -20.0 540.0 465.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,425.0)\"><g><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"3.6\" opacity=\"0.6\" d=\"M 0.0,350.0 L 200.0,350.0 L 200.0,425.0 L 0.0,425.0 L 0.0,350.0 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"3.6\" opacity=\"0.6\" d=\"M 0.0,0.0 L 500.0,0.0 L 500.0,350.0 L 0.0,350.0 L 0.0,0.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961bd20c08>"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"small_box.align_to(big_box, on=\"bottom\", inner=False) + big_box"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Manipulating Geometries: `.align_center()`"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961bd25a08\n",
"Materials incl.: ['default']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-20.0 -20.0 540.0 390.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,350.0)\"><g><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"3.6\" opacity=\"0.6\" d=\"M 150.0,137.5 L 350.0,137.5 L 350.0,212.5 L 150.0,212.5 L 150.0,137.5 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"3.6\" opacity=\"0.6\" d=\"M 0.0,0.0 L 500.0,0.0 L 500.0,350.0 L 0.0,350.0 L 0.0,0.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961bd25a08>"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"small_box.align_center(big_box) + big_box"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Cross-Section Geometry'}>)"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"small_box.align_center().plot_geometry() # With no 'align_to' argument, the geometry is shifted so it's centroid is at the origin"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Manipulating Geometries: `.split_section()`\n",
"\n",
"This method is used internally for calculating plastic section properties but can be used for geometry manipulation, also."
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Cross-Section Geometry'}>)"
]
},
"execution_count": 104,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mono.plot_geometry()"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961bed8908\n",
"Materials incl.: ['Aluminum 6061']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"184.0\" height=\"300\" viewBox=\"-12.0 -12.0 184.0 324.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,300.0)\"><g><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 140.0,0.0 L 50.0,0.0 L 50.0,20.0 L 127.5,20.0 L 129.63472257409927,20.15267837178601 L 131.72598835262144,20.60760539578254 L 133.7312251950283,21.355520069682225 L 135.60961226183397,22.381197007532286 L 137.32291100917928,23.663756384686124 L 138.8362436153139,25.177088990820724 L 140.11880299246772,26.890387738166037 L 141.14447993031777,28.768774804971706 L 141.89239460421746,30.774011647378554 L 142.12195103538627,31.82926553079418 L 140.0,0.0 z\" /><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 157.87804896461373,268.17073446920585 L 157.652678371786,267.13472257409927 L 157.5,265.0 L 157.5,262.5 L 142.5,37.5 L 142.5,265.0 L 142.347321628214,267.13472257409927 L 141.89239460421746,269.22598835262147 L 141.14447993031777,271.2312251950283 L 140.11880299246772,273.10961226183395 L 138.83624361531386,274.8229110091793 L 137.32291100917928,276.3362436153139 L 135.60961226183397,277.6188029924677 L 133.7312251950283,278.6444799303178 L 131.72598835262144,279.3923946042175 L 129.63472257409927,279.847321628214 L 127.5,280.0 L 0.0,280.0 L 0.0,300.0 L 160.0,300.0 L 157.87804896461373,268.17073446920585 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961bed8908>"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top, bottom = mono.split_section(point_i=[140, 0], point_j=[160, 300])\n",
"sc.CompoundGeometry(top) # The resulting split geometries retain the material properties of the original"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961bee1188\n",
"Materials incl.: ['Aluminum 6061']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"184.0\" height=\"300\" viewBox=\"128.0 -12.0 184.0 324.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,300.0)\"><g><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 157.5,262.5 L 157.5,35.0 L 157.652678371786,32.86527742590073 L 158.10760539578254,30.774011647378558 L 158.85552006968223,28.76877480497171 L 159.88119700753228,26.890387738166037 L 161.1637563846861,25.177088990820724 L 162.67708899082072,23.663756384686128 L 164.39038773816603,22.38119700753228 L 166.2687748049717,21.35552006968222 L 168.27401164737856,20.60760539578254 L 170.36527742590073,20.15267837178601 L 172.5,20.0 L 250.0,20.0 L 250.0,0.0 L 140.0,0.0 L 142.12195103538627,31.82926553079418 L 142.347321628214,32.86527742590072 L 142.5,35.0 L 142.5,37.5 L 157.5,262.5 z\" /><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 160.0,300.0 L 300.0,300.0 L 300.0,280.0 L 172.5,280.0 L 170.36527742590073,279.847321628214 L 168.27401164737856,279.3923946042175 L 166.2687748049717,278.6444799303178 L 164.39038773816603,277.6188029924677 L 162.67708899082072,276.3362436153139 L 161.16375638468614,274.8229110091793 L 159.88119700753228,273.10961226183395 L 158.85552006968223,271.2312251950283 L 158.10760539578254,269.22598835262147 L 157.87804896461373,268.17073446920585 L 160.0,300.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961bee1188>"
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc.CompoundGeometry(bottom)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Manipulating Geometries: Shifting one or more points with `.shift_points()`"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Cross-Section Geometry'}>)"
]
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"big_box.plot_geometry(labels=[\"points\"]) # Plot with points labels to see point indexes"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Cross-Section Geometry'}>)"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"big_box.shift_points([0], dx=150, dy=-150).plot_geometry(labels=[\"points\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. Creating section geometries with set operations: `|`, `&`, `-`, `^`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Union: `|`"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961bf1bf88\n",
"Material: Aluminum 6061\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-77.68838354206831 -42.33304448274093 420.02142802480927 420.02142802480927\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,335.3553390593274)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.8001428534987283\" opacity=\"0.6\" d=\"M 183.84776310850236,0.0 L 50.0,0.0 L 50.0,20.0 L 127.5,20.0 L 129.63472257409927,20.15267837178601 L 131.72598835262144,20.60760539578254 L 133.7312251950283,21.355520069682225 L 135.60961226183397,22.381197007532286 L 137.32291100917928,23.663756384686124 L 138.8362436153139,25.177088990820724 L 140.11880299246772,26.890387738166037 L 141.14447993031777,28.768774804971706 L 141.89239460421746,30.774011647378554 L 142.347321628214,32.86527742590072 L 142.5,35.0 L 142.5,146.89339828220176 L 63.379419304647925,226.01397897755385 L 61.7619825845199,227.41549587362107 L 59.96155238765053,228.57256210326454 L 58.01478028083619,229.46162313475207 L 55.96129693014437,230.06458024932306 L 53.84290533483818,230.36915897890947 L 51.70272983886122,230.36915897890947 L 49.584338243555095,230.06458024932306 L 47.53085489286322,229.46162313475207 L 45.58408278604885,228.5725621032645 L 43.783652589179496,227.41549587362107 L 42.1662158690515,226.01397897755385 L -47.989898732233314,135.85786437626905 L -62.132034355964265,150.0 L 67.86796564403573,280.0 L 0.0,280.0 L 0.0,300.0 L 87.86796564403573,300.0 L 150.0,362.13203435596427 L 164.14213562373095,347.9898987322333 L 116.15223689149764,300.0 L 300.0,300.0 L 300.0,280.0 L 172.5,280.0 L 170.36527742590073,279.847321628214 L 168.27401164737856,279.3923946042175 L 166.2687748049717,278.6444799303178 L 164.39038773816603,277.6188029924677 L 162.67708899082072,276.3362436153139 L 161.16375638468614,274.8229110091793 L 159.88119700753228,273.10961226183395 L 158.85552006968223,271.2312251950283 L 158.10760539578254,269.22598835262147 L 157.652678371786,267.13472257409927 L 157.5,265.0 L 157.5,153.10660171779824 L 236.6205806953521,73.98602102244615 L 238.23801741548007,72.58450412637896 L 240.03844761234944,71.42743789673551 L 241.9852197191638,70.53837686524795 L 244.03870306985561,69.93541975067694 L 246.1570946651618,69.63084102109053 L 248.29727016113878,69.63084102109053 L 250.41566175644493,69.93541975067697 L 252.4691451071368,70.53837686524793 L 254.41591721395116,71.42743789673551 L 256.2163474108205,72.58450412637896 L 257.8337841309485,73.98602102244615 L 312.63455967290594,128.78679656440357 L 326.7766952966369,114.64466094067262 L 232.13203435596427,20.0 L 250.0,20.0 L 250.0,0.0 L 212.13203435596427,0.0 L 185.35533905932738,-26.776695296636888 L 171.21320343559643,-12.634559672905937 L 183.84776310850236,0.0 z M 157.5,131.89339828220176 L 157.5,35.0 L 157.652678371786,32.86527742590073 L 158.10760539578254,30.774011647378558 L 158.85552006968223,28.76877480497171 L 159.88119700753228,26.890387738166037 L 161.1637563846861,25.177088990820724 L 162.67708899082072,23.663756384686128 L 164.39038773816603,22.38119700753228 L 166.2687748049717,21.35552006968222 L 168.27401164737856,20.60760539578254 L 170.36527742590073,20.15267837178601 L 172.5,20.0 L 203.84776310850236,20.0 L 226.01397897755385,42.1662158690515 L 227.41549587362107,43.78365258917951 L 228.5725621032645,45.58408278604887 L 229.46162313475207,47.53085489286323 L 230.06458024932306,49.58433824355508 L 230.36915897890947,51.70272983886123 L 230.36915897890947,53.84290533483821 L 230.06458024932306,55.96129693014437 L 229.46162313475207,58.01478028083619 L 228.5725621032645,59.961552387650556 L 227.41549587362107,61.76198258451991 L 226.01397897755385,63.379419304647925 L 157.5,131.89339828220176 z M 142.5,168.10660171779824 L 142.5,265.0 L 142.347321628214,267.13472257409927 L 141.89239460421746,269.22598835262147 L 141.14447993031777,271.2312251950283 L 140.11880299246772,273.10961226183395 L 138.83624361531386,274.8229110091793 L 137.32291100917928,276.3362436153139 L 135.60961226183397,277.6188029924677 L 133.7312251950283,278.6444799303178 L 131.72598835262144,279.3923946042175 L 129.63472257409927,279.847321628214 L 127.5,280.0 L 96.15223689149762,280.0 L 73.98602102244614,257.8337841309485 L 72.58450412637895,256.2163474108205 L 71.42743789673551,254.41591721395116 L 70.53837686524793,252.4691451071368 L 69.93541975067699,250.41566175644493 L 69.63084102109053,248.29727016113878 L 69.63084102109055,246.15709466516182 L 69.93541975067696,244.03870306985561 L 70.53837686524794,241.9852197191638 L 71.42743789673548,240.0384476123495 L 72.58450412637893,238.2380174154801 L 73.98602102244614,236.6205806953521 L 142.5,168.10660171779824 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961bf1bf88>"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"union_geom = mono | mono.rotate_section(45)\n",
"union_geom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Notice**: the holes that were generated by the geometry union are automatically recognized.\n",
"\n",
"See mesh, below:"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<matplotlib.patches.Patch object at 0x000001961C060CC8>]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Finite Element Mesh'}>)"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Section(\n",
" union_geom.create_mesh([200, 200, 200, 200]) # .create_mesh() now returns the Geometry object with generated mesh\n",
").plot_mesh() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Union showing \"material precedence\"\n",
"\n",
"When performing a union between geometries of differing materials, the order of the union operation matters for the resulting material"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961befb588\n",
"Material: Aluminum 6061\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-12.0 -12.0 324.0 324.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,300.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 152.0,0.0 L 50.0,0.0 L 0.0,0.0 L 0.0,152.0 L 3.0000000000000004,152.0 L 4.423148382732853,151.89821441880932 L 5.817325568414296,151.59492973614496 L 7.154150130018865,151.0963199535452 L 8.406408174555978,150.4125353283118 L 9.54860733945285,149.55749574354257 L 10.557495743542583,148.54860733945284 L 11.412535328311812,147.40640817455596 L 12.096319953545184,146.15415013001888 L 12.594929736144973,144.8173255684143 L 12.898214418809326,143.42314838273285 L 13.0,142.0 L 13.0,25.0 L 13.122142697428806,23.29222194072058 L 13.48608431662603,21.619209317902847 L 14.084416055745777,20.015019843977367 L 14.904957606025825,18.51231019053283 L 15.931005107748899,17.14167119265658 L 17.141671192656577,15.931005107748902 L 18.51231019053283,14.904957606025825 L 20.015019843977363,14.084416055745779 L 21.619209317902843,13.486084316626032 L 23.292221940720577,13.122142697428808 L 24.999999999999996,13.0 L 50.0,13.0 L 50.0,20.0 L 127.5,20.0 L 129.63472257409927,20.15267837178601 L 131.72598835262144,20.60760539578254 L 133.7312251950283,21.355520069682225 L 135.60961226183397,22.381197007532286 L 137.32291100917928,23.663756384686124 L 138.8362436153139,25.177088990820724 L 140.11880299246772,26.890387738166037 L 141.14447993031777,28.768774804971706 L 141.89239460421746,30.774011647378554 L 142.347321628214,32.86527742590072 L 142.5,35.0 L 142.5,265.0 L 142.347321628214,267.13472257409927 L 141.89239460421746,269.22598835262147 L 141.14447993031777,271.2312251950283 L 140.11880299246772,273.10961226183395 L 138.83624361531386,274.8229110091793 L 137.32291100917928,276.3362436153139 L 135.60961226183397,277.6188029924677 L 133.7312251950283,278.6444799303178 L 131.72598835262144,279.3923946042175 L 129.63472257409927,279.847321628214 L 127.5,280.0 L 0.0,280.0 L 0.0,300.0 L 300.0,300.0 L 300.0,280.0 L 172.5,280.0 L 170.36527742590073,279.847321628214 L 168.27401164737856,279.3923946042175 L 166.2687748049717,278.6444799303178 L 164.39038773816603,277.6188029924677 L 162.67708899082072,276.3362436153139 L 161.16375638468614,274.8229110091793 L 159.88119700753228,273.10961226183395 L 158.85552006968223,271.2312251950283 L 158.10760539578254,269.22598835262147 L 157.652678371786,267.13472257409927 L 157.5,265.0 L 157.5,35.0 L 157.652678371786,32.86527742590073 L 158.10760539578254,30.774011647378558 L 158.85552006968223,28.76877480497171 L 159.88119700753228,26.890387738166037 L 161.1637563846861,25.177088990820724 L 162.67708899082072,23.663756384686128 L 164.39038773816603,22.38119700753228 L 166.2687748049717,21.35552006968222 L 168.27401164737856,20.60760539578254 L 170.36527742590073,20.15267837178601 L 172.5,20.0 L 250.0,20.0 L 250.0,0.0 L 152.0,0.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961befb588>"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mono | angle # Mono I-section is first so it's material takes precedence"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961bfd4a48\n",
"Material: Steel G40.21-350W\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-12.0 -12.0 324.0 324.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,300.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 50.0,0.0 L 0.0,0.0 L 0.0,152.0 L 3.0000000000000004,152.0 L 4.423148382732853,151.89821441880932 L 5.817325568414296,151.59492973614496 L 7.154150130018865,151.0963199535452 L 8.406408174555978,150.4125353283118 L 9.54860733945285,149.55749574354257 L 10.557495743542583,148.54860733945284 L 11.412535328311812,147.40640817455596 L 12.096319953545184,146.15415013001888 L 12.594929736144973,144.8173255684143 L 12.898214418809326,143.42314838273285 L 13.0,142.0 L 13.0,25.0 L 13.122142697428806,23.29222194072058 L 13.48608431662603,21.619209317902847 L 14.084416055745777,20.015019843977367 L 14.904957606025825,18.51231019053283 L 15.931005107748899,17.14167119265658 L 17.141671192656577,15.931005107748902 L 18.51231019053283,14.904957606025825 L 20.015019843977363,14.084416055745779 L 21.619209317902843,13.486084316626032 L 23.292221940720577,13.122142697428808 L 24.999999999999996,13.0 L 50.0,13.0 L 50.0,20.0 L 127.5,20.0 L 129.63472257409927,20.15267837178601 L 131.72598835262144,20.60760539578254 L 133.7312251950283,21.355520069682225 L 135.60961226183397,22.381197007532286 L 137.32291100917928,23.663756384686124 L 138.8362436153139,25.177088990820724 L 140.11880299246772,26.890387738166037 L 141.14447993031777,28.768774804971706 L 141.89239460421746,30.774011647378554 L 142.347321628214,32.86527742590072 L 142.5,35.0 L 142.5,265.0 L 142.347321628214,267.13472257409927 L 141.89239460421746,269.22598835262147 L 141.14447993031777,271.2312251950283 L 140.11880299246772,273.10961226183395 L 138.83624361531386,274.8229110091793 L 137.32291100917928,276.3362436153139 L 135.60961226183397,277.6188029924677 L 133.7312251950283,278.6444799303178 L 131.72598835262144,279.3923946042175 L 129.63472257409927,279.847321628214 L 127.5,280.0 L 0.0,280.0 L 0.0,300.0 L 300.0,300.0 L 300.0,280.0 L 172.5,280.0 L 170.36527742590073,279.847321628214 L 168.27401164737856,279.3923946042175 L 166.2687748049717,278.6444799303178 L 164.39038773816603,277.6188029924677 L 162.67708899082072,276.3362436153139 L 161.16375638468614,274.8229110091793 L 159.88119700753228,273.10961226183395 L 158.85552006968223,271.2312251950283 L 158.10760539578254,269.22598835262147 L 157.652678371786,267.13472257409927 L 157.5,265.0 L 157.5,35.0 L 157.652678371786,32.86527742590073 L 158.10760539578254,30.774011647378558 L 158.85552006968223,28.76877480497171 L 159.88119700753228,26.890387738166037 L 161.1637563846861,25.177088990820724 L 162.67708899082072,23.663756384686128 L 164.39038773816603,22.38119700753228 L 166.2687748049717,21.35552006968222 L 168.27401164737856,20.60760539578254 L 170.36527742590073,20.15267837178601 L 172.5,20.0 L 250.0,20.0 L 250.0,0.0 L 152.0,0.0 L 50.0,0.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961bfd4a48>"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"angle | mono # Angle is first so it's material takes precedence"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Intersection: `&`"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961c11cc48\n",
"Material: Steel G40.21-350W\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"110.16000000000001\" height=\"100.0\" viewBox=\"45.92 -4.08 110.16000000000001 21.159999999999997\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,12.999999999999998)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.0\" opacity=\"0.6\" d=\"M 152.0,0.0 L 50.0,0.0 L 50.0,13.0 L 142.0,13.0 L 143.42314838273285,12.898214418809326 L 144.8173255684143,12.594929736144973 L 146.15415013001888,12.096319953545184 L 147.40640817455596,11.412535328311812 L 148.54860733945284,10.557495743542582 L 149.55749574354257,9.54860733945285 L 150.4125353283118,8.406408174555976 L 151.0963199535452,7.154150130018864 L 151.59492973614496,5.817325568414297 L 151.89821441880932,4.423148382732851 L 152.0,3.0 L 152.0,0.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961c11cc48>"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"intersect_geom = angle & mono\n",
"intersect_geom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Difference: `-`"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961c01bb88\n",
"Material: Steel G40.21-350W\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"164.16000000000003\" viewBox=\"-6.08 -6.08 62.16 164.16000000000003\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,152.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.0\" opacity=\"0.6\" d=\"M 50.0,0.0 L 0.0,0.0 L 0.0,152.0 L 3.0000000000000004,152.0 L 4.423148382732853,151.89821441880932 L 5.817325568414296,151.59492973614496 L 7.154150130018865,151.0963199535452 L 8.406408174555978,150.4125353283118 L 9.54860733945285,149.55749574354257 L 10.557495743542583,148.54860733945284 L 11.412535328311812,147.40640817455596 L 12.096319953545184,146.15415013001888 L 12.594929736144973,144.8173255684143 L 12.898214418809326,143.42314838273285 L 13.0,142.0 L 13.0,25.0 L 13.122142697428806,23.29222194072058 L 13.48608431662603,21.619209317902847 L 14.084416055745777,20.015019843977367 L 14.904957606025825,18.51231019053283 L 15.931005107748899,17.14167119265658 L 17.141671192656577,15.931005107748902 L 18.51231019053283,14.904957606025825 L 20.015019843977363,14.084416055745779 L 21.619209317902843,13.486084316626032 L 23.292221940720577,13.122142697428808 L 24.999999999999996,13.0 L 50.0,13.0 L 50.0,0.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961c01bb88>"
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"angle - mono # Note the resulting material"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.Geometry\n",
"object at: 0x1961c020608\n",
"Material: Aluminum 6061\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-12.0 -12.0 324.0 324.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,300.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 50.0,13.0 L 50.0,20.0 L 127.5,20.0 L 129.63472257409927,20.15267837178601 L 131.72598835262144,20.60760539578254 L 133.7312251950283,21.355520069682225 L 135.60961226183397,22.381197007532286 L 137.32291100917928,23.663756384686124 L 138.8362436153139,25.177088990820724 L 140.11880299246772,26.890387738166037 L 141.14447993031777,28.768774804971706 L 141.89239460421746,30.774011647378554 L 142.347321628214,32.86527742590072 L 142.5,35.0 L 142.5,265.0 L 142.347321628214,267.13472257409927 L 141.89239460421746,269.22598835262147 L 141.14447993031777,271.2312251950283 L 140.11880299246772,273.10961226183395 L 138.83624361531386,274.8229110091793 L 137.32291100917928,276.3362436153139 L 135.60961226183397,277.6188029924677 L 133.7312251950283,278.6444799303178 L 131.72598835262144,279.3923946042175 L 129.63472257409927,279.847321628214 L 127.5,280.0 L 0.0,280.0 L 0.0,300.0 L 300.0,300.0 L 300.0,280.0 L 172.5,280.0 L 170.36527742590073,279.847321628214 L 168.27401164737856,279.3923946042175 L 166.2687748049717,278.6444799303178 L 164.39038773816603,277.6188029924677 L 162.67708899082072,276.3362436153139 L 161.16375638468614,274.8229110091793 L 159.88119700753228,273.10961226183395 L 158.85552006968223,271.2312251950283 L 158.10760539578254,269.22598835262147 L 157.652678371786,267.13472257409927 L 157.5,265.0 L 157.5,35.0 L 157.652678371786,32.86527742590073 L 158.10760539578254,30.774011647378558 L 158.85552006968223,28.76877480497171 L 159.88119700753228,26.890387738166037 L 161.1637563846861,25.177088990820724 L 162.67708899082072,23.663756384686128 L 164.39038773816603,22.38119700753228 L 166.2687748049717,21.35552006968222 L 168.27401164737856,20.60760539578254 L 170.36527742590073,20.15267837178601 L 172.5,20.0 L 250.0,20.0 L 250.0,0.0 L 152.0,0.0 L 152.0,3.0 L 151.89821441880932,4.423148382732851 L 151.59492973614496,5.817325568414297 L 151.0963199535452,7.154150130018864 L 150.4125353283118,8.406408174555976 L 149.55749574354257,9.54860733945285 L 148.54860733945284,10.557495743542582 L 147.40640817455596,11.412535328311812 L 146.15415013001888,12.096319953545184 L 144.8173255684143,12.594929736144973 L 143.42314838273285,12.898214418809326 L 142.0,13.0 L 50.0,13.0 z\" /></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.Geometry at 0x1961c020608>"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mono - angle # Note the resulting material"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Symmetric Difference: `^`"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961c028ac8\n",
"Materials incl.: ['Aluminum 6061']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-12.0 -12.0 324.0 324.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,300.0)\"><g><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 50.0,13.0 L 50.0,20.0 L 127.5,20.0 L 129.63472257409927,20.15267837178601 L 131.72598835262144,20.60760539578254 L 133.7312251950283,21.355520069682225 L 135.60961226183397,22.381197007532286 L 137.32291100917928,23.663756384686124 L 138.8362436153139,25.177088990820724 L 140.11880299246772,26.890387738166037 L 141.14447993031777,28.768774804971706 L 141.89239460421746,30.774011647378554 L 142.347321628214,32.86527742590072 L 142.5,35.0 L 142.5,265.0 L 142.347321628214,267.13472257409927 L 141.89239460421746,269.22598835262147 L 141.14447993031777,271.2312251950283 L 140.11880299246772,273.10961226183395 L 138.83624361531386,274.8229110091793 L 137.32291100917928,276.3362436153139 L 135.60961226183397,277.6188029924677 L 133.7312251950283,278.6444799303178 L 131.72598835262144,279.3923946042175 L 129.63472257409927,279.847321628214 L 127.5,280.0 L 0.0,280.0 L 0.0,300.0 L 300.0,300.0 L 300.0,280.0 L 172.5,280.0 L 170.36527742590073,279.847321628214 L 168.27401164737856,279.3923946042175 L 166.2687748049717,278.6444799303178 L 164.39038773816603,277.6188029924677 L 162.67708899082072,276.3362436153139 L 161.16375638468614,274.8229110091793 L 159.88119700753228,273.10961226183395 L 158.85552006968223,271.2312251950283 L 158.10760539578254,269.22598835262147 L 157.652678371786,267.13472257409927 L 157.5,265.0 L 157.5,35.0 L 157.652678371786,32.86527742590073 L 158.10760539578254,30.774011647378558 L 158.85552006968223,28.76877480497171 L 159.88119700753228,26.890387738166037 L 161.1637563846861,25.177088990820724 L 162.67708899082072,23.663756384686128 L 164.39038773816603,22.38119700753228 L 166.2687748049717,21.35552006968222 L 168.27401164737856,20.60760539578254 L 170.36527742590073,20.15267837178601 L 172.5,20.0 L 250.0,20.0 L 250.0,0.0 L 152.0,0.0 L 152.0,3.0 L 151.89821441880932,4.423148382732851 L 151.59492973614496,5.817325568414297 L 151.0963199535452,7.154150130018864 L 150.4125353283118,8.406408174555976 L 149.55749574354257,9.54860733945285 L 148.54860733945284,10.557495743542582 L 147.40640817455596,11.412535328311812 L 146.15415013001888,12.096319953545184 L 144.8173255684143,12.594929736144973 L 143.42314838273285,12.898214418809326 L 142.0,13.0 L 50.0,13.0 z\" /><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.16\" opacity=\"0.6\" d=\"M 50.0,13.0 L 50.0,0.0 L 0.0,0.0 L 0.0,152.0 L 3.0000000000000004,152.0 L 4.423148382732853,151.89821441880932 L 5.817325568414296,151.59492973614496 L 7.154150130018865,151.0963199535452 L 8.406408174555978,150.4125353283118 L 9.54860733945285,149.55749574354257 L 10.557495743542583,148.54860733945284 L 11.412535328311812,147.40640817455596 L 12.096319953545184,146.15415013001888 L 12.594929736144973,144.8173255684143 L 12.898214418809326,143.42314838273285 L 13.0,142.0 L 13.0,25.0 L 13.122142697428806,23.29222194072058 L 13.48608431662603,21.619209317902847 L 14.084416055745777,20.015019843977367 L 14.904957606025825,18.51231019053283 L 15.931005107748899,17.14167119265658 L 17.141671192656577,15.931005107748902 L 18.51231019053283,14.904957606025825 L 20.015019843977363,14.084416055745779 L 21.619209317902843,13.486084316626032 L 23.292221940720577,13.122142697428808 L 24.999999999999996,13.0 L 50.0,13.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961c028ac8>"
]
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mono ^ angle # Similar to union, material precedence comes into play"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 4. Creating `CompoundGeometry` objects"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Instantiating the `CompoundGeometry` class with a list of `Geometry`"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961c00c9c8\n",
"Materials incl.: ['default']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-77.60178852258043 -77.89738987827012 305.59784197943696 755.8934433351267\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,600.0986635785864)\"><g><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"5.039289622234178\" opacity=\"0.6\" d=\"M 0.0,0.0 L 200.0,0.0 L 200.0,400.0 L 0.0,400.0 L 0.0,0.0 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"5.039289622234178\" opacity=\"0.6\" d=\"M 50.0,0.0 L 48.429158056431554,12.43449435824274 L 43.81533400219318,24.087683705085766 L 36.448431371070576,34.22735529643443 L 26.791339748949827,42.216396275100756 L 15.450849718747373,47.552825814757675 L 3.139525976465676,49.901336421413575 L -9.36906572928623,49.114362536434435 L -21.288964578253637,45.241352623300976 L -31.871199487434488,38.525662138789464 L -40.450849718747364,29.38926261462366 L -46.48882429441257,18.406227634233908 L -49.60573506572389,6.266661678215227 L -49.60573506572389,-6.266661678215215 L -46.488824294412574,-18.406227634233897 L -40.45084971874739,-29.389262614623636 L -31.871199487434478,-38.52566213878947 L -21.28896457825361,-45.24135262330099 L -9.369065729286232,-49.114362536434435 L 3.1395259764656416,-49.901336421413575 L 15.450849718747362,-47.55282581475768 L 26.791339748949838,-42.21639627510075 L 36.44843137107056,-34.227355296434446 L 43.815334002193154,-24.087683705085805 L 48.42915805643155,-12.434494358242768 L 50.0,0.0 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"5.039289622234178\" opacity=\"0.6\" d=\"M 0.0,0.0 L 200.0,0.0 L 200.0,20.0 L 122.5,20.0 L 120.36527742590073,20.15267837178601 L 118.27401164737856,20.60760539578254 L 116.2687748049717,21.35552006968222 L 114.39038773816604,22.38119700753228 L 112.67708899082072,23.663756384686128 L 111.16375638468612,25.177088990820724 L 109.88119700753228,26.890387738166037 L 108.85552006968223,28.76877480497171 L 108.10760539578254,30.774011647378558 L 107.65267837178601,32.86527742590073 L 107.5,35.0 L 107.5,615.0 L 107.65267837178601,617.1347225740993 L 108.10760539578254,619.2259883526215 L 108.85552006968223,621.2312251950283 L 109.88119700753228,623.109612261834 L 111.16375638468612,624.8229110091793 L 112.67708899082072,626.3362436153138 L 114.39038773816604,627.6188029924677 L 116.2687748049717,628.6444799303177 L 118.27401164737856,629.3923946042174 L 120.36527742590073,629.847321628214 L 122.5,630.0 L 200.0,630.0 L 200.0,650.0 L 0.0,650.0 L 0.0,630.0 L 77.5,630.0 L 79.63472257409927,629.847321628214 L 81.72598835262144,629.3923946042174 L 83.7312251950283,628.6444799303177 L 85.60961226183396,627.6188029924677 L 87.32291100917928,626.3362436153138 L 88.83624361531388,624.8229110091793 L 90.11880299246772,623.109612261834 L 91.14447993031777,621.2312251950283 L 91.89239460421746,619.2259883526215 L 92.34732162821399,617.1347225740993 L 92.5,615.0 L 92.5,35.0 L 92.34732162821399,32.86527742590072 L 91.89239460421746,30.774011647378554 L 91.14447993031777,28.768774804971706 L 90.11880299246772,26.890387738166037 L 88.83624361531388,25.177088990820724 L 87.32291100917928,23.663756384686124 L 85.60961226183396,22.381197007532286 L 83.7312251950283,21.355520069682225 L 81.72598835262144,20.60760539578254 L 79.63472257409929,20.15267837178601 L 77.5,20.0 L 0.0,20.0 L 0.0,0.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961c00c9c8>"
]
},
"execution_count": 117,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list_of_geoms = [\n",
" sc.rectangular_section(b=200, d=400), \n",
" sc.circular_section(100, 25), \n",
" sc.i_section(d=650, b=200, t_f=20, t_w=15, r=15, n_r=12)\n",
"]\n",
"sc.CompoundGeometry(list_of_geoms)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Creating `CompoundGeometry` with `+` operator"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sectionproperties.pre.sections.CompoundGeometry\n",
"object at: 0x1961c028b08\n",
"Materials incl.: ['default']\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"-77.60178852258043 -77.89738987827012 305.59784197943696 755.8934433351267\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,600.0986635785864)\"><g><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"5.039289622234178\" opacity=\"0.6\" d=\"M 0.0,0.0 L 200.0,0.0 L 200.0,400.0 L 0.0,400.0 L 0.0,0.0 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"5.039289622234178\" opacity=\"0.6\" d=\"M 50.0,0.0 L 48.429158056431554,12.43449435824274 L 43.81533400219318,24.087683705085766 L 36.448431371070576,34.22735529643443 L 26.791339748949827,42.216396275100756 L 15.450849718747373,47.552825814757675 L 3.139525976465676,49.901336421413575 L -9.36906572928623,49.114362536434435 L -21.288964578253637,45.241352623300976 L -31.871199487434488,38.525662138789464 L -40.450849718747364,29.38926261462366 L -46.48882429441257,18.406227634233908 L -49.60573506572389,6.266661678215227 L -49.60573506572389,-6.266661678215215 L -46.488824294412574,-18.406227634233897 L -40.45084971874739,-29.389262614623636 L -31.871199487434478,-38.52566213878947 L -21.28896457825361,-45.24135262330099 L -9.369065729286232,-49.114362536434435 L 3.1395259764656416,-49.901336421413575 L 15.450849718747362,-47.55282581475768 L 26.791339748949838,-42.21639627510075 L 36.44843137107056,-34.227355296434446 L 43.815334002193154,-24.087683705085805 L 48.42915805643155,-12.434494358242768 L 50.0,0.0 z\" /><path fill-rule=\"evenodd\" fill=\"#ff3333\" stroke=\"#555555\" stroke-width=\"5.039289622234178\" opacity=\"0.6\" d=\"M 0.0,0.0 L 200.0,0.0 L 200.0,20.0 L 122.5,20.0 L 120.36527742590073,20.15267837178601 L 118.27401164737856,20.60760539578254 L 116.2687748049717,21.35552006968222 L 114.39038773816604,22.38119700753228 L 112.67708899082072,23.663756384686128 L 111.16375638468612,25.177088990820724 L 109.88119700753228,26.890387738166037 L 108.85552006968223,28.76877480497171 L 108.10760539578254,30.774011647378558 L 107.65267837178601,32.86527742590073 L 107.5,35.0 L 107.5,615.0 L 107.65267837178601,617.1347225740993 L 108.10760539578254,619.2259883526215 L 108.85552006968223,621.2312251950283 L 109.88119700753228,623.109612261834 L 111.16375638468612,624.8229110091793 L 112.67708899082072,626.3362436153138 L 114.39038773816604,627.6188029924677 L 116.2687748049717,628.6444799303177 L 118.27401164737856,629.3923946042174 L 120.36527742590073,629.847321628214 L 122.5,630.0 L 200.0,630.0 L 200.0,650.0 L 0.0,650.0 L 0.0,630.0 L 77.5,630.0 L 79.63472257409927,629.847321628214 L 81.72598835262144,629.3923946042174 L 83.7312251950283,628.6444799303177 L 85.60961226183396,627.6188029924677 L 87.32291100917928,626.3362436153138 L 88.83624361531388,624.8229110091793 L 90.11880299246772,623.109612261834 L 91.14447993031777,621.2312251950283 L 91.89239460421746,619.2259883526215 L 92.34732162821399,617.1347225740993 L 92.5,615.0 L 92.5,35.0 L 92.34732162821399,32.86527742590072 L 91.89239460421746,30.774011647378554 L 91.14447993031777,28.768774804971706 L 90.11880299246772,26.890387738166037 L 88.83624361531388,25.177088990820724 L 87.32291100917928,23.663756384686124 L 85.60961226183396,22.381197007532286 L 83.7312251950283,21.355520069682225 L 81.72598835262144,20.60760539578254 L 79.63472257409929,20.15267837178601 L 77.5,20.0 L 0.0,20.0 L 0.0,0.0 z\" /></g></g></svg>"
],
"text/plain": [
"<sectionproperties.pre.sections.CompoundGeometry at 0x1961c028b08>"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rect, circ, i_sec = list_of_geoms\n",
"rect + circ + i_sec"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Issues with `CompoundGeometry` that may be encountered\n",
"\n",
"Creating `CompoundGeometry` out of individual `Geometry` objects or with the `+` operator may require the user to manually alter the location of the control points in one or more of the constituent `Geometry` objects. \n",
"\n",
"Control points are auto-generated for the user using shapely's `.representative_point()` method: a cheaply-computed point that is guaranteed to be within the geometry. Often times, this point is near the center of the geometry.\n",
"\n",
"The below is an example of when a control point may need to be relocated because both auto-generated control points land at near the same location creating an ambiguous `CompoundGeometry` out of two overlapping `Geometry`."
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [],
"source": [
"concrete = Material(\"Concrete 35 MPa\", 25e3, 0.2, 35, \"grey\")"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Cross-Section Geometry'}>)"
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sq_col = sc.rectangular_section(d=500, b=500).align_center()\n",
"sq_col.material = concrete\n",
"sq_col.create_mesh(200)\n",
"\n",
"i_sec = sc.i_section(d=305, b=305, t_f=25, t_w=15, r=16, n_r=12).align_center()\n",
"i_sec.material = steel\n",
"i_sec.create_mesh(20)\n",
"\n",
"composite_column = i_sec + sq_col\n",
"composite_column.plot_geometry()"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<matplotlib.patches.Patch object at 0x000001961C2CA808>, <matplotlib.patches.Patch object at 0x000001961C2CA208>]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x288 with 1 Axes>,\n",
" <AxesSubplot:title={'center':'Finite Element Mesh'}>)"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"composite_column.create_mesh([200, 100])\n",
"Section(composite_column).plot_mesh() # WHOA! The materials are backwards?!\n",
"# Meshpy doesn't know what's going on because both control points are in two regions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Set the control point after creating the \"outer\" geometry**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sq_col = sc.rectangular_section(d=500, b=500).align_center()\n",
"sq_col.control_points = [[-100, 0]] # Manually choose a point to demarcate the region after reviewing .plot_geometry()\n",
"sq_col.material = concrete\n",
"sq_col.create_mesh(200)\n",
"\n",
"i_sec = sc.i_section(d=305, b=305, t_f=25, t_w=15, r=16, n_r=12).align_center()\n",
"i_sec.material = steel\n",
"i_sec.create_mesh(20)\n",
"\n",
"composite_column = i_sec + sq_col\n",
"composite_column.plot_geometry()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"composite_column.create_mesh([100, 500])\n",
"Section(composite_column).plot_mesh()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 5. Next steps for `sectionproperties`\n",
"\n",
"**I need help to get this project wrapped up!**\n",
"\n",
"1. I want people to try out this new API and give feedback. Install on your machine by cloning my git repo and run `setup.py`.\n",
"2. I have been able to mostly keep up the doc strings for the auto-generated API documention but the examples in the existing documentation need to be updated. The new API allows sections and examples to be made quickly so it should not take too long to update.\n",
"3. Additional testing. The new pre-processor passes all of the existing tests and I have written some new ones. However, the new pre-processor does not have an extensive suite of tests. These can be built up slowly over time."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment