Projects‎ > ‎

Concrete Design with Blender

This project is building a parametric design tool for designing and simulating the construction of concrete structures in a manufacturing setting. This tool will be used for designing and testing the manufacturing process that will be used to build concrete hulls for OTEC plantships. Building concrete hulls

The parametric design portion of the tool will extend an open source tool, blender, by adding new primitive mesh operators. The user interface for the operators will prompt for the size and strength requirements of a wall or a beam and the operator will use design rules for reinforced, prestressed, and post-stressed concrete to layout a mesh for the concrete and the meshes for the reinforcing rods. The mesh objects will also include meta-data that will be used by other tools in the manufacturing and logistical planning process.

The Blender was originally developed for use in animation. It has since been adapted for use in 3D games. There is an integrated physics engine that can simulate collisions between objects. Blender has a very sophisticated user interface for building 3D meshes. There is also a programming API for building meshes. The programming API includes bindings for the Python language. Python is a very powerful object-oriented, dynamically-typed scripting language. It is possible to add new user interface components to blender using the Python language. Python can also be used to manipulate meshes, add new objects, and perform any other type of calculation to manipulate geometry relationships between objects in a scene. It can be used to set properties, such as material type for the objects system. Blender also allows new arbitrarily named properties to be added to any object. For instance, the price of an assembly could be added to an assembly object.

This project will start by defining a parametric design the user interface and blender operators for building pre-stressed concrete beams and walls. Wall length and height parameters would be entered and loads on the wall would be defined. Beam length parameters would be entered and loads on the beam would be defined.The parametric design tool would then calculated the beam height and thickness. For both wall and beam calculations the size and placement of the reinforcing steel required to meet the load requirements would automatically be calculated based on building code design rules. Each reinforcing rod would be a separate object with a unique object ID. The parametric design tool would include a button for dumping the materials list required to build the wall or beam panel to a build list file. Initially this would be a simple text list that contains the object ID, material type, size, location and price.

The project will need to use the latest developer's version of blender, as of this writing it is  alpha2. It wasn't practical to do this project with blender 2.49 and earlier versions. As of blender 2.50 the API and user interface is now very well suited to adding CAD features to the blender mesh tool. Many people have been trying to adapt blender for use in mechanical CAD. There has been limited success, but design limitations of the earlier version of blender made the work difficult. With blender 2.50 I think it will be relatively easy to build a robust parametric design tool, which in turn will foster the creation of an open source CAD package for designing structures.

There will be some rough spots in using blender alpha2 and the Python libraries used by Ubuntu. The blender distribution includes an embedded version of Python 3.1. The default version of Python found on Ubuntu is Python 2.6.4. The jump from 2.6 to 3.0 of Python created some incompatibilities, so beware when reading the documentation that there are some differences. I expect these problems will be cleaned up in about a year. For now some additional work will be required if part of the software is only available, such as numpy, for Python 2.6. The numpy package is a Python extension for scientific computations. It is very similar to MatLab.

Tjos os an open source project, participants get all of the intangible benefits of being on a a collaborative project. Since the tasks I've described are non-specific to my business objectives, this will be developed using the Launchpad.net project management tools.

We hope to attract other blender-cad developers to help expand the tool. Participants will likely be able to start consulting businesses in which you would customize the software to be used as a domain specific design tool, such as for building prefabricated buildings, or as a bridge design tool. Once you see how the animation and game engine portion of blender works, I think you will understand why I think blender has great potential for this type of application. The entire assembly process could easily be animated using blender.
Comments