3.9 The Build Panel¶
The Build panel allows users access to the geometry and mesh editing tools in FEBio Studio. It consists of several child panels, each offering a different set of model editing tools.
The Create Panel¶
The Create panel is used to create geometry. FEBio Studio offers a basic set of mesh generation features; you can create primitive geometries, such as boxes, cylinders, spheres and so on. By activating the Create panel a list of buttons is displayed. By clicking on one of the buttons, the creation parameters appear for a particular primitive. Once you have entered the parameters you can click the Create button to add the primitive to your model. See section Creating Geometry for more details on how to create geometry.
The Edit Panel¶
The Edit panel allows you to modify the object creation parameters. By modifying these parameters, the user can change the geometry at any time. Note that if the geometry is already meshed, changing the object's parameters may invalidate this mesh as well as any selections associated with the mesh. See section Saving a model for more details on how to edit geometry.
The Mesh Panel¶
The Mesh panel allows the user to set the meshing parameters of the geometry. By modifying these parameters, the user can control the number and distribution of elements in the mesh. The available parameters depend on the selected geometry. For Editable Meshes this panel will show a set of tools that allow the mesh to be modified. Exercise caution when editing meshes in a model that already has boundary conditions, loads, etc., assigned. If any of the selections assigned to these model components depend directly on the mesh, problems may arise if the mesh is changed in any way.
The Tools Panel¶
This panel defines a few specialized tools that can be useful for very specific tasks.
Scalar Field With this tool, users can generate scalar data maps on a mesh. These maps can then be used for defining heterogeneous material parameters or other spatially varying model parameters. (See The Scalar Field Tool for more details.)
Edit Data Field This tool allows users to assign values to elements for an existing data map. To use the tool, first select the elements for which you wish to assign a value. Then, choose the data field and the new value, and click Apply.
Plane cut With this tool, the user can cut a mesh in two parts along a user-defined plane. (Only works for triangle meshes.)
Fiber Generator This tool can be used to generate a vector field on a mesh. The vector field can be stored in a data map, which can then be used to define e.g. material fiber orientations. (See The Fiber Generator Toolfor more details.)
Import Springs This tool imports a collection of line elements from a text or VTK file and produces either discrete (i.e. spring) elements, or linear truss elements. This tool expects that the user has an object selected (which has to be an editable mesh) to which the new nodes and line elements will be added. When adding new nodes, first the tool will check if a node already exists at that location (within the user-defined tolerance) and if so, pick the existing node. If no node exists at the location, a new node will be added to the object. The “Check for intersection” option will check if the new line elements intersect with the existing mesh, and if so, will truncate the element at the intersection point.
Quadric Fit
This tool fits a quadric surface to the selected faces. Quadrics include ellipsoids, cylinders and cones. The general equation fitted to the data is
This equation may be rewritten in matrix form as
Once the coefficients \(C_{0}-C_{9}\) are obtained, the principal axes of the quadric may be found by evaluating the eigenvalues \(\left(c_{0},c_{1},c_{2}\right)\) and eigenvectors \(\left(\mathbf{v}_{0},\mathbf{v}_{1},\mathbf{v}_{2}\right)\) of the \(3\times3\) coefficient matrix,
where
Then, in the basis of these eigenvectors, the equation of the quadric may be rewritten as
where
The different types of quadric surfaces are described on Wikipedia (https://en.wikipedia.org/wiki/Quadric). To reduce the above equation to one of the forms presented there, we find the origin \(\left(x_{0},y_{0},z_{0}\right)\) of the quadric and consider three cases:
-
If \(c_{0}\ne0\) and \(c_{1}\ne0\) and \(c_{2}\ne0\),
\[ F\left(x,y,z\right)=c_{0}\left(x-x_{0}\right)^{2}+c_{1}\left(y-y_{0}\right)^{2}+c_{2}\left(z-z_{0}\right)^{2}+\kappa=0 \]where
\[ \begin{aligned}x_{0} & =-\frac{c_{6}}{2c_{0}} & y_{0} & =-\frac{c_{7}}{2c_{1}} & z_{0} & =-\frac{c_{8}}{2c_{2}}\end{aligned} \]\[ \kappa=c_{9}-c_{0}x_{0}^{2}-c_{1}y_{0}^{2}-c_{2}z_{0}^{2} \] -
If \(c_{0}\ne0\) and \(c_{1}\ne0\) and \(c_{2}=0\),
\[ F\left(x,y,z\right)=c_{0}\left(x-x_{0}\right)^{2}+c_{1}\left(y-y_{0}\right)^{2}+c_{8}z+\kappa=0 \]where
\[ \begin{aligned}x_{0} & =-\frac{c_{6}}{2c_{0}} & y_{0} & =-\frac{c_{7}}{2c_{1}} & z_{0} & =0\end{aligned} \]\[ \kappa=c_{9}-c_{0}x_{0}^{2}-c_{1}y_{0}^{2} \] -
If \(c_{0}\ne0\) and \(c_{1}=0\) and \(c_{2}=0\),
\[ F\left(x,y,z\right)=c_{0}\left(x-x_{0}\right)^{2}+c_{7}y+c_{8}z+\kappa=0 \]where
\[ \begin{aligned}x_{0} & =-\frac{c_{6}}{2c_{0}} & y_{0} & =0 & z_{0} & =0\end{aligned} \]\[ \kappa=c_{9}-c_{0}x_{0}^{2} \]
When \(\kappa\ne0\), \(F\left(x,y,z\right)=0\) may be divided across by \(\left|\kappa\right|\).
Once we find \(\left\{ x_{0},y_{0},z_{0}\right\}\) in the basis of eigenvectors, we can convert these coordinates back to the reference coordinate system using
The output of the quadric fit tool corresponds to the following values:
| Quadric Type | Best guess to cases in https://en.wikipedia.org/wiki/Quadric |
|---|---|
| Center | \(X_{0},Y_{0},Z_{0}\) |
| A | max eigenvalue, \(c_{0}\) (\(\kappa=0\)) or \(c_{0}/\left\|\kappa\right\|\) (\(\kappa\ne0\)) |
| B | mid eigenvalue, \(c_{1}\) (\(\kappa=0\)) or \(c_{1}/\left\|\kappa\right\|\) (\(\kappa\ne0\)) |
| C | min eigenvalue, \(c_{2}\) (\(\kappa=0\)) or \(c_{2}/\left\|\kappa\right\|\) (\(\kappa\ne0\)) |
| U | should be \(0\) for cases 1, 2, 3 |
| V | should be 0 for cases 1 and 2, and \(c_{7}\) (\(\kappa=0\)) or \(c_{7}/\left\|\kappa\right\|\) (\(\kappa\ne0\)) for case 3 |
| W | should be 0 for case 1, and \(c_{8}\) (\(\kappa=0\)) or \(c_{8}/\left\|\kappa\right\|\) (\(\kappa\ne0\)) for cases 2 and 3 |
| c | evaluated as \(\kappa\) or \(\kappa/\left\|\kappa\right\|\), should be \(0\), \(1\), or \(-1\) |
| Axis 1 | normalized eigenvector \(\mathbf{v}_{1}\) for max eigenvalue |
| Axis 2 | normalized eigenvector \(\mathbf{v}_{2}\) for mid eigenvalue |
| Axis 3 | normalized eigenvector \(\mathbf{v}_{3}\) for min eigenvalue |
ICP Registration This tool implements the Iterative Closest Point registration method, which can be used to align two objects assuming an affine transformation.
Image Map
This tool can be used to extract a scalar data map from a 3D image data. Before you can use this tool, you must import a 3D image (menu File → Import Image). Then, give the new data map a name and select the image model. The following options can be set to control how the data is extracted from the image.
-
Method: The sampling method that will be used to extract the image data.
-
Project surface nodes inward: When checked, surface nodes are evaluated by finding the closest non-zero image data, instead of evaluating the image data directly at the surface.
-
Normalize: image data is normalized before sampling.
-
Filter: When checked, the user can provide a transfer function that will be applied after sampling the image data.
Discrete Element Network This tool converts a surface mesh to a mesh composed of discrete elements.
Select Near Plane
This tool can be used to select all nodes that are on or close to a plane defined by the following parameters.
-
Direction: The orientation of the plane
-
Position: The position (i.e. normal displacement) of the plane.
-
Threshold: The max distance to the plane for a node to be included in the selection.
-
Add to selection: Add the plane selection to the current selection, if any.
Kinemat The Kinemat tool allows users to setup an FEBio problem using only geometry and kinematics data. The geometry is assumed to be rigid bodies, and the kinemat data describes the motion of the rigid parts.FEBio Studio will read the data and construct a complete FEBio model: Rigid materials are assigned to each bone. The kinemat data is used to apply prescribed displacements and rotations for each rigid body. After import, the model can be saved and run immediately in FEBio.