User Guide
Graphical User Interface
The GUI is the easiest way to use TexGen, in previous version a lot of TexGen features were not accessible via the graphical user interface. However considerable effort has been made to improve this, notably version 3.1 includes a modelling interface for interactive manipulation of textile geometry and version 3.2 includes a 3d weave wizard. For those comfortable with doing a bit of programming, the Python interface is recommended.
Layout
At the centre is a window showing a 3d representation of the textile geometry. Initially when TexGen is loaded this window will be empty, this is because no textile models will have been created yet. After creating a textile model it will become visible, if several textile models are created they will each be open in a separate tab allowing you to work with several models at once.
There are several other windows which can be switched on and off via the drop-down menu at the top in the "Window" section. By default the controls and logs windows will be visible.
The controls window is separated into various sections: Textiles, Modeller, Domain, Rendering and Python. Note that most of these controls are also accessible via the drop-down menu at the top. These controls are used to create textile models, manipulate them and control how they are rendered to the screen amongst other things.
The log windows at the bottom contains an interactive Python Console along with Python Output and TexGen Output windows. The interactive console allows the user to type Python commands and see the results in an interactive manner. This can be useful for small operations and learning how to use the python scripting interface. For inputting a large number of Python commands it is more convenient to save it in a Python script and execute it all at once.
The Python Output log window displays all the Python code executed by the GUI. Essentially every button pressed in the user interface will create a Python command. This is done by design, making it possible to record Python scripts while interacting with the GUI. If you know how to do something with the GUI, you then automatically know how to do it with a Python script because the code is displayed.
The TexGen Output log window displays log and error messages from TexGen. These generally include information on what TexGen is doing, if something goes wrong it is useful to read the log to find out what happened. Error messages will be displayed in red so that they can be easily located.
If new messages are posted one of the log windows while it is inactive, the icon above the window will change. In the case of receiving an error message the icon will change to an error icon.
Finally the outliner window which is hidden by default gives tree representation of the textile model. Which each textile is composed of a several yarns each of which is composed of nodes. This will be covered in more detail in the modelling section.
Wizards
The wizards are designed to create textile models with a minimum amount of input. There are currently two weave wizards: one generates models of 2d and 3d weaves and the other generates models of orthogonal, angle interlock and layer-to-layer 3d weaves. Wizards for other fabric types may be implemented in the future.
Weave Wizard
To use the weave wizard either:
- Select Controls -> Textiles -> Weave, or
- Select Main Menu -> Textiles -> Create Weave...
Create 2D Weave
Fill in the textile data on Weave Wizard as follows. Tool tips for each section can be viewed by holding the mouse over the control for about a second.
- Warp Yarns, Weft Yarns - select number of yarns required
- Yarn Spacing - by default this is the same for both warp and weft yarns
- Yarn Width - by default this is the same for both warp and weft yarns
- Fabric Thickness - at this point the yarn height will be taken to be half the fabric thickness (this can be altered in the next dialog if necessary
- Create 3D Weave - leave unchecked for 2D weave
- Create Default Domain - the default domain is the same as the unit cell
- Refine model - if selected this will automatically adjust yarn cross-sections and rotations to create a textile without intersections and with a specified gap between yarns
- Gap Size - Specify the gap between yarns when Refine Model is selected
Select Next to proceed to Weave Pattern dialog:
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.
- Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.
- Right click on the top-down view to select a cross-section passing through the selected point. This gives a schematic preview of the cross-section.
- Set yarn spacing, width and height
- Click on boxes running along left and top of window to select one yarn
- Control or Shift and right click to select multiple yarns
- Boxes representing selected yarns now appear in red
- Right click to give pop-up menu. Select required option and enter value in subsequent dialog box
- Changes to width and height will be applied to all selected yarns. Changes to yarn spacing will modifies the spacing between the selected yarn and the yarn after it.
Create 3D Weave
- Create 3D Weave - check this box
- Refine Model/Gap size - these options will now be greyed
- Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above
Select Next to proceed to Weave Pattern dialog:
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted. Layers of warp and weft yarns can also be added and removed.
- Click on the top-down view to select a cross-section passing through the selected point. This gives a schematic preview of the cross-section.
- The cross-section view is very important when creating 3d weaves because it is the only way to set the vertical order of the warp and weft yarns. Click and drag a cross-over up or down to move it to the desired location. By doing this for each cross-section one after the other the weave pattern can be completely defined.
- Add/remove layers
- Click on boxes running along left and top of window to select one yarn
- Control or Shift and Click to select multiple yarns
- Boxes representing selected yarns now appear in red
- Right click to give pop-up menu.
- Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen
- Set yarn spacing, width and height as for 2D Weave described above
3D Weave Wizard
To use the weave wizard either:
- Select Controls -> Textiles -> 3D Weave, or
- Select Main Menu -> Textiles -> Create 3D Weave...
Create 3D Weave
First select the weave type to be created and then select Next to continue to the next page.
Input the data for the weft yarns on the 3D Weave Wizard as follows. Tool tips for each section can be viewed by holding the mouse over the control for about a second.
- Yarns - select number of yarns required
- Number of Yarn Layers - select the number of weft yarn layers
- Note that for angle interlock weaves the number of yarns and layers are tied so that the correct weave pattern is achieved. Changing one will cause the other to be changed automatically if necessary.
- Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.
- Yarn Width - specify the yarn width
- Yarn Height - specify the yarn height
- Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog
- Offset weft yarns - this is only enabled for the angle interlock weave and results in a weave pattern where rows of weft yarns are offset by half a yarn spacing
Select Next to proceed to warp yarn input dialog. Enter data as for the weft yarns.
- For angle interlock and layer-to-layer weaves the number of layers input is disable and is assigned automatically depending on the number of weft layers.
- Note that the number of warp yarns does not include binder yarns.
Select Next to proceed to the binder yarn input dialog.
- Yarn Width - specify the yarn width
- Yarn Height - specify the yarn height
- Yarn Spacing - specify the yarn spacing
- Gap size - where possible this forces a gap of the given size between yarns
- Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog
- Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves
- Ratio of Binder Yarns to Warp Yarns - the number of warp yarns has already specified and this will insert binder yarns in the ratio specified between the warp yarns.
- Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.
- Target thickness - only enabled if refine is selected. Specify the required target thickness for the refined textile. Defaults to the undeformed thickness given by the warp and weft yarn startin heights.
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.
Binder yarns are green, warp yarns blue.
- Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.
- Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.
- Layer-to-layer
- Click on binder yarn on top view to select. A schematic preview of the side view for this binder position will be displayed below the top view.
- Drag the binder yarns in the side view to the vertical position required. If there is more than one layer of binder yarns these will all be moved together.
- Set yarn spacing, width and height
- Click on boxes running along left and top of window to select one yarn
- Control or Shift and right click to select multiple yarns
- Boxes representing selected yarns now appear in red
- Right click to give pop-up menu. Select required option and enter value in subsequent dialog box
- Changes will be applied to all selected yarns.
A separate dialog will be displayed for warp, weft and binder yarn properties. When refining the textile the yarn volume fractions are calculated to check that, as the yarns are compressed, the volume fractions stay within realistic limits. If these are exceeded then the refine will stop with an error message stating that the target thickness cannot be achieved.
Note that it is not necessary to complete all of these values: either the fibre area, or fibres per yarn and fibre diameter, or yarn linear density and fibre density will be sufficient.
Edit Textile
Either
- Select Textiles -> Edit Textile..
or
- Select Edit from the Textiles menu in the Controls window
If the textile has been created using one of the wizards then it will be reloaded into the appropriate wizard and the pages can then be edited and the textile regenerated.
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.
File
Export
ABAQUS File
Two options are available for ABAQUS file export:
- ABAQUS Dry Fibre File
- Select File -> Export -> ABAQUS File -> ABAQUS Dry Fibre File..
- The Abaqus Options dialog will be displayed
- Adjust intersections: Small, local adjustments to the volume mesh will be made until the intersections are within the selected intersection tolerance. If the intersection is deeper than one volume mesh element then an error message will be displayed and no correction will take place.
- Regenerate Mesh: This will create a new textile based on the adjusted mesh. The volume mesh is regenerated and used to produce the ABAQUS .inp file. This option will create more evenly spaced elements than if the Adjust Intersections option is used on its own. NB. Ensure that the textile is saved before using this option as it will replace the existing textile.
- ABAQUS Voxel File
- Select File -> Export -> ABAQUS File -> ABAQUS Voxel File
- The Abaqus Voxel Options dialog will be displayed
- Select the number of voxels required in x,y and z directions
- Select whether to output yarns, matrix or both
- Periodic Boundary Conditions
- All Tied: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.
- Z untied: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions
- Periodic boundary condition equations are generated based on the paper "Unit cells for micromechanical analyses of particle-refined composites", Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572
Tetgen Mesh
This option allows export of a tetrahedral mesh generated by Tetgen software. The output file is in Abaqus .inp format. Files with the selected name with .poly and .ele formats are also produced.
- The Parameters option allows specification of input switches as described here: http://wias-berlin.de/software/tetgen/switches.html. If the Y parameter is used then the function will generate meshes with matching elements on opposite sides of the domain.
- The Seed Size option gives a nominal size for the length of sides of triangles along the domain edge, given as input to the tetgen tetrahedralize function.
Information on Tetgen software can be found here: http://wias-berlin.de/software/tetgen/. It should be noted that the mesh generation does not always succeed. Most of the time it exits gracefully with a message that tetrahedralization has failed. Sometimes it will cause TexGen to shut down. It is strongly recommended that the textile is saved before using this option. It has been found that meshes are generated most successfully if a gap is specified in the weave wizards (or if a gap is provided in manually generated textiles).
The .poly file is the input file to the Tetgen tetrahedralize function. A viewer, TetView, can be downloaded here: http://wias-berlin.de/software/tetgen/tetview.html. If the tetrahedralization fails then more information can be gained by downloading the TetGen software and running it from the command line using the .poly file as input. This may show where the program has failed and will enable a bug report to be submitted to the Tetgen project.
Modeller
While the wizards provide an easy way to create textile models, flexibility and control over the geometry is sacrificed. On the other end of the spectrum the modeller allows users total control over textile geometry at the expensive of a slightly steeper learning curve. Note that the modeller can be used to modify models created with the wizards, however if this is done any subsequent changes in the wizard will erase any modifications made.
Create Textile
To invoke the modeller either:
- Select Controls -> Textile -> Empty, or
- Select Main Menu -> Textiles -> Create Empty...
In both cases a dialog box will be given in order to enter a name for the textile, this can be left blank in which case a default name will automatically be assigned.
Add Yarns
To add a single yarn either:
- Select Controls -> Modeller -> Yarn, or
- Select Main Menu -> Modeller -> Create Yarn...
In the Create Yarn dialog:
- Enter start and end coordinates for the yarn
- Enter number of nodes
- The yarn will always initially be created as a straight line with equispaced nodes.
- Once the yarn has been placed it will be visible on screen in wire frame mode.
Edit Yarn/Node Position
Select yarn/node using one of the following methods:
- Click on the yarn/node with the left mouse button
- Hold Shift while selecting yarn/node to select multiple yarns
- Click on the yarn/node in the Outliner tree control
- Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns
Nodes are displayed as spheres on the centreline of the yarns.
When either yarn or nodes have been selected they will turn white. X, Y and Z axes will be displayed.
To move yarn/node once it has been selected either:
- Click and drag one of the axes displayed. The yarn/node will be moved in the corresponding direction.
- Precise positioning can be achieved by enabling snapping using Controls -> Modeller -> Snapping
- Edit the coordinates in the Controls -> Modeller -> Position boxes.
Add Nodes
- Select node
- Click Outliner -> Insert Node, or
- Press the Insert key
The new node will be inserted in between the selected node and the previous one. Nodes cannot be inserted before the first node in the yarn.
Duplicate Yarns
- Select yarn
- Click Outliner -> Duplicate Yarn, or
- Press the d on the keyboard
The duplicated yarn will be an exact copy of the yarn at the same location. After duplicating the new yarn should be moved so that they no longer overlap.
Delete Yarns/Nodes
- Select yarn
- Click Outliner -> Delete Selected, or
- Press the Delete key
Set Yarn Path Interpolation
This specifies how the yarn path is interpolated between the nodes.
- Select yarn
- Select Main Menu -> Modeller -> Assign Interpolation... , or
- Select Controls -> Modeller -> Interpolation
- Select interpolation type from drop-down menu
- Periodic - check to give continuity across yarn repeats as follows:
- Linear - continuity of cross-section
- Bezier - continuity of cross-section and tangent(first order continuity)
- Natural Cubic - continuity of cross-section and both first and second order continuity
Set Yarn Cross-Sections
- Select yarn
- Select Main Menu -> Modeller -> Assign Section... , or
- Select Controls -> Modeller -> Section
- Select from the drop-down menu how the cross-section will vary along the length of the yarn
- Constant
- Interpolate Between Nodes - see below
- Interpolate Between Sections - see below
- Select Edit Section to change section shape
Interpolate Between Nodes
- Highlight node to be edited
- Hold Ctrl or Shift key down to select multiple nodes
- Smooth - check this box to give smooth interpolation between section
- Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections
- Select Edit Section to change selected sections
Interpolate Between Sections
- Sections can be specified at specific positions along the length of the yarn
- To add a section:
- Click on Insert Section
- Highlight the section which appears in the text box
- Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog
- To remove a section:
- Highlight the section to be removed
- Click on Remove Section
- Smooth and Polar - check as required, see Interpolate Between Nodes
- Highlight node to be edited
- Hold Ctrl or Shift key down to select multiple nodes
- Select Edit Section to change selected sections
Specify Cross-sections
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.
The shape at the top of the dialog gives a preview of the shape currently specified.
- Select Cross-section from drop-down list and enter parameters as follows:
- Ellipse - Width and height
- Lenticular - This is made up from the intersection of 2 circular sections. Enter width and height. The distortion should be a value between height/2 and -height/2. 0 will give an intersection which is central vertically, height/2 will give a semicircle.
- Power Ellipse - A modified ellipse. Power = 1 gives an ellipse. Power < 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power > 1 gives a shape similar to lenticular with rounded ends.
- Rectangle - Width and height. Use of this cross-section rather than a power ellipse with power = 0 will result in a better mesh ( even if other sections along the yarn are power ellipses ).
- Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.
- The Select Cross-section Shape dialog will be displayed. Click on 2 or more points outside the shape in the lower window to specify the divisions for the shapes to be assigned.
- Click within each section in turn to specify the shape to be used. The shape for this section of the area is specified using the Select Cross-section Shape dialog as described in the previous sections.
- The example shows:
- Red section - ellipse, width = 1.0, height = 0.5
- Blue section - lenticular, width = 1.0, height = 0.5, distortion = 0
- Green section - ellipse, width = 0.75, height = 0.75
- The example shows:
- A preview of the resulting shape is displayed in the top window of the dialog. It can be seen that there are discontinuities where the sections meet. These can be smoothed by dragging the circles at the join until a smooth transition is achieved, as shown on the right.
- Rotate - if this is checked then input an angle by which the shape should be rotated.
- Scale - if this is checked then input scale factors for the x and y directions.
Repeats
- Select Main Menu -> Modeller -> Assign Repeats... or,
- Select Controls -> Modeller -> Repeats
- Select yarn or multiple yarns as described in Edit Yarn/Node Position
- Add/edit values in the Repeats dialog to give repeat vectors. Typically a textile will have two repeat vectors eg x,0,0 and 0,y,0
Properties
- Select Main Menu -> Modeller -> Assign Properties... or,
- Select Controls -> Modeller -> Properties
- In the Properties dialog enter values and units for textile:
- Yarn Linear Density
- Fibre Density
- Fibre Area
- Fibre Diameter
- Fibres Per Yarn
- Areal Density, or...
- Select one or more yarns and enter values and units in the Properties dialog:
- Yarn Linear Density
- Fibre Density
- Fibre Area
- Fibre Diameter
- Fibres Per Yarn
- Young's modulus
- Poisson's ratio
Domain
The domain is specified so that, after repeats have been specified, the model can be constrained to a specific region. In most cases the domain will correspond to the unit cell of the textile but maintaining a distinction between the two gives added flexibility.
The domain is specified by planes where the space on the negative side of the plane is considered to be outside of the domain. Each plane is defined as: Ax + By + Cz + D = 0
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance from the plane to the origin. In order to specify an axis aligned bounding box with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined as shown in the table below.
A | B | C | D | |
---|---|---|---|---|
P0 | 1 | 0 | 0 | x1 |
P1 | -1 | 0 | 0 | -x2 |
P2 | 0 | 1 | 0 | y1 |
P3 | 0 | -1 | 0 | -y2 |
P4 | 0 | 0 | 1 | z1 |
P5 | 0 | 0 | -1 | -z2 |
The user interface gives two methods of specifying the domain:
- Specify a bounding box with minimum and maximum x, y and z values
- Specify the planes as described above
Specify Domain Using Bounding Box
- Select Main Menu -> Domain -> Create Box... or,
- Select Controls -> Domain -> Box
- In the Box Domain dialog enter the minimum and maximum x, y and z coordinates
Specify Domain Using Planes
- Select Main Menu -> Domain -> Create Planes... or,
- Select Controls -> Domain -> Planes
- Enter planes using the Domain Editor dialog:
- Enter x, y, z and d values for a plane as specified above
- Select Add Plane
- Repeat for each plane required
- To edit a plane:
- Select the plane in the text box
- Alter the values as required
- Select Replace Plane
- To delete a plane:
- Select the plane in the text box
- Select Delete Plane
Edit Domain
- Select Main Menu -> Domain -> Edit Domain... or,
- Select Controls -> Domain -> Edit
- The Domain Editor dialog will be displayed and is used as described in the previous section
Delete Domain
- Select Main Menu -> Domain -> Delete or,
- Select Controls -> Domain -> Delete
Both of these actions will completely delete the domain
Rendering
Render Fibre Orientation
Renders the fibre orientations on a grid of points. Note that the orientation represented is that of the point at the base of each arrow. Also note that when orientations are output with meshes they are calculated for each element and the orientations represented in this option are for illustrative purposes only.
Options
Switch Off Messages
Some procedures may be significantly quicker if the messages in the TexGen Output window are switched off. Exporting to a voxel file is one example of this.
- Select Main Menu -> Options -> Output Messages to switch on/off
- The option will be marked with a tick if messages are switched on
View
Zoom
Press and hold right mouse button. Drag in an upwards direction to zoom in, downwards to zoom out.
Pan
Press and hold middle mouse button at point to be moved, then drag to required position.