You probably expect to find here a short definition of what pyFormex is and what it can do for you. I may have to disappoint you: describing the essence of pyFormex in a few lines is not an easy task to do, because the program can be (and is being) used for very different tasks. So I will give you two answers here: a short one and a long one.
The short answer is that pyFormex is a program to generate large structured sets of coordinates by means of subsequent mathematical transformations gathered in a script. If you find this definition too dull, incomprehensible or just not descriptive enough, read on through this section and look at some of the examples in this manual and on the pyFormex website. You will then probably have a better idea of what pyFormex is.
The initial intent of pyFormex was the rapid design of three-dimensional structures with a geometry that can easier be obtained through mathematical description than through interactive generation of its subparts and assemblage thereof. While during development of the program we have concentrated mostly on wireframe type structures, surface and solid elements have been part of pyFormex right from the beginning. Still, many of the examples included with pyFormex are of frame type and most of the practical use of the program is in this area. There is also an extensive plugin for working with triangulated surfaces.
The stent1.1 structure in the figure 1.1 is a good illustration of what pyFormex can do and what it was intended for. It is one of the many examples provided with pyFormex.
The structure is composed of 22032 line segments, each defined by 2 points. Nobody in his right mind would ever even try to input all the 132192 coordinates of all the points describing that structure. With pyFormex, one could define the structure by the following sequence of operations, illustrated in the figure 1.2:
pyFormex does not fit into a single category of traditional (mostly commercial) software packages, because it is not being developed as a program with a specific purpose, but rather as a collection of tools and scripts which we needed at some point in our research projects. Many of the tasks for which we now use pyFormex could be done also with some other software package, like a CAD program or a matrix calculation package or a solid modeler/renderer or a finite element pre- and postprocessor. Each of these is very well suited for the task it was designed for, but none provides all the features of pyFormex in a single consistent environment, and certainly not as free software.
Perhaps the most important feature of pyFormex is that it was primarily intended to be an easy scripting language for creating geometrical models of 3D-structures. The Graphical User Interface was only added as a convenient means to visualize the designed structure. pyFormex can still run without user interface, and this makes it ideal for use in a batch toolchain. Anybody involved in the simulation of the mechanical behaviour of materials and structures will testify that most of the work (often 80-90%) goes into the building of the model, not into the simulations itself. Repeatedly building a model for optimization of your structure then quickly becomes cumbersome, unless you use a tool like pyFormex, allowing for automated and unattended building of model variants.
The author of pyFormex, professor in structural engineering and heavy computer user since mainframe times, deeply regrets that computing skills of nowadays engineering students are often limited to using graphical interfaces of mostly commercial packages. This greatly limits their skills, because in their way of thinking: 'If there is no menu item to do some task, then it can not be done!' The hope to get some of them back into coding has been a stimulus in continuing our work on pyFormex. The strength of the pyFormex scripting language and the elegance of Python have already attracted many on this path.
Finally, pyFormex is, and will always be, free software in both meanings of free: guaranteeing your freedom (see 1.2) and without charging a fee for it.